版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、姓名:*學號:*完成日期:*/*/*實驗一問題描述:用牛頓插值公式算法,根據(jù)函數(shù)表:xi0.50.650.81.0f(xi)0.47940.60520.71740.8415求f(x)在x=0.6,1.5,2.75處的函數(shù)值。實驗?zāi)康模赫莆张nD插值方法及插值公式的使用,理解插商的含義,學會插商公式的使用。實驗代碼及實現(xiàn):#include#define n 3double x4=0.5,0.65,0.8,1.0;double y4=0.4794,0.6052,0.7174,0.8415;double f(int i) /求插商函數(shù) double s=0;for(int k=0;k=i;k+)dou
2、ble t=yk;for(int j=0;j=i;j+)if(k!=j)t=t/(xk-xj);s=s+t;return s;int main()double xx,yy,t;int i,j;while(1)printf(x = ); /提示輸入x的值 if(scanf(%lf,&xx)=EOF)break; yy=0;for(i=0;i=n;i+)t=f(i); /求插商 for(j=0;ji;j+) /牛頓差值公式計算 t=t*(xx-xj);yy=yy+t;printf(y = %lfn,yy);return 0;程序運行結(jié)果截圖:問題答案:由程序運行結(jié)果可知,f(x)在x=0.6,1.
3、5,2.75處的函數(shù)值分別為0.,0.,-0.。實驗二問題描述:用四點三次Lagrange插值方法根據(jù)函數(shù)表:xi0.10.20.30.4f(xi)0.09980.19870.29550.3894求f(x)在x=0.13,0.25,0.34處的函數(shù)值。實驗?zāi)康模赫莆誏agrange插值方法及插值公式的使用,學會使用Lagrane插值方法求解問題。實驗代碼及實現(xiàn):#include#define n 3double x4=0.1,0.2,0.3,0.4;double y4=0.0998,0.1987,0.2955,0.3894;int main()double xx,yy,t;int j,k;wh
4、ile(1)printf(x = ); /提示輸入x if(scanf(%lf,&xx)=EOF)break;yy=0;for(k=0;k=n;k+)t=1;for(j=0;j=n;j+) /求lk(x); if(j!=k)t=t*(xx-xj)/(xk-xj);yy=yy+t*yk; /求li(x)yi printf(y = %lfn,yy);return 0;程序運行結(jié)果截圖:問題答案:由程序運行結(jié)果可知,f(x)在x=0.13,0.25,0.34處的函數(shù)值分別為0.,0.,0.。實驗三問題描述:用分段兩點三次埃爾米特(Hermit)插值方法根據(jù)如下函數(shù)表:xi0.10.30.5f(xi)
5、0.0.0.f (xi)0.0.0.求f(x)在x=0.25和0.4處的值。實驗?zāi)康模赫莆誋ermit插值方法及插值公式的使用,學會使用Hermit插值方法求解問題,掌握分段求解的方法。實驗分析:因為要分段求解,所以當x 0.3時用前兩點來差值,當x 3時用后兩點來插值。實驗代碼及實現(xiàn):#includedouble x3=0.1,0.3,0.5;double y3=0.,0.,0.;double dy3=0.,0.,0.;double ph0(double xx)return (xx-1)*(xx-1)*(2*xx+1);double ph1(double xx)return xx*xx*(-
6、2*xx+3);double dph0(double xx)return xx*(xx-1)*(xx-1);double dph1(double xx)return xx*xx*(xx-1);int main()double xx,yy;int i,j;while(1)printf(x = ); /提示輸入x if(scanf(%lf,&xx)=EOF)break;int t=0;double h=0.2;if(xx0.3)t=1; /判斷用前兩點還是后兩點來插值 yy=y0+t*ph0(xx-x0+t)/h)+y1+t*ph1(xx-x0+t)/h)+h*dy0+t*dph0(xx-x0+t
7、)/h)+h*dy1+t*dph1(xx-x0+t)/h);printf(y = %lfn,yy);return 0;程序運行結(jié)果截圖:問題答案:由程序運行結(jié)果可知,f(x)在x=0.25,0.4處的函數(shù)值分別為0.,0.。實驗四問題描述:已知函數(shù)值xi0.250.300.350.380.420.45f(xi)0.50000.54360.62610.64650.68280.6933和邊界條件:s (0.25)=1.0000,s (0.45)=0.6868。求三次樣條線插值函數(shù)y=s(x)并畫出其圖形。實驗?zāi)康模赫莆諛訔l插值方法,鞏固Hermit插值方法,學會使用追趕法求解系數(shù)矩陣為對三角型的方
8、程組。實驗分析:樣條插值的的過程為先計算,然后用追趕法求解,最后用兩點三次Hermit插值方法對每一個分段進行插值確定。為了求函數(shù),程序中每個0.01輸出一個點。實驗代碼及實現(xiàn):#include#define n 5double an+1,bn+1;double mn+1;double hn+1;double xn+1=0.25,0.30,0.35,0.38,0.42,0.45;double yn+1=0.5000,0.5436,0.6261,0.6465,0.6828,0.6933;double aan+1,bbn+1,ccn+1,ddn+1;double ph0(double xx)ret
9、urn (xx-1)*(xx-1)*(2*xx+1);double ph1(double xx)return xx*xx*(-2*xx+3);double dph0(double xx)return xx*(xx-1)*(xx-1);double dph1(double xx)return xx*xx*(xx-1);void givechase() /追趕法求方程組根 for(int i=2;i=n-1;i+) /賦系數(shù)值 aai=1-ai;for(int i=1;i=n-1;i+) /賦系數(shù)值 bbi=2;for(int i=1;i=n-2;i+) /賦系數(shù)值 cci=ai;dd1=b1-(
10、1-a1)*m0; /賦系數(shù)值 ddn-1=bn-1-an-1*mn; /賦系數(shù)值 for(int i=2;i=n-2;i+) /賦系數(shù)值 ddi=bi;cc1=cc1/bb1;dd1=dd1/bb1;for(int i=2;i=1;i-) /得出解 ddi=ddi-cci*ddi+1;for(int i=1;i=n-1;i+) /將答案存到m中 mi=ddi;int main()m0=1.0000;mn=0.6868;for(int i=0;i=n-1;i+)hi=xi+1-xi;for(int i=1;i=n-1;i+) /求解ai,bi ai=hi-1/(hi-1+hi);bi=3*(1
11、-ai)*(yi-yi-1)/hi-1+ai*(yi+1-yi)/hi);givechase(); /求解mi double xx,yy;for(xx=0.25;xx=0.45;xx+=0.01) /每隔0.1輸出一個點 for(int i=0;in;i+)if(xx=xi) /判斷x在哪一段 yy=ph0(xx-xi)/hi)*yi /兩點三次埃爾米特插值公式 +ph1(xx-xi)/hi)*yi+1+hi*dph0(xx-xi)/hi)*mi+hi*dph1(xx-xi)/hi)*mi+1;printf(x = %lf ; y = %lfn,xx,yy);break;return 0; 程
12、序運行結(jié)果截圖:問題答案:由程序運行結(jié)果,得到f = s(x)如下:xi0. 0. 0. 0. 0. yi0. 0. 0. 0. 0. xi0. 0. 0. 0. 0. yi0. 0. 0. 0. 0. xi0. 0. 0. 0. 0. yi0. 0. 0. 0. 0. xi0. 0. 0. 0. 0. yi0. 0. 0. 0. 0. 使用excl中的畫圖工具畫的f = s(x)的圖像如下:實驗五問題描述:用龍貝格(Romberg)算法計算的近似值,絕對誤差限。實驗?zāi)康模赫莆誖omberg求積方法,學會使用龍貝格方法解決求積問題。實驗代碼及實現(xiàn):#include#includedouble
13、a,b,e;double s,h,t1,t2,x,r1,r2,s1,s2,c1,c2;int k;double f(double x0) /f(x)return exp(-x0*x0/2);int main()printf(a,b,e = );scanf(%lf%lf%lf,&a,&b,&e);h=b-a;t1=h/2*(f(a)+f(b);k=1;BEGINE:s=0;x=a+h/2;dos=s+f(x);x=x+h;while(x=e)r1=r2;c2=c1;k=k+1;h=h/2;t1=t2;s1=s2;goto BEGINE;printf(積分結(jié)果為%lfn,r2);return 0;
14、程序運行結(jié)果截圖:問題答案:實驗六問題描述:分別用下列方法計算積分,要求準確到:(數(shù)據(jù)表如下)x00.250.50.75111.284031.648722.1172.71828(1) 復(fù)化梯形公式法(2) 復(fù)化辛甫生(Simpson)公式法實驗?zāi)康模赫莆諒?fù)化梯形求積方法和復(fù)化辛甫生求積方法,學會使用復(fù)化求積法解決求積問題。實驗分析:將兩個求積方法分別用兩個獨立的函數(shù)來求解,然后在主函數(shù)中分別調(diào)用。實驗代碼及實現(xiàn):#include#define n 4double xn+1=0,0.25,0.5,0.75,1;double yn+1=1,1.28403,1.64827,2.117,2.71828
15、;void trapezoidal()double s=0;double h=0.25;for(int i=0;i=n-1;i+)s+=h/2*(yi+yi+1);printf(answer of trapezoidal %lfn,s);void simpson()double s=0;double h=0.5;for(int i=0;i=n-2;i+=2)s+=h/6*(yi+4*yi+1+yi+2);printf(answer of simpson %lfn,s);int main()trapezoidal(); /復(fù)化梯形公式求解 simpson(); /復(fù)化辛甫生公式求解 return
16、 0;程序運行結(jié)果截圖:問題答案:(1)復(fù)化梯形公式法(2) 復(fù)化辛甫生(Simpson)公式法實驗七問題描述:用改進的歐拉(Euler)格式解初值問題,y(1)=1,求y(2)的數(shù)值解,取h=0.1,0.05,計算,并分析其收斂性(近似解、精確解、誤差、h與收斂性分析等)。實驗?zāi)康模赫莆沼酶倪M的歐拉格式解決初值問題,學會和使用預(yù)報校正的方法。實驗分析:因為用的是改進的歐拉格式,所以先用yp儲存用顯式的歐拉格式求出來的預(yù)報值然后在用梯形方法求出校正后的值。實驗代碼及實現(xiàn):#include#include#define eps 10e-6double f(double x,double y)re
17、turn x*sqrt(y);int main()double x0,y0,x1,y1,yp,yc,yy;double h;int n,i;yy=0;y1=1;for(h=0.1,n=10;fabs(yy-y1)=eps;h/=2,n*=2)yy=y1;x0=1;y0=1;for(int i=1;i=n;i+)x1=x0+h;yp=y0+h*f(x0,y0); /yp=預(yù)報值 yc=y0+h*f(x1,yp); y1=(yp+yc)/2; /y1=矯正值 x0=x1;y0=y1;printf(h = %lf ; y(2) = %lfn,h,y1);return 0;程序運行結(jié)果截圖:問題答案:
18、初值問題,y(1)=1,在y(2)處隨h的不同結(jié)果如下:h = 0. ; y(2) = 3.h = 0. ; y(2) = 3.h = 0. ; y(2) = 3.h = 0. ; y(2) = 3.h = 0. ; y(2) = 3.h = 0. ; y(2) = 3.程序是要收斂到一定程度才能結(jié)束,所以可以說明改進的歐拉格式是收斂的。實驗八7、 問題描述:分別利用三階龍格庫塔(Runge-Kutta)方法(書中的格式)求初值問題的數(shù)值解。步長h=0.1,計算結(jié)果取5位有效數(shù)字。并將計算結(jié)果與精確解做比較(列表,畫圖)。已知精確解。實驗?zāi)康模赫莆沼谬埜駧焖≧unge-Kutta)方法解決初
19、值問題,掌握龍格庫塔(Runge-Kutta)方法中權(quán)重分配的分析。實驗代碼及實現(xiàn):#include#includedouble f(double x,double y)return 1-2*x*y/(1+x*x);int main()double x0,y0,x1,y1,k1,k2,k3;double h;int n;while(1)printf(輸入x0,y0,h,n:);if(scanf(%lf%lf%lf%d,&x0,&y0,&h,&n)=EOF)break;for(int i=1;i=n;i+) x1=x0+h;k1=f(x0,y0);k2=f(x0+h/2,y0+h*k1/2);k
20、3=f(x1,y0+h*(-k1+2*k2);y1=y0+h/6*(k1+4*k2+k3);printf(x%d = %lf;y%d = %lfn,i,x1,i,y1);x0=x1;y0=y1; return 0;程序運行結(jié)果截圖:8、 問題答案:初值問題,的答案由程序如下:xi求得值精確值xi求得值精確值0.10.099340.099341.10.698520.0.20.194880.1.20.727890.0.30.28350.1.30.755540.0.40.363230.1.40.7820.0.50.433360.1.50.807710.0.60.494140.1.60.832980.
21、0.70.546560.1.70.858030.0.80.59190.591871.80.883030.0.90.631520.1.90.908110.10.666690.20.933350.算結(jié)果與精確解的比較圖如下:實驗九9、 問題描述:分別用下列方法求方程的根,。要求精度(1)用牛頓法,??;(2)用快速弦截法,取實驗?zāi)康模赫莆盏蠓匠谈姆椒?,分析牛頓迭代法和快速弦截法的幾何意義的異同,學會用迭代法求根解決實際問題。實驗分析:因為用兩種方法求根,這里將兩種方法分別用兩個函數(shù)來實現(xiàn),在同一個程序中調(diào)用這兩個函數(shù)。實驗代碼及實現(xiàn):#include#include#define eps 10
22、e-12double f(double x) /f(x) return exp(x)-4*cos(x);double df(double x) /f(x)導(dǎo)數(shù) return exp(x)+4*sin(x);void newton() /牛頓法 double x0,x1,e;int n;printf(輸入x0,e,n:);scanf(%lf%lf%d,&x0,&e,&n);while(n-)if(fabs(df(x0)eps)printf(o.o|n);break;x1=x0-f(x0)/df(x0);if(fabs(x1-x0)e)printf(x = %lfn,x1);break;x0=x1
23、;if(n0)printf(fail.n);void quickcut() /快速弦截法 double x0,x1,x2,e;int n;printf(輸入x0,x1,e,n:);scanf(%lf%lf%lf%d,&x0,&x1,&e,&n);while(n-)if(f(x1)=f(x0)printf(o.o|n);break;x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0);if(fabs(x1-x0)e)printf(x = %lfn,x1);break;x0=x1;x1=x2;if(n0)printf(fail.n);int main()int f;while(1) /
24、交互界面 printf(newton(0) or quickcut(1)? );scanf(%d,&f);if(f)quickcut(); /調(diào)用快速弦截法 else newton(); /調(diào)用牛頓法 printf(exit?0/1 );scanf(%d,&f);if(f)break;return 0;程序運行結(jié)果截圖:問題答案:由程序運行結(jié)果可知,方程用牛頓法和用弦截法的解均為為x = 0.。實驗十10、 問題描述:分別用雅可比(Jacobi)迭代法和高斯塞德爾(Gauss-Seidel)迭代法求解線性方程組:取,判別收斂的條件為:。實驗?zāi)康模赫莆盏蠓匠探M解的方法,分析雅可比(Jacob
25、i)迭代法和高斯塞德爾(Gauss-Seidel)迭代法的的異同。實驗分析:因為用兩種方法求根,這里同樣將兩種方法分別用兩個函數(shù)來實現(xiàn),在同一個程序中調(diào)用這兩個函數(shù)。實驗代碼及實現(xiàn):#include#include#define n 3double an+1n+1;double bn+1;double xn+1;double yn+1;void jacobi() /雅可比迭代法 double e;int nn;printf(intput e,n:);scanf(%lf%d,&e,&nn);while(nn-)for(int i=1;i=n;i+)double t=0;for(int j=1;j=n;j+)if(i!=j)t+=aij*xj;yi=(bi-t)/aii;double m=fabs(x1-y1);for(int i=2;i=n;i+)if(mfabs(xi-yi)m=fabs(xi-yi);if(me)for(int i=1;i=n;i+)printf(%lf ,yi);printf(n);break;for(int i=1;i=n;i+)x
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年廣東省江門市重點學校初一入學語文分班考試試題及答案
- 2022頭皮美塑療法技術(shù)操作規(guī)范專家共識解讀
- 返崗人員安全教育培訓(xùn)課件
- 云南國防工業(yè)職業(yè)技術(shù)學院《軟件實訓(xùn)(軍工系統(tǒng))》2024-2025 學年第一學期期末試卷(實踐課)
- 達爾文英文介紹
- 2026高考歷史總復(fù)習(通史版)第1講 中華文明的起源與早期國家
- 辰州安全培訓(xùn)課件
- 車險綜合改革培訓(xùn)課件
- 內(nèi)蒙古烏蘭察布市事業(yè)單位考錄面試試題
- 煤礦地表塌陷治理方案
- 《念奴嬌 赤壁懷古》《永遇樂 京口北固亭懷古》《聲聲慢》默寫練習 統(tǒng)編版高中語文必修上冊
- 婦產(chǎn)科病史采集臨床思維
- 《半導(dǎo)體器件物理》復(fù)習題2012
- 眾辰變頻器z2400t-15gy-1說明書
- 非電量保護裝置技術(shù)說明書
- 全國行政區(qū)劃代碼
- 新華書店先進事跡匯報
- 船體振動的衡準及減振方法
- 刑事偵查卷宗
- 水泥混凝土路面滑模攤鋪機施工工法
- 兒童嚴重過敏反應(yīng)急救演示文稿
評論
0/150
提交評論