matlab實現(xiàn)Newton法-割線法-拋物線法_第1頁
matlab實現(xiàn)Newton法-割線法-拋物線法_第2頁
matlab實現(xiàn)Newton法-割線法-拋物線法_第3頁
matlab實現(xiàn)Newton法-割線法-拋物線法_第4頁
matlab實現(xiàn)Newton法-割線法-拋物線法_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一實驗?zāi)康模菏煜ず驼莆誑ewton法,割線法,拋物線法的方法思路,并能夠在matlab上編程實現(xiàn)二問題描述:問題一. 方程求根(1).給定一個三次方程,分別用Newton法,割線法,拋物線法求解.方程的構(gòu)造方法:(a)根:方程的根為學(xué)號的后三位乘以倒數(shù)第二位加1再除以1000.假設(shè)你的學(xué)號為B06060141,那么根為141*(4+1)/1000=0.564(b)方程:以你的學(xué)號的后三位數(shù)分別作為方程的三次項,二次項,一次項的系數(shù),根據(jù)所給的根以及三個系數(shù)確定常數(shù)項.例如:你的學(xué)號是B06060141,那么你的方程是x3+4x2+x+a0=0的形式.方程的根為0.564,因此有0.5643+4

2、*0.5642+0.564+a0=0,于是a0=-2.015790144你的方程為x3+4x2+x-2.015790144=0.(2)假設(shè)方程是sinx+4x2+x+a0=0的形式三個系數(shù)分別是學(xué)號中的數(shù)字,重新解決類似的問題(3)構(gòu)造一個五次方程完成上面的工作.四次方程的構(gòu)造:將三次多項式再乘以(x-p*)2得到對應(yīng)的五次多項式(p*為已經(jīng)確定的方程的根,顯然,得到的五次方程有重根).(4)將2中的方程同樣乘以(x-p*)得到一個新的方程來求解三算法介紹在本文題中,我們用到了newton法,割線法,拋物線法。1.Newton法迭代格式為: xk+1=xk-f(xk)f'(xk+1)當(dāng)

3、初值x0與真解足夠靠近,newton迭代法收斂,對于單根,newton收斂速度很快,對于重根,收斂較慢。2.割線法:為了回避導(dǎo)數(shù)值f'(xk)的計算,使用xk,xk-1上的差商代替f'(xk),得到割線法迭代公式:xk+1=xk-xk-xk-1fxk-fxk-1f(xk)割線法的收斂階雖然低于newton法,但迭代以此只需計算一次f(xk)函數(shù)值,不需計算其導(dǎo)數(shù),所以效率高,實際問題中經(jīng)常應(yīng)用。3.拋物線法:可以通過三點做一條拋物線,產(chǎn)生迭代序列的方法稱為拋物線法。其迭代公式為: xk+1=xk-2f(xk)k+sgn(k)k2-4fxkfxk,xk-1,xk-2其中 k=fx

4、k,xk-1+(xk-xk-1)fxk,xk-1,xk-2收斂速度比割線法更接近于newton法。對于本問題的解決就以上述理論為依據(jù)。終止準(zhǔn)那么為:|pn-pn-1|< 此題中所有取1e-6。四程序注:n表示迭代步數(shù)。第一題1首先根據(jù)題目要求對方程進(jìn)行構(gòu)造,得到的方程為:y=x3+2x-0.205061208。Newton法求解算法建立newton1.m源程序,源程序代碼為:function x=newton1(fn,dfn,x0,e)if nargin<4,e=1e-4;endx=x0;x0=x+2*e;while abs(x0-x)>ex0=x;x=x0-feval(fn

5、,x0)/feval(dfn,x0);end在matlab軟件中執(zhí)行以下語句并得到最終結(jié)果截圖>> clear>> fun=inline('x3+2*x-0.205061208');>> dfun=inline('3*x2+2');format long;>> newton1(fun,dfun,0.5,1e-6),format short 并得到最終結(jié)果n = 4ans = 0.10200000000000割線法求解算法建立gexianfa.m源程序,源程序代碼為:function x=gexian(f,x0,x1

6、,e)if nargin<4,e=1e-4;endy=x0;x=x1;while abs(x-y)>e z=x-(feval(f,x)*(x-y)/(feval(f,x)-feval(f,y); y=x; x=z;end在matlab軟件中執(zhí)行以下語句>> clear>> fun=inline('x3+2*x-0.205061208');>> gexianfa(fun,0,1,1e-6),format short并得到最終結(jié)果:n = 5ans = 0.1020拋物線法求解算法建立paowuxian.m源程序,源程序代碼為:fun

7、ction x=pawuxian(f,x0,x1,x2,e)if nargin<4,e=1e-4;endx=x2;y=x1;z=x0;while abs(x-y)>e h1=y-z; h2=x-y; c1=(feval(f,y)-feval(f,z)/h1; c2=(feval(f,x)-feval(f,y)/h2; d=(c1-c2)/(h2+h1); w=c2+h2*d; xi=x-(2*feval(f,x)/(w+(w/abs(w)*sqrt(w2-4*feval(f,x)*d); z=y; y=x; x=xi;end在matlab軟件中執(zhí)行以下語句>> fun=

8、inline('x3+2*x-0.205061208');>> paowuxian(fun,0,0.5,1,1e-6),format short并得到最終結(jié)果n = 7ans = 0.1020第一題2根據(jù)要求,待求解的方程應(yīng)為:y=sinx+2x-0.205061208。仍然利用1中方法求解這一問題,并利用圖解法找到初值,通過觀察圖像,將newton法初值設(shè)為:0.2,割線法初值設(shè)為:0,0.2。拋物線法初值設(shè)為:0,0.1,0.2。圖像見以下列圖:Newton法求解:在matlab軟件中執(zhí)行以下語句>> clear>> fun=inline

9、('sin(x)+2*x-0.205061208');>> dfun=inline('cos(x)+2');format long;>> newton1(fun,dfun,0.2,1e-6),format short并得到最終結(jié)果n = 3ans = 0.06837148815510割線法求解:在matlab軟件中執(zhí)行以下語句>> clear>> fun=inline('sin(x)+2*x-0.205061208');>> gexianfa(fun,0,0.2,1e-6),format

10、 short并得到最終結(jié)果截圖n = 3ans = 0.0684拋物線法求解在matlab軟件中執(zhí)行以下語句并得到最終結(jié)果截圖>> clear>> fun=inline('sin(x)+2*x-0.205061208');>> paowuxian(fun,0,0.1,0.2,1e-6),format short并得到最終結(jié)果n = 3ans = 0.0684問題一3按照題目要求對五次方程進(jìn)行構(gòu)造為: y=x3+2x-0.205061208*(x-0.102)2仍然利用1中方法求解這一問題,并利用圖解法找到初值,通過觀察圖像,將newton法初

11、值設(shè)為:在此處我們選取了兩組初值為0以及0.5,割線法初值設(shè)為:-1,1。拋物線法初值設(shè)為:兩組初值為-1,0,1以及0,0.5,1。Newton法:在matlab軟件中執(zhí)行以下語句>> clear>> fun=inline('(x3+2*x-0.205061208)*(x-0.102)2');>> dfun=diff('(x3+2*x-0.205061208)*(x-0.102)2')dfun = (3*x2+2)*(x-.102)2+2*(x3+2*x-.205061208)*(x-.102)>>dfun=in

12、line('(3*x2+2)*(x-.102)2+2*(x3+2*x-.205061208)*(x-.102)');format long;>> newton1(fun,dfun,0,1e-6),format short并得到最終結(jié)果:n = 27ans = 0.10199821300764>> newton1(fun,dfun,0.5,1e-6),format shortn = 31ans = 0.1020割線法:在matlab軟件中執(zhí)行以下語句>> clear>> fun=inline('(x3+2*x-0.20506

13、1208)*(x-0.102)2');>> gexianfa(fun,-1,1,1e-6),format short并得到最終結(jié)果:n = 41ans = 0.1020拋物線法:在matlab軟件中執(zhí)行以下語句>> clear>> fun=inline('(x3+2*x-0.205061208)*(x-0.102)2');>> paowuxian(fun,0,0.5,1,1e-6),format short并得到最終結(jié)果截圖:n = 57ans = 0.1020問題一4按照題目要求對方程進(jìn)行構(gòu)造仍然利用1中方法求解這一問題

14、,并利用圖解法找到初值,通過觀察圖像,可知存在重根,故將newton法初值設(shè)為:兩組初值為0以及0.5,割線法初值設(shè)為:兩組初值為0,0.1以及-0.1,0.1。拋物線法初值設(shè)為:兩組初值為-1,0,1以及0,0.5,1。繪圖語句為:>>fun=inline('(sin(x)+2*x-0.205061208)*(x-0.102)');fplot(fun,-1,1)Newton法:在matlab軟件中執(zhí)行以下語句>> clear>>fun=inline('(sin(x)+2*x-0.205061208)*(x-0.102)');

15、fplot(fun,-1,1);>> dfun=diff('(sin(x)+2*x-0.205061208)*(x-0.102)') dfun = (cos(x)+2)*(x-.102)+sin(x)+2*x-.205061208 >>dfun=inline('(cos(x)+2)*(x-.102)+sin(x)+2*x-.205061208');format long;>> newton1(fun,dfun,0,1e-6),format short并得到最終截圖:n = 6ans = 0.06837148815484>

16、> newton1(fun,dfun,0.5,1e-6),format short并得到最終結(jié)果:n = 8ans = 0.1020割線法:在matlab軟件中執(zhí)行以下語句>> clear>> fun=inline('(sin(x)+2*x-0.205061208)*(x-0.102)');>> gexianfa(fun,0,1,1e-6),format short并得到最終結(jié)果:n = 10ans =0.0684>> gexianfa(fun,0,0.1,1e-6),format short并得到最終結(jié)果:n = 5ans

17、 = 0.1020拋物線法:在matlab軟件中執(zhí)行以下語句>> clear>> fun=inline('(sin(x)+2*x-0.205061208)*(x-0.102)');>> paowuxian(fun,-0.1,0,0.05,1e-6),format short并得到最終結(jié)果:n = 8ans = 0.0684>> paowuxian(fun,0,0.5,1,1e-6),format short并得到最終結(jié)果:n = 15ans = 0.1020五計算結(jié)果Newton法割線法拋物線法問題一10.1020.1020.102問題一20.0683714881555100.06840.0684問題一30.1020.1020.102問題一40.102和0.0681488154840.102和0.06840.102和0.06841迭代步數(shù)2迭代步數(shù)3迭代步數(shù)4迭代步數(shù)Newton法 4 3 31 6,8割線法 5 3 41 10, 5拋物線法 7 3 57 8,15

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論