




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与工程学院计算方法实验报告学号 姓名班级实验项目名称计算方法实验一、实验名称实验一 插值与拟合二、 实验目的:(1)明确插值多项式和分段插值多项式各自的优缺点;(2)编程实现拉格朗日插值算法,分析实验结果体会高次插值产生的龙格现象;(3)运用牛顿插值方法解决数学问题。三、 实验内容及要求(1) 对于要求选取11个等距插值节点,分别采用拉格朗日插值和分段线性插值,计算x为0.5, 4.5处的函数值并将结果与精确值进行比较。输入:区间长度,n(即n+1个节点),预测点输出:预测点的近似函数值,精确值,及误差(2)已知用牛顿插值公式求的近似值。输入:数据点集,预测点。输出:预测点的近似函数值四、 实验原理及算法描述算法基本原理:(1)拉格朗日插值法(2) 牛顿插值法算法流程五、 程序代码及实验结果(1) 输出:A拉格朗日插值法 B.分段线性插值X y(精确) y(拉格朗日) y(分段线性) 误差(拉) 误差(分)0.5000000.8000000.8434070.750000 -0.054259 0.0500004.5000000.0470591.578720 0.0486425 -32.547674 -0.033649(2) 输出:X y(精确) y(牛顿插值) 误差(牛顿插值) 5.000002.2360682.266670 -0.013686 源码:(1)A.拉格朗日插值法#include #include #include using namespace std; double Lagrange(int N,vector&X,vector&Y,double x); int main() double p,b,c;char a=n; do cout请输入差值次数n的值:N; vectorX(N,0); vectorY(N,0); cout请输入区间长度(a,b):p;cinb;c=b-p;c=c/(N-1); for(int i=0;iN;i+)Xi=p; Yi=1/(1+p*p);p=p+c; cout请输入要求值x的值:x; double result=Lagrange(N,X,Y,x); cout由拉格朗日插值法得出结果: resultendl; couta; while(a=y); return 0; double Lagrange(int N,vector&X,vector&Y,double x) double result=0; for(int i=0;iN;i+) double temp=Yi; for(int j=0;jN;j+) if(i!=j) temp = temp*(x-Xj); temp = temp/(Xi-Xj); result += temp; return result; ; B:分段线性插值#include #include #include using namespace std; double fenduan(int N,vector&X,vector&Y,double x,double c ); int main() double p,b,c;char a=n; do cout请输入差值次数n的值:N; vectorX(N,0); vectorY(N,0); cout请输入区间长度(a,b):p;cinb;c=b-p;c=c/(N-1); for(int i=0;iN;i+)Xi=p; Yi=1/(1+p*p);p=p+c; cout请输入要求值x的值:x; double result=fenduan(N,X,Y,x,c); cout由分段线性插值法得出结果: resultendl; couta; while(a=y); return 0; double fenduan(int N,vector&X,vector&Y,double x,double c) double result=0; int b; b=0; while(x-Xbc) b=b+1; result=Yb*(1-(x-Xb)/c)+Yb+1*(x-Xb)/c); return result; ;(3) 牛顿插值法#include #include #include using namespace std; double ChaShang(int n,vector&X,vector&Y); double Newton(double x,vector&X,vector&Y); int main() char a=n; do int n; cout请输入插值点个数:n; vectorX(n,0); vectorY(n,0); cout请输入插值点对应的值及函数值(Xi,Yi):endl; for(int i=0;iXiYi; cout请输入要求值x的值:x; cout由牛顿插值法得出结果: Newton(x,X,Y)endl; couta; while(a=y); return 0; double ChaShang(int n,vector&X,vector&Y) double f=0; double temp=0; for(int i=0;in+1;i+) temp=Yi; for(int j=0;jn+1;j+) if(i!=j) temp /= (Xi-Xj); f += temp; return f; double Newton(double x,vector&X,vector &Y) double result=0; for(int i=0;iX.size();i+) double temp=1; double f=ChaShang(i,X,Y); for(int j=0;ji;j+) temp = temp*(x-Xj); result += f*temp; return result; 六、 实验总结1. 通过实验一数据发现,拉格朗日插值在低次插值时,同源函数偏差并不大,但在高次插值时同原函数偏差大、存在明显的龙格现象,而分段线性插值可以避免出现的龙格现象,与原函数比较吻合,但是分段线性插值由于其分段属性,使得插值函数失去光滑性,可以考虑采用Hermite插值优化。2. 通过实验二计算过程发现,拉格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 41.2025年新能源行业农村生物质能分布式供能系统普及率考核试卷
- 2025年零售行业门店废弃物回收台账管理合规考核试卷
- 2025年房地产经纪服务客户关系管理规范考核试卷
- 难点解析-人教版八年级上册物理声现象《声音的特性》同步测试练习题(含答案详解)
- 浅谈画图策略在小学数学教学中的应用和思考
- 考点解析-人教版八年级上册物理物态变化《熔化和凝固》综合练习练习题(解析版)
- 2025年建筑工地扬尘治理保证金合同协议
- 2025年建筑工地安全培训合同协议
- 2024年矿山生态修复监测技术考核试卷
- 客户化开发合同(标准版)
- 2025年软件定义汽车:SOA和中间件行业研究报告
- 塞尔达玩家测试题及答案
- 2025-2030中国单反数码相机市场现状深度剖析及需求预测研究报告
- 施工质量检查制度
- 2025年粮油集团笔试试题及答案
- 个人成长目标设定与实现路径
- 化学发展史课件
- 尿路感染的护理常规
- 应急计划评审表
- 配电房岗位职责
- 2024-2025华为ICT大赛(实践赛)-网络赛道理论考试题库大全-上(单选题)
评论
0/150
提交评论