MATLAB計算方法迭代法牛頓法二分法實驗報告_第1頁
MATLAB計算方法迭代法牛頓法二分法實驗報告_第2頁
MATLAB計算方法迭代法牛頓法二分法實驗報告_第3頁
MATLAB計算方法迭代法牛頓法二分法實驗報告_第4頁
MATLAB計算方法迭代法牛頓法二分法實驗報告_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

4、; fa=fx;end k=k+1 %計算二分了多少次x=(a+b)/2 %當滿足了一定精度后,跳出循環(huán),每次二分,都得新的區(qū)間斷點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)第三步:得到計算結(jié)果,且計算結(jié)果為kx00.00010.00020.00030.00040.00050.00060.00070.00080.00090.000100.000110.

5、000(2) 迭代法第一步:第一步:在MATLAB 7.0軟件,建立一個實現(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ù)(默認為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的絕對值大于某一精度,和迭代次數(shù)小于N k=k+1 %顯示迭代的第幾次 x0=x; x=(2-exp(x0)/

6、10 %迭代公式 disp(x)%顯示xendif k=N warning('已達到最大迭代次數(shù)');end %如果K=N則輸出已達到最大迭代次數(shù)第二步:在MATLAB命令窗口求解方程f(x)=ex+10x-2=0,即輸入如下>>fun=inline('exp(x)+10*x-2')>> x=agui_main(fun,0,1,0.5*10-3)第三步:得出計算結(jié)果,且計算結(jié)果為kx10.00020.24430.95840.43750.437以下是結(jié)果的屏幕截圖(3) 牛頓迭代法第一步:第一步:在MATLAB 7.0軟件,建立一個實現(xiàn)牛頓

7、迭代法的MATLAB函數(shù)文件=agui_newton.m如下:function x=agui_newton(fname,dfname,x0,e)%fname為函數(shù)名dfname的函數(shù)fname的導(dǎo)數(shù), x0為迭代初值%e為精度,N為最大迭代次數(shù)(默認為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的絕對值大于某一精度,和迭代次數(shù)小于N k=k+1 %顯示迭代的第幾次 x0=x; x=x0-feval(fname,x0)/feval(dfname,x0);%

8、牛頓迭代公式 disp(x)%顯示xendif k=N warning('已達到最大迭代次數(shù)');end %如果K=N則輸出已達到最大迭代次數(shù)第二步:在MATLAB命令窗口求解方程f(x)=ex+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.90920.33930.339以下是結(jié)果的屏幕截圖七、 實驗結(jié)果(1)=0.09033 (2)=0.09052 (3)=0,09052八、 實驗分析與結(jié)論由上面的對二分法、迭代法、牛頓法三種方法的三次實驗結(jié)果,我們可以得出這樣的結(jié)論:二分法要循環(huán)k=11次,迭代法要迭代k=5次,牛頓法要迭代k=2次才能達到精度為的要求,而且方程的精確解經(jīng)計算,為0.0905250,計算量從大到小依次是:二分法,迭代法,牛頓法。由此可知,牛頓法和迭代法的精確度要優(yōu)越于二分法。而這三種方法中,牛頓法不僅計算量少,而且精確度高。從而可知牛頓迭代法收

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論