- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE 2
实验名称
实验1
实验地点
6A-XXX
实验类型
设计
实验学时
2
实验日期
20 /X/X
撰写注意:版面格式已设置好(不得更改),填入内容即可。
实验目的
编写拉格朗日插值函数
主函数main()调用上面的函数完成计算并输出结果
实验内容
实验任务
编写拉格朗日插值函数
主函数main()调用上面的函数完成计算并输出结果
程序设计
数据输入(输入哪些数据、个数、类型、来源、输入方式)
double x[], double y[], double t, int n
数据存储(输入数据在内存中的存储)
函数
double lagrange(double x[], double y[], double t, int n)
数据处理(说明处理步骤。若不是非常简单,需要绘制流程图)
输入要处理的数据进入变量中
进行函数处理
输出函数处理结果
数据输出(贴图:程序运行结果截图。图幅大小适当,不能太大)
实验环境
操作系统:WINDOWS 7及以上
开发工具:VS 2015
实验设备:PC
提交文档
提交本实验报告(电子版),文件名命名:学号 姓名《实验X:XXXXXXX》.doc
教师将批阅后(有分数)的全体学生实验报告刻入一张光盘存档,保证光盘可读。
附:源代码
#includeiostream
using namespace std;
double lagrange(double x[], double y[], double t, int n)
{
int t_pos = 0;
double ft = 0.0;
while (x[t_pos]tt_posn)
{
t_pos++;
}
int start = t_pos - 3;
int end = t_pos + 4;
if (start 0)
{
start = 0;
end = start + 7;
}
if (end n)
{
end = n;
start = end - 7;
}
for (int i = start; i end; i++)
{
double f = 1.0;
for (int j = start; j end; j++)
{
if (j != i)
{
f = f*(t - x[j]) / (x[i] - x[j]);
}
}
ft = ft + f*y[i];
}
return ft;
}
int main()
{
double x[20];
double a = 0.10;
for (int i = 0; i 20; i++)
{
x[i] = a;
a = a + 0.05;
}
double y[20] = { 0.1103329 ,0.1736223 ,0.2426552 ,
0.3176729 ,0.3989105,0.4865951,0.5809439,
0.6821617 ,0.7904390,0.9059492,1.0288456,
1.1592592 ,1.2972951 ,1.4430292,1.5965053,
1.7577308 ,1.9266733 ,2.1032563 ,2.2873552 ,
2.4787929 };
cout t=0.13,f(t)= lagrange(x, y, 0.13, 20) endl;
cout t=0.63,f(t)= lagrange(x, y, 0.63, 20) endl;
cout t=1.03,f(t)= lagrange(x, y, 1.03, 20) endl;
system(pause);
return 0;
}
文档评论(0)