




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算方法第二次上機作業(yè)Gegebao摘要:程序基于MATLAB,包括問題陳述、算法與程序、結果與分析、討論四個部分。一 、問題陳述 數(shù)學上已經(jīng)證明了:0141+x2dx=成立,所以可以通過積分來計算的近似值。(1) 分別使用矩形、梯形和Simpson復合求積公式計算的近似值。選擇不同的h,對于每種求積公式,試將誤差刻畫成h的函數(shù),并比較各方面的精度。是否存在某個h值,當?shù)陀谶@個值之后,再繼續(xù)減少h的值,計算不再有所改進?為什么?(2) 實現(xiàn)Romberg求積方法,并重復上面的計算。(3) 使用自適應求積方法重復上面的計算。二、 算法與程序1矩形求積法考慮到對于具體的某一個h,不一定能整數(shù)個地覆
2、蓋積分空間,將會嚴重地影響算法精度。于是我們用n代替h,即將積分區(qū)間劃分為n個區(qū)間,h=1/n。函數(shù)將輸出積分結果Rec和這個結果對于精確的的誤差的對數(shù)值r。function Rec r = rec( n ) h=1/n; %求出對應的hRec=0;for i=1:n x0=h*(i-1/2); %求出每一區(qū)間的中心點的橫坐標 Rec=Rec+h*4/(1+x02);endr=log10(abs(Rec-pi); %取其誤差的對數(shù)end2.梯形求積法 和矩形法一樣,采用n來標度取點密度。同樣輸出積分結果Lad和這個結果對于精確的的誤差的對數(shù)值r。function Lad r = lad( n)
3、 h=1/n;Lad=0;for i=1:n x0=h*(i-1); x1=x0+h; 取得每個區(qū)間的端點的橫坐標 Lad=Lad+h/2*(4/(1+x02)+4/(1+x12);endr=log10(abs(Lad-pi);end3.Simpson求積法 輸入取點數(shù)目n,h=1/n, 輸出積分結果Simp和這個結果對于精確的的誤差的對數(shù)值r。function Simp ,r = simp( n)h=1/n; Simp=0;for i=1:n x0=h*(i-1); x1=x0+h/2; x2=x1+h/2; Simp=Simp+h/6*(4/(1+x02)+4*4/(1+x12)+4/(1
4、+x22);endr=log10(abs(Simp-pi);end4.Romberg求積法 輸入最初取點數(shù)目n(h=1/n)和需求遞推下去的步數(shù)k, 輸出積分結果Rom和這個結果對于精確的的誤差的對數(shù)值r。function Rom,r = rom(n,k)for i=1:k; a(i,1) c=lad(2(i-1)*n); %調用lad函數(shù),求出遞推矩陣第一列的數(shù)值endfor i=2:k for j=1:k-i+1 a(j,i)=(a(j+1,i-1)-4(1-i)*a(j,i-1)/(1-4(1-i); endendRom=a(1 ,k);r=log10(abs(Rom-pi);end5.
5、分別基于前幾種算法的自適應算法(1)基于矩形法 輸入初始的取點數(shù)n(h=1/n)和所需要的精度的對數(shù)值e,輸出積分結果對于精確的的誤差的對數(shù)值r。 function r = Arec(n,e)temp0=0;temp1=1; %temp0為T(h),Temp1為T(h/2)while(log10(abs(temp0-temp1)>e) temp0=temp1; n=n*2; temp1=rec(n);endr=log10(abs(temp1-pi);end (2)基于梯形法 輸入初始的取點數(shù)n(h=1/n)和所需要的精度的對數(shù)值efunction r = Alad( n,e)temp0=
6、0;temp1=1;while(log10(abs(temp0-temp1)>e) temp0=temp1; n=n*2; temp1=lad(n);endr=log10(abs(temp1-pi);end(3)基于Simpson法 輸入初始的取點數(shù)n(h=1/n)和所需要的精度的對數(shù)值efunction r = Asimp( n,e)temp0=0;temp1=1;while(log10(abs(temp0-temp1)>e) temp0=temp1; n=n*2; temp1=simp(n);endr=log10(abs(temp1-pi);end(4)基于Romberg法 輸
7、入初始的取點數(shù)n(h=1/n)和所需要的精度的對數(shù)值e,取遞推步數(shù)k=5function r = Arom( n,e)temp0=0;temp1=1;while(log10(abs(temp0-temp1)>e) temp0=temp1; n=n*2; temp1=rom(n,5);endr=log10(abs(temp1-pi);end三、結果與分析使用之前的積分函數(shù)進行運算??紤]到h的變化范圍比較大,將h等比例地從1取到10(-7),取200個點。最后將h和誤差按對數(shù)輸出成圖像。1.矩形積分法運行代碼: for i=1:200 h0(i)=-i*7/200; n=fix(10(-h0
8、(i); r Rrec(i)=rec(n); endplot(h0,Rrec,'b');分析:求積方法的最高精度可以達到10(-14)到10(-15)之間,而當h取到10(-6)時,繼續(xù)提高取點密度對算法精度沒有改進。而在此之前,精度和h的關系幾乎是線性的。2.梯形求積法運行代碼:for i=1:200 h0(i)=-i*7/200; n=fix(10(-h0(i); r Rlad(i)=lad(n);endplot(h0,Rlad,'b');分析:求積方法的最高精度可以達到10(-14)到10(-15)之間,而當h取到10(-6)時,精度隨h取小開始波動,繼續(xù)
9、減小h并不能保證精度的增加。而在此之前,精度和h的關系幾乎是線性的。3.Simpson求積法運行代碼:for i=1:200 h0(i)=-i*7/200; n=fix(10(-h0(i) r Rsimp(i)=simp(n);endplot(h0,Rsimp,'b');分析:求積方法的最高精度可以達到10(-15)到10(-16)之間,而當h取到10(-2)時,精度隨h取小開始波動,繼續(xù)減小h并不能保證精度的增加。而在此之前,精度和h的關系幾乎是線性的。圖像上存在間斷點,實際上是由于求積方法的精度已經(jīng)超過MATLAB所給出的值,計算機得到的誤差為零,求對數(shù)運算無意義,故出現(xiàn)間
10、斷點。4.三種算法的精度比較在進行前三個積分法的運算的時候,已經(jīng)分別記錄了結果,直接輸出就行。運行代碼:plot(h0,Rrec,'b');hold on;plot(h0,Rlad,'r');hold on;plot(h0,Rsimp,'k');hold on;分析:對于相同的h值,在很長的范圍內,Simpson的精度明顯高于另兩種算法,而矩形法又比梯形法略優(yōu)。三種算法的極限精度以Simpson為最好,可以達到10(-15)到10(-16)之間。5Romberg積分法(固定遞推步數(shù)為5,基于梯形算法)運行代碼:k=5for i=1:200 h0(
11、i)=-i*7/200; n=fix(10(-h0(i) r Rrom(i)=rom(n,k);endplot(h0,Rrom,'b');分析:可以看出,積分精度隨h減小提高地非???。在(-1,0)這個區(qū)間里,便出現(xiàn)了間斷點,說明算法的精度已經(jīng)達到MATLAB所能達到的精度,從而誤差變?yōu)榱?,求對?shù)運算無意義,出現(xiàn)間斷點??v觀函數(shù),最高精度應在10(-15)到10(-16)之間。6.自適應算法(取自適應精度為10(-10)):(1)基于矩形算法 運行代碼:for i=1:200 h0(i)=-i*7/200; n=fix(10(-h0(i) Rarec(i)=Arec(n,-10
12、);endplot(h0,Rarec,'b');(2)基于梯形算法:運行代碼:for i=1:200 h0(i)=-i*7/200; n=fix(10(-h0(i) Ralad(i)=Alad(n,-10);endplot(h0,Ralad,'b');(3)基于Simpson算法 運行代碼:for i=1:200 h0(i)=-i*7/200; n=fix(10(-h0(i) Rasimp(i)=Asimp(n,-10);endplot(h0,Rasimp,'b');(4)基于Romberg算法( 固定遞推步數(shù)為五步) 運行代碼:for i=1:
13、200 h0(i)=-i*7/200; n=fix(10(-h0(i) Rarom(i)=Arom(n,-10);endplot(h0,Rarom,'b');分析:當本來的算法精度低于所給出的自適應精度時,自適應算法對本來算法的精度是有改進作用的,并使算法精度略高于所給出的自適應精度。但是當算法對于具體的h得到的結果的精度高于自適應給出的精度時,自適應算法則對原本的算法無改進作用。而且有些算法的精度隨h的減小提高得特別快(比如說Romberg算法),使用自適應算法后算法精度會明顯高于給出的自適應精度。四、討論 算法的精度主要取決于算法本身、h的大小和機器誤差。幾種算法的精確程度不同,但都要受制于機器本身的誤差,不可能無限地提高精度。當然,并不是說
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)企業(yè)數(shù)據(jù)隱私保護協(xié)議(GDPRCCPA合規(guī))
- 建設工程項目全程法律服務合同
- 機電安全培訓體系構建
- 寵物用品品牌特許經(jīng)營與專業(yè)物流配送服務合同
- 人工智能企業(yè)核心團隊股權綁定與技術創(chuàng)新協(xié)議
- 國際學生行李保險與全球托運質量監(jiān)控合同
- 咯血與便血護理學
- 脊椎治療原則
- 動脈神經(jīng)損傷護理
- 護理創(chuàng)新實踐感悟與思考
- 2024年延安通和電業(yè)有限責任公司招聘筆試真題
- 液壓油供應合同協(xié)議
- 2025-2030煤油產(chǎn)業(yè)規(guī)劃專項研究報告
- 香港勞務服務合同協(xié)議
- 園林噴灑器企業(yè)數(shù)字化轉型與智慧升級戰(zhàn)略研究報告
- GB/T 9065.2-2025液壓傳動連接軟管接頭第2部分:24°錐形
- 道路運輸汛期教育培訓
- 患者投訴處理與護理試題及答案
- 期中考試考后分析總結主題班會《全員出動尋找消失的分數(shù)》
- 房地產(chǎn)市場報告 -2025年第一季度青島寫字樓和零售物業(yè)市場概況報告
- 2025軌道車司機(技師)重點考試題庫及答案(濃縮300題)
評論
0/150
提交評論