《计算方法》实验报告Word文档格式.docx

上传人:wj 文档编号:6915343 上传时间:2023-05-07 格式:DOCX 页数:9 大小:378.99KB
下载 相关 举报
《计算方法》实验报告Word文档格式.docx_第1页
第1页 / 共9页
《计算方法》实验报告Word文档格式.docx_第2页
第2页 / 共9页
《计算方法》实验报告Word文档格式.docx_第3页
第3页 / 共9页
《计算方法》实验报告Word文档格式.docx_第4页
第4页 / 共9页
《计算方法》实验报告Word文档格式.docx_第5页
第5页 / 共9页
《计算方法》实验报告Word文档格式.docx_第6页
第6页 / 共9页
《计算方法》实验报告Word文档格式.docx_第7页
第7页 / 共9页
《计算方法》实验报告Word文档格式.docx_第8页
第8页 / 共9页
《计算方法》实验报告Word文档格式.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《计算方法》实验报告Word文档格式.docx

《《计算方法》实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《《计算方法》实验报告Word文档格式.docx(9页珍藏版)》请在冰点文库上搜索。

《计算方法》实验报告Word文档格式.docx

区间长度,n(即n+1个节点),预测点

输出:

预测点的近似函数值,精确值,及误差

(2)已知用牛顿插值公式求的近似值。

数据点集,预测点。

预测点的近似函数值

四、实验原理及算法描述

算法基本原理:

(1)拉格朗日插值法

(2)牛顿插值法

算法流程

五、程序代码及实验结果

(1)输出:

A.拉格朗日插值法

B.分段线性插值

X y(精确) y(拉格朗日)y(分段线性)误差(拉)误差(分)

0.500000 0.800000 0.843407 0.750000 -0.054259 0.050000

4.500000 0.047059 1.5787200.0486425-32.547674 -0.033649

(2)输出:

X y(精确) y(牛顿插值)误差(牛顿插值)

5.00000 2.236068 2.266670 -0.013686

源码:

(1)A.拉格朗日插值法

#include<

iostream>

string>

vector>

usingnamespacestd;

doubleLagrange(intN,vector<

double>

&

X,vector<

Y,doublex);

intmain(){

doublep,b,c;

chara='

n'

;

do{

cout<

<

"

请输入差值次数n的值:

endl;

intN;

cin>

>

N;

vector<

X(N,0);

Y(N,0);

请输入区间长度(a,b):

cin>

p;

b;

c=b-p;

c=c/(N-1);

for(inti=0;

i<

i++){

X[i]=p;

Y[i]=1/(1+p*p);

p=p+c;

}

请输入要求值x的值:

doublex;

x;

doubleresult=Lagrange(N,X,Y,x);

由拉格朗日插值法得出结果:

"

result<

是否要继续?

(y/n):

a;

}while(a=='

y'

);

return0;

}

Y,doublex){

doubleresult=0;

for(inti=0;

i++){

doubletemp=Y[i];

for(intj=0;

j<

j++){

if(i!

=j){

temp=temp*(x-X[j]);

temp=temp/(X[i]-X[j]);

}

}

result+=temp;

returnresult;

};

B:

分段线性插值

doublefenduan(intN,vector<

Y,doublex,doublec);

doubleresult=fenduan(N,X,Y,x,c);

由分段线性插值法得出结果:

Y,doublex,doublec){

intb;

b=0;

while(x-X[b]>

c)

{

b=b+1;

}

result=Y[b]*(1-(x-X[b])/c)+Y[b+1]*((x-X[b])/c);

(3)牛顿插值法

doubleChaShang(intn,vector<

Y);

doubleNewton(doublex,vector<

chara='

do{

intn;

cout<

请输入插值点个数:

cin>

n;

vector<

X(n,0);

Y(n,0);

请输入插值点对应的值及函数值(Xi,Yi):

X[i]>

Y[i];

doublex;

由牛顿插值法得出结果:

Newton(x,X,Y)<

Y){

doublef=0;

doubletemp=0;

n+1;

temp=Y[i];

j++)

if(i!

=j)temp/=(X[i]-X[j]);

f+=temp;

returnf;

}

&

X.size();

doubletemp=1;

doublef=ChaShang(i,X,Y);

i;

result+=f*temp;

returnresult;

六、实验总结

1.通过实验一数据发现,拉格朗日插值在低次插值时,同源函数偏差并不大,但在高次插值时同原函数偏差大、存在明显的龙格现象,而分段线性插值可以避免出现的龙格现象,与原函数比较吻合,但是分段线性插值由于其分段属性,使得插值函数失去光滑性,可以考虑采用Hermite插值优化。

2.通过实验二计算过程发现,拉格朗日插值法的线性插值的计算过程没有继承性,即增加一个节点时整个计算工作必须重新开始。

而牛顿插值则避免了这一问题,这样大量的节省了乘、除法运算次数,减少了计算的时间。

因此,对于一些结构相当复杂的函数,牛顿插值法比拉格朗日插值法要占优势。

五、教师评语(或成绩)

教师签字:

9

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2