资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,非线性方程(fngchng)求根,第一页,共28页。,MATLAB命令(mng lng),例1:解方程,解:在MATLAB里输入命令(mng lng):,X=solve(8*x9+17*x3-3*x=-1),可解出9个解。,例2:解方程,解:X=solve(sin(x)=0),很可惜运行后只输出一个,根x=0.,缺点:用solve命令(mng lng)不能求出周期函数所对应的全,部根。,第二页,共28页。,例3:解非线性方程组,解:在MATLAB命令窗口输入命令:,E1=sym(xx-4=0);E2=sym(2*x*y+x=1);,x,y=solve(E1,E2),x1=double(x),y1=double(y),出来(ch li)的结果为:,x=,log(4)/lambertw(log(4),y=,-1/2*(log(4)-lambertw(log(4)/log(4),第三页,共28页。,x1=,2,y1=,注:MATLAB系统只能做数值运算,并没有符,号运算功能(gngnng),符号运算工具箱(symbolic math,toolbox)则扩充了MATLAB这方面的功能(gngnng),它是,由Maple的核心来完成。,第四页,共28页。,例4:解方程,解:将方程化为 ,在matlab窗口,输入命令,fa=8,0,0,0,0,0,17,0,-3,1;,xk=roots(fa),运行后得所有根。,缺点(qudin):命令roots只能求 为多项式时方程,的根。,第五页,共28页。,一、图解法,求方程 的正根,,设,分别画出,的图形,两条曲线,的交点即为原方程,的根,从图中观,察,根大约为0.38。,第六页,共28页。,二、二分法,对于求解给定区间的根,二分法是一种既简单(jindn)又稳健的方法,可以与图解法结合使用。,第七页,共28页。,最终解,经过 n 步迭代(di di)后,,区间长度变为:,即为可能(knng)的最大误差,第八页,共28页。,当给定容许误差 时,所需最小迭代步数为:,用于二分法计算(j sun)的函数bisec_n.,function bisec_n(f_name,a,c),tolerance=0.000001;it_limit=30;,fprintf(It.a b c f(a);,fprintf(f(b)f(c)n);,it=0;,Ya=feval(f_name,a);Yc=feval(f_name,c);,if(Ya*Yc 0),fprintf(nn Stopped because f(a)f(c)0 n);,第九页,共28页。,else,while 1,it=it+1;,b=(a+c)/2;Yb=feval(f_name,b);,fprintf(%3.0f%10.6f,%10.6f,it,a,b);,fprintf(%10.6f,%10.6f,%10.6f,%10.6fn,c,Ya,Yb,Yc);,if(abs(c-a)it_limit),fprintf(Iteration limit exceeded.n);break,end,if(Ya*Yb 1)&(xdpiancha0.5)&(k3),disp(请用户注意:此迭代(di di)序列发散,请重新输入新,的迭代(di di)公式),return;,end,第二十页,共28页。,if(piancha3),disp(祝贺你!此迭代序列收敛,且收敛速度较快),return;,end,p=(i-1)piancha xdpiancha xk,例:求方程 的在区间 根。,function y1=fun(x),y1=(10-x2)/2;,在窗口(chungku)输入,第二十一页,共28页。,k,piancha,xdpiancha,xk=diedai(2,5),结果为:,请用户注意:此迭代序列发散,请重新输入新的迭代公式,若重新建立M文件:,function y1=fun(x),y1=x-(x2+2*x-10)/(2*x+2),在窗口输入:,k,piancha,xdpiancha,xk=diedai(2,5),运行结果为:,祝贺你!此迭代序列收敛(shulin),且收敛(shulin)速度较快,第二十二页,共28页。,四、Newton迭代法,设求解方程 的一个根,关于初值,的一阶Taylor展开为:,将其看做 的近似,并令为0,得到近似解:,重复操作(cozu),一般地:,第二十三页,共28页。,几何(j h)解释:,第二十四页,共28页。,计算给定函数(hnsh)的一阶导数可能会很繁,可用差分,近似代替,如:,或,其中(qzhng)h 取得很小,上两式分别为向前和向后差分近似。差分近似,中的误差很小,对于牛顿(ni dn)迭代法的收敛性没有很明,显的影响,然而当根的附近有奇点时使用差分近似,要小心。,第二十五页,共28页。,例4 推导立方根的牛顿迭代公式,并求 的立方根。,解:问题等价于求,的零点。,Newton迭代法:,令 ,迭代3次达到精确解。,n,x,0 5,第二十六页,共28页。,Newton迭代公式(gngsh)可由函数Newt_n实现。,function x=Newt_n(f_name,x0),x=x0;xb=x-999;n=0;del_x=0.01;,n=n+1;xb=x;,if n300 break;end,y=feval(f_name,x);,y_driv=(feval(f_name,x+del_x)-y)/del_x;,x=xb-y/y_driv;,fprintf(n=%3.0f,x=%12.5e,y=%12.5e,n,x,y),fprintf(yd=%12.5e n,y_driv),end,fprintf(n Final answer=%12.6en,x);,第二十七页,共28页。,谢谢(xi xie)观看,第二十八页,共28页。,
展开阅读全文