计算方法实验一.doc_第1页
计算方法实验一.doc_第2页
计算方法实验一.doc_第3页
计算方法实验一.doc_第4页
计算方法实验一.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.计算方法实验报告学号 姓名班级计算机科学与计术三班实验项目名称一、实验名称实验一 插值与拟合1. 实验目的:1. 明确插值多项式和分段插值多项式各自的优缺点;2. 编程实现拉格朗日插值算法,分析实验结果体会高次插值产生的龙格现象;3.理解最小二乘拟合,并编程实现线性拟合,掌握非线性拟合转化为线性拟合的方法4.运用常用的插值和拟合方法解决实际问题。二、 实验内容及要求1.给定函数.2. 三、 实验原理及算法描述1. Lagrange插值法的基本原理:2. Lagrange插值算法描述:(也可以是算法流程图)步骤1: 构造处的插值基函数,其中,插值节点处的插值基函数为;步骤2:以作为的系数,使得通过插值点;步骤3:把所有的线性叠加,得到通过所有插值点的插值函数。Lagrange插值伪代码:给定个插值点的情况下,求插值函数在点处的函数值。/*输入参数*x=(x0,x1,.,xn), 插值节点*y=(y0,y1,yn); 被插函数f(x)在插值节点处的函数值*t 求插值函数Ln (x)在t处的函数值*返回值 插值函数Ln (x)在t处的函数值 */四、 程序代码及实验结果1 主程序int main()float XN, YN, x;int num;ifstream in(input.txt);in num;for (int i = 0; i Xi;in Yi;in x;float result = largerange(X,Y,num,x);cout 我们想要的结果为: resultendl;return 0;2 Lagrange插值子程序:function y=lagr1(x0,y0,x)%x0为插值点的向量,y0为插值点处的函数值向量,x为未知的点.float largerange(float X, float Y, int n, float x) float res = 0;/结果 int j = 0;float LbaseN;/基函数 float up, down;for (int k = 0; kn; k+) up = 1.0;down = 1.0;for (j = 0; jn; j+) if (j = k)continue;/是乘 非 K 的数 so contiue up = up*(x - Xj);down = down*(Xk - Xj);Lbasek = up / down;/所有插值的 base/上米娜这个 循环实现了 基函数的运算 for (int i = 0; i num;for (int i = 0; i Xi;in Yi;in x;float jingque = 1 / (1 + x*x);float result = fenduan(X, Y, num, x);cout 我们求 x 的近似值 endl;cout 分段线性结果为: result endl;cout 精确值为: jingque endl;cout 误差为: abs(jingque - result) endl;return 0;结果: 牛顿:子程序:/求插上 float chashang(float X, float Y, int n)float res = 0;float temp = 0;for (int i = 0; in + 1; i+) temp = Yi;for (int j = 0; jn + 1; j+)if (i != j) temp = temp / (Xi - Xj);/就是把 他们的 积 球出来 res = res + temp;/求和 return res;float niudun(float X, float Y, float x, int n)double res = 0;for (int i = 0; in; i+)float temp = 1;float f = chashang(X, Y, i);for (int j = 0; ji; j+)temp = temp*(x - Xj);res = res + f*temp;return res;主程序:int main()float XN, YN;int num;cout 请输入插值的节点数: num;cout 请输入对应的插值结点(X,Y): endl;for (int i = 0; inum; i+) cout 第 i + 1 Xi;cout 第 i + 1 Yi;float x;cout 请输入待求解的插值节点的X值 x;float res = niudun(X, Y, x, num);cout 插值结果为: res endl;结果:。如图一所示。 图1 2 五、 实验总结1. 拉格朗日插值在高次插值时同原函数偏差大、存在龙格现象,高次插值多项式不收敛。2. 分段线性差值可以避免一些龙格现象

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论