matlab数学实验

上传人:第*** 文档编号:50951780 上传时间:2018-08-11 格式:PPT 页数:38 大小:308.50KB
返回 下载 相关 举报
matlab数学实验_第1页
第1页 / 共38页
matlab数学实验_第2页
第2页 / 共38页
matlab数学实验_第3页
第3页 / 共38页
matlab数学实验_第4页
第4页 / 共38页
matlab数学实验_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《matlab数学实验》由会员分享,可在线阅读,更多相关《matlab数学实验(38页珍藏版)》请在金锄头文库上搜索。

1、MATLAB数学实验第四章 函数和方程第四章 函数和方程4.1 预备知识:零点、极值和最小二乘法 4.2 函数零点、极值和最小二乘拟合的 MATLAB指令 4.3 计算实验:迭代法 4.4 建模实验:购房贷款的利率4.1 预备知识:零点q非线性方程 f (x) = 0 若对于数有f () = 0, 则称为方程的解或根,也 称为函数f (x)的零点 若f () = 0, f ()0 则称为单根。 若有k 1, f () = f () = = f (k-1)() = 0,但 f (k)()0 , 称为k重根 非线性方程求解通常用数值方法求近似解 q非线性方程(组) f (x) = 0, x=(x1

2、, x2, , xn), f=(f1, f2, , fm) 4.1 预备知识:极值如果对于包含x=a的某个邻域 ,有 f(a)f(x) (f(a)f(x)对任意x成立, 则称a为f(x)的一个局 部极小(大)值点。如果对任意xD,有f(a)f(x)(f(a)f(x))成立, 则称a为f(x)在区域D上的一个全局极小(大)值点。设x为标量或向量,y=f(x)是xD上的标量值函数。4.1 预备知识:极值4.1 预备知识:最小二乘拟合 假设已知经验公式y=f(c,x)(c为参数, x为自变量), 要求 根据一批有误差的数据(xi,yi), i=0,1,n, 确定参数c.这样的问题称为数据拟合。 最小

3、二乘法就是求c使得均方误差最小化Q(c)= 当f关于c是线性函数,问题转化为一个线性方程组求解。 如果f关于c是非线性函数,问题转化为函数极值问题4.2 函数零点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),返回 多项式的降幂系数MATLAB中一个多项式用系数降幂排 列向量来表示

4、。例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 M文件eg4_2.m例1.求多项式x3 + 2 x2 - 5的根 p=1 2 0 -5; x=roots(p) , polyval(p,x) Fun=inline(funstr,var) 定义一个Inline函数,其中funstr是函数的表达式, var是变量名Fun=Mfun 定义一个函数句柄,这里 Mfun是函数的M文件表达方式Fun=(var)funstr 定义匿名函数,其中var 是变量名, funstr是函数的表达式 4.2 非线性函数

5、的MATLAB表达x=fzero(Fun, x0) 返回一元函数Fun的一个零点,其中Fun为函数句柄、inline函数或匿名函数。x0为标量时,返回函数在x0附近的零点;x0为向量a, b时, 返回在a,b中的零点 4.2 函数零点MATLAB指令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(x2-x-1),

6、x) fzero(fun,-2 -0.1) fzero(fun,-2,-1.2), fzero(fun,-1.2,-0.1) fzero(fun,-1.6), fzero(fun,-0.6) x,f,h=fsolve(fun,-1.6) x,f,h=fsolve(fun,-0.6) 例4 求方程组在原点附近的解xx(1)y x(2)function f=eg4_4fun(x) f(1)=4*x(1)-x(2)+exp(x(1)/10-1; f(2)=-x(1)+4*x(2)+x(1)2/8; x,f,h=fsolve(eg4_4fun,0 0) min(y) 返回向量y的最小值 max(y)

7、返回向量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.2 函数极值MATLAB指令例 5 .求二元函数f(x,y)= 5-x4-y4+4xy在 原点附近的极大值。 解:max fmin(-f)x x(1), y x(2) fun=inline(x(1)4+x(2)4-4*x(1)*x(2)- 5); x,g=fminsearch

8、(fun,0,0)注:注:在使用在使用fsolvefsolve, , fminsearchfminsearch等指令时,等指令时, 多变量必须合写成一个向量变量,如用多变量必须合写成一个向量变量,如用 x(1), x(2),x(1), x(2),。 4.2 最小二乘拟合MATLAB指令 假设已知经验公式y=f(c,x)(c为参数, x为自变量), 要求 根据一批有误差的数据(xi,yi), i=0,1,n, 确定参数c.这样的问题称为数据拟合。 最小二乘法就是求c使得均方误差最小化Q(c)= 当f关于c是线性函数,问题转化为一个线性方程组求解,且其解存在唯一。 如果f关于c是非线性函数,问题转

9、化为函数极值问题c= lsqnonlin (Fun,c0) 使用迭代法搜索最优参数c. 其中Fun是以参数c(可以是向量 )为自变量的函数,表示误差向量y-f(c,x)(x, y为数据),c0为参数c的近似初值(与c同维向量)c=lsqcurvefit(Fun2,c0, x, y) 从外部输入数据,这里Fun2为两变量c和x的函数 f(c, x) 用lsqnonlin解例4.2n先写M函数fitf.mfunction e=fitf(c)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;e=y-(c(1)*x.2+c(2)*x+c

10、(3);n 然后执行 c=lsqnonlin(fitf,0,0,0) %这里0,0,0为c的预估值,作为迭代初值。用lsqcurvefit解例4.2fun2 = inline(c(1)*x.2+c(2)*x+c(3),c,x) 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; c=lsqcurvefit(fun2,0,0,0,x,y) 计算结果 c =1.7427 -1.6958 1.0850n注意lsqnonlin与lsqcurvefit用法上的区别迭代法是从解的初始近似值x0(简称初值)开 始,利用某种迭代格式

11、x k+1 = g (x k ), 求得一近似值序列x1, x2, , xk, xk+1, 逐步逼近于所求的解(称为不动点)。最常用的迭代法是牛顿迭代法,其迭代格式 为1 迭代法4.3 计算实验:迭代法牛顿法程序newton.mfunction x=newton(fname,dfname,x0,e) if narginex0=x;x=x0-feval(fname,x0)/feval(dfname,x0); end例6 求方程 x 2 - 3 x + e x = 2 的正根 (要求精度 = 10 -6)解 令f (x) = x 2 - 3 x + e x - 2, f(0)=-1, 当x 2,

12、f (x) 0, f (x) 0即f (x)单调上升,所以根在0,2内。先用图解法找初值, 再用牛顿法程序newton.m求解。M文件eg4_62线性化拟合例7 .用函数y=aebx 拟合例2的数据方法一:非线性拟合,记a=c(1), b=c(2) fun = inline(c(1)*exp(c(2)*x),c,x); x=;y=; c=lsqcurvefit(fun,0,0,x,y)方法二:线性化拟合,两边取对数得 z=lny=lna+bx 转化为线性拟合。 M文件eg4_7不难算出,你向银行总共借了25.2万, 30年内共要还51.696万, 这个案例中贷款年利率是多少呢?例8 .下面是新

13、民晚报2000年3月30日 上的一则房产广告:4.4 建模实验:购房贷款的利率解 设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 a1+(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求解!常识上,r应比当时活期存款月利率略高一 些。我们用活期存款月利率0.019

14、8/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%. (你知道最新利率吗?)月还款计算公式 n月还款nx0-借款额;nN-剩余月数;nr-月利率=年利率/12 每次订货需要收取一定量的生产准备费。 没用完的配件,要在仓库里储存一段时间,为 此要付出储存费。 若订货量很小,则需频繁定货,造成生产准备 费的增加; 反之,若订货量很大,定货周期延长而使生产 准备费减少但会造成储存费的增加。 如何确定合适的订货量?

15、4.4 建模实验:最佳订货量解 先作一些必要的假设将问题简化 1)汽车工厂对配件的日需求量是恒定的,每日为r件; 2)所订配件按时一次性交货,生产准备费每次k1元; 3)储存费按当日实际储存量计算,储存费每日每件k2元; 4)你的工厂不允许缺货。 设一次订货x件,则订货周期为 T= x/r, 第t天的储存量为 q(t)= x-r t, 01, 不动点0不再稳定; 当13,出现两个周期2解,且3a 迭代序列几乎杂乱无章,即所谓混沌。 *混沌的特征 (i)初值敏感性: 两个任意近的点出发的两条轨迹迟早会分得很开; (ii)遍历性: 任意点出发的轨迹总会进入0,1内任意小的开区间。例9(蛛网图)我们用蛛网图来显示混沌的遍历性。yk = a x k (1 - x k), xk+1 = yk蛛网图正好显示迭代计算 x0, y0, x1, y1,的一系列变化过程。eg4_9.m蛛网图习题nex1, ex

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号