数学建模 第四章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

t =1
2k1r (经济批量订货公式) x= k2
4.4 建模实验:混沌 建模实验:
•线性迭代要么收敛于它的不动点,要么 趋于无穷大。 •不收敛的非线性迭代可能会趋于无穷大, 也可能趋于一个周期解, •但也有可能在一个有限区域内杂乱无章 地游荡,这类由确定性运动导致的貌似 随机的现象称为混沌现象
4.2 非线性函数的MATLAB表达 非线性函数的MATLAB表达
Fun=inline(‘funstr’,’var’) 定义一个Inline 函数,其中funstr是函数的表达式, var是变量名
Fun=@Mfun 定义一个函数句柄,这里 Mfun是函数的M文件表达方式 Fun=@(var)funstr 定义匿名函数,其中var 是变量名, funstr是函数的表达式
4.3 计算实验:迭代法 计算实验:
1 迭代法
迭代法是从解的初始近似值x0(简称初值)开 始,利用某种迭代格式x k+1 = g (x k ), 求得一近似值序列x1, x2, …, xk, xk+1, … 逐步逼近于所求的解α(称为不动点)。 最常用的迭代法是牛顿迭代法,其迭代格式 为
xk +1
解 先作一些必要的假设将问题简化 1)汽车工厂对配件的日需求量是恒定的, 每日为r件; 2)所订配件按时一次性交货, 生产准备费每次k1元; 3)储存费按当日实际储存量计算, 储存费每日每件k2元; 4)你的工厂不允许缺货。 设一次订货x件,则订货周期为 T= x/r, 第t天的储存量为 q(t)= x-r t, 0<t<T
1.根据数据散布图,可选择线性函数、指 .根据数据散布图,可选择线性函数、 数函数或其它合理的函数形式拟合数据, 数函数或其它合理的函数形式拟合数据, 建立经验模型; 建立经验模型; 2.分析你的经验模型预测的人口数与实际 分析你的经验模型预测的人口数与实际 人口数的差别的成因,一般有: 人口数的差别的成因,一般有: (1)模型的函数形式选择不当; )模型的函数形式选择不当; (2)根据较少的数据建立经验模型,外推 )根据较少的数据建立经验模型, 预测会产生较大误差; 预测会产生较大误差; (3)是由于人口政策和生育观念的改变使 ) 人口数增长规律发生较大的改变. 人口数增长规律发生较大的改变
4.2 最小二乘拟合MATLAB指令 MATLAB指令
• 假设已知经验公式 假设已知经验公式y=f(c,x)(c和x均可为向量 要求根 和 均可为向量 均可为向量), 确定参数c.这 据一批有误差的数据(x 据一批有误差的数据 i,yi), i=0,1,…,n, 确定参数 这 样的问题称为数据拟合。 • 最小二乘法就是求 使得均方误差最小化 最小二乘法就是求c使得均方误差最小化 Q(c)=
第t天的储存费为 k2q(t)
一个周期的总储存费为 k2 百度文库q(t) ≈ k2 ∫o q(t)dt
T
T
一个周期总费用 C(x) = k1+k2x2/(2r) 优化目标是使单位产品费用 f(x)=C(x)/x=k1/x+k2x/(2r) 达到最小 由f’(x)=0 ,即 -k1/x2+k2/(2r)=0 得
MATLAB中一个多项式用系数降幂排列 向量来表示。
例1.求多项式x3 + 2 x2 - 5的根 » p=[1 2 0 -5]; x=roots(p) , polyval(p,x) 例2.用2次多项式拟合下列数据. x 0.1 0.2 0.15 0 -0.2 0.3 y 0.95 0.84 0.86 1.06 1.50 0.72
例 5 .求二元函数f(x,y)= 5-x4-y4+4xy在 原点附近的极大值。 解:max f→min(-f) x→ x(1), y→ x(2)
注:在使用fsolve, fminsearch等指令时, 在使用fsolve, fminsearch等指令时 等指令时, 多变量必须合写成一个向量变量, 多变量必须合写成一个向量变量,如用 x(1), x(2),…。 x(2),…。
适的函数形式对数据进行拟合; 适的函数形式对数据进行拟合; (2)用你的经验回归模型试计算:以1960年为基 )用你的经验回归模型试计算: 年为基 人口增长一倍需要多少年? 准,人口增长一倍需要多少年?世界人口何时将达 到100亿? 亿 年的世界人口数, (3)用你的模型估计 )用你的模型估计2002年的世界人口数,请分 年的世界人口数 析它与现在的实际人口数的差别的成因. 析它与现在的实际人口数的差别的成因
4.1 预备知识:极值 预备知识:
4.2 函数零点MATLAB指令 函数零点MATLAB指令
• 多项式
y=polyval(p,x) 求得多项式p在x处的值y,x可以是一 个或多个点 p3=conv(p1,p2) 返回多项式p1和p2的乘积 [p3,r]=deconv(p1,p2) p3返回多项式p1除以p2的商,r 返回余项 x=roots(p) 求得多项式p的所有复根. p=polyfit(x,y,k)用k次多项式拟合向量数据(x, y),返回 多项式的降幂系数
ex.(分析题目) .(分析题目) .(分析题目 下面是六十年代世界人口的增长数据(单位: 下面是六十年代世界人口的增长数据(单位:亿): 年份1960 1961 1962 1963 1964 1965 1966 1967 1968 年份 人口29.72 30.61 31.51 32.13 32.34 32.85 33.56 34.20 34.83 人口 (1)请你仔细分析数据,绘出数据散布图并选择合 )请你仔细分析数据,
4.4 建模实验:最佳订货量 建模实验:
• 每次订货需要收取一定量的生产准备费。 • 没用完的配件,要在仓库里储存一段时间,为 此要付出储存费。 • 若订货量很小,则需频繁定货,造成生产准备 费的增加; • 反之,若订货量很大,定货周期延长而使生产 准备费减少但会造成储存费的增加。 • 如何确定合适的订货量?
MATLAB数学实验 MATLAB数学实验
第四章 函数和方程
第四章 函数和方程
预备知识:零点、 4.1 预备知识:零点、极值和最小二乘法 4.2 函数零点、极值和最小二乘拟合的 函数零点、 MATLAB指令 MATLAB指令 4.3 计算实验:迭代法 计算实验: 4.4 建模实验:购房贷款的利率和最佳订货 建模实验: 量
f ( xk ) = xk − f ' ( xk )
例6 求方程 x 2 - 3 x + e x = 2 的正根 (要求精度ε = 10 -6) 解 令f (x) = x 2 - 3 x + e x - 2, f(0)=-1, 当x > 2, f (x) > 0, f ’(x) > 0 即f (x)单调上升,所以根在[0,2]内。 先用图解法找初值, 再用牛顿法程序newton.m求解。
例8 .下面是《新民晚报》2000年3月30日 上的一则房产广告:
建筑面积 总价 30%首付 70%按揭 月还款
2
85.98 m 36 万 10.8 万
30 年
1436 元
不难算出,你向银行总共借了25.2万, 30年内共要还51.696万, 这个案例中贷款年利率是多少呢?
解 设xk为第k个月的欠款数, a为月还款数, r为月利率。 xk+1 = (1+r) xk- a 那么 xk = (1+r) xk-1- a = (1+r)2 xk-2 – (1+r)a – a =…… = (1+r)k x0 – a[1+(1+r)+……+(1+r)k-1] = (1+r)k x0 – a[(1+r)k-1]/r 根据 a=0.1436, x0=25.2, x360=0 得到 25.2(1+r)360 – 0.1436[(1+r)360-1]/r=0 很难用roots求解!
( yi − f (c, xi ))2 ∑
i =0
n
• 当f关于 是线性函数 问题转化为一个线性方程组求解, 关于c是线性函数 问题转化为一个线性方程组求解, 关于 是线性函数,问题转化为一个线性方程组求解 且其解存在唯一。 且其解存在唯一。 如果f关于 是非线性函数, 关于c是非线性函数 • 如果 关于 是非线性函数,问题转化为函数极值问题
常识上,r应比当时活期存款月利率略高一 些。我们用活期存款月利率0.0198/12 作为 迭代初值,用fzero求解 >>clear; fun=inline('25.2*(1+r)^360-((1+r)^360-… 1)/r*0.1436' ,'r') >>r=fzero(fun,0.0198/12); >>R=12*r 得年利率为5.53%. (你知道最新利率吗?)
x→x(1) → y →x(2)
4.2 函数极值MATLAB指令 函数极值MATLAB指令
min(y) max(y) 返回向量y的最小值 返回向量y的最大值
[x,f]=fminbnd(fun,a,b) x返回一元函数y=f(x)在[a,b]内的 局部极小值点,f返回局部极小值 fun为函数句柄或inline。 [x,f]=fminsearch(fun,x0) x返回多元函数y=f(x)在初始值x0 附近的局部极小值点,f返回局部极小值. x, x0均为向量。
4.1 预备知识:零点 预备知识:
• • • • 非线性方程 f (x) = 0 若对于数α有f (α) = 0, 则称α为方程的解或根,也 称为函数f (x)的零点 若f (α) = 0, f ’(α)≠0 则α称为单根。 若有k >1, f (α) = f ’(α) = …= f (k-1)(α) = 0,但f (k)(α)≠0 , 称为k重根 非线性方程求解通常用数值方法求近似解,常见 的有二分法、牛顿法等 非线性方程(组)f (x) = 0, x=(x1, x2, …, xn), f=(f1, f2, …, fm)
c= lsqnonlin (Fun,c0) 使用迭代法搜索最 优参数c. 其中Fun是以参数c(可以是向量) 为自变量的函数,表示误差向量 y-f(c,x)(x, y为数据), c0为参数c的近似值,作为迭代初值
c=lsqcurvefit(Fun2,c0, x, y) 从外部输入数据, 这里Fun2为两变量c和x的函数 f(c, x)
4.2 函数零点MATLAB指令 函数零点MATLAB指令
x=fzero(Fun, x0) 返回一元函数Fun的一 个零点,其中Fun为函数句柄、 内嵌函数或字符串表达方式。 x0为标量时, 返回函数在x0附近的零点; x0为向量[a, b]时, 返回在[a,b]中的零点
[x,f,h]=fsolve(Fun, x0)
x返回一元或
多元函数Fun在x0附近的一个零点, 其中x0为迭代初值; f返回Fun在x的函数值, 应该接近0; h返回值如果大于0, 说明计算结果可靠, 否则计算结果不可靠。
例3 求函数y=xsin(x2-x-1)在(-2, -0.1)内的 零点 >> fun=inline('x*sin(x^2-x-1)','x') >> fzero(fun,[-2 -0.1]) 例4 求方程组在原点附近的解 1 x 4x − y + 10 e = 1 −x + 4y + 1 x2 = 0 8
4.1 预备知识:极值 预备知识:
设x为标量或向量,y=f(x)是x∈D上的标量值函数。 如果对于包含x=a的某个邻域∆ ,有 f(a)≤f(x) (f(a)≥f(x))对任意x∈∆成立, 则称a为f(x)的一个局 部极小(大)值点。
如果对任意x∈D,有f(a)≤f(x)(f(a)≥f(x))成立, 则称a为f(x)在区域D上的一个全局极小(大)值点。
2.线性化拟合 . • 线性最小二乘拟合可直接用求解超定线 性方程组的方法,计算速度快且唯一。 • 非线性最小二乘拟合的缺点是求解结果 依赖于初值的选取,可能会陷于局部极小 值而难以求得真解。 • 常常将有些非线性函数拟合问题转化为 线性问题求解。 例7 .用函数y=aebx 拟合例2的数据
4.4 建模实验:购房贷款的利率 建模实验:
相关文档
最新文档