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

下載本文檔

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

文檔簡介

姓名 實驗報告成績 評語:指導(dǎo)教師(簽名) 年月日說明:指導(dǎo)教師評分后,實驗報告交院(系)辦公室保存。實驗一方程求根一、 實驗?zāi)康挠酶鞣N方法求任意實函數(shù)方程f(x)=0在自變量區(qū)間[a,b]上,或某一點附近的實根。并比較方法的優(yōu)劣。二、 實驗原理、二分法b-ax= 對方程f(x)=0在[a,b]內(nèi)求根。將所給區(qū)間二分,在分點2判b-ax= 斷是否f(x)=0;若是,則有根2。否則,繼續(xù)判斷是否f(a)?f(x)<0,若是,則令b二x,否則令a二x。否則令a=x。重復(fù)此過程直至求出方程f(x)=0在[a,b]中的近似根為止。、迭代法xk+i將方程f(x)=0等價變換為x=2(x)xk+ix)。3)、牛頓法若已知方程的一個近似根x0,則函數(shù)在點x0附近可用一階泰勒多項式pi(x)二f(x0)+f'(x0)(x-x0)來近似,因此方程f(x)=0可近似表示為f(x) 0—f(x0)+廣(x0)(x—x)二0設(shè)廣(x0)豐0,則x二x0-f'(x°)。取x作為原方程新的近f(x)k?似根x1,然后將x1作為x0代入上式。迭代公式為:xk+1二x0-廣(xk)。三、 實驗設(shè)備:MATLAB7.0軟件四、 結(jié)果預(yù)測(1)x11=0.09033(2)x5=0.09052(3)x2=0,09052五、 實驗內(nèi)容(1)、在區(qū)間[0,1]上用二分法求方程ex+10x-2=0的近似根,要求誤差不超過0.5x10-3f(x)k(2)、取初值xo二0,用迭代公式暮二x0-廣(xk),求方程ex+10x-2=0的近似根。要求誤差不超過°5X10-3。、取初值兀。二0,用牛頓迭代法求方程ex+10x-2=0的近似根。要求誤差不超過°5x10-3六、 實驗步驟與實驗程序1)二分法第一步:在MATLAB7.0軟件,建立一個實現(xiàn)二分法的MATLAB函數(shù)文件agui_bisect.m女口下:functionx=agui_bisect(fname,a,b,e)%fname為函數(shù)名,a,b為區(qū)間端點,e為精度fa二feval(fname,a);%把a(bǔ)端點代入函數(shù),求fafb=feval(fname,b);%把b端點代入函數(shù),求fbiffa*fb>0error('兩端函數(shù)值為同號');end%如果fa*fb>0,則輸出兩端函數(shù)值為同號k=0x=(a+b)/2while(b-a)>(2*e)%循環(huán)條件的限制fx二feval(fname,x);%把x代入代入函數(shù),求fxiffa*fx<0%如果fa與fx同號,則把x賦給b,把fx賦給fbb=x;fb=fx;else%如果fa與fx異號,則把x賦給a,把fx賦給faa=x;fa=fx;endk=k+1%計算二分了多少次x=(a+b)/2%當(dāng)滿足了一定精度后,跳出循環(huán),每次二分,都得新的區(qū)間斷點a和b,則近似解為x=(a+b)/2end第二步:在MATLAB命令窗口求解方程f(x)二efx+10x-2=0,即輸入如下>>fun=inline('exp(x)+10*x-2')>>x二agui_bisect(fun,0,l,0.5*10八-3)第三步:得到計算結(jié)果,且計算結(jié)果為kx00.5000000000000010.25000000000000

20.1250000000000030.0625000000000040.0937500000000050.0781250000000060.0859375000000070.0898437500000080.0917968750000090.09082031250000100.09033203125000110.09033203125000fun=s=0.12500000000000s=0.12500000000000fur盤)=exp(x)4-10*k-2:);}■z=agLi_bisect(furijD,1,0.SkIO"-])s=0.06250000000000Bs=0.062500000000000.500000000000000.09375000000000CommandWindowCoivimandWindowk=X=50.09179687500000z=k=0.078125000000009h—6X=0.090820312500002二k=0.0853375000000010k=X=70.09033203125000X=z=0.09035i031250000.08984375000000(2)迭代法第一步:第一步:在MATLAB7.0軟件,建立一個實現(xiàn)迭代法的MATLAB函數(shù)文件agui_main.m如下:functionx二agui_main(fname,x0,e)%fname為函數(shù)名dfname的函數(shù)fname的導(dǎo)數(shù),x0為迭代初值%e為精度,N為最大迭代次數(shù)(默認(rèn)為100)N=100;x=x0;%把x0賦給x,再算x+2*e賦給X0x0=x+2*e;k=0;whileabs(x0-x)〉e&k〈N%循環(huán)條件的控制:x0-x的絕對值大于某一精度,和迭代次數(shù)小于Nk=k+1%顯示迭代的第幾次x0=x;x=(2-exp(x0))/10%迭代公式disp(x)%顯示xendifk==Nwarning('已達(dá)到最大迭代次數(shù)');end%如果K=N則輸出已達(dá)到最大迭代次數(shù)第二步:在MATLAB命令窗口求解方程f(x)二efx+10x-2=0,即輸入如下〉〉fun=inline('exp(x)+10*x-2')>>x二agui_main(fun,0,l,0.5*10八-3)第三步:得出計算結(jié)果,且計算結(jié)果為kx10.1000000000000020.0894829081924430.0906391358595840.0905126166743750.09051261667437以下是結(jié)果的屏幕截圖firn=0.08948290S19244Inlinefunction:fimfe)=tup+10^-2>>K=agui_jnam(fun,030.5*10"-3)0.090639136869680.100000000000000.08948290819244firn=0.08948290S19244Inlinefunction:fimfe)=tup+10^-2>>K=agui_jnam(fun,030.5*10"-3)0.090639136869680.100000000000000.08948290819244(3)牛頓迭代法0.09051261667437>■>0.09051201067437第一步:第一步:在MATLAB7.0軟件,建立一個實現(xiàn)牛頓迭代法的MATLAB函數(shù)文件二agui_newton.m如下:functionx=agui_newton(fname,dfname,x0,e)%fname為函數(shù)名dfname的函數(shù)fname的導(dǎo)數(shù),x0為迭代初值%e為精度,N為最大迭代次數(shù)(默認(rèn)為100)N=100;x=x0;%把X0賦給X,再算x+2*e賦給X0x0=x+2*e;k=0;whileabs(x0-x)〉e&k〈N%循環(huán)條件的控制:x0-x的絕對值大于某一精度,和迭代次數(shù)小于Nk=k+1%顯示迭代的第幾次x0=x;x=x0-feval(fname,x0)/feval(dfname,x0);%牛頓迭代公式disp(x)%顯示xendifk==Nwarning('已達(dá)到最大迭代次數(shù)');end%如果K=N則輸出已達(dá)到最大迭代次數(shù)第二步:在MATLAB命令窗口求解方程f(x)二efx+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.09090909090909

20.0905251085833930.09052510858339以下是結(jié)果的屏幕截圖CommandWindowCommandWindowfuntx)=exp(x)+ia^x-2>kfun.=inline('exp(x)jI-10*k-2,)淺dfim=inline('eap(x)+10?)fun=dfur=Iniin已fuiiction:fun(£)=eKp&+10*K-r2'Inlinefunction.;'d.fun(k)—eupf運(yùn))+10dfun=inlineesp(u)+10^)x=agui_i-L已vrtcjnIfurL:dfury0;U?5*10ifijn=IrLlinefunctiamk=dfun(x)=exp(冀)+101>>:k二aguinevd:on(futl、dfurq0、0?5*10-3)k=0.0903090909090910.09090909090909k=2k二0.090525108583^92X=0.090525108583390?09G5251035S339七、實驗結(jié)果(1)x11=0.09033 (2)x5=0.09052 (3)x2=0,09052八、實驗分析與結(jié)論由上面的對二分法、迭代法、牛頓法三種方法的三次實驗結(jié)果,我們可以得出這樣的結(jié)論:二分法要循環(huán)k=11次,迭代法要迭代k=5次,牛頓法要迭代k=2次才能達(dá)到精度為0.5x10-3的要求,而且方程ex+10x-2=0的精確解經(jīng)計算,為0.0905250,計

溫馨提示

  • 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

提交評論