MATLAB計(jì)算方法迭代法牛頓法二分法實(shí)驗(yàn)報(bào)告_第1頁
MATLAB計(jì)算方法迭代法牛頓法二分法實(shí)驗(yàn)報(bào)告_第2頁
MATLAB計(jì)算方法迭代法牛頓法二分法實(shí)驗(yàn)報(bào)告_第3頁
MATLAB計(jì)算方法迭代法牛頓法二分法實(shí)驗(yàn)報(bào)告_第4頁
MATLAB計(jì)算方法迭代法牛頓法二分法實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、姓名 實(shí)驗(yàn)報(bào)告成績 評(píng)語: 指導(dǎo)教師(簽名) 年 月 日說明:指導(dǎo)教師評(píng)分后,實(shí)驗(yàn)報(bào)告交院(系)辦公室保存。實(shí)驗(yàn)一 方程求根一、 實(shí)驗(yàn)?zāi)康挠酶鞣N方法求任意實(shí)函數(shù)方程在自變量區(qū)間a,b上,或某一點(diǎn)附近的實(shí)根。并比較方法的優(yōu)劣。二、 實(shí)驗(yàn)原理(1)、二分法對(duì)方程在a,b內(nèi)求根。將所給區(qū)間二分,在分點(diǎn)判斷是否;若是,則有根。否則,繼續(xù)判斷是否,若是,則令,否則令。否則令。重復(fù)此過程直至求出方程在a,b中的近似根為止。(2)、迭代法將方程等價(jià)變換為=()形式,并建立相應(yīng)的迭代公式()。(3)、牛頓法若已知方程 的一個(gè)近似根,則函數(shù)在點(diǎn)附近可用一階泰勒多項(xiàng)式來近似,因此方程可近似表示為設(shè),則。取作為原方

2、程新的近似根,然后將 作為代入上式。迭代公式為:。三、 實(shí)驗(yàn)設(shè)備:MATLAB 7.0軟件四、 結(jié)果預(yù)測(1)=0.09033 (2)=0.09052 (3)=0,09052五、 實(shí)驗(yàn)內(nèi)容(1)、在區(qū)間0,1上用二分法求方程的近似根,要求誤差不超過。(2)、取初值,用迭代公式,求方程的近似根。要求誤差不超過。(3)、取初值,用牛頓迭代法求方程的近似根。要求誤差不超過。六、 實(shí)驗(yàn)步驟與實(shí)驗(yàn)程序(1) 二分法第一步:在MATLAB 7.0軟件,建立一個(gè)實(shí)現(xiàn)二分法的MATLAB函數(shù)文件agui_bisect.m如下:function x=agui_bisect(fname,a,b,e)%fname為

3、函數(shù)名,a,b為區(qū)間端點(diǎn),e為精度fa=feval(fname,a); %把a(bǔ)端點(diǎn)代入函數(shù),求fafb=feval(fname,b); %把b端點(diǎn)代入函數(shù),求fbif fa*fb>0 error('兩端函數(shù)值為同號(hào)');end %如果fa*fb>0,則輸出兩端函數(shù)值為同號(hào)k=0x=(a+b)/2while(b-a)>(2*e) %循環(huán)條件的限制fx=feval(fname,x);%把x代入代入函數(shù),求fxif fa*fx<0%如果fa與fx同號(hào),則把x賦給b,把fx賦給fb b=x; fb=fx;else %如果fa與fx異號(hào),則把x賦給a,把fx賦給f

4、a a=x; fa=fx;end k=k+1 %計(jì)算二分了多少次x=(a+b)/2 %當(dāng)滿足了一定精度后,跳出循環(huán),每次二分,都得新的區(qū)間斷點(diǎn)a和b,則近似解為x=(a+b)/2end第二步:在MATLAB命令窗口求解方程f(x)=ex+10x-2=0,即輸入如下>>fun=inline('exp(x)+10*x-2')>> x=agui_bisect(fun,0,1,0.5*10-3)第三步:得到計(jì)算結(jié)果,且計(jì)算結(jié)果為kx00.5000000000000010.2500000000000020.1250000000000030.062500000000

5、0040.0937500000000050.0781250000000060.0859375000000070.0898437500000080.0917968750000090.09082031250000100.09033203125000110.09033203125000 (2) 迭代法第一步:第一步:在MATLAB 7.0軟件,建立一個(gè)實(shí)現(xiàn)迭代法的MATLAB函數(shù)文件agui_main.m如下:function x=agui_main(fname,x0,e)%fname為函數(shù)名dfname的函數(shù)fname的導(dǎo)數(shù), x0為迭代初值%e為精度,N為最大迭代次數(shù)(默認(rèn)為100)N=100;

6、x=x0; %把x0賦給x,再算x+2*e賦給x0x0=x+2*e;k=0;while abs(x0-x)>e&k<N %循環(huán)條件的控制:x0-x的絕對(duì)值大于某一精度,和迭代次數(shù)小于N k=k+1 %顯示迭代的第幾次 x0=x; x=(2-exp(x0)/10 %迭代公式 disp(x)%顯示xendif k=N warning('已達(dá)到最大迭代次數(shù)');end %如果K=N則輸出已達(dá)到最大迭代次數(shù)第二步:在MATLAB命令窗口求解方程f(x)=ex+10x-2=0,即輸入如下>>fun=inline('exp(x)+10*x-2'

7、;)>> x=agui_main(fun,0,1,0.5*10-3)第三步:得出計(jì)算結(jié)果,且計(jì)算結(jié)果為kx10.1000000000000020.0894829081924430.0906391358595840.0905126166743750.09051261667437以下是結(jié)果的屏幕截圖 (3) 牛頓迭代法第一步:第一步:在MATLAB 7.0軟件,建立一個(gè)實(shí)現(xiàn)牛頓迭代法的MATLAB函數(shù)文件=agui_newton.m如下:function x=agui_newton(fname,dfname,x0,e)%fname為函數(shù)名dfname的函數(shù)fname的導(dǎo)數(shù), x0為迭代

8、初值%e為精度,N為最大迭代次數(shù)(默認(rèn)為100)N=100;x=x0; %把x0賦給x,再算x+2*e賦給x0x0=x+2*e;k=0;while abs(x0-x)>e&k<N %循環(huán)條件的控制:x0-x的絕對(duì)值大于某一精度,和迭代次數(shù)小于N k=k+1 %顯示迭代的第幾次 x0=x; x=x0-feval(fname,x0)/feval(dfname,x0);%牛頓迭代公式 disp(x)%顯示xendif k=N warning('已達(dá)到最大迭代次數(shù)');end %如果K=N則輸出已達(dá)到最大迭代次數(shù)第二步:在MATLAB命令窗口求解方程f(x)=ex+

9、10x-2=0,即輸入如下>>fun=inline('exp(x)+10*x-2')>> dfun=inline('exp(x)+10')>> x=agui_newton(fun,dfun,0,0.5*10-3)第三步:得出結(jié)果,且結(jié)果為kx10.0909090909090920.0905251085833930.09052510858339以下是結(jié)果的屏幕截圖七、 實(shí)驗(yàn)結(jié)果(1)=0.09033 (2)=0.09052 (3)=0,09052八、 實(shí)驗(yàn)分析與結(jié)論由上面的對(duì)二分法、迭代法、牛頓法三種方法的三次實(shí)驗(yàn)結(jié)果,我們可以得出這樣的結(jié)論:二分法要循環(huán)k=11次,迭代法要迭代k=5次,牛頓法要迭代k=2次才能達(dá)到精度為的要求,而且方程的精確解經(jīng)計(jì)算,為0.0905250, 計(jì)算量從大到小依次是:二分法,迭代法,牛頓法。由此可知,牛頓法和迭代法的精確度要優(yōu)越于二分法。而這三種方法中,牛頓法不僅計(jì)算量少,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論