《第二章非线性方程组精选文档.ppt》由会员分享,可在线阅读,更多相关《第二章非线性方程组精选文档.ppt(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章非线性方程组本讲稿第一页,共六十页2.1 引言引言一、人口增长模型一、人口增长模型设人口数量随着时间以固定的相对增长率变化设人口数量随着时间以固定的相对增长率变化.令令N(t)为为t 时刻的人口数量时刻的人口数量.:人口出生率人口出生率.1 1)人口数量的微分方程模型人口数量的微分方程模型:2)2)指数模型指数模型:N0 0:初始初始时时刻人口数量刻人口数量.如果允许移民移入且移入速率如果允许移民移入且移入速率v为固定常数,则为固定常数,则3)3)有移民移入的指数模型有移民移入的指数模型:非线性方程非线性方程(组组)本讲稿第二页,共六十页假设假设某地区开始有某地区开始有100000010
2、00000人人,在第一年有在第一年有435000435000人移民进入该地区人移民进入该地区,假设假设在第一年底该地区的人数在第一年底该地区的人数量是量是154000154000。得该地区人口得该地区人口的出生率。的出生率。通过求解方程通过求解方程【注注】非线性方程非线性方程可以求出数值解可以求出数值解。非线性方程非线性方程(组组)本讲稿第三页,共六十页上述这些问题,都归结为上述这些问题,都归结为求非线性函数方程的零点求非线性函数方程的零点,即求,即求x*,使使非线性方程非线性方程:对于多项式,对于多项式,5 5次及次及5 5次以上的方程无求根公式次以上的方程无求根公式。超越方程求根也如此。超
3、越方程求根也如此。多项式方程及超越方程通常用数值方法求近似解。多项式方程及超越方程通常用数值方法求近似解。非线性方程组非线性方程组:非线性现象广泛存在于物质世界与社会生活中非线性现象广泛存在于物质世界与社会生活中。二、数值求解方程(组)的必要性二、数值求解方程(组)的必要性非线性方程非线性方程(组组)本讲稿第四页,共六十页若若f(x)=0)=0为实系数的代数方程,为实系数的代数方程,则则复数根成对出现,复数根成对出现,设设f(x)=0)=0为具有复系数的为具有复系数的n次代数方程,次代数方程,则则f(x)=0)=0于复数域上恰有于复数域上恰有 n 个根个根(r重根计算重根计算r个个)。也是也是
4、f(x)=0)=0的根。的根。即当即当 是是 f(x)=0)=0 的复根,的复根,则则 (2 2)则则f(x)在在 a,b 内有根,内有根,称称 a,b 为为有根区有根区间间。若若f(x)在在 a,b 上上严严格格单调单调,则则 a,b 内有且内有且仅仅有一根有一根x*.(1)根的分离根的分离(2)近似根的精确化近似根的精确化 本章问题本章问题:【定理定理1 1】(代数基本定理代数基本定理)【定理定理2 2】如果如果(1 1)f(x)在区间在区间a,ba,b上连续上连续三、方程求根的理论依据三、方程求根的理论依据非线性方程非线性方程(组组)本讲稿第五页,共六十页例例1 1求方程的有根区求方程的
5、有根区间间 f(x)为单调为单调增函数增函数.内最内最多只有一个实根。多只有一个实根。例例2 2 的有根区的有根区间间。求方程求方程 解解 根据有根区根据有根区间间定定义义,对对f(x)=0的根进行搜索计算,的根进行搜索计算,x0 1 2 3 4 5 60 1 2 3 4 5 6 f(x)的符号的符号-+-+-+-+解解 因为因为f(x)在在内内连续连续,而且而且则则f(x)在在又因为又因为f(0)0,所以所以0,2是是所求区所求区间间.。非线性方程非线性方程(组组)本讲稿第六页,共六十页解解 因因为为f(x)在在 内内连续连续,要判要判别别方程有方程有3 3个个实实根根,即即要判别要判别f(
6、x)与与x轴轴有有3 3个交点个交点,只只须须判判别别有有3 3个个有根区间有根区间,且且每个区间内只有一个根每个区间内只有一个根.MATLAB画图确定有根区间画图确定有根区间。x=-1:0.01:4;y=exp(x)-3*x.2;判别函数的有根区间判别函数的有根区间 plot(x,y,r,x,0*x),grid on由函数图由函数图2-22-2可判别,可判别,3 3个有根个有根区间分别为:区间分别为:-1,0-1,0,0.5,10.5,1,3.5,4.3.5,4.非线性方程非线性方程(组组)例例3 判别方程判别方程 f(x)=ex-3x2=0 有有3 3个个实实根。根。本讲稿第七页,共六十页
7、2.2二分法二分法设设函数函数在在上上连续连续、严严格格单调单调,且且,则则内有且内有且仅仅有一根有一根。反复对分,从而逐步缩小有根区间,直至反复对分,从而逐步缩小有根区间,直至满足精度为止。满足精度为止。二分法几何示意图二分法几何示意图 若若则则为为所求根;所求根;否否则则(1)(1)若若,则则令令(2)(2)若若,则则令令 形成新的有根区形成新的有根区间间 长长度度仅为仅为 的一半的一半.理论依据理论依据:基本思想基本思想:二分法步骤二分法步骤:非线性方程非线性方程(组组)本讲稿第八页,共六十页0 0这是因为这是因为例例4 4 求求在区在区间间内的根,内的根,解解 1 1)确定有根区间:确
8、定有根区间:方程在(方程在(2,3)内有唯一根内有唯一根.2 2)确定二分次数:确定二分次数:3 3)二分计算二分计算:二分法终止条件二分法终止条件反复二分下去,得到一系列有根区间:反复二分下去,得到一系列有根区间:非线性方程非线性方程(组组)本讲稿第九页,共六十页k0(2,3)(2,3)2.52.55.6255.6251 12 23 34 45 56 6(2,2.5)(2,2.5)(2,2.25)(2,2.25)(2,2.125)(2,2.125)(2.0625,2.125)(2.0625,2.125)(2.09375,2.125)(2.09375,2.125)(2.09375,2.1093
9、75)(2.09375,2.109375)2.252.252.1252.1252.06252.06252.093752.093752.1093752.1093752.10156252.10156251.8906251.8906250.3457030.345703-0.351318-0.351318-0.008942-0.0089420.1668360.1668360.07856220.07856227 7(2.09375,2.1015625)(2.09375,2.1015625)2.0976562.097656 算法直观、简单算法直观、简单.一定收敛一定收敛.收敛速度较慢收敛速度较慢.二分法优
10、点二分法优点二分法缺点二分法缺点二分计算结果二分计算结果非线性方程非线性方程(组组)本讲稿第十页,共六十页%求解非线性方程的二分法,其中,求解非线性方程的二分法,其中,function xstar,index,it=bisect(fun,a,b,ep)%fun%fun为需要求根的函数;为需要求根的函数;%a,b%a,b为初始区间的端点;为初始区间的端点;%ep%ep为精度,缺省值为为精度,缺省值为1e-51e-5,%当(当(b-ab-a)/2ep/2ep时,算法终止;时,算法终止;%xstar%xstar为当迭代成功时,输出方程的根,为当迭代成功时,输出方程的根,%当迭代失败时,输出两端点的函
11、数值当迭代失败时,输出两端点的函数值;%index%index为指标变量,为指标变量,%index=1%index=1时,表明迭代成功,时,表明迭代成功,%index=0%index=0时,表明初始区间不是有根区间;时,表明初始区间不是有根区间;%it%it为迭代次数为迭代次数.if nargin0二分法的二分法的MATLABMATLAB程序:程序:bisect.mbisect.m非线性方程非线性方程(组组)本讲稿第十一页,共六十页 xstar=fa,fb;index=0;it=0;returnendk=0;while abs(b-a)/2=ep x=(a+b)/2;fx=feval(fun,
12、x);if fx*fa0 b=x;fb=fx;else a=x;fa=fx;end k=k+1;xstar=(a+b)/2;index=1;it=kend例例4 4 编写编写 求根函数求根函数 function f=fun1(x)调用调用 函数函数bisect.mbisect.m xstar,index,it=bisect(fun1,2,3,0.005)xstar=2.0977index=1 it=7f=x3-2*x-5;非线性方程非线性方程(组组)本讲稿第十二页,共六十页2.3 2.3 迭代法及其收敛性迭代法及其收敛性逐次逼近方法逐次逼近方法(1)等价方程等价方程:(2)迭代公式:迭代公式:
13、(3)取取,得序列得序列(4)当当时时,称,称为为迭代收迭代收敛敛 取取称称为为函数函数的不的不动动点,点,为为迭代函数迭代函数,求得方程不动点的方法,称为求得方程不动点的方法,称为不动点迭代法不动点迭代法。2.3.1 2.3.1 不动点迭代不动点迭代一、迭代过程及迭代法基本思想一、迭代过程及迭代法基本思想步骤步骤非线性方程非线性方程(组组)本讲稿第十三页,共六十页例例5 5 考察考察1 1)2 2)3 3)取取数值计算结果数值计算结果。二、迭代过程几何解释二、迭代过程几何解释三、构造迭代函数三、构造迭代函数非线性方程非线性方程(组组)本讲稿第十四页,共六十页 (情形情形1 1)(情形情形2
14、2)(情形情形3 3)0 01 12 23 32.02.03.03.09.09.087.087.02.02.01.51.52.02.01.51.52.02.01.751.751.7321431.7321431.7320511.732051的迭代例子的迭代例子(1 1)收敛性及误差估计收敛性及误差估计(2)收敛速度收敛速度迭代公式迭代公式 问题问题2.3.2 2.3.2 迭代法的收敛性迭代法的收敛性非线性方程非线性方程(组组)本讲稿第十五页,共六十页由于由于只要只要则则 保保证证迭代迭代值值全落在全落在内内 满足条件:满足条件:(1)映内性映内性:(2 2)压缩性压缩性:(压缩压缩因子因子L0)
15、解:解:取取 使收速度快使收速度快 迭代公式迭代公式 初初值值x0=2【注注】尽量小尽量小,可使迭代计算加速收敛可使迭代计算加速收敛。非线性方程非线性方程(组组)本讲稿第二十一页,共六十页p阶阶收收敛敛 (收敛阶)(收敛阶)如果在如果在根根的邻近连续,并且的邻近连续,并且,则该迭代过程在根邻近是则该迭代过程在根邻近是 p阶收敛阶收敛.证明证明 则迭代过程则迭代过程具有具有局部收敛性局部收敛性.作泰勒展开作泰勒展开【定义定义1 1】线性收敛线性收敛 p=1 超线性收敛超线性收敛 p1 平方收敛平方收敛 p=2【注注】(1 1)0L1,0L1,线性收敛线性收敛 (2 2)L=0,L=0,超线性收敛
16、超线性收敛 (3 3)P P 越大,迭代过程收敛越快越大,迭代过程收敛越快.【定理定理5 5】非线性方程非线性方程(组组)本讲稿第二十二页,共六十页P 阶收敛阶收敛.方程方程 x2-3=0 取取 P=2取取 线性收敛线性收敛 不动点迭代法的不动点迭代法的MATLABMATLAB程序程序:iterate.miterate.mfunction xstar,index,itfunction xstar,index,it=iterate(phi,x,ep,it_max)=iterate(phi,x,ep,it_max)%求解非线性方程的一般迭代法,其中求解非线性方程的一般迭代法,其中%phi(x)%p
17、hi(x)为迭代函数,为迭代函数,x x为初始点;为初始点;例例非线性方程非线性方程(组组)本讲稿第二十三页,共六十页%ep%ep为精度,缺省值为为精度,缺省值为1e-5,1e-5,%当当x(k)-x(k-1)x(k)-x(k-1)ep=it_max,=it_max,失败;失败;%it%it为迭代次数为迭代次数.if nargin4 it_max=100;endif nargin3 ep=1e-5;endindex=0;k=1;while k=it_max x1=x;x=feval(phi,x);if abs(x-x1)=ep index=1;break;end k=k+1;endxstar=
18、x;it=k;非线性方程非线性方程(组组)本讲稿第二十四页,共六十页编写编写例例7 7迭代函数,函数名为迭代函数,函数名为phi.mphi.mfunction f=phi(x)function f=phi(x)f=exp(-x);f=exp(-x);求方程的根:求方程的根:xstar,index,it=iterate(phi,0.5,1e-5)xstar,index,it=iterate(phi,0.5,1e-5)或或xstar,index,it=iterate(phi,0.5,1e-5)xstar,index,it=iterate(phi,0.5,1e-5)得到得到 xstar=0.5671
19、xstar=0.5671,index=1index=1,it=18it=18收敛较慢收敛较慢 xk 收敛快的收敛快的 方程方程2.4 2.4 迭代收敛的加速方法迭代收敛的加速方法2.4.1 2.4.1 埃特金加速埃特金加速非线性方程非线性方程(组组)本讲稿第二十五页,共六十页取取则有则有 则则【注注】的收敛速度的收敛速度 的收敛速度快的收敛速度快.(K=0,1,2,.)第一次校正第一次校正第二次校正第二次校正埃特金加速算法埃特金加速算法2.4.2 2.4.2 斯蒂芬森迭代法斯蒂芬森迭代法非线性方程非线性方程(组组)本讲稿第二十六页,共六十页例例9 9 解方程解方程 解解 发散发散 利用斯蒂芬森
20、迭代利用斯蒂芬森迭代 取取 kXkykzk01.52.3750012.396611.416291.840925.2388821.355651.491402.3172831.328951.347101.4443541.324801.325181.3271451.32472【注注】斯蒂芬森迭代法斯蒂芬森迭代法2 2阶收敛阶收敛 非线性方程非线性方程(组组)本讲稿第二十七页,共六十页例例1010 解解 x*=0.56714392(1)x0=0.5,=0.5,x18=0.5671407=0.5671407(2)斯蒂芬森迭代斯蒂芬森迭代 x18=0.5671407kxkykzk0 00.50.50.60
21、6530660.606530660.545239210.545239211 10.567623880.567623880.566870790.566870790.567297860.567297862 20.567143310.56714331【注注】原迭代法不收敛,用斯蒂芬森迭代法收敛原迭代法不收敛,用斯蒂芬森迭代法收敛.已收敛的迭代法,可达到已收敛的迭代法,可达到2 2阶收敛阶收敛 P 阶收敛阶收敛 可达到可达到 p+1 阶阶非线性方程非线性方程(组组)本讲稿第二十八页,共六十页斯蒂芬森迭代法的斯蒂芬森迭代法的MATLABMATLAB程序程序:steffensen.msteffensen.
22、mfunctionxstar,index,it=steffensen(phi,x,ep,it_max)functionxstar,index,it=steffensen(phi,x,ep,it_max)%steffensen%steffensen加速方法,其中加速方法,其中%phi(x)%phi(x)为迭代函数,为迭代函数,x x为初始点;为初始点;%ep%ep为精度,缺省值为为精度,缺省值为1e-5,1e-5,%当当x(k)-x(k-1)x(k)-x(k-1)ep=it_max,=it_max,失败;失败;%it%it为迭代次数为迭代次数if nargin4 it_max=100;if na
23、rgin4 it_max=100;endend非线性方程非线性方程(组组)本讲稿第二十九页,共六十页if nargin3 ep=1e-5;endif nargin3 ep=1e-5;endindex=0;k=1;index=0;k=1;while k=it_maxwhile k=it_max x1=x;y=feval(phi,x),z=fevalx1=x;y=feval(phi,x),z=feval(phi,y),(phi,y),x=x-(y-x)2/(z-2*y+x)x=x-(y-x)2/(z-2*y+x)if abs(x-x1)=ep if abs(x-x1)=ep index=1;bre
24、ak;index=1;break;end end k=k+1;k=k+1;endendxstar=x;it=k;xstar=x;it=k;非线性方程非线性方程(组组)本讲稿第三十页,共六十页迭代函数迭代函数 function f=phi(x)function f=phi(x)f=exp(-x);f=exp(-x);求方程的根求方程的根xstar,index,it=Steffensen(phi,0.5,1e-xstar,index,it=Steffensen(phi,0.5,1e-5)5)得得 xstar=0.5671,index=1,it=3xstar=0.5671,index=1,it=3对
25、比:利用不动点迭代计算了对比:利用不动点迭代计算了1818次,次,Steffensen Steffensen方法方法 迭代迭代3 3次次 非线性方程逐步线性化非线性方程逐步线性化.形式简单、收敛速度快形式简单、收敛速度快 2.5 2.5 牛顿迭代法牛顿迭代法2.5.1 2.5.1 牛顿迭代法牛顿迭代法切线法切线法特点特点非线性方程非线性方程(组组)本讲稿第三十一页,共六十页方程方程 f(x)=0 0的跟的跟 x*牛顿迭代公式牛顿迭代公式若若f(x)在单根在单根x*附近存在连续的附近存在连续的二阶导数二阶导数,牛顿迭代法的原理牛顿迭代法的原理线性化方法线性化方法牛顿法的收敛性牛顿法的收敛性且且初
26、始值初始值x0充分接近充分接近x*,非线性方程非线性方程(组组)本讲稿第三十二页,共六十页则则牛顿迭代过程收敛,牛顿迭代过程收敛,收敛阶收敛阶p=2由于由于x*是是 f(x)=0 0的单根,的单根,f(x*)=0,0,迭代过程在点迭代过程在点x*邻近邻近2 2阶收敛阶收敛.【定理定理7 7】【注注】牛顿迭代法牛顿迭代法 优点:快速收敛性,算法简单、容易实现优点:快速收敛性,算法简单、容易实现.缺点:缺点:1)1)局部收敛局部收敛,初值初值x0 x0在在x*x*附近附近.2)2)计算量大或计算量大或非线性方程非线性方程(组组)本讲稿第三十三页,共六十页用牛用牛顿顿法解方程法解方程 解解 牛顿迭代
27、公式牛顿迭代公式 取取初值初值x0=0.50.5,迭代计算,迭代计算,得到得到牛顿法的牛顿法的MATLABMATLAB程序程序:Newton.mNewton.mfunction xstar,index,itfunction xstar,index,it=Newton(fun2,x,ep,it_max)=Newton(fun2,x,ep,it_max)%求解非线性方程的牛顿迭代法,其中求解非线性方程的牛顿迭代法,其中%fun2(x)%fun2(x)为需要求根的函数,为需要求根的函数,%fun2%fun2的第一个分量是函数值,的第一个分量是函数值,%fun2%fun2的第二个分量是导数值的第二个分
28、量是导数值在在0.50.5附近的根附近的根例例1111【注注】牛顿法的收敛速度快牛顿法的收敛速度快 非线性方程非线性方程(组组)本讲稿第三十四页,共六十页%x%x为初始点;为初始点;%ep%ep为精度,缺省值为为精度,缺省值为1e-5,1e-5,%当当x(k)-x(k-1)x(k)-x(k-1)ep=it_max,=it_max,失败;失败;%it%it为迭代次数为迭代次数.if nargin4 it_max=100;if nargin4 it_max=100;endendif nargin3 ep=1e-5;endif nargin3 ep=1e-5;endindex=0;k=1;index
29、=0;k=1;while k=it_maxwhile k=it_max x1=x;f=feval(fun2,x);x1=x;f=feval(fun2,x);if abs(f(2)ep break;if abs(f(2)ep break;endend x=x-f(1)/f(2);x=x-f(1)/f(2);if abs(x-x1)=ep if abs(x-x1)=ep index=1;break;index=1;break;end end k=k+1;k=k+1;endendxstar=x;it=k;xstar=x;it=k;非线性方程非线性方程(组组)本讲稿第三十五页,共六十页例例1111迭代
30、函数的函数名为迭代函数的函数名为fun2.mfun2.mfunction f=fun2(x)function f=fun2(x)f=x-exp(-x),1+x;f=x-exp(-x),1+x;调用牛顿法函数调用牛顿法函数Newton.mNewton.m求方程的根求方程的根xstar,index,it=Newton(fun2,0.5,1e-5xstar,index,it=Newton(fun2,0.5,1e-5得到得到xstar=0.5671xstar=0.5671,index=1index=1,it=4it=4局部收敛局部收敛,初值初值x0在在x*x*附近附近.平行弦法迭代公式平行弦法迭代公式
31、,【注注】牛顿迭代牛顿迭代4 4次,不动点迭代次,不动点迭代1818次次.2.5.2 2.5.2 简化牛顿法与牛顿下山法简化牛顿法与牛顿下山法缺点缺点一、一、简化牛顿法简化牛顿法非线性方程非线性方程(组组)本讲稿第三十六页,共六十页解解,取,取yox*x2 x1 x0 x 休正初值休正初值例例1212 牛顿法解牛顿法解 x3-x-1=0 0在在 x=1.51.5附近的一个根附近的一个根.牛顿法公式牛顿法公式1 1)取初值取初值;x0=1.5局部收敛局部收敛几何意义几何意义二、牛顿下山法二、牛顿下山法非线性方程非线性方程(组组)本讲稿第三十七页,共六十页计算得计算得 x1=1.34783,x2=
32、1.32520,x3=1.32472迭代迭代3 3次有次有6 6位有效数字位有效数字.2)2)取取 x0=0.6,0.6,则得则得 x1=17.9 17.9 偏离了根偏离了根 x*=1.324721.32472xk:=1,1/2,1/4,直满足下降条件直满足下降条件例例1212 利用牛顿下法山解利用牛顿下法山解 x3-x-1=0 X0=0.6=0.6 求得求得 x1=17.9=17.9 不满足下降条件不满足下降条件,逐次取半逐次取半下山序列下山序列牛顿下山法迭代公式牛顿下山法迭代公式下山因子下山因子的选择的选择非线性方程非线性方程(组组)本讲稿第三十八页,共六十页显显然然由由x1计算计算x2,
33、x3,时时=1=1,均能使下降条件成立,均能使下降条件成立X2=1.36181,f(x2)=0.1866;X3=1.32628,f(x3)=0.00667;X4=1.32472,f(x4)=0.0000086缺点:缺点:计算量大计算量大牛牛顿顿迭代公式迭代公式用经过两点的割线来代替切线用经过两点的割线来代替切线 2.5.3 2.5.3 割线法割线法割线法原理割线法原理非线性方程非线性方程(组组)本讲稿第三十九页,共六十页几何意义几何意义 割线方程割线方程 y=0的交点记为的交点记为xk+1 割线法的迭代过程局部收敛,收敛速度割线法的迭代过程局部收敛,收敛速度 割线法迭代公式割线法迭代公式收敛性
34、收敛性非线性方程非线性方程(组组)本讲稿第四十页,共六十页例例1313 用割用割线线法求方程法求方程在在1.51.5附近的一个根附近的一个根 解解 割线法迭代公式割线法迭代公式 取初始值取初始值 x0=0.5,x1=1.6【注注】割线法具有超线性收敛速度,收敛阶割线法具有超线性收敛速度,收敛阶 p=p=1.6181.618 非线性方程非线性方程(组组)本讲稿第四十一页,共六十页例例1414 用割用割线线法求方程法求方程在在0.50.5附近的根附近的根 解解 x 0=0.5,x1=0.6,用割线法迭代计算用割线法迭代计算,得到得到则则x*为为m m重根,此时重根,此时 牛顿法线性收敛牛顿法线性收
35、敛:【注注】比较例比较例1111牛顿法割线法的收敛速度也是相当快牛顿法割线法的收敛速度也是相当快2.5.4 2.5.4 求重根的修正牛顿法求重根的修正牛顿法非线性方程非线性方程(组组)本讲稿第四十二页,共六十页选取选取 迭代公式迭代公式 若若 x*是是m m重根,则重根,则二阶收敛迭代二阶收敛迭代一、求重根的修正牛顿法一、求重根的修正牛顿法1 1一、求重根的修正牛顿法一、求重根的修正牛顿法2 2【注注】p p=2;=2;根的重数根的重数m m已知已知.非线性方程非线性方程(组组)本讲稿第四十三页,共六十页例例1515 解解 取初值取初值 x0=1.5,=1.5,计算结果如下计算结果如下kxk方
36、法方法1 1)方法方法2 2)方法方法3 3)1x11.4583333331.4583333331.4166666671.4166666671.4117647061.4117647062x21.4366071431.4366071431.4142156861.4142156861.4142114381.4142114383x31.4254976191.4254976191.4142135621.4142135621.4142135621.4142135621 1)牛顿法牛顿法2 2)用修正法用修正法1 13 3)用修正法用修正法2 2非线性方程非线性方程(组组)本讲稿第四十四页,共六十页 F(
37、x)等价方程组等价方程组 不动点迭代公式不动点迭代公式:【注注】计算三步,方法计算三步,方法2)2)方法方法3 3)均达到)均达到1010位有效数位有效数字,牛顿法只有线性收敛,达到同样精度要迭代字,牛顿法只有线性收敛,达到同样精度要迭代3030次。次。2.6 2.6 非线性方程组的数值解法非线性方程组的数值解法2.6.1 2.6.1 简单迭代法简单迭代法非线性方程非线性方程(组组)本讲稿第四十五页,共六十页则则x*为为 例例1616 解解 等价方程等价方程组组迭代公式为迭代公式为【注注】类似单个方程的情形,有非线性方程组的映类似单个方程的情形,有非线性方程组的映 内压缩定理和局部收敛定理内压
38、缩定理和局部收敛定理。非线性方程非线性方程(组组)本讲稿第四十六页,共六十页迭代计算,得迭代计算,得 k0 01 12 217170.50.50.5111140.5111140.5161250.5161250.5265080.5265080.50.50.5184230.5184230.5114380.5114380.5079260.507926简单迭代法的简单迭代法的MATLAB程序程序:iterates.mfunction xstar,index,it=iterates(G,x,ep,it_max)%求解非线性方程组的简单迭代法,其中求解非线性方程组的简单迭代法,其中%G(x)为需要求解的函
39、数;为需要求解的函数;%x为初始向量(列向量);为初始向量(列向量);%ep为精度,缺省值为为精度,缺省值为1e-5,非线性方程非线性方程(组组)本讲稿第四十七页,共六十页%当当x(k)-x(k-1)=it_max,失败;失败;%it为迭代次数为迭代次数.if nargin4 it_max=100;endif nargin3 ep=1e-5;endindex=0;k=1;while k=it_max x1=x;x=feval(G,x)if norm(x-x1)=ep index=1;break;end k=k+1;endxstar=x;it=k;非线性方程非线性方程(组组)本讲稿第四十八页,共
40、六十页将将F(x)在在 点作多元函数点作多元函数Taylor展开,展开,并取其线性部分并取其线性部分编写例编写例1616迭代函数,函数名为迭代函数,函数名为G.mG.mfunction f=G(x)f=0.7*sin(x(1)+0.2*cos(x(2);0.7*cos(x(1)-0.2*sin(x(2);调用简单迭代法函数调用简单迭代法函数iterates.miterates.m求方程组的解求方程组的解:xstar,index,it=iterates(G,0.5 0.5)得解得解xstar=0.5265,0.5079,index=1,it=172.6.2 2.6.2 牛顿迭代法牛顿迭代法一、牛
41、顿迭代法一、牛顿迭代法用用线线性函数近似非性函数近似非线线性函数,逐步用性函数,逐步用线线性方程性方程组组的解近似非的解近似非线线性方程性方程组组的解的解。.原理原理非线性方程非线性方程(组组)本讲稿第四十九页,共六十页令上式右端为零,得到令上式右端为零,得到 其中,雅克比矩阵其中,雅克比矩阵 记记 当当 时,解出时,解出 ,则有,则有 =+牛顿迭代公式牛顿迭代公式牛顿迭代过程牛顿迭代过程非线性方程非线性方程(组组)本讲稿第五十页,共六十页重复上面计算,牛顿迭代过程重复上面计算,牛顿迭代过程 设设函数函数F(x)在解向量在解向量 x*附近具有二阶连续偏导数,附近具有二阶连续偏导数,Jacobi
42、Jacobi在在 为非奇异矩阵,为非奇异矩阵,则则对对x*矩阵附近的初矩阵附近的初始向量始向量 ,牛顿迭代过程收敛(牛顿迭代过程收敛(且是平方收敛的且是平方收敛的)。)。例例1717 用牛顿法求下面方程组在用牛顿法求下面方程组在 附近的解。附近的解。解解 第一次迭代第一次迭代牛顿法的收敛性:牛顿法的收敛性:非线性方程非线性方程(组组)本讲稿第五十一页,共六十页取初值取初值 得得 第二次迭代第二次迭代解解 【注注】在解附近牛顿迭代过程二阶收敛在解附近牛顿迭代过程二阶收敛二、二、牛顿迭代法的变形牛顿迭代法的变形 令令 简化牛顿法简化牛顿法 非线性方程非线性方程(组组)本讲稿第五十二页,共六十页【注
43、注】1 1)简化牛顿法,简化牛顿法,只是线性收敛。只是线性收敛。2 2)将)将m步简化牛顿法组成一步牛顿迭代步简化牛顿法组成一步牛顿迭代,得得修正牛顿法修正牛顿法【注注】修正迭代法具修正迭代法具m+1有阶收敛速度。有阶收敛速度。1)1)下山法:下山法:扩大收敛范围扩大收敛范围 2 2)割线法:)割线法:避免求导数计算避免求导数计算 3)3)阻尼牛顿法:阻尼牛顿法:例例1818 分别用牛顿法、简化牛顿法及修正牛顿法分别用牛顿法、简化牛顿法及修正牛顿法解解方程组方程组,非线性方程非线性方程(组组)本讲稿第五十三页,共六十页解解 1)1)用牛顿法用牛顿法5 5次次;2);2)若用简化牛顿法若用简化牛
44、顿法;3);3)修正牛顿法修正牛顿法.2.6.3 2.6.3 最速下降法最速下降法构造各方程的平方和函数构造各方程的平方和函数,求解求解 多元函数多元函数 的极小值问题的极小值问题。最速下降法最速下降法即梯度法即梯度法 原理原理(1)(1)选方向选方向负梯度方向负梯度方向(2)(2)选步长选步长求求t0使使最速下降法迭代公式最速下降法迭代公式:迭代计算,直至迭代计算,直至 的值降到很小。的值降到很小。非线性方程非线性方程(组组)本讲稿第五十四页,共六十页【注注】最速下降法能收敛,收敛速度不如牛顿迭代法联合使最速下降法能收敛,收敛速度不如牛顿迭代法联合使用,可取长补短。用,可取长补短。2.7 2
45、.7 求解非线性方程(组)的求解非线性方程(组)的MATLABMATLAB函数函数一、一、solvesolve函数函数 求解析解或数值解,命令格式为:求解析解或数值解,命令格式为:solve(eqn1,eqn2,.,eqnN)1 1、求解方程(组)的解析表达式、求解方程(组)的解析表达式例例 解三角方程解三角方程 x 为未知变量。为未知变量。x=solve(p*sin(x)=r)x=asin(r/p)例例 解非线性方程组解非线性方程组 为未知变量。为未知变量。非线性方程非线性方程(组组)本讲稿第五十五页,共六十页u,v=solve(a*u2+v2=0,u-v=1)u=1/2/(a+1)*(-2
46、*a-2*(-a)(1/2)+1 v=1/2/(a+1)*(-2*a-2*(-a)(1/2)2 2、求方程(组)的数值解、求方程(组)的数值解例例 解非线性方程组解非线性方程组 为未知变量。为未知变量。x,y=solve(x2+x*y+y=3,x2-4*x+3=0)x=3,y=-3/23 3、求多项式方程的全部根、求多项式方程的全部根例例 求多项式方程求多项式方程 的根。的根。x=solve(x2-3*x+2=0)x=1非线性方程非线性方程(组组)本讲稿第五十六页,共六十页例例 求多项式方程求多项式方程 的根。的根。x=roots(1 0-2-5)x=-1.0473-1.1359i二、二、fz
47、erofzero函数函数1 1、fzerofzero函数函数求一元函数的零点,命令格式为:求一元函数的零点,命令格式为:x=fzero(fun,x0)例例 求方程求方程 的根,取初始点的根,取初始点x=fzero(x3-x-1,1.5)x=1.3247三、三、fsolvefsolve函数函数1 1、fsolvefsolve函数函数求非线性方程(组)的解,求非线性方程(组)的解,命令格式为:命令格式为:x=fsolve(fun,x0)非线性方程非线性方程(组组)本讲稿第五十七页,共六十页例例 求方程求方程 在在1 1和和4 4附近的根。附近的根。fun=inline(sin(3*x)x=fsol
48、ve(fun,1 4,optimset(Display,off)x=1.0472,4.1888 例例 求非线性方程组求非线性方程组 在在 附近的解。附近的解。function F=fun4(x);F=2*x(1)-x(2)-exp(-x(1);-x(1)+2*x(2)-exp(-x(2)x,fval=fsolve(fun4,-5;-5)0 x=(0.5671,0.5671)fval=1.0e-006*(-0.4059,-0.4059)2 2、选择项、选择项optionsoptions的使用的使用非线性方程非线性方程(组组)本讲稿第五十八页,共六十页例例 求非线性方程组求非线性方程组 在在 附近
49、的解。附近的解。function f,J=fun5(x)f=2*x(1)-x(2)-exp(-x(1);-x(1)+2*x(2)-exp(-x(2);J=2+exp(-x(1)-1;-1 2+exp(-x(2);options=optimset(Jacobian,on,Display,iter);x,fval=fsolve(fun5,-5;-5,options)Norm of First-order Trust-region Iteration Func-count f(x)step optimality radius0 1 47071.2 2.29e+004 11 2 12003.4 1 5
50、.75e+003 12 3 3147.02 1 1.47e+003 1非线性方程非线性方程(组组)本讲稿第五十九页,共六十页 3 4 854.452 1 388 1 4 5 239.527 1 107 1 5 6 67.0412 1 30.8 1 6 7 16.7042 1 9.05 1 7 8 2.42788 1 2.26 1 8 9 0.032658 0.759511 0.206 2.5 9 10 7.03149e-006 0.111927 0.00294 2.510 11 3.29531e-013 0.00169132 6.36e-007 2.5Optimization terminat