资源描述:
《《非线性方程解法》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、新疆大学-8-数学与系统科学院第七章非线性方程解法2.Newton-下山法.每次迭代在改变量前加一因子以保证收敛:xn+1=xn-λnf(xn)/f′(xn)这儿λn在0,1间,可用各种方法搜索,例如用分半法取1,1/2,1/4,…试探,使下山条件∣f(xn+1)∣<∣f(xn)∣成立为止。牛顿下山实验⑷上机题目:牛顿下山法上机实验实验目的:编制求单变量非线性方程组的程序.实验要求:①上机前充分准备,复习有关内容,写出计算步骤,查对程序;②完成实验后写出完整的实验报告,内容应该包括:所用的算法语言,算法步骤陈述,变量说明,程序清单,输出计算结果,结果分析等等;③用编好的程序在Matlab环境
2、中执行。利用Newton下山法来解方程;计算步骤:①准备选定初始近似值x,计算f=f(x),。②迭代按公式x迭代一次,得新的近似值x,计算.最初=1,之后奖减半进行试算直到下山条件∣f(xn+1)∣<∣f(xn)∣成立。③控制如果满足∣f(xn+1)∣<∣f(xn)∣则终止迭代,;否则转步骤4;④修改如果迭代次数达到预先指定的次数N,或者=0,则方程失败;否则以(x,)代替()转步骤2继续迭代。算法例题:用牛顿下山方法解方程x-x-1=0,取迭代初值x=1.5,d=10.Newton下山法的Matlab程序:functionx=newton_xiashanfa(f,x0,d,max)y=di
3、ff(f);%取导数y=inline(y);%定义yf=inline(f);%定义fx(1)=x0;l=1;disp('klx');%以指定格式输出'k','x'.新疆大学-8-数学与系统科学院fork=1:maxx(k+1)=x(k)-l*f(x(k))/y(x(k));%计算公式ifabs(f(x(k+1)))abs(f(x(k)))l=l/2;endw=k;endfork=1:wdisp(sprintf('%d%f%10f',k,l,x(k)))%
4、输出算结果endx=x(k+1);运行结果:x=newton_xiashanfa('x^3-x-1',1.5,10^(-6),3)max=3kxf(x(K+1))f(x(k))31.3252130.6627080.463111x=1.50001.34781.32521.3247Newton下山法的流程图::流程图解释:1)输入;2)把1赋给;3)把赋给新疆大学-8-数学与系统科学院;4)判断,若那么表明下山成功,停止;若,那么到步骤5);5)判断,若,重迭;否则把腻给,到步骤3);3. 用差商代导数:xn+1=xn-f(xn)(xn-xn-1)/(f(xn)-f(xn-1))它免除
5、了计算导数.⒋Newton法解方程组试以二个未知数的非线性方程组为例介绍.与一维情况一样,在初始近似(x0,y0)用Taylor展开线性化.取线性部分的零点为新的近似,即解方程组求出Δx,Δy,再计算x1=x0+Δx,y1=y0+Δy求出1次近似后,再用同样方法求2次近似,再求3次近似,4次近似,…直到相邻两次近似之差(的范数)在预定许可范围内.下面看个例子;例7 用Newton法解方程组,解:取初始近似(1,1)T 计算结果如下表:nxyJ(系数矩阵)f1f201.00001.00002.00002.0000-2.00002.0000-3.0000-2.000011
6、.25002.25002.50004.5000-0.75002.25001.62500.312521.00002.02782.00004.0556-0.97222.00000.11190.055631.00022.00012.00044.0002-0.99992.00020.0007664-0.000005441.00002.00004.00000.4666×10-7新疆大学-8-数学与系统科学院2.0000-1.00002.00000.1835×10-7一般情况下n个未知数的非线性方程组k次近似x(k)=(x1(k),x2(k),…,xn(k))T用Taylor展开并线性化得线性方程组。令
7、则线性方程组可写成J(k)Δx=-f(k)解出Δx后便可算出x(k+1)=x(k)+Δx;这样得到算法如下:①给出初始近似x(0)=(x1(0),x2(0),…,xn(0))T对k=0,1,…②计算J(k),f(k)③解J(k)Δx=-f(k)求Δx④计算新近似x(k+1)=x(k)+Δx直到║Δx║≤ε注:非线性方程组的Newton法与非线性方程的Newton法形式上可以一致;x(k+1)=x(k)-(f′