第六章 非線性方程求根-席_第1頁
第六章 非線性方程求根-席_第2頁
第六章 非線性方程求根-席_第3頁
第六章 非線性方程求根-席_第4頁
第六章 非線性方程求根-席_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第六章第六章 非線性方程求根非線性方程求根非線性方程非線性方程 的解稱為的解稱為 的根或零點(diǎn)。的根或零點(diǎn)。 本章主要研究單個(gè)非線性方程求根的一些方本章主要研究單個(gè)非線性方程求根的一些方法,如圖解法、二分法、牛頓迭代法、割線法等,法,如圖解法、二分法、牛頓迭代法、割線法等,另外簡單介紹一下求解非線性方程組的逐次代換另外簡單介紹一下求解非線性方程組的逐次代換法和牛頓迭代法。法和牛頓迭代法。( )0f x ( )f x例例1:解方程解方程解:在解:在MATLAB里輸入命令:里輸入命令: X=solve(8*x9+17*x3-3*x=-1)可解出可解出9個(gè)解。個(gè)解。例例2:解方程解方程解:解: X=s

2、olve(sin(x)=0) 可惜的是運(yùn)行后只輸出一個(gè)根可惜的是運(yùn)行后只輸出一個(gè)根x=0。缺點(diǎn):缺點(diǎn):用用solve命令不能求出周期函數(shù)所對應(yīng)的全命令不能求出周期函數(shù)所對應(yīng)的全 部根。部根。9381731xxx sin0 x例例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)或或syms x yx,y=solve(xx-4=0,2*x*y+x=1)x1=double(x),y1=double(y)結(jié)果為

3、:結(jié)果為: x = log(4)/lambertw(log(4) y = -1/2*(log(4)-lambertw(log(4)/log(4) 4021xxxyx x1 = 2 y1 = -0.2500注:注:MATLAB系統(tǒng)只能做數(shù)值運(yùn)算,并沒有符系統(tǒng)只能做數(shù)值運(yùn)算,并沒有符號運(yùn)算功能,符號運(yùn)算工具箱(號運(yùn)算功能,符號運(yùn)算工具箱(symbolic math Toolbox-點(diǎn)擊點(diǎn)擊matlab的的start按鈕,選擇按鈕,選擇Toolboxes)擴(kuò)充了擴(kuò)充了MATLAB這方面的功能,它是這方面的功能,它是由由Maple的核心來完成。的核心來完成。例例4:解方程解方程解:將方程化為解:將方程

4、化為 ,在,在matlab窗口窗口 輸入命令輸入命令 fa=8,0,0,0,0,0,17,0,-3,1; xk=roots(fa)運(yùn)行后得所有根。運(yùn)行后得所有根。缺點(diǎn):缺點(diǎn):命令命令roots只能求只能求 為多項(xiàng)式時(shí)方程為多項(xiàng)式時(shí)方程 的根。的根。 9381731xxx9381731 0 xxx ( )f x( ) 0f x 一、圖解法一、圖解法 求方程求方程 的正根,的正根,sin(1/ )0.2e0 xxx設(shè)設(shè)( )sin(1/ ),( )0.2exf xxxg x分別畫出分別畫出 的圖形,兩條曲線的圖形,兩條曲線的交點(diǎn)即為原方程的交點(diǎn)即為原方程的根,從圖中觀的根,從圖中觀察,根大約為察,

5、根大約為0.37。( ), ( )f x g x00.20.40.60.811.21.41.61.82-0.4-0.200.20.40.60.81xyy=xsin(1/x)y=xsin(1/x)y=xsin(1/x)y=0.2exp(-x)程序如下:程序如下:x=0.01:0.01:2;fx=x.*sin(1./x);gx=0.2*exp(-x);plot(x,fx,b,x,gx,g)grid onxlabel(x)ylabel(y)text(0.9,0.75, fx=xsin(1/x),Color,b)text(1.25,0.1, gx=0.2e-x,Color,g) 二、二分法二、二分法

6、對于求解給定區(qū)間的根,二分法是一種既簡單對于求解給定區(qū)間的根,二分法是一種既簡單又穩(wěn)健的方法,可以與圖解法結(jié)合使用。又穩(wěn)健的方法,可以與圖解法結(jié)合使用。 ( ) , ( )( )0 ( , ) ( )0, ( )0f xa bf af ba bf af b 設(shè)設(shè)在在上上連連續(xù)續(xù),且且在在內(nèi)內(nèi)有有且且僅僅有有一一個(gè)個(gè)根根,不不妨妨設(shè)設(shè)11111 0 , , 22 0 22 , .2ababfxababfabbabbaa) 若若輸輸出出根根否否則則:若若,令令,反反之之3) .2iiabx當(dāng)區(qū)間小于給定的容許誤差時(shí),得到 近似根11222 , 1 ,nna ba ba b) 對 重復(fù) ) 的計(jì)算,

7、共產(chǎn)生xaxb最終解最終解經(jīng)過經(jīng)過 n 步迭代后,步迭代后,區(qū)間長度變?yōu)椋簠^(qū)間長度變?yōu)椋?nba即為可能的最大誤差即為可能的最大誤差當(dāng)給定容許誤差當(dāng)給定容許誤差 時(shí),所需最小迭代步數(shù)為:時(shí),所需最小迭代步數(shù)為:loglog(2)2nbaban或用于二分法計(jì)算的函數(shù)用于二分法計(jì)算的函數(shù)bisec_n.function bisec_n(f_name, a,c)%a,c為根的存在區(qū)間為根的存在區(qū)間tolerance = 0.000001; it_limit = 30;fprintf( It. a b c f(a) );fprintf( f(b) f(c)n );it = 0;Ya = feval(f

8、_name, a ); Yc= feval(f_name, c );if ( Ya*Yc 0 ) fprintf( nn Stopped because f(a)f(c) 0 n );else while 1 %while后面為非零值時(shí)表示重復(fù)執(zhí)行循環(huán)語句后面為非零值時(shí)表示重復(fù)執(zhí)行循環(huán)語句 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

9、 ( abs(c-a)it_limit ) fprintf( Iteration limit exceeded.n ); break end if( Ya*Yb 0.000001 x1=(x0+1).(1/3); fprintf(%f ,x1); err=x1-x0; x0=x1;end 0 1 2 8 9 1.5 1.357209 1.330861 1.324718 1.324718 kkx迭代收斂。迭代收斂。3312 11. 0 1 2 31.5 4.375 84.740234 608512.769485 kkkxxxxkx( ) 若將方程改寫為建立迭代公式 迭代不收斂。x0=1.5;er

10、r=1;fprintf( %f , x0);for i=1:3 x1=x0.3+1; fprintf(%f ,x1); err=x1-x0; x0=x1;end*1*. ( ) , 1 , ( );(2)01, , , ( )1( ) , , , , ()(0,1,) nnxa bxa baxbLxa bxLxxa bxa bxxnxx0定理 設(shè)函數(shù)在區(qū)間上滿足條件( )對任意,都有存在常數(shù)使得對一切都有則方程在內(nèi)有唯一的根且對任何初值x迭代序列均收斂于,并有*101nnLxxxL-3-2-10123-2-1012Convergent: -1g0IGIG: initial guessXYy=g

11、(x)y=x0246810-2024681012Divergent: 1gIGXYy=g(x)y=x-4-202-3-2-10123Divergent: g-1IGXYy=g(x)y=x01234-2-10123Convergent: 0g1)&(xdpiancha0.5)&(k3) disp(請用戶注意:此迭代序列發(fā)散,請重新輸入新%的迭代公式) return;end( )x1 () nnxxif(piancha0.001)&(xdpiancha3)disp(祝賀你!此迭代序列收斂,且收斂速度較快) return;endp=(i-1) piancha xdpianch

12、a xk 例:求方程 的在區(qū)間 根。解:建立M文件fun.m function y1=fun(x) y1=(10-x2)/2;在窗口輸入 2( )210f xxx(2,3) k,piancha,xdpiancha,xk=diedai(2,5)結(jié)果為:請用戶注意:此迭代序列發(fā)散,請重新輸入新的迭代公式若重新建立M文件: function y1=fun(x) y1=x-(x2+2*x-10)/(2*x+2)%在窗口輸入 :k,piancha,xdpiancha,xk=diedai(2,5)運(yùn)行結(jié)果為:祝賀你!此迭代序列收斂,且收斂速度較快( )( )xxf x2( )210f xxx1/ f設(shè)求解

13、方程設(shè)求解方程 的一個(gè)根,的一個(gè)根, 關(guān)于初值關(guān)于初值 的一階的一階Taylor展開為:展開為:( )0f x ( )f x0 x000( )()()()f xf xfxxx將其看做將其看做 的近似,并令為的近似,并令為0,得到近似解:,得到近似解:( )f x0100()()f xxxfx重復(fù)操作,一般地:重復(fù)操作,一般地:1()()nnnnf xxxfx3210oa xxxxxy( )yf x幾何解釋:幾何解釋: 計(jì)算給定函數(shù)的一階導(dǎo)數(shù)可能會(huì)很繁,可用差分計(jì)算給定函數(shù)的一階導(dǎo)數(shù)可能會(huì)很繁,可用差分近似代替,如:近似代替,如:111()()nnnf xhf xfh或或111()()nnnf

14、xf xhfh其中其中 h 取得很小取得很小 上兩式分別為向前和向后差分近似。上兩式分別為向前和向后差分近似。差分近似差分近似中的誤差很小,對于牛頓迭代法的收斂性沒有很明中的誤差很小,對于牛頓迭代法的收斂性沒有很明顯的影響,然而當(dāng)根的附近有奇點(diǎn)時(shí)使用差分近似顯的影響,然而當(dāng)根的附近有奇點(diǎn)時(shí)使用差分近似要小心。要小心。1()()nnnnf xxxfx例例4 推導(dǎo)立方根的牛頓迭代公式,并求推導(dǎo)立方根的牛頓迭代公式,并求 的立方根。的立方根。155a 解:問題等價(jià)于求解:問題等價(jià)于求3( )f xxa的零點(diǎn)。的零點(diǎn)。Newton迭代法:迭代法:3122()2()333nnnnnnnnnf xxaax

15、xxxfxxx令令 ,經(jīng)過計(jì)算,迭代,經(jīng)過計(jì)算,迭代3次達(dá)到精確解。次達(dá)到精確解。0155,5axn x0 51 5.42 5.3718343 5.371686x0=5;fprintf( n xn ); n=0; for i=1:4 x1=2*x0/3+155/(3*x0.2); fprintf(%f %f n,n,x0); n=n+1; x0=x1;endNewton迭代公式可由函數(shù)迭代公式可由函數(shù)Newt_n實(shí)現(xiàn)。實(shí)現(xiàn)。function x = Newt_n(f_name, x0)x = x0; xb=x-999;n=0; del_x = 0.01;while abs(x-xb)0.000

16、1 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)endfprintf(n Final answer = %12.6en, x);1()()nnnnf xxxfx()()nnnf xhf xfh 上例中,上例中,第

17、一步建立函數(shù)文件:第一步建立函數(shù)文件:function y1=fun4(x) y1=x.3-155;調(diào)用:調(diào)用:x = Newt_n(fun4, 5)或或fun4=inline(x3-155);x = Newt_n(fun4, 5) 結(jié)果:結(jié)果:n= 1, x=5.39920e+000, y = -3.00000e+001, yd = 7.51501e+001 n= 2, x=5.37188e+000, y = 2.39412e+000, yd = 8.76162e+001 n= 3, x=5.37169e+000, y = 1.65024e-002, yd = 8.67324e+001 n=

18、 4, x=5.37169e+000, y = 3.12654e-005, yd = 8.67263e+001 Final answer = 5.371685e+000y =5.3717 在牛頓法中用差分近似來計(jì)算在牛頓法中用差分近似來計(jì)算 ,也可以用最,也可以用最新計(jì)算的兩個(gè)新計(jì)算的兩個(gè) f 值來近似。值來近似。f 1112122,3,nnnnnnnfxxnffxx, 設(shè)定設(shè)定 開始迭代,開始迭代, 可以取得任意可以取得任意小,迭代到滿足容許誤差為止。小,迭代到滿足容許誤差為止。0 x10,xxxx 1、一般非線性方程組及其向量表示法、一般非線性方程組及其向量表示法11221212(,)0(

19、,)0(,)0nnnnfx xxfx xxfx xx (1,2, )其其中中,是是定定義義在在區(qū)區(qū)域域上上的的 元元實(shí)實(shí)值值函函數(shù)數(shù),且且 中中至至少少有有一一個(gè)個(gè)是是非非線線性性函函數(shù)數(shù)。niif inDRnfnn含含有有 個(gè)個(gè)方方程程的的 元元非非線線性性方方程程組組的的一一般般形形式式為為 T1212,( )( ),( ),( ) ( )nnxx xxF xfxfxfxF x 令令,則則方方程程組組可可表表示示為為 :nnnFDRRDR其其中中,是是定定義義在在區(qū)區(qū)域域上上的的向向量量值值函函數(shù)數(shù)。*,()xDF xx 若若存存在在使使,則則稱稱是是方方程程組組的的解解。2 2、不動(dòng)點(diǎn)迭

20、代法、不動(dòng)點(diǎn)迭代法 與單個(gè)非線性方程迭代法類似與單個(gè)非線性方程迭代法類似, ,先化為等價(jià)的方程組先化為等價(jià)的方程組11221212(,)0(,)0(,)0nnnnfx xxfx xxfx xx1112221212(,)(,)(,)nnnnnxgx xxxgx xxxgx xx稱為迭代向量函數(shù)稱為迭代向量函數(shù)11221212(,)(,)( )(,)nnnngx xxgx xxg xgx xx( )( )F xxg x 由此就可以建立一個(gè)迭代格式由此就可以建立一個(gè)迭代格式: :一般迭代法的收斂條件與單個(gè)方程迭代法的收斂條一般迭代法的收斂條件與單個(gè)方程迭代法的收斂條件很類似。件很類似。 111121

21、2212112(,)(,)0,1,2,(,)kkkknkkkknkkkknnnxgxxxxgxxxkxgxxx(1)( )()kkxg x 即即“不動(dòng)點(diǎn)迭代法不動(dòng)點(diǎn)迭代法”3、Newton迭代法迭代法設(shè)非線性方程組設(shè)非線性方程組12( ,)0,1,2,inf x xxin若知道解的初值,解可以寫為:若知道解的初值,解可以寫為:jjjxxx 其中其中 是初值,是初值, 是未知的校正值。是未知的校正值。jxjx 關(guān)于 的一階Taylor展開為:ifjx1212 (,)(,)+iininjjjff x xxf x xxxx矩陣形式為:矩陣形式為:J xf 12 (,)ijinjjfxf x xxx

22、設(shè)令其等于設(shè)令其等于0其中其中 是是Jacobian矩陣。矩陣。ijfJx1121221212(,)(,),(,)nnnnnf x xxxxfx xxxxxfxfx xx ( )(1)( )( )()()()nnnnJJ xxxf xxfJ xxf Jacobian矩陣的程序:矩陣的程序:例:例:syms x1 x2;f1=x1*x2+x22; f2=x12+x2; Df=jacobian(f1,f2,x1,x2)偏導(dǎo)數(shù)也可以用差分近似來計(jì)算:偏導(dǎo)數(shù)也可以用差分近似來計(jì)算:11( ,)( ,)ijjnjnijjf xxxxxxxfxx是可選的任意小值。是可選的任意小值。jxDf = x2, x1+2*x2 2*x1, 1已知非線性方程組如下:已知非線性方程組如下: 3x12-cos(x2x3)-1/2=0 x1-81(x2+0.1)2+sin(x3)+1.06=0 exp(-x1x2)+20*x3+(10-3)/3=0求解,要求精度達(dá)到求解,要求精度達(dá)到0.00001。首先建立向量值函數(shù)首先建立向量值函數(shù)function f=fun5(x);%定義非線性方程組如下定義非線性方程組如下%變量變量x1 x2 x3%函數(shù)函數(shù)f1 f2 f3syms x1 x2 x3f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論