《实验1:拉格朗日插值》.docVIP

  • 2
  • 0
  • 约1.68千字
  • 约 3页
  • 2020-08-16 发布于浙江
  • 举报
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)

1亿VIP精品文档

相关文档