《函数零点.ppt》由会员分享,可在线阅读,更多相关《函数零点.ppt(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、建模实验:购房贷款的利率和最佳订货量不难算出,你向银行总共借了25.2万,30年内共要还51.696万,这个案例中贷款年利率是多少呢?新民晚报2000年3月30日上的一则房产广告:设xk为第k个月的欠款数,a为月还款数,r为月利率模型假设xk=(1+r)xk-1-a=(1+r)2xk-2(1+r)aa=(1+r)kx0 a1+(1+r)+(1+r)k-1=(1+r)kx0 a(1+r)k-1/r那么模型建立xk=(1+r)xk-1-a则有基本原理:还款总额=本金+利息 本月的欠款额与前一月的欠款额、利息、还款额有关 年利率=月利率12根据a=0.1436,x0=25.2,x360=0得到25.
2、2(1+r)360 0.1436(1+r)360-1/r=0模型求解常识上,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%一、一、预备知识:零点、极值和最小二乘法一元非线性方程的一般形式为f(x)=0若对于数有f()=0,则称为方程的解或根,也称为函数f(x)的零点若f()=0,f()0则称为单根单根。若有k1,f()=f()=f(k-1)()=0但f(k
3、)()0,称为k重根重根非线性方程(组)求解通常用数值方法数值方法 零点求近似解,常见的有二分法、牛顿法二分法、牛顿法等如果对于包含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上的一个全局极小全局极小(大大)值点值点。极值最小二乘法 假设已知经验公式y=f(c,x)(c和x均可为向量),要求根据一批有误差的数据(xi,yi),i=0,1,n,确定参数c.这样的问题称为数据拟合。最小二乘法就是求c使得均方误差 Q(c)=达到最小当f关
4、于c是线性函数,问题转化为一个线性方程组求解,且其解存在唯一。如果f关于c是非线性函数,问题转化为一个函数极值问题1多项式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命令MATLAB中一个多项式用系数降幂排列向量来表示例2.用2次多项式拟合
5、下列数据.x0.10.20.150-0.20.3y0.950.840.861.061.500.72例1.求多项式x3+2x2-5的根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;p=polyfit(x,y,2)p=1.7432 -1.6959 1.0850roots(12-5)2.定义非线性函数定义非线性函数fun=inline(funstr,var)定义一个Inline函数,其中funstr是函数的表达式,var是变量名例、例、f=inline(x.2-3);%建立一元函数,默认建立一元函数,默认x为自变量为自变量;u=in
6、line(x.y-3,x,y);%建立二元函数,建立二元函数,x为第一自变量,为第一自变量,y为第二自变量为第二自变量;fun=Mfun定义一个函数句柄,这里Mfun是函数的M文件表达方式functions=f(m)s=0;forn=1:ms=s+1/n/n;end例保存为函数文件a1018.ms=a1018;feval(s,1000)x0为向量a,b时,返回在a,b中的零点3.函数零点x=fzero(Fun,x0)返回一元函数Fun的一个零点,其中Fun为函数句柄、内嵌函数或字符串表达方式。x0为标量时,返回函数在x0附近的零点;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)内的零点解(解法一)首先定义函数:f=inline(x*sin(x2-x-1),x)f=Inlinefunction:f(x)=x*sin(x2-x-1)fzero(f,-2,-0.1)?Errorusing=fzeroThefunctionvaluesattheintervalendpointsmustdifferinsign.注:出现问题