




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.專業(yè)整理 .學(xué)習(xí)幫手 .計(jì)算方法實(shí)驗(yàn)報(bào)告班級(jí):學(xué)號(hào):姓名:成績:1 舍入誤差及穩(wěn)定性一、 實(shí)驗(yàn)?zāi)康?1) 通過上機(jī)編程,復(fù)習(xí)鞏固以前所學(xué)程序設(shè)計(jì)語言及上機(jī)操作指令;(2) 通過上機(jī)計(jì)算,了解舍入誤差所引起的數(shù)值不穩(wěn)定性二、 實(shí)驗(yàn)內(nèi)容10000 1、 用兩種不同的順序計(jì)算、n,分析其誤差的變化n 2、 已知連分?jǐn)?shù)f =b0a1,利用下面的算法計(jì)算d +a2/(b2+a3/(. +an/bj )3i 1 dn=bn,di=bi (i = n 1, n 2,. ,o)f =d。寫一程序,讀入n,g,b1,., bn,印,.,a.,計(jì)算并打印f 3、給出一個(gè)有效的算法和一個(gè)無效的算法計(jì)算積分已知其精
2、確值為(1) 編制按從大到小的順序計(jì)算sn的程序(2) 編制按從小到大的順序計(jì)算sn的程序n x 4x 1 dx (n = 0,1,., 10) 設(shè)sn.專業(yè)整理 .學(xué)習(xí)幫手 .(3) 按兩種順序分別計(jì)算$000,30000, s30000,并指出有效位數(shù).專業(yè)整理 .學(xué)習(xí)幫手 .三、實(shí)驗(yàn)步驟、程序設(shè)計(jì)、實(shí)驗(yàn)結(jié)果及分析10000 1、用兩種不同的順序計(jì)算a n,, 分析其誤差的變化n 4(1)實(shí)驗(yàn)步驟:分別從 110000 和從 100001 兩種順序進(jìn)行計(jì)算,應(yīng)包含的頭文件有math.h (2)程序設(shè)計(jì):a.順序計(jì)算#in clude#in clude void mai n() double
3、 sum=0; int n=1; while(1) sum=sum+(1/pow (n, 2); if(n %1ooo=o)pri ntf(su n%d=%-30f ,n, sum); if(n =10000)break; n+; prin tf(sum%d=%fn,n, sum); stdio.h 和.專業(yè)整理 .學(xué)習(xí)幫手 .b.逆序計(jì)算#in clude #in clude void mai n() double sum=0; int n=10000; while(1) sum=sum+(1/pow (n, 2); if(n %1000=0) prin tf(sum%d=%-30f ,n,
4、 sum); if(n=1)break; n-; prin tf(sum%d=%fn,n, sum); (3)實(shí)驗(yàn)結(jié)果及分析程序運(yùn)行結(jié)果:a.順序計(jì)算.專業(yè)整理 .學(xué)習(xí)幫手 . *d: 計(jì)算方法日g1i 實(shí)習(xí)題一debllgl.l.exe*l_un(10001-64393ssun2000sl,64441413000j-l,644601sun 140001=1.64468450001-1.644734sun60001=1-64476?(78001=1.644791sun3008)-1,644809sun 19000j=1sun10000j =1?644834sum1000011-644834pr
5、ess any key to continueb.逆序計(jì)算t *d: 計(jì)算方法皿日gli s實(shí)習(xí)題一debu gl ,1.2 .exe-0,000000sumr?000=0.000011sum80001=0 k 000025shfie?009 1 -0 ? 000043sum e60091=0.0000&?sunt5000 -0*000100sunt 4003 =8,000150sune3000=0.000233sunt 2009 j 0.000400sunel0003=0? 000901cum11=1-644834fiess anv key to continue結(jié)果分析:兩種不同順
6、序計(jì)算結(jié)果是一樣的,順序計(jì)算誤差從一開始就很小,而逆序計(jì)算誤差最開始十分大,后來結(jié)果正確。2、已知連分?jǐn)?shù)f = b。電,計(jì)算f : d +a2 /仇+a3/(. +an/bn)(1) 實(shí)驗(yàn)步驟:a?l利用dn 二bn,di 二bi (i = n -1, n - 2,. ,,) f 二d。,計(jì)算f dr (2) 程序設(shè)計(jì)#in clude #in clude void mai n() int i=0, n; .專業(yè)整理 .學(xué)習(xí)幫手 .float a1024,b1024,d1024; prin tf(please in put n,n=”);scan f(%d,&n); prin tf(n
7、please in put a1 to an :n); for(i=1;i=n ;i+) prin tf(a%d=,i); sca nf(%f,&ai); prin tf(nplease input b0 to bn :n); for(i=0;i=0;i_) di=bi+ai+1/di+1; .專業(yè)整理 .學(xué)習(xí)幫手 .prin tf(nf=%fn,do); (3) 實(shí)驗(yàn)結(jié)果程序運(yùn)行結(jié)果?* d:計(jì)算方法即日gti e實(shí)習(xí)題一debu gldplease input n,n =4please input a el 1 to an:險(xiǎn)1-5ae2j3ae3j-2ae4j=lplease i
8、nput b0j to ben:h01=6htll-4he2-7he3-8he4j=3f=7.132666press any key to con七士“卍3、給出一個(gè)有效的算法和一個(gè)無效的算法計(jì)算積分(1)實(shí)驗(yàn)步驟利用 c 語言編寫程序,分別使用數(shù)值穩(wěn)定的和數(shù)值不穩(wěn)定的計(jì)算公式所建立的遞推公式進(jìn)行計(jì)算。(2)程序設(shè)計(jì)#in clude #in clude main () double y_0=(1/4.0)*log(5),y_1; double y_2=(1.0/55.0+1.0/11.0)/2,y_3; int n=1,m=10; printf ( ”有效算法輸出結(jié)果:n); prin tf
9、(y0=%-20f,y_0); while(1) n x 4x 1 dx (n = 0,1,10) yn =.專業(yè)整理 .學(xué)習(xí)幫手 .y_1= 1.0/(4* n)+y_0/(-4.0); prin tf(y%d=%-20f ,n, y_1); if(n=10) break; y_0=y_1; n+; if(n %3=0) pri ntf(n ”); printf(n 無效算法的輸出結(jié)果:n); prin tf(y10=%-20f,y_2); while(1) y_3=1.0/n-4.0*y_2; prin tf(y%d=%-20f,m-1,y_3); if(m0.402359y 13=0-1
10、49410vt21=0-08764?y 3 0.061421y43=0-047145y53=0.03821463=8.032113v73=0-027686vl81=0.02432?=0.021696y101=0.019576憶效算法的輸岀結(jié)果:t/10=0.fls4545vc9 0.11b182ye81=0.57272?6 8.8&3638t5=-35.354545y43=141.518182t/c3=-565.9?2727y 2 2263.990909y iii 9055.863636y8336223-554545press 辦it事hej; to continue.專業(yè)整理 .學(xué)習(xí)
11、幫手 .結(jié)果分析:無效算法數(shù)值不穩(wěn)定,誤差造成的影響特別大13 1 1 - 一- 一2 2 n n 1 (1) 實(shí)驗(yàn)步驟先編程按從大到小的順序計(jì)算sn的程序,再編程按從小到大的順序計(jì)算sn的程序,然后按兩種順序分別計(jì)算s1000, so。, s30000。(2) 程序設(shè)計(jì)#in clude main () int n; double sn30000; sn30000=(3.0/2.0-1.0/30000.0-1/30001.0)/2.0; for(n=30000;n=2;n-) snn-1=snn-1.0/(n*n-1); printf ( ”從 大至 u 小 順 序 計(jì) 算:nsn1000=
12、%fnsn10000=%fnsn30000=%fn,sn1000,sn10000,sn30000); sn2=(3.0/2-1.0/2.0-1/3.0)/2.0; for(n=3;n=30000;n+) snn=snn-1+1.0/(n*n-1); printf ( ”從 小至 u 大 順 序 計(jì) 算:nsn1000=%fnsn10000=%fnsn30000=%fn,sn1000,sn10000,sn30000); (3) 實(shí)驗(yàn)結(jié)果及分析程序運(yùn)行結(jié)果* d: 計(jì)算肯法aglish i 實(shí)習(xí)題一debug14.exe以大到小順序計(jì)耳sntl0003=0.749000 sne10000j-0.7
13、49900 sni:30000=0-74?96? 以小到大順序計(jì)算:en10081=8.749000 100001=0?747歹0國3000010 ? 74 夕¥ 67 press any key to continue 結(jié)果分析:不同順序計(jì)算所得結(jié)果是一樣的。n4、設(shè)sn=二j 2,已知其精確值為.專業(yè)整理 .學(xué)習(xí)幫手 .四、總結(jié)通過這次上機(jī),學(xué)習(xí)了解了舍入誤差在不同算法時(shí)對(duì)結(jié)果的影響不同,穩(wěn)定的算法才能獲得正確的結(jié)果。2 方程求根一、 實(shí)驗(yàn)?zāi)康模?) 通過對(duì)二分法與牛頓迭代法做編程練習(xí)和上機(jī)運(yùn)算,進(jìn)一步體會(huì)二分法和牛頓法的不同。(2)編寫割線迭代法的程序,求非線性方程的解,并與牛頓迭代法作
14、比較。二、 實(shí)驗(yàn)內(nèi)容1、 用牛頓法求下列方程的根(1)x2 - ex = 0 (2)xex -1 = 0 (3)lg x x - 2=0 2、 編寫割線法程序求解第一問的方程三、 實(shí)驗(yàn)步驟、程序設(shè)計(jì)、實(shí)驗(yàn)結(jié)果及分析1、牛頓法(1)實(shí)驗(yàn)步驟通過定義牛頓法求方程的子函數(shù),用main 函數(shù)調(diào)用子函數(shù)求根(2)程序設(shè)計(jì)#in elude #in elude typedef float (*p)(float ); .專業(yè)整理 .學(xué)習(xí)幫手 .float ff1(float x) retur n x*x-exp(x); float ff2(float x) retur n x*exp(x)-1; float
15、 ff3(float x) return log(x)+x-2; float an swer(float(*p)(float) int k=2; float m=1, n=-1,x2,a,b,c; if (p=ff3) n=2; prin tf(x0 = %.4f, x1 = %.4f, ,m, n); while (1) if (fabs(m-n) 1e-4) break; a=p( n)*( n-m); b=p( n)-p(m); .專業(yè)整理 .學(xué)習(xí)幫手 .c=a/b; x2=n-c; m = n; n = x2; prin tf(x%d = %.4f, ,k,x2); k+; if (k
16、%3=0) pri ntf(n ”); if (k%3!=0) pri ntf(n ”);prin tf(iteration times: %d, roots: %.4fn ,k-2, n); return 0; main () prin tf(x*x-exp(x),n); an swer(ff1); prin tf(x*exp(x)-1,n); an swer(ff2); .專業(yè)整理 .學(xué)習(xí)幫手 .prin tf(lg(x)+x-2,n); an swer(ff3); return 0; (3) 實(shí)驗(yàn)結(jié)果及分析float x 仁 2.2; float x2=2,x3; scan f(%d,&
17、amp;i); if(i=1) printf(%f,x1); else if(i=2) prin tf(%f,x2); else for( j=3;j=i;j+) x3=gexia n( x1,x2); x1=x2; x2=x3; prin tf(%f,gexia n(x1,x2); float f(float x) x*exp x tu = 1.0000, xe3j = 3.54?5, xe6j 蘭1.1458, xe9 = 0_59fc3, 121 = 0.5671, .專業(yè)整理 .學(xué)習(xí)幫手 . return (x*x-exp(x); .專業(yè)整理 .學(xué)習(xí)幫手 .float gexia n(
18、 float x1,float x2) return (x2-(f(x2)/(f(x2)-f(x1)*(x2-x1); (3) 實(shí)驗(yàn)結(jié)果及分析c*x e xp , = 1.0003r xdl - -1.0000, xc21 = -b-4621, =陌.6757, x4j = 7063, x【5】=-0-7034, xegj = -0.7035, iteration t ines : 5 r toots- 07035 xtlj = -1.0000, xc2 - -b.1135p xc41 = -0.0809, xcs = -0.0493. xe7j = 0-2934. x8j = 0-4545,
19、 0.5963, x101 - 0,5644, xclll - b-5671,iteration t imes: 11, roots : 0-5671 19fcx +x-2, x0j - 1.0000. xclj - 2.0080, xe2j k【3j = 1.5555, x4j = 1.5572, x(5 iteration t ? 4 - ioots * 1.5571 四、總結(jié)了解和學(xué)習(xí)了二分法和牛頓迭代法的思想以及程序設(shè)計(jì)的方法,比較了迭代法和牛頓法的特點(diǎn):牛頓法收斂速度較快,但對(duì)初值選取要求較高;割線法計(jì)算量少。3 線性方程組數(shù)值解法- 、實(shí)驗(yàn)?zāi)康?1) 熟悉求解線性方程組的有關(guān)理論和
20、方法;(2) 會(huì)編制列主元消去法,lu 分解法,雅可比及高斯-賽德爾迭代法的程序(3) 通過實(shí)際計(jì)算,進(jìn)一步了解各種方法的優(yōu)缺點(diǎn),選擇合適的數(shù)值方法二、實(shí)驗(yàn)內(nèi)容1、 用列主元消去法解方程組x121 =0.5671, x?exptx 1 * 乂i 眄=1.0008p x31 = 3.5495* xe6j = 1.1458, 1-5906, 1.s571, .專業(yè)整理 .學(xué)習(xí)幫手 .2、 用 lu 分解法解方程組三、實(shí)驗(yàn)步驟、程序設(shè)計(jì)、實(shí)驗(yàn)結(jié)果及分析1、用列主元消去法解方程組( 1) 程序設(shè)計(jì)#in clude #in clude void colpivot(float*, in t,float)
21、; void colpivot(float*c,int n,float x) int i,j,t,k; float p; for(i=0;i=n_ 2;i+) k=i; for( j=i+1;j(fabs(*(c+k*( n+1)+i) k=j; if(k!=i) for(戸;j=n;j+) .專業(yè)整理 .學(xué)習(xí)幫手 .p=*(c+i*( n+1)+j); *(c+i*( n+1)+j)=*(c+k*( n+1)+j); *(c+k*( n+1)+j)=p; for( j=i+1;j=n_1;j+) p=(*(c+j* (n+1)+i)/(*(c+i*( n+1)+i); for(t=i;t=0
22、;i_) for( j=n_1;j=i+1;j_) (*(c+i* (n +1)+n)-=xj*(*(c+i*( n+1)+j); xi=*(c+i*( n+1)+n)/(*(c+i*( n+1)+i); void mai n() int i; float x4; float c45=1,1,0,3,4,2,1,-1,1,1,3,-1,-1,3,-3,-1,2,3,-1,4;.專業(yè)整理 .學(xué)習(xí)幫手 .colpivot(c0,4,x); for(i=0;i=3;i+) prin tf(x%d=%fn,i,xi); ( 2) 實(shí)驗(yàn)結(jié)果及分析(1)題d 計(jì)胃方法n g i i e h i,實(shí)習(xí)題三d
23、e bug3.1.exehrb 1-1.333333 13=2.333333 21=0-333333 e3j-i,000000 ani/ key to continue 題d 計(jì)算方法0皆glish l 實(shí)習(xí)題三dmb lig3.1.ex?hr01-6.999999 15=3.000000 21-2,000900 c3 j-=2.008000 i*ess key to continue 2、用 lu 分解法解方程組( 1) 程序設(shè)計(jì)#in clude void mai n() float x4; .專業(yè)整理 .學(xué)習(xí)幫手 .int i; float a45=48,-24,0,-12,4, -24
24、,24,12,12,4, 0620,2,-2, -6,6,2,16,-2 ; void directlu(float*, in t,float); directlu(a0,4,x); for(i=0;i=3;i+)pri ntf(x%d=%fn,i,xi); void directlu(float*u,int n,float x) int i,r,k; for(r=0;r=n _1;r+) for(i=r;r=n ;i+) for(k=0;k=r-1;k+) *(u+r*( n+1)+i)-=*(u+r*( n+1)+k)*(*(u+k*( n+1)+i); for(i=r+1;i=n _1;
25、i+) for(k=0;k=0;i_) for(r= n-1;r=i+1;r-) *(u+i*( n+1)+n)-=*(u+i*( n+1)+r)*xr; xi=*(u+i* (n+1)+n)/(*(u+i*( n+1)+i); 四、總結(jié)掌握了用列主元消去法和lu 分解法求解方程組程序編寫的技巧4 插值法一、 實(shí)驗(yàn)?zāi)康模?) 熟悉拉格朗日插值法多項(xiàng)式和牛頓插值多項(xiàng)式,注意其不同點(diǎn);(2) 掌握三次樣條插值解決一些實(shí)際問題。二、 實(shí)驗(yàn)內(nèi)容1、 按所給數(shù)據(jù)做二次插值,并求給定點(diǎn)的函數(shù)值2、 按所給數(shù)據(jù)做五次插值,并求給定點(diǎn)的函數(shù)值.專業(yè)整理 .學(xué)習(xí)幫手 .3、 牛頓前插公式計(jì)算函數(shù)值三、 實(shí)驗(yàn)步驟
26、、程序設(shè)計(jì)、實(shí)驗(yàn)結(jié)果及分析1、二次插值(1)程序設(shè)計(jì)#in clude float lagra nge(float x,float y,float xx,i nt n) int i,j; float *a,yy=0; a=new float n; for(i=0;i=n _1;i+) ai=yi; for( j=o;j=n_1;j+) if(j!=i)ai*=(xx-xj)/(xi-x j); yy+=ai; delete a; return yy; void mai n() float x5=-3.0,-1.0,1.0,2.0,3.0; n 為( n+1)次插值;.專業(yè)整理 .學(xué)習(xí)幫手 .f
27、loat y5=1.0,1.5,2.0,2.0,1.0; float xx 仁-2,xx2=0,xx3=2.75,yy1,yy2,yy3; yy 仁 lagra nge(x,y,xx1,3); yy2=lagra nge(x,y,xx2,3); yy3=lagra nge(x,y,xx3,3); prin tf(x1=%-20f,y 1=%fn ,xx1,yy1); prin tf(x2=%-20f,y2=%fn,xx2,yy2); prin tf(x3=%-20f,y3=%fn,xx3,yy3); ( 2) 實(shí)驗(yàn)結(jié)果2、五次插值(1) 程序設(shè)計(jì)#in clude float lagrange
28、(float x,float y,float xx,int n) n 為( n+1 ) 次插值; int i,j; float *a,yy=0; a=new float n; .專業(yè)整理 .學(xué)習(xí)幫手 .for(i=0;i=n _1;i+) ai=yi; for( j=o;j=n_1;j+) if(j!=i)ai*=(xx-xj)/(xi-x j); yy+=ai; delete a; return yy; void mai n() float x6=0.30,0.42,0.50,0.58,0.66,0.72; float y6=1.04403,1.08462,1.11803,1.15603,1
29、.19817,1.23223; float xx 仁 0.46,xx2=0.55,xx3=0.60,yy1,yy2,yy3; yy 仁 lagra nge(x,y,xx1,6); yy2=lagra nge(x,y,xx2,6); yy3=lagra nge(x,y,xx3,6); prin tf(x1=%-20f,y 1=%fn ,xx1,yy1); prin tf(x2=%-20f,y2=%fn,xx2,yy2); prin tf(x3=%-20f,y3=%fn,xx3,yy3); .專業(yè)整理 .學(xué)習(xí)幫手 .(2) 實(shí)驗(yàn)結(jié)果3、牛頓前插公式計(jì)算函數(shù)值( 1) 程序設(shè)計(jì)#in clude #
30、defi ne n 3 void difference(float y,float f44,int n) int k,i; f00=y0;f10=y1;f20=y2;f30=y3; for(k=1;k=n ;k+) for(i=0;i=(n-k);i+) fik=fi+1k-1-fik-1; return; void mai n() int i,k=1; .專業(yè)整理 .學(xué)習(xí)幫手 .float a,b=1,m=21.4,t=1.4,f44=0; float x5=20,21,22,23,24; float y5=1.30103,1.32222,1.34242,1.36173,1.38021; d
31、iffere nce(y,f,n); a=f00; for(i=1;i=n;i+) k=k*i; b=b*(t-i+1); a=a+b*foi/k; prin tf(x(k)n); for (i=0;i=4;i+) prin tf( %-20f,xi); prin tf(ny(k)n); for (i=0;i=4;i+) prin tf(%-20f,yi); for(k=1;k=3;k+) prin tf(nf(%d)n ,k); for(i=0;i=(3-k);i+) prin tf(%-20f,fik); .專業(yè)整理 .學(xué)習(xí)幫手 . printf (n); prin tf(f(%f)=%-
32、20f,m,a); printf (n); .專業(yè)整理 .學(xué)習(xí)幫手 .(2)實(shí)驗(yàn)結(jié)果四、總結(jié)學(xué)習(xí)了插值法,學(xué)會(huì)了利用插值法編程求多項(xiàng)式的解,可以求解很多問題,讓求解多項(xiàng)式解變得非常簡單。5 曲線擬合、實(shí)驗(yàn)?zāi)康模?)了解最小二乘法的基本原理,通過計(jì)算機(jī)解決實(shí)際問題;(2)了解超定方程組的最小二乘解法。二、實(shí)驗(yàn)內(nèi)容2 bx 1、 分別用拋物線y=a bx cx和指數(shù)曲線y =ae擬合所給數(shù)據(jù),并比較這兩個(gè)擬合函數(shù)的優(yōu)劣。2 2、 按所給實(shí)驗(yàn)數(shù)據(jù),用形如y二a bx的拋物線進(jìn)行最小二乘擬合。三、程序設(shè)計(jì)、結(jié)果分析1、分別用拋物線y = a bx cx2和指數(shù)曲線y = aebx擬合所給數(shù)據(jù)a.拋物線
33、.專業(yè)整理 .學(xué)習(xí)幫手 .( 1) 程序設(shè)計(jì):#in clude #in clude void mai n() int i; float a3; float x15=1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8; float y15=33.4,79.50,122.65,159.05,189.15,214.15,238.65,252.50,267.55,280.50,296.65,301.4 0,310.40,318.15,325.15; void approx(float,float,i nt,i nt,float); approx(x,y,15,2,
34、a); for(i=0;i=2;i+) prin tf(a%d=%fn,i,ai); void approx(float x,float y,i nt m,i nt n, float a) int i,j,t; float *c=new float( n+1)*( n+2); float power(i nt,float); void colpivot(float *,i nt,float); for(i=0;i=n ;i+) .專業(yè)整理 .學(xué)習(xí)幫手 . for( j=o;j=n;j+) *(c+i* (n+2)+j)=0; for(t=0;t=m-1;t+) *(c+i* (n+2)+j)+
35、=power(i+j,xt); *(c+i*( n+2)+n+1)=0; for( j=0;j=m-1;j+) *(c+i* (n+2)+n+1)+=yj*power(i,x colpivot(c, n+1,a); delete c; void colpivot(float *c,int n,float x) int i,j,t,k; float p; for(i=0;i=n_ 2;i+) k=i; for( j=i+1;j(fabs(*(c+k*( n+1)+i) j); .專業(yè)整理 .學(xué)習(xí)幫手 .k=j; if(k!=i) for(戸;j=n;j+) p=*(c+i*( n+1)+j);
36、*(c+i*( n+1)+j)=*(c+k*( n+1)+j); *(c+k*( n+1)+j)=p; for( j=i+1;j=n_1;j+) p=(*(c+j* (n+1)+i)/(*(c+i* (n+1)+i); for(t=i;t=0;i_) for( j=n_1;j=i+1;j_) (*(c+i* (n +1)+n)-=xj*(*(c+i*( n+1)+j); xi=*(c+i*( n+1)+n)/(*(c+i*( n+1)+i); float power(i nt i,float v) float a=1; while(i-)a*=v; .專業(yè)整理 .學(xué)習(xí)幫手 .return a;
37、 (2) 實(shí)驗(yàn)結(jié)果a(0j45.333195 afl1-94.230103 a(21=6.1315972、最小二乘擬合( 1) 程序設(shè)計(jì)#in clude #in clude void mai n() int i,n; float a2; float x15=1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,z15; float y15=33.4,79.50,122.65,159.05,189.15,214.15,238.65,252.50,267.55,280.50,296.65,301.4 0,310.40,318.15,325.15; for(n=0
38、;*=14;n+) / 增加了數(shù)組z;z n=log(y n|/x n); void approx(float,float,i nt,i nt,float); approx(x,z,15,1,a); / 變成一次擬合;.專業(yè)整理 .學(xué)習(xí)幫手 ./for(i=0;i=1;i+) /prin tf(a%d=%fn,i,ai); prin tf(a=exp(ao)=%fn,exp(ao); prin tf(b=-a1=%fn,-a1); void approx(float x,float y,i nt m,i nt n, float a) int i,j,t; float *c=new float(
39、 n+1)*( n+2); float power(i nt,float); void colpivot(float *,i nt,float); for(i=0;i=n ;i+) for( j=o;j=n;j+) *(c+i* (n+2)+j)=0; for(t=0;t=m-1;t+) *(c+i* (n+2)+j)+=power(i+j,xt); *(c+i*( n+2)+n+1)=0; for( j=0;j=m-1;j+) *(c+i* (n+2)+n+1)+=yj*power(i,x j); .專業(yè)整理 .學(xué)習(xí)幫手 .colpivot(c, n+1,a); delete c; void
40、 colpivot(float *c,int n,float x) int i,j,t,k; float p; for(i=0;i=n_ 2;i+) k=i; for( j=i+1;j(fabs(*(c+k*( n+1)+i) k=j; if(k!=i) for(戸;j=n;j+) p=*(c+i*( n+1)+j); *(c+i*( n+1)+j)=*(c+k*( n+1)+j); *(c+k*( n+1)+j)=p; for( j=i+1;j=n_1;j+) .專業(yè)整理 .學(xué)習(xí)幫手 . p=(*(c+j* (n+1)+i)/(*(c+i* (n+1)+i); for(t=i;t=0;i_)
41、 for( j=n_1;j=i+1;j_) (*(c+i* (n +1)+n)-=xj*(*(c+i*( n+1)+j); xi=*(c+i*( n+1)+n)/(*(c+i*( n+1)+i); float power(i nt i,float v) float a=1; while(i-)a*=v; return a; (2) 實(shí)驗(yàn)結(jié)果四、總結(jié)通過曲線擬合,最小二乘法的基本原理的學(xué)習(xí),我學(xué)會(huì)了利用計(jì)算機(jī)解決現(xiàn)實(shí)實(shí)際問題中的曲線擬合.專業(yè)整理 .學(xué)習(xí)幫手 .6 數(shù)值積分- 、實(shí)驗(yàn)?zāi)康?1) 通過實(shí)際計(jì)算體會(huì)各種方法的精確度(2) 會(huì)編寫用龍貝格算法求定積分的程序二、 實(shí)驗(yàn)內(nèi)容編寫復(fù)化柯特斯求
42、積分公式,并計(jì)算例題1 例題 2, 觀察 n 為多少時(shí)有三、 程序設(shè)計(jì)、實(shí)驗(yàn)結(jié)果及分析( 1) 程序設(shè)計(jì)#in clude #in clude float cotes(float(*f)(float),float a,float b,int n) int k; float c,c1=0,c2,c3,c4; float h=(b-a)/n; c2=(*f)(a+h/4); c3=(*f)(a+h/2); c4=(*f)(a+3*h/4); for(k=1;k=n _1;k+) c1+=(*f)(a+k*h); 6 位有效數(shù)字.專業(yè)整理 .學(xué)習(xí)幫手 .c2+=(*f)(a+k*h+h/4); c3
43、+=(*f)(a+k*h+h/2); c4+=(*f)(a+k*h+3*h/4); c=h/90*(7*(*f)(a)+(*f)(b)+14*c1+32*c2+12*c3+32*c4); return c; float f(float x) return 1/sqrt(1+x*x*x); void mai n() int i,n=4; float c; for(i=0;i=4;i+) c=cotes(f,0,1, n); prin tf(c(%d)=%fn, n,c); n *=2; #in clude .專業(yè)整理 .學(xué)習(xí)幫手 .#in clude float cotes(float(*f)(
44、float),float a,float b,int n) int k; float c,c1=0,c2,c3,c4; float h=(b-a)/n; c2=(*f)(a+h/4); c3=(*f)(a+h/2); c4=(*f)(a+3*h/4); for(k=1;k=n _1;k+) c1+=(*f)(a+k*h); c2+=(*f)(a+k*h+h/4); c3+=(*f)(a+k*h+h/2); c4+=(*f)(a+k*h+3*h/4); c=h/90*(7*(*f)(a)+(*f)(b)+14*c1+32*c2+12*c3+32*c4); return c; float f(fl
45、oat x) / return 1/sqrt(1+x*x*x); if (x=0)retur n 1; else return si n( x)/x; .專業(yè)整理 .學(xué)習(xí)幫手 . void mai n() int i,n=4; float c; for(i=0;i=0-909&04 c=0 p=0. ¥ 09604 press anv l? ey to continue d : 計(jì)篇方; 圭.3 g 1 i hseadebu g6.1, exe *c1.5 49931 c=1.549931 c=1-547931 cri.549931 c=1.549931 ppcee any key t
46、o continuti .專業(yè)整理 .學(xué)習(xí)幫手 .四、總結(jié)學(xué)習(xí)了復(fù)化辛卜生公式,自適應(yīng)梯形公式,龍貝格算法,運(yùn)用求解定積分并控制精度的方法。7 常微分方程數(shù)值解法一、 實(shí)驗(yàn)?zāi)康模?) 熟悉求解常微分方程初值問題的有關(guān)方法和理論,主要是改進(jìn)歐拉公式,四階龍格- 庫塔法和阿當(dāng)姆斯方法;(2)編制上述方法計(jì)算機(jī)程序,包括求解微分方程組的計(jì)算程序;(3)針對(duì)實(shí)習(xí)題編制程序,并上機(jī)計(jì)算其所需要的結(jié)果;(4) 體會(huì)各種解法的功能,優(yōu)缺點(diǎn)及適用場合,會(huì)選取適當(dāng)?shù)那蠼夥椒ā6?實(shí)驗(yàn)內(nèi)容1、 分別用改進(jìn)歐拉法與四階龍格-庫塔公式(取h=0.1)求解下列微分方程初值問題2、 用四階龍格 -庫塔公式(取h =0.
47、1)解下列微分方程組初值問題三、 實(shí)驗(yàn)步驟、程序設(shè)計(jì)、實(shí)驗(yàn)結(jié)果及分析1、分別用改進(jìn)歐拉法與四階龍格-庫塔公式(取h=0.1)求解下列微分方程初值問題a.改進(jìn)歐拉法( 1) 程序設(shè)計(jì)#in clude void modeuler(float(*f)(float,float),float xo,float yo,float xn,int n) int i; .專業(yè)整理 .學(xué)習(xí)幫手 .float yp,yc,x=xo,y=yo,h=(x n- x0)/n; prin tf(x0=%fty0=%fn,x,y); for(i=1;il a110005f2=1-251531xf3j=0.3h00fi0jl
48、 31*1.436 h57k410.40000041=1.6880075=2-? 48770j|c& 1*2.6025x730*700090y 7 3,529011y 18 3=5.371467xe?1=0.900000yl?10.348330 xe18=1.000000yl1038-134237piegs anv tocontinue(2)計(jì)背方法rn aglis h奠同鬆七d e bu g7. 1, exex01=0.000000yt0=1.000800 xel1=0.100000ytl3-1.048781x2 j=0.200000ye21-l-095297xl31=0.30000
49、0yc3j=l-139?54x【4=融.400000j|f4=lib2335x5 j=0.500000y51=l223200 xlt j-0.g00000y61=l-262492x?10.700000yt71-l.30033?x9 j=0.800000y81=l33s846xl?1-0.900000.372121xfl01-1*000000y10j=l.40624?press any keyto continue(3)rd: 計(jì)算方法nn 旳limhl 實(shí)習(xí)ebug7.1_.exe*x0 j =0.000000=1.900000 xtl1=0.100000095909x2 j =0-20000
50、0y21-l-184097xl31-0.300000yc33=1-266201x41=0-400000yt41-l.343360 x5=0.500008yts1=1416402-0.600000y61=l-405955xf?10.700000y71-1.552s14!x 8 =0.80000091=1.616474xe1-0.90000y91=1-67816$y10j=l.737867press any keyto continue.專業(yè)整理 .學(xué)習(xí)幫手 .b.四階龍格 -庫塔公式( 1) 程序設(shè)計(jì)#in clude void runge_kutta(float(*f)(float x,flo
51、at y),float afloat b,float yo,int n) float x=a,y=yo,k1,k2,k3,k4; float h=(b-a)/n; int i; prin tf(x0=%fty0=%fn,x,y); for(i=1;ice3 3.300303yp 1-1.439666u4 =0.400000y41-1.696098ix e5j0*50000bylsj-2-066961xe6j=3.60000361-2.643060tc?=0.700003yt7=3.652201ixe8 70.800300y8j-5-842014xe91=3.90303yl9k4.fl21826
52、tciie=i .00090ytl0=735.101379press any icey to1 contifiue(2)* d 計(jì)算方法實(shí)習(xí)題七d ebug7.1, exe *x01=0.030000y01=1.000邑00 x11=0.100000ytl1-1.048790 xe2j =0-200008y 21=l-095313xl31-0.300000y 3=1-139776x41=0.400000y41-l.182361x cs=0.s00000y51=l.223230 xlg 1-3.8000301-1.262525x?-0.700000300372x8=p.800000yr81=1.
53、33s883xl1-0.9w0000y91=l.372158x el 0-1.000000y10j=l.46286press any keyto continue(3).專業(yè)整理 .學(xué)習(xí)幫手 . d 計(jì)算方法aqlish 實(shí)習(xí)13七9 e hu g vx e? 0 =0.000000x11=0.100000y 13=1.09 5446x e2 0.203000y2j=la93217x e3 0.300009yc31=l.264912x e4=0.409000y41-1.341642x 5 0.500000yt53-1-414215* 血=邑.600300483242x e7=0 ? 70000
54、0y71-1.54919683=1-612455x 91=3.900000j/l9 1=1-673324x10-l.000000y10j-l732056press any tocontinue2、四階龍格 -庫塔公式解微分方程組初值問題( 1) 程序設(shè)計(jì)#in clude void run ge_kutta(float(*f)(float x,float y,float z),float (*g)(float x,float y,float z),float a,float b,float y0,float g0,i nt n) float x=a,y=y0,z=g0,k1,k2,k3,k4,
55、l1,l2,l3,l4; float h=(b-a)/n; int i; prin tf(x0=%fty10=%fty20=%fn,x,y,z); for(i=1;i=n;i+) k 仁(*f)(x,y,z);l1=(*g)(x,y,z); k2=(*f)(x+h/2,y+h*k1/2,z+h*l1/2);l2=(*g)(x+h/2,y+h*k1/2,z+h*l1/2); k3=(*f)(x+h/2,y+h*k2/2,z+h*l2/2);l3=(*g)(x+h/2,y+h*k2/2,z+h*l2/2); .專業(yè)整理 .學(xué)習(xí)幫手 .k4=(*f)(x+h,y+h*k3,z+h*l3);l4=(*g)(x+h,y+h*k3,z+h*l3); y=y
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年黨章黨紀(jì)黨史黨建知識(shí)競賽多項(xiàng)選擇題庫及答案(共210道題)
- 診所裝修環(huán)保保證金協(xié)議
- 農(nóng)業(yè)科技節(jié)水灌溉技術(shù)推廣應(yīng)用策略
- 公司可行性分析報(bào)告
- 廣汽充電樁 遠(yuǎn)程
- 垃圾發(fā)電采購
- 高速電動(dòng)汽車充電樁
- 保險(xiǎn)行業(yè)保險(xiǎn)科技創(chuàng)新與風(fēng)險(xiǎn)管理方案
- 智能家電產(chǎn)品開發(fā)與生產(chǎn)標(biāo)準(zhǔn)
- 婦產(chǎn)科護(hù)理練習(xí)試題
- 江蘇省南京師范大學(xué)附屬中學(xué)樹人學(xué)校2023-2024學(xué)年九年級(jí)下學(xué)期3月月考數(shù)學(xué)試卷
- 阿拉伯國家聯(lián)盟課件
- 油氣管道視頻監(jiān)控系統(tǒng)總體設(shè)計(jì)方案
- 知識(shí)產(chǎn)權(quán)案件調(diào)解實(shí)務(wù)
- 毫米波集成電路詳述
- 打印設(shè)備維護(hù)服務(wù)投標(biāo)方案
- JGT454-2014 建筑門窗、幕墻中空玻璃性能現(xiàn)場檢測方法
- 一定溶質(zhì)質(zhì)量分?jǐn)?shù)的氯化鈉溶液的配制
- DB5301∕T 24-2019 園林綠化養(yǎng)護(hù)規(guī)范
- 地坪漆施工合同地坪漆施工合同范本
- 高風(fēng)險(xiǎn)供應(yīng)商管理程序(經(jīng)典-專業(yè)-建議收藏)
評(píng)論
0/150
提交評(píng)論