數(shù)值分析實(shí)驗(yàn)報告(華科書本實(shí)驗(yàn)41,附C++程序)_第1頁
數(shù)值分析實(shí)驗(yàn)報告(華科書本實(shí)驗(yàn)41,附C++程序)_第2頁
數(shù)值分析實(shí)驗(yàn)報告(華科書本實(shí)驗(yàn)41,附C++程序)_第3頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、華中科技大學(xué)數(shù)值分析實(shí)驗(yàn)報告考生考生學(xué)號班級指導(dǎo)老師路志宏2013年4月15日實(shí)驗(yàn)4.1實(shí)驗(yàn)?zāi)康模簭?fù)化求積公式計(jì)算定積分試驗(yàn)題目:數(shù)值計(jì)算下列各式右端定積分的近似值。31(1)In 2 In 32 二 dx ;2 x 1i 1(2);(3) 3xdx ;In 302 2(4)e 嚴(yán)& ;實(shí)驗(yàn)要求:(1)若用復(fù)化梯形公式、復(fù)化 Simpson公式和復(fù)化 Gauss-Legendre I型公式做計(jì)算,要求絕對誤差限為1 10 7,分別利用他們的余項(xiàng)對每種算法做出2步長的事前估計(jì)。(2) 分別用復(fù)化梯形公式、復(fù)化 Simpson公式和復(fù)化 Gauss-Legendre I 型公式做計(jì)算。(3

2、)將計(jì)算結(jié)果與精確解做比較,并比較各種算法的計(jì)算量。實(shí)驗(yàn)容:1. 公式介紹(1) 復(fù)化梯形公式:h n 1Tn- f(Xk)2 k ofar =2 f(a)n 12 f(Xk) f(b)k 1余項(xiàng):Rn晉h2f'();(2) 復(fù)化Simpson公式:hSn 6kon 1f (xk) 4f(Xk12)f (Xk 1)f (a)n 1n4 f(Xk12)2k 01f(xk) f(b);k 1余項(xiàng):(3)復(fù)化b a“h、44面(2)f ();Gauss-Lege ndre IRn(f)型公式:ba f (x)dx余項(xiàng):RG(f):1(x)dx;hn12 k 07f (xk 1 22. 步長估

3、計(jì)r (2)4(3x1);rf123; maxf1則可以得到:52 ;27 ;2424(x 1)5 (x 1)5);max f,4)5808243估計(jì)步長:Rn (f)2 E ;Simpson公式和復(fù)化將上述結(jié)果分別帶入到復(fù)化梯形公式、復(fù)化Gauss-Legendre I型公式的余項(xiàng)中可以得到:復(fù)化梯形公式:h 5.5816 10 4 ; n 1792 ;復(fù)化 Simpson公式:h 0.0498; n復(fù)化 Gauss-Legendre I 型公式:hf2 壬;21 ;0.0549 ; n 19;x 1則可以得到:f2(2)8(3x2 1);maxi 23(x 1)96(5 x4 10 x2(

4、x 1)51).;max f296估計(jì)步長:Rn (f)將上述結(jié)果分別帶入到復(fù)化梯形公式、復(fù)化Simpson公式和復(fù)化Gauss-Legendre I型公式的余項(xiàng)中可以得到:復(fù)化梯形公式:h 2.7386 10 43652;復(fù)化 Simpson公式:h 0.0350 ;29 ;復(fù)化 Gauss-Legendre I 型公式:0.0388; n 26 ;(3) f33x ;3x(ln3)2 ;則可以得到:f33x(ln3)2 ; max ff3 3x(ln3)4 ; max f3 3x(ln3)41估計(jì)步長:R(f)|- 107 ;將上述結(jié)果分別帶入到復(fù)化梯形公式、復(fù)化Simpson公式和復(fù)化G

5、auss-Legendre I型公式的余項(xiàng)中可以得到:復(fù)化梯形公式:h 4.0707 10 4 ; n 2457 ;復(fù)化 Simpson公式:h 0.0758; n 14 ;復(fù)化 Gauss-Legendre I 型公式:h 0.0838; n 12 ;(4) f4 xex ;則可以得到:f42ex xex ; max f44e2 ;f4 4ex xex ; max f46e21估計(jì)步長:R(f)|- 10 7 ;將上述結(jié)果分別帶入到復(fù)化梯形公式、復(fù)化Simpson公式和復(fù)化Gauss-Legendre I型公式的余項(xiàng)中可以得到:復(fù)化梯形公式:h 1.4248 10 4 ; n 7019 ;復(fù)

6、化 Simpson公式:h 0.0424 ; n 24 ;復(fù)化 Gauss-Legendre I 型公式:h 0.0469 ; n 22 ;3. C+編程計(jì)算結(jié)果(1)區(qū)間逐次分半求積法:依據(jù)“事后誤差法”,將區(qū)間逐次分半進(jìn)行計(jì)算,并利用前后兩次計(jì)算結(jié)果 來判斷誤差的大小。在逐次二分進(jìn)行計(jì)算時,可以用T2n與Tn來估計(jì)誤差,這種直接用計(jì)算結(jié)果來估計(jì)誤差的方法通常稱作誤差的事后估計(jì)法,若 |T2n Tn| ' 3 (為計(jì)算結(jié)果允許的誤差),則停止計(jì)算,并取T2n作為積分 的近似值;否則將區(qū)間再次二分后算出T4n,并檢驗(yàn)不等式T2n| '是否滿足。 由于是區(qū)間分半,因此區(qū)間等分?jǐn)?shù)必

7、定是2的n次方。(2)流程圖:(3)計(jì)算結(jié)果及誤差:分別對4題作復(fù)化Trapezoid、Simpson、Gauss_Legendre計(jì)算,并計(jì)算計(jì)算值與精確值之間的誤差,結(jié)果如下表:(1) In 2 In 32dx計(jì)算結(jié)果表2 x2 1數(shù)據(jù)類型 求積類型(1) ln 2 ln32 3dx2 x2 1計(jì)算值區(qū)間二分相鄰誤差絕對誤差區(qū)間二分等分復(fù)化Trapezoid 公-0.405465124.18e-0081.3935e-0082A1仁2048式2043509復(fù)化Simps on 公-0.405465102.76e-0081.8447e-0092A5=32式9952908Gauss._Legen

8、dre-0.405465101.84e-0081.2298e-0092A5=32公式6878386(2)4 1J dx計(jì)算結(jié)果表0x21、數(shù)據(jù)類型 求積類型、1(2)40x21dx計(jì)算值區(qū)間二分相鄰誤差絕對誤差區(qū)間二分等分復(fù)化Trapezoid 公3.14159261.19e-0073.9736e-0082A1仁2048式1385336復(fù)化Simps on 公3.14159261.49e-0072.365e-0092A3=8式5122482Gauss._Legendre3.14159261.06e-0071.6818e-0092A3=8公式55271552 1(3)3xdx計(jì)算結(jié)果表In 30

9、'、數(shù)據(jù)類型 求積類型2(3)丄In 313xdx0計(jì)算值區(qū)間二分相鄰誤差絕對誤差區(qū)間二分等分復(fù)化Trapezoid公1.8204781.31e-0074.3655e-0082A1仁2048式4969086復(fù)化 Simpson公1.8204781.32e-0088.7812e-0102A5=32式4541318Gauss_Lege ndre1.8204781.4e-0079.3656e-0092A4=16I公式4438881(4) e2:xexdx計(jì)算結(jié)果表、數(shù)據(jù)類型 求積類型(4)e2上匕計(jì)算值區(qū)間二分相鄰誤差絕對誤差區(qū)間二分等分復(fù)化Trapezoid公式7.389056119706

10、126.23e-0082.0775e-0082A13=8192復(fù)化Simpson公式7.389056107563761.29e-0078.6331e-0092A5=32Gauss_Lege ndreI公式7.389056093175268.63e-0085.7554e-0092A5=32由上表中的誤差分析可知,利用題目所要求的復(fù)化求積公式運(yùn)算的結(jié)果均在 絕對誤差限210 7,精度滿足要求。由各種 算法的步長可知,復(fù) 化梯形公式、復(fù)化Simpson公式和復(fù)化 Gauss_Legendrel公式在相同精度的情況下,其步長依次減少,相應(yīng)地,其計(jì)算 量也依次遞減。四、總結(jié)由于計(jì)算過程使用的“事后誤差估

11、計(jì)法”,區(qū)間分半,因此區(qū)間都是劃分為2的k次方等分,因此最后實(shí)際等分?jǐn)?shù)應(yīng)該是大于由余項(xiàng)計(jì)算得出的區(qū)間等分?jǐn)?shù)31的某個2的k次方。例如(1)In 2 In 32 詁dx,由余項(xiàng)計(jì)算法求出的復(fù)2 x21化梯形公式、Simpson公式、Gauss_Legendrel公式的區(qū)間等分?jǐn)?shù)n分別為1792、 21、19,而“事后誤差估計(jì)法”的區(qū)間等分?jǐn)?shù) n為相應(yīng)的2048、32、32,這個 結(jié)果符合實(shí)際情況。這次數(shù)值分析試驗(yàn),加深我對復(fù)化求積公式的理解。通過此次數(shù)值分析試驗(yàn),我掌握了利用復(fù)化求積公式求解定積分的方法。相信,在未來的科研中,作為數(shù)值計(jì)算基本工具的復(fù)化求積方法,一定會為科研過程中遇到的數(shù)值計(jì)算問

12、題提供極大的便利感與我共同探討該問題的幾位同學(xué),感知識淵博的路老師!5附C+程序#include <iostream>#include <iomanip>#include <math.h>using namespace std;int N; /*全局變量N,作為題號輸入的同時選擇對應(yīng)的f(x)函數(shù)*/double a,b,t,s,g,tol=0.5e-7;菜單函數(shù)*double f( double x);/*int select_menu()dosystem("cls"); cin>>N;while (N<0|N>

13、4);return N; int main() 主函數(shù)*double v1,v2,v3,v4,e;double Trapezoid(),Simpson(),Gauss_Legendre();cout<<setw(40)vv "實(shí)驗(yàn) 4.1" <<endl<<"請輸入題號 1-4,將依次以復(fù)化梯形、Simpson、Gauss_Legendre 公式"vvendl;for (;)switch (select_menu() /*switch 循環(huán)選擇題號 */case(1):a=2;b=3;v1=log(a)-log(b);

14、coutvv"實(shí)驗(yàn) 4.1 題(1)的精確計(jì)算值為:"vvsetprecision(15)vv "v=" v<v1<vendl;coutvv"復(fù)化梯形公式計(jì)算機(jī)結(jié)果:";Trapezoid();coutvv"絕對誤差: e=" vvsetprecision(5)vvabs(v1-t)vv " v0.5e-007" vvendl;coutvv"復(fù)化Simpson公式計(jì)算結(jié)果:"Simpson();coutvv"絕對誤差: e="v<setp

15、recision(5)vvabs(v1-s)vv " <0.5e-007" vvendl;coutvv" 復(fù)化 Gauss_Legendre結(jié)果 :"Gauss_Legendre();coutvv"絕對誤差: e=" vvsetprecision(5)vvabs(v1-g)vv " v0.5e-007" vvendl;system( "pause>nul");break;case(2):a=0;b=1;v2=3.979;coutvv"實(shí)驗(yàn) 4.1 題(2)的精確計(jì)算值為:&

16、quot;vvsetprecision(15)vv "v=" vvv2vvendl;coutvv "復(fù)化梯形公式計(jì)算機(jī)結(jié)果:";Trapezoid();coutvv"絕對誤差: e="vvsetprecision(5)vvabs(v2-t)vv " v0.5e-007" vvendl;coutvv"復(fù)化Simpson公式計(jì)算結(jié)果:"Simpson();0.5e-007"coutvv"vvendl;絕對誤差:e="vvsetprecision(5)vvabs(v2-s

17、)vv"vcoutvv"復(fù)化 Gauss_Legendre結(jié)果 :II .Gauss_Legendre();coutvv"絕對誤差:e="vvsetprecision(5)vvabs(v2-g)vv"v0.5e-007"vvendl;system( "pause>nul");break;case(3):a=0;b=1;v3=2/log(3);coutvv"實(shí)驗(yàn)4.1題 的精確計(jì)算值為:coutvv "復(fù)化梯形公式計(jì)算機(jī)結(jié)果:"vvsetprecision(15)vv "

18、v=" vvv3«endl;II .Trapezoid();0.5e-007"coutvv" vvendl; |絕對誤差:e="vvsetprecision(5)vvabs(v3-t)vv"vcoutvv"復(fù)化Simpson公式計(jì)算結(jié)果:Simpson();II .coutvv"絕對誤差:e="vvsetprecision(5)vvabs(v3-s)vv"v0.5e-007"vvendl;coutvv"復(fù)化 Gauss_Legendre結(jié)果 :II .Gauss_Legend

19、re();coutvv"絕對誤差:e="vvsetprecision(5)vvabs(v3-g)vv"v0.5e-007"vvendl;system( "pause>nul"); break;case(4):a=1;b=2;v4=exp(2);coutvv"實(shí)驗(yàn) 4.1 題(4)的精確計(jì)算值為:"vvsetprecision(15)vv "v=" <<v4<<endl;coutvv "復(fù)化梯形公式計(jì)算機(jī)結(jié)果:";Trapezoid();coutv

20、v"絕對誤差: e="vvsetprecision(5)vvabs(v4-t)vv " <0.5e-007" vvendl;coutvv" 復(fù)化Simpson公式計(jì)算結(jié)果:"Simpson();coutvv"絕對誤差: e="vvsetprecision(5)vvabs(v4-s)vv " v0.5e-007" vvendl;coutvv" 復(fù)化 Gauss_Legendre結(jié)果 :"Gauss_Legendre();coutvv"絕對誤差: e="

21、vvsetprecision(5)vvabs(v4-g)vv " v0.5e-007" vvendl;system( "pause>nul");break;case(0):coutvv "選擇退出"vvendl;exit(0);/break;return 0;*Trapezoid公式*double Trapezoid()int k=1,i,n;double t0=0,h,sum;t=(f(a)+f(b)*(b-a)/2;while (abs(t-t0)>=(tol*3)/*事后誤差估計(jì),驗(yàn)證前后兩次區(qū)間分半后的計(jì)算值是否小

22、于是,則循環(huán)結(jié)束*/sum=0;n=2;n=nvv(k-1);t0=t;h=(b-a)/n;for (i=1;ivn;i+)sum+=f(a+i*h);t=h*(f(a)+f(b)/2+h*sum;k=k+1;coutvvsetprecision(15)vv "t=" vvtvv"區(qū)間等分:n=2A" vvk-1vv"" vv"=" vvnvvendl;coutvvsetprecision(3)vv "相鄰誤差:abs(t-t0)=" vvabs(t-t0)vv3*tol,若1.50e-007&

23、quot; vvendl;return t;/*Simpson工式 */double Simpson()int k=1,i,n;double s0=0,h,sum,sum1;s=(f(a)+4*f(a+b)/2)+f(b)*(b-a)/6;while (abs(s-s0)>=(tol*3)/*事后誤差估計(jì),驗(yàn)證前后兩次區(qū)間分半后的計(jì)算值是否小于是,則循環(huán)結(jié)束*/3*tol,若sum=0;n=2;n=n«(k-1);s0=s;h=(b-a)/n;sum 1= f(a+h/2);for (i=1;i<n;i+)sum+=f(a+i*h);sum1+=f(a+i*h+h/2);

24、s=h*(f(a)+4*sum1+2*sum+f(b)/6;k=k+1;coutvvsetprecision(15)vv "s=" vvsvv"區(qū)間等分:n=2A" vvk-1vv"" vv"=" vvnvvendl;cout<<setprecision(3)vv相鄰誤差:abs(s-s0)=" <<abs(s-s0)vv1.50e-007" vvendl;return s;*Gauss_Legendre公式*/double Gauss_Legendre() int k=

25、1,i,n;double g0=0,h,sum;3*tol,若g=(f(a+b)/2-(b-a)/(2*sqrt(3)+f(a+b)/2+(b-a)/(2*sqrt(3)*(b-a)/2;while (abs(g-g0)>=(tol*3)/*事后誤差估計(jì),驗(yàn)證前后兩次區(qū)間分半后的計(jì)算值是否小于是,則循環(huán)結(jié)束*/sum=0;n=2;n=nvv(k-1); g0=g;h=(b-a)/n;for (i=0;ivn;i+)sum+=(f(a+i*h+h/2-h/(2*sqrt(3)+f(a+i*h+h/2+h/(2*sqrt(3);g=h*sum/2;k=k+1;cout<<setp

26、recision(15)vv "g=" vvgvv" 區(qū)間等分:n=2A" vvk-1vv"" <<"=" vvnvvendl;cout<<setprecision(3)vv相鄰誤差:abs(g-g0)=" <<日匕$9勺0)<< " <1.50e-007" vvendl;return g;依據(jù)題號自動選擇對應(yīng)的f(x) I函數(shù) *double f( double x)switch (N)二| case(1): return (-2

27、.0/(x*x-1); break; |case(2): return (4.0/( x*x+1); break; case(3): return (pow(3, x); break; case(4): return (x*(exp( x); break;二return 0;請軸吒總詩-4 ”將依我L;煩化梯形、G Imps art、 Gaus*_Lesendre蟲弍"CT t nd vt i怛* itr'-i 3 x '.crnd. rt=-e.43E4tS12?e435ffi 廢司手計(jì)i n=3Ail204H absCt-tO> =4.ISb-CMB <

28、; L.59e-BB7O-l,393Sft-l»S < e.S&-«07a-也4陽帕畀曲啊工怦*區(qū)間尊卅! n-K-32rthnCs-s»>-2.76 HtW < 1 .fll W?< e.sv ee?<-S.4B54£5L(K87838&7 司手訐【n =25=32ahsCg-ffB>=l.84C-OB8 < 1.50E-B07 e*l,229«t-aH!T < B.S*-SH?t.l«5»26U8536區(qū)1 百弄訐i (1-2"11-284SabsC

溫馨提示

  • 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

提交評論