計(jì)算方法實(shí)驗(yàn)報(bào)告_第1頁
計(jì)算方法實(shí)驗(yàn)報(bào)告_第2頁
計(jì)算方法實(shí)驗(yàn)報(bào)告_第3頁
計(jì)算方法實(shí)驗(yàn)報(bào)告_第4頁
計(jì)算方法實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上計(jì)算方法實(shí)驗(yàn)報(bào)告學(xué)號(hào) 姓名班級(jí)實(shí)驗(yàn)項(xiàng)目名稱計(jì)算方法實(shí)驗(yàn)一、實(shí)驗(yàn)名稱實(shí)驗(yàn)一 插值與擬合二、 實(shí)驗(yàn)?zāi)康模?1)明確插值多項(xiàng)式和分段插值多項(xiàng)式各自的優(yōu)缺點(diǎn);(2)編程實(shí)現(xiàn)拉格朗日插值算法,分析實(shí)驗(yàn)結(jié)果體會(huì)高次插值產(chǎn)生的龍格現(xiàn)象;(3)運(yùn)用牛頓插值方法解決數(shù)學(xué)問題。三、 實(shí)驗(yàn)內(nèi)容及要求(1) 對(duì)于要求選取11個(gè)等距插值節(jié)點(diǎn),分別采用拉格朗日插值和分段線性插值,計(jì)算x為0.5, 4.5處的函數(shù)值并將結(jié)果與精確值進(jìn)行比較。輸入:區(qū)間長(zhǎng)度,n(即n+1個(gè)節(jié)點(diǎn)),預(yù)測(cè)點(diǎn)輸出:預(yù)測(cè)點(diǎn)的近似函數(shù)值,精確值,及誤差(2)已知用牛頓插值公式求的近似值。輸入:數(shù)據(jù)點(diǎn)集,預(yù)測(cè)點(diǎn)。輸出:預(yù)測(cè)點(diǎn)的近

2、似函數(shù)值四、 實(shí)驗(yàn)原理及算法描述算法基本原理:(1)拉格朗日插值法(2) 牛頓插值法算法流程五、 程序代碼及實(shí)驗(yàn)結(jié)果(1) 輸出:A拉格朗日插值法 B.分段線性插值X y(精確) y(拉格朗日) y(分段線性) 誤差(拉) 誤差(分)0.0.0.0. -0. 0.4.0.1. 0. -32. -0.(2) 輸出:X y(精確) y(牛頓插值) 誤差(牛頓插值) 5.000002.2. -0. 源碼:(1)A.拉格朗日插值法#include<iostream> #include<string> #include<vector> using namespace

3、std; double Lagrange(int N,vector<double>&X,vector<double>&Y,double x); int main() double p,b,c;char a='n' do cout<<"請(qǐng)輸入差值次數(shù)n的值:"<<endl; int N; cin>>N; vector<double>X(N,0); vector<double>Y(N,0); cout<<"請(qǐng)輸入?yún)^(qū)間長(zhǎng)度(a,b):"

4、;<<endl;cin>>p;cin>>b;c=b-p;c=c/(N-1); for(int i=0;i<N;i+)Xi=p; Yi=1/(1+p*p);p=p+c; cout<<"請(qǐng)輸入要求值x的值:"<<endl; double x; cin>>x; double result=Lagrange(N,X,Y,x); cout<<"由拉格朗日插值法得出結(jié)果: "<<result<<endl; cout<<"是否要繼續(xù)?

5、(y/n):" cin>>a; while(a='y'); return 0; double Lagrange(int N,vector<double>&X,vector<double>&Y,double x) double result=0; for(int i=0;i<N;i+) double temp=Yi; for(int j=0;j<N;j+) if(i!=j) temp = temp*(x-Xj); temp = temp/(Xi-Xj); result += temp; return res

6、ult; ; B:分段線性插值#include<iostream> #include<string> #include<vector> using namespace std; double fenduan(int N,vector<double>&X,vector<double>&Y,double x,double c ); int main() double p,b,c;char a='n' do cout<<"請(qǐng)輸入差值次數(shù)n的值:"<<endl; in

7、t N; cin>>N; vector<double>X(N,0); vector<double>Y(N,0); cout<<"請(qǐng)輸入?yún)^(qū)間長(zhǎng)度(a,b):"<<endl;cin>>p;cin>>b;c=b-p;c=c/(N-1); for(int i=0;i<N;i+)Xi=p; Yi=1/(1+p*p);p=p+c; cout<<"請(qǐng)輸入要求值x的值:"<<endl; double x; cin>>x; double resul

8、t=fenduan(N,X,Y,x,c); cout<<"由分段線性插值法得出結(jié)果: "<<result<<endl; cout<<"是否要繼續(xù)?(y/n):" cin>>a; while(a='y'); return 0; double fenduan(int N,vector<double>&X,vector<double>&Y,double x,double c) double result=0; int b; b=0; while(

9、x-Xb>c) b=b+1; result=Yb*(1-(x-Xb)/c)+Yb+1*(x-Xb)/c); return result; ;(3) 牛頓插值法#include<iostream> #include<string> #include<vector> using namespace std; double ChaShang(int n,vector<double>&X,vector<double>&Y); double Newton(double x,vector<double>&

10、X,vector<double>&Y); int main() char a='n' do int n; cout<<"請(qǐng)輸入插值點(diǎn)個(gè)數(shù):"<<endl; cin>>n; vector<double>X(n,0); vector<double>Y(n,0); cout<<"請(qǐng)輸入插值點(diǎn)對(duì)應(yīng)的值及函數(shù)值(Xi,Yi):"<<endl; for(int i=0;i<n;i+) cin>>Xi>>Yi; cout

11、<<"請(qǐng)輸入要求值x的值:"<<endl; double x; cin>>x; cout<<"由牛頓插值法得出結(jié)果: "<<Newton(x,X,Y)<<endl; cout<<"是否要繼續(xù)?(y/n):" cin>>a; while(a='y'); return 0; double ChaShang(int n,vector<double>&X,vector<double>&Y) d

12、ouble f=0; double temp=0; for(int i=0;i<n+1;i+) temp=Yi; for(int j=0;j<n+1;j+) if(i!=j) temp /= (Xi-Xj); f += temp; return f; double Newton(double x,vector<double>&X,vector<double> &Y) double result=0; for(int i=0;i<X.size();i+) double temp=1; double f=ChaShang(i,X,Y); for(int j=0;j<i;j+) temp = temp*(x-Xj); result += f*temp; return result; 六、 實(shí)驗(yàn)總結(jié)1. 通過實(shí)驗(yàn)一數(shù)據(jù)發(fā)現(xiàn),拉格朗日插值在低次插值時(shí),同源函數(shù)偏差并不大,但在高次插值時(shí)同原函數(shù)偏差大、存在明顯的龍格現(xiàn)象,而分段線性插值可以避免出現(xiàn)的龍格現(xiàn)象,與原函數(shù)比較吻合,但是分段線性插值由

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論