- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课 程 实 验 报 告
课程名称: 计算方法
专业班级:
学 号:
姓 名:
指导教师:
报告日期:
计算机科学与技术学院
实验一
题目
用C语言实现Lagrange插值算法。
实验目的
理解Lagrange插值原理,以及在计算机上的实现过程。
实验原理
Lagrange插值法公式:
p
l
流程图
源程序(数据来源于课本的实验例子)
#includestdio.h
#define N 4
void main()
{ float x[N]={0.56160,0.56280,0.56401,0.56521},
y[N]={0.82742,0.82659,0.82577,0.82495},
xl,l = 0,li = 1;
int i,j;
printf(Please Input X \n);
scanf(%f,xl);
for(i = 0;i N;i++)
{ for(j = 0,li = 1;j N; j++)
{if(j == i) goto h;
li = li * ((xl-x[j])/(x[i]-x[j]));
h: li = li;}
l = l + li*y[i];
}
printf(4 \t Ln(x) = %f \n,l);
}
截图:
由截图可知,经过验算符合预期实验结果。
实验二
题目
用C语言实现Newton插值算法。
实验目的
理解Newton插值原理,以及在计算机上的实现过程。
实验原理
Newton插值公式:
N
f
ω
构造差商表如下:
…
…
…
…
…
…
流程图
开始
开始
读入 QUOTE , QUOTE
(i=0,1,2…,N)
k=1
结束
k=N
输入x
k++;
输出 QUOTE
是
否
源程序(数据来源于课本的实验例子)
#includestdio.h
#define N 5
void main()
{float x[N] = {0.4,0.55,0.65,0.8,0.9},y[N] = {0.41075,0.57815,0.69675,0.88811,1.02652},
开始读入 QUOTE
开始
读入 QUOTE , QUOTE
(i=0,1,2…,N)
k=1
结束
k=N
输入x
k++;
输出 QUOTE
是
否
int k=0 ,i;
printf(***************************************************************************\n);
printf(k Xk Yk Fk F01k F02k F0123k \n );
printf(***************************************************************************\n);
printf(0%12.4f%12.4f\n,x[0],y[0]);
for(k =1;kN;)
{f[0] = y[k];
printf(%d%12.4f%12.4f,k,x[k],y[k]);
for(i = 0;i=k-1 ;i++)
{f[i+1] = (f[i]-y[i])/(x[k]-x[i]);
printf( );
printf(%.4f,f[i+1]);}
printf(\n);
y[k] = f[k];
k++;
}
n1 = f[N-1];
n2 = f[N-1];
printf(***************************************************************************\n);
for(i = N-1;i = 0;i--)
{ n1 = n1 *(0.596-x[i])+y[i];
n2 = n2 *(0.895-x[i])+y[i];}
printf(%f\t%f\n,n1,n2);}
由截图可知,经过验算符合预期实验结果。
实验心得:
经过本次实验,我不仅对拉格朗日插值、牛顿插值公式的一些特性有了更加深刻的了解同时我对C语言的编程也更加熟练了。
文档评论(0)