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

2、+4*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'

3、;(xk+1)當(dāng)初值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-

4、2其中 k=fxk,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=

5、x0-feval(fn,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=gex

6、ian(f,x0,x1,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源程序

7、,源程序代碼為:function 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í)行下列語句&g

8、t;> fun=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>&g

9、t; fun=inline('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

10、,1e-6),format 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)中方法求解這一問題,并利用圖解法找到初值

11、,通過觀察圖像,將newton法初值設(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-.10

12、2)>>dfun=inline('(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(

13、9;(x3+2*x-0.205061208)*(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)按照題目要求對方

14、程進(jìn)行構(gòu)造仍然利用(1)中方法求解這一問題,并利用圖解法找到初值,通過觀察圖像,可知存在重根,故將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.205061

15、208)*(x-0.102)');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 =

16、 0.06837148815484>> 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

17、short并得到最終結(jié)果:n = 5ans = 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法割線法拋物線法問題一(1)0.1020.1020.102問題一(2)0.0683714881555100.06840.0684問題一(3)0.1020.1020.102問題一(4)0.102和0.0681488154840.102和0.06840.102和0.0684(1)迭代步數(shù)(2)迭代步數(shù)(3)迭代步數(shù)(4)迭代步數(shù)Newton法 4 3 31 6,8割線法 5 3 41 10, 5拋物線法 7 3

溫馨提示

  • 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

提交評論