版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)值分析實(shí)驗(yàn)報(bào)告(包含源程課程實(shí)驗(yàn)報(bào)告課程名 稱計(jì)算方法班級實(shí)驗(yàn)日期姓名學(xué)號實(shí)驗(yàn)成績實(shí)驗(yàn)名 稱實(shí)驗(yàn)一插值多項(xiàng)式實(shí)驗(yàn)?zāi)康募耙?、掌握拉格郎日插值多項(xiàng)式的用法,適用范圍及精確度。2、掌握牛頓插值多項(xiàng)式的用法,適用范圍及精確度。實(shí) 驗(yàn) 環(huán) 境Microsoft Visual C+ 6.0實(shí) 驗(yàn) 內(nèi) 容i/1/n (x Xj)1、 Lagrange 插值多項(xiàng)式:Ln(x)li(x)yi,其屮 li(x) j 0(x x.)i 0. ij2、Newton插值多項(xiàng)式:Nn(x) f(Xo) fXo,Xi(X Xo) . fXo,,Xn(X Xo)(X Xn 1)3、計(jì)算實(shí)例以2.o,2.1,2.2,2.
2、3,2.4為節(jié)點(diǎn),用牛頓插值求函數(shù)f (X)JX在2.51處的近似值;取正弦函數(shù)f (x) sin x4、如果有錯(cuò),修改直至運(yùn)行成功,查看運(yùn)行結(jié)果算 法 描 述 及 實(shí) 驗(yàn) 步 驟1、實(shí)驗(yàn)1實(shí)驗(yàn)步驟:(1) 程序設(shè)計(jì)(2) 計(jì)算實(shí)例(3) 撰寫實(shí)驗(yàn)報(bào)告2、實(shí)驗(yàn)2實(shí)驗(yàn)步驟(1) 程序設(shè)計(jì)(2) 計(jì)算實(shí)例以2.o,2.1,2.2,2.3,2.4為節(jié)點(diǎn),用牛頓插值求函數(shù)f (X) Vx在2.51處的近似值;(3) 撰寫實(shí)驗(yàn)報(bào)告調(diào)試過程及實(shí)驗(yàn)結(jié)果總 結(jié) 附錄1、拉格朗日插值實(shí)驗(yàn)結(jié)果如圖:以0.32,0.34,0.36 為節(jié)點(diǎn),分別用線性插值和拋物插值求正弦函數(shù)在0.3367處的近似值2、牛頓插值實(shí)驗(yàn)結(jié)
3、果如圖: 進(jìn)行測試:3、使用牛頓插值計(jì)算實(shí)例以2.0,2.1,2.2,2.3,2.4 為節(jié)點(diǎn),用牛頓插值求 函數(shù)f(X) v X在2.51處的近似值:1、通過本次實(shí)驗(yàn),使我進(jìn)一步加深了對拉格朗日插值多項(xiàng)式的了解,掌握 拉格朗日插值多項(xiàng)式的用法,能夠正確的運(yùn)用拉格朗日插值多項(xiàng)式進(jìn)行 運(yùn)算。2、通過本次實(shí)驗(yàn),使我加深了對牛頓插值的認(rèn)識,能夠熟練的運(yùn)用公式進(jìn) 行運(yùn)算,掌握牛頓插值多項(xiàng)式的用法。1、拉格朗日插值程序清單:#i nclude<stdio.h>#in clude<c oni o.h>double Lagra nge(double x,i nt n, double a
4、,double b); void mai n()double a20,b20,x,y;int i=0, n; printf("請輸入數(shù)值個(gè)數(shù):n="); sca nf("%d",&n);printf("請輸入%d個(gè)不同的x的數(shù)值:n",n); for(i=0;i< n;i+)scan f("%lf",&ai);printf("請按順序輸入x對應(yīng)的y的數(shù)值:n"); for(i=0;i< n;i+) scan f("%lf",&bi);/*
5、for(i=0;i< n;i+)prin tf("%f ",ai);*/ printf("請輸入需計(jì)算的數(shù):x=");y=Lagra nge(x ,n ,a,b);printf(”根據(jù)拉格朗日插值公式計(jì)算后的數(shù)為:y=%fn",y); double Lagra nge(double x,i nt n, double a,double b)double y=0,L;int i,j;for(i=0;i< n;i+)L=1;for(j=0;j <n ;j+)if(j=i)c ontinue;else L=L*(x-aj)/(ai-a
6、j); y+=L*bi;return y;2、牛頓插值程序清單:#i nclude<stdio.h>#i nclude<stdlib.h>#i nclude<iostream.h>double Newt on( double x,i nt n, double a,double b); double Chashang(int a1,int b1,double a,double b); void mai n()double a20,b20,x,y;int i=0, n;printf("請輸入數(shù)值個(gè)數(shù):n=");sca nf("%d&
7、quot;,&n);printf("請輸入%d個(gè)不同的x的數(shù)值:n",n); for(i=0;i< n;i+)scan f("%lf",&ai);printf("請按順序輸入x對應(yīng)的y的數(shù)值:n"); for(i=0;i< n;i+)scan f("%lf",&bi);kprintf("請輸入需計(jì)算的數(shù):x=");sea nf("%lf", &x);y=Newt on (x, n,a,b);printf("根據(jù)牛頓插值公式
8、計(jì)算后的數(shù)為:y=%fn",y);double Newt on( double x,i nt n, double a,double b)int i;double t=1.O,zhi=bO,p=O.O;for(i=1;i<=n ;i+)t=(x-ai-1)*t;p=Chasha ng(0,i,a,b)*t;zhi=zhi+p;return zhi;double Chashang(int a1,int b1,double a,double b)double c;if(b1=a1+1)c=(bb1-ba1)/(ab1-aa1);elsec=(Chasha ng(a1+1,b1,a,b
9、)-Chasha ng(a1,b1-1,a,b)/(ab1-a a1);return c;L課程實(shí)驗(yàn)報(bào)告課程名稱計(jì)算方法班級實(shí)驗(yàn)日期姓名學(xué)號實(shí)驗(yàn)成績實(shí)驗(yàn)名稱實(shí)驗(yàn)二 數(shù)值積分實(shí) 驗(yàn) 目 的1、掌握Newton-Cotes算法程序設(shè)計(jì)2、掌握數(shù)值求積的Romberg算法程序設(shè)計(jì)3、數(shù)值求積的Newt on-Cotes算法程序設(shè)計(jì)。4、要求程序不斷加密對積分區(qū)間的等分,自動(dòng)地控制Newton-Cotes算法中的加速收斂過程,直到定積分近似值的誤差不超過10 6為止,輸出求得的定積分近似值5、要求程序不斷加密對積分區(qū)間的等分,自動(dòng)地控制Romberg算法中的加速收斂過程,直到定積分近似值的誤差不超過
10、10 6為止,輸出求得的定積分近似值實(shí) 驗(yàn) 環(huán) 境Microsoft Visual C+ 6.0實(shí)驗(yàn)內(nèi)容1計(jì)算實(shí)例求定積分xf(x)計(jì)算 2.6f(x)dx1.82、數(shù)值求積的Romberg算法程序設(shè)計(jì)。3、要求程序不斷加密對積分區(qū)間的等分,自動(dòng)地控制Romberg算法中的加 速收斂過程,直到定積分近似值的誤差不超過106為止,輸出求得的定積分 近似值4、計(jì)算實(shí)例求定積分梯形求積公式:1.83.120412.04.425692.26.042412.48.030142.610.4667l(k)m(0)I 0Romberg4kimv4k0.5 xdxb2af(a) f(b)求積的遞推化公式:I (
11、k 1) -,k1,2, ,n;m 0,1,1,n k(k)其中l(wèi)m為定積分近似值,k決定著Romberg求積公式的階數(shù),例如k 0為一階Romberg求積公式(即梯形求積公式),般地,I絆是k 1階Romberg求積公式的計(jì)算結(jié)果;m決定著等分?jǐn)?shù),此)是在2m等分情況下的(k 1)階復(fù)化Romberg求積公式的計(jì)算結(jié)果。1實(shí)驗(yàn)1實(shí)驗(yàn)步驟:算 法 描 述(1)(2)(3)Newton-Cotes積分程序設(shè)計(jì)計(jì)算實(shí)例撰寫實(shí)驗(yàn)報(bào)告及 實(shí) 驗(yàn) 步 驟2、實(shí)驗(yàn)2實(shí)驗(yàn)步驟(1) 設(shè)計(jì)數(shù)值求積的Romberg算法程序(2) 計(jì)算實(shí)例(3) 撰寫實(shí)驗(yàn)報(bào)告調(diào) 試 過 程 及 實(shí) 驗(yàn) 結(jié) 果1、Newt on-
12、Cotes求積分實(shí)驗(yàn)結(jié)果如圖:2、Romberg積分實(shí)驗(yàn)結(jié)果如圖:總結(jié)1、 通過本次實(shí)驗(yàn),使我加深了對Newton-Cotes求積分公式的了解,掌握 了 Newton-Cotes求積分公式的用法,能夠使用程序?qū)ewton-Cotes 求積分公式的算法實(shí)現(xiàn)。2、 通過本次實(shí)驗(yàn),使我進(jìn)一步理解了Romberg積分,能夠掌握 Romberg 積分的用法。3、通過本次實(shí)驗(yàn),提高了我的程序調(diào)試能力。附 錄3、Newton-Cotes求積分程序清單:#in clude<stdio.h>#in clude<c oni o.h>double NewtonCotes(double b,
13、double h);void mai n()double y5,l,a,b;int i;printf("請輸入積分區(qū)間:");scan f("%lf",&a);scan f("%lf",&b);printf("請輸入對應(yīng)的函數(shù)值:n"); for(i=0;i<5;i+)sca nf("%lf", &yi);l=Newt on Cotes(y,b-a);printf(”利用Newton-Cotes積分公式求得函數(shù))在(1.8,2.6)區(qū)間的積 分值為:%6.5fn&q
14、uot;,l);double Newt on Cotes(double y,double h)double C;C=(y0+y4)*7+(y1+y3)*32+y2*12)*h/90; return C;4、Romberg積分的程序清單:#in clude<iostream>#in clude<cmath>using n amespace std;#define f(x) pow(x, 1.0 / 2)double Romberg(double a, double b);void mai n()double a = 0.5, b = 1,jieguo;double rea
15、l = 2.0 / 3 * (1 - pow(1.0 / 2, 3.0 / 2);printf("該積分的準(zhǔn)確值是:%.17fnn", real);jieguo = Romberg(a, b);printf("由Romberg公式計(jì)算后的積分值是:%.17fn",jieguo);double Romberg(double a, double b)int m, n;double h, x;double s, q;double jd,ji ngdu;double *y = new double10;double p ;h = b - a;y0 = h*(f(
16、a) + f(b)/2.0;m = 1;n = 1;printf("請輸入精度:");scan f("%lf",&ji ngdu);jd = jin gdu + 1.0;while (jd >= jingdu) && (m < 10) p = 0.0;for (i nt i=0; i<n; i+)x = a + (i + 0.5) * h;P = P + f(x);p = (y0 + h*p)/2.0;s = 1.0;for (i nt k=1; k<=m; k+)s = 4.0*s;q = (s*p -
17、yk-1)/(s - 1.0); yk-1 = p;p = q;p = fabs(q - ym-1);m = m + 1;ym-1 = q;n = n + n; h = h / 2.0;return q;課程實(shí)驗(yàn)報(bào)告課程名稱計(jì)算方法班級實(shí)驗(yàn)日期姓名學(xué)號實(shí)驗(yàn)成績實(shí)驗(yàn)名稱實(shí)驗(yàn)三非線性方程求解1、掌握二分法與牛頓法的基本原理及應(yīng)用2、用二分法計(jì)算方程實(shí)2 x1驗(yàn)sin x 0目2的在(1, 2)內(nèi)的根的近似值及3、用迭代計(jì)算方程要 求x3x 10在(1,1.5)內(nèi)的根的近似值(0.5 10 5)。實(shí) 驗(yàn) 環(huán) 境Microsoft Visual C+ 6.0實(shí) 驗(yàn) 內(nèi) 容二分法:假定f (x)在a,b
18、上連續(xù),f (a)f(b)0且f(x)在(a,b)內(nèi)僅有一實(shí)根x*取區(qū)間中點(diǎn)c,若f (c)0,則c恰為其根,否則,根據(jù)f (a)f(c)0是否成立,可判斷出根所屬的新的有根子區(qū)間(a,c)或(c,b),為節(jié)省內(nèi)存,仍稱其為(a,b)。運(yùn)算重復(fù)進(jìn)行,直到滿足精度要求為止,即|c x | b a。式中a,b為新的有根子區(qū)間的端點(diǎn)。迭代法:X。為初始猜測,則由遞推關(guān)系f (xk)xk . xk f (xk)產(chǎn)生逼近解x的迭代序列Xk,這個(gè)遞推公式就是Newton法。當(dāng)x°距x較 近時(shí),xk很快收斂于X。但當(dāng)X0選擇不當(dāng)時(shí),會導(dǎo)致Xk發(fā)散。故我們 事先規(guī)定迭代的最多次數(shù)。若超過這個(gè)次數(shù),還
19、不收斂,則停止迭代另選 初值。算法描述及實(shí)驗(yàn)步驟1、實(shí)驗(yàn)1實(shí)驗(yàn)步驟:(1) 程序設(shè)計(jì)(2) 計(jì)算實(shí)例(3) 撰寫實(shí)驗(yàn)報(bào)告2、實(shí)驗(yàn)2實(shí)驗(yàn)步驟:(1) 程序設(shè)計(jì)(2) 計(jì)算實(shí)例(3) 撰寫實(shí)驗(yàn)報(bào)告調(diào) 試 過 程 及 實(shí) 驗(yàn)1、二分法求根實(shí)驗(yàn)結(jié)果如圖:2、迭代法的求根實(shí)驗(yàn)結(jié)果如圖:1、通過本次實(shí)驗(yàn),使我掌握了使用二分法求非線性方程的根,加深了對 二分法的了解。2、通過本次實(shí)驗(yàn),使我掌握了使用迭代法求非線性方程的根的方法,能 夠使用使用迭代法正確的求出求非線性方程的根。1、二分法程序清單:#in clude<stdio.h>#in clude<math.h>#in clude&
20、lt;c oni o.h>double f(double x)double y = 0;y = sin(x) - x*x/2;return y;void mai n()double a,b,y1,y2,temp;int e1,e2=1, n, i=0;printf("請輸入根的區(qū)間:");scan f("%lf",&a);scan f("%lf",&b);y1=f(a);y2=f(b);if(y1*y2)<0) printf("要求小數(shù)點(diǎn)后的位數(shù):");sca nf("%d&q
21、uot;,&e1);while(e1>0) e2=e2*10;e1-;n=(i nt)(log(b-a)*e2)/log (2);printf("對方程 sinx-x2/2=0 開始進(jìn)行二分:n"); while( n>0) printf("第%d 次二分結(jié)果:",i); temp=f(a+b)/2); if(f(a)*temp)<0)b=(a+b)/2; prin tf("a=%f,b=%fn",a,b);if(f(b)*temp)<0) a=(a+b)/2; prin tf("a=%f,b
22、=%fn",a,b);i+;n-;printf("方程的解是:%6.5fn",(a+b)/2);2、迭代法的求根程序清單:#i nclude<stdio.h>#in clude<math.h>#in clude<c oni o.h>double f(double x)double y = 0;y = x*x*x-x-1; return y;double fdao(double x)double a=1.0/3; retur n pow(x+1,a);void mai n()double x1,x2,a,b,e2=1;int i
23、= 0,e1;printf("請輸入根的區(qū)間:");scan f("%lf",&a);scan f("%lf",&b);if(f(a)*f(b)<0)printf("要求小數(shù)點(diǎn)后的位數(shù):"); sca nf("%d",&e1);while(e1>0)e2=e2/10;e1-;e2=e2/2;prin tf("e2=%f",e2);x1=a;printf("第%d 次迭代后結(jié)果是:20.19fn",i,x1); x2=f(
24、x1);while(fabs(x2-x1)>e2)i+;printf("第 %d 次迭代后結(jié)果是:%20.19fn",i,x2);x1=x2;x2=fdao(x1);printf("共進(jìn)行%d次迭代過程n",i); printf("結(jié)果是:%20.19fn",x2); elseprintf("無法進(jìn)行迭代!");課程實(shí)驗(yàn)報(bào)告課程名稱班級實(shí)驗(yàn)日期姓名學(xué)號實(shí)驗(yàn)成績實(shí)驗(yàn)名稱試驗(yàn)四Gauuss列主兀消去法解線性方程組實(shí)1、熟悉Gauss列主元消去法,編出實(shí)用程序。驗(yàn)?zāi)?、認(rèn)識選主元技術(shù)的重要性。的3、明確對于哪些系數(shù)
25、矩陣 A,在求解過程中不需使用選主元技術(shù)。及編制程序,用Gauss列主元消去法求解線性方程組 Ax b,并打印結(jié)要 求果,其中10 8231(1) A13.7124.623 ,b221.0725.643342410(2) A2 1710 ,b34 10974、與不選主兀的Gauss消去法結(jié)果比較并分析原因。實(shí)驗(yàn)Microsoft Visual C+ 6.0環(huán) 境由解一般線性方程組在使用 Gauss消去法求解時(shí),從求解過程中可以清楚 地看到,右akk )0,必須施以行交換的手續(xù),才能使消去過程繼續(xù)下去。有時(shí)既使akk 1)0,但其絕對值很小,由于舍入誤差的影響,消去過程也實(shí) 驗(yàn) 內(nèi) 容會出現(xiàn)不穩(wěn)
26、定現(xiàn)象。因此,為使這種不穩(wěn)定現(xiàn)象發(fā)生的可能性減至最小, 在施行消去過程時(shí)每一步都要選主元素,即要尋找行r,使1 (k 1) |. (k 1).|ak | rnigxlajk|i k并將第r行與第k行交換,以使ak: 1)的當(dāng)前值(即aikk 1)的數(shù)值)遠(yuǎn)大于0。 這種列主元消去法的主要步驟如下:1 消元過程對 k 1,2,L ,n 1,做1 o選主元,記| ark | max | aik |i k若ark0,說明方程組系數(shù)矩陣奇異,則停止計(jì)算,否則進(jìn)行20。2 o交換A (增廣矩陣)的r,k兩行元素arjakjj k,L , n 13 o計(jì)算aijaij aikakj / akki k 1,
27、 L , nj k 1,L , n 12回代過程對 k n,n 1,L ,2,1,計(jì)算nXk (ak,n 1akjXj /akk)j k 1算 法 描 述 及 實(shí) 驗(yàn) 步 驟1、程序設(shè)計(jì)2、計(jì)算實(shí)例3、撰寫實(shí)驗(yàn)報(bào)告1、Gauuss列主元消去實(shí)驗(yàn)結(jié)果如圖:8調(diào)試過程及實(shí)驗(yàn)結(jié)果10231A 13.7124.623 , b 2圖一第-題選主元消去法實(shí)驗(yàn)結(jié)果42410A21710,b34109721.072 5.6433圖二第二題選主元消去法實(shí)驗(yàn)結(jié)果2、不選主元消去法實(shí)驗(yàn)結(jié)果:10 8231A13.7124.623b 221.0725.6433圖三第-題不選主元消去法實(shí)驗(yàn)結(jié)果42410A21710b3結(jié)果:41097圖四第二題不選主元消去法實(shí)驗(yàn)結(jié)果.總 結(jié) 附錄1、通過這次實(shí)驗(yàn),我掌握了使用Gauuss列主元消去法解線性方程組的方 法,加深了我對Gauuss元消去法的理解。2、當(dāng)使用不選主元的Gauss消去法時(shí),如果主元素絕對值很小時(shí),用它 做除數(shù)會導(dǎo)致結(jié)果錯(cuò)誤,由于數(shù)值過大,位數(shù)過多,就會出現(xiàn)圖三所 是結(jié)果。程序清單:#in elude <iostream>#i nclude <ioma nip>#in clude <math.h> using n amespace std;void Change(double ab40,int m,i
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度冷鏈物流PPP項(xiàng)目合作協(xié)議3篇
- 二零二五年度寵物醫(yī)院獸醫(yī)藥品及醫(yī)療器械采購合同4篇
- 2025年度醫(yī)院科室承包綜合管理與創(chuàng)新發(fā)展合同4篇
- 2025年度農(nóng)業(yè)種植與農(nóng)業(yè)品牌建設(shè)合作合同4篇
- 2025年度農(nóng)家樂特色農(nóng)產(chǎn)品銷售與品牌推廣協(xié)議4篇
- 2025年度大學(xué)教師心理健康教育聘用合同3篇
- 2025年度生態(tài)旅游項(xiàng)目土地承包合作協(xié)議范本2篇
- 2025年度擬上公司與會計(jì)事務(wù)所財(cái)務(wù)報(bào)告編制保密合同3篇
- 數(shù)字化影像處理技術(shù)-深度研究
- 2025年度生態(tài)農(nóng)業(yè)綜合開發(fā)項(xiàng)目合同范本4篇
- 河南省濮陽市2024-2025學(xué)年高一上學(xué)期1月期末考試語文試題(含答案)
- 割接方案的要點(diǎn)、難點(diǎn)及采取的相應(yīng)措施
- 2025年副護(hù)士長競聘演講稿(3篇)
- 2024年08月北京中信銀行北京分行社會招考(826)筆試歷年參考題庫附帶答案詳解
- 原發(fā)性腎病綜合征護(hù)理
- (一模)株洲市2025屆高三教學(xué)質(zhì)量統(tǒng)一檢測 英語試卷
- 基礎(chǔ)護(hù)理學(xué)導(dǎo)尿操作
- DB11∕T 1028-2021 民用建筑節(jié)能門窗工程技術(shù)標(biāo)準(zhǔn)
- (初級)航空油料計(jì)量統(tǒng)計(jì)員技能鑒定理論考試題庫(含答案)
- 執(zhí)業(yè)藥師勞動(dòng)合同范本
- 2024年高考英語復(fù)習(xí)(新高考專用)完形填空之詞匯復(fù)現(xiàn)
評論
0/150
提交評論