数值分析 实验二分段插值.doc_第1页
数值分析 实验二分段插值.doc_第2页
数值分析 实验二分段插值.doc_第3页
数值分析 实验二分段插值.doc_第4页
全文预览已结束

下载本文档

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

文档简介

数学与软件科学学院 实验报告 学期: 至 第 学期 年 月 日 课程名称:_计算机数值方法_ 专业: 级 班实验编号:2 实验项目 分段线性、分段二次插值多项式 指导教师_张莉_姓名: 学号: 实验成绩:一、实验目的及要求实验目的:1. 体会分段低次插值在不增加结点的情况下,提高插值精度的思想和这种用低代价换取高回报的手段。2. 熟练掌握分段一次、分段二次插值多项式公式;3. 掌握分段插值多项式算法设计的特点。实验要求:1. 给出分段一次、二次插值算法;2. 用C语言实现算法3. 给出误差分析。二、实验内容用下列插值节点数据,构造分段线性插值多项式,并计算f(1.075),f(1.175)的值。x1.051.101.151.20F(x)2.122.202.172.32三、实验步骤(该部分不够填写.请填写附页)步骤一:写出分段插值函数的算法:1 输入n的值,及节点值(xi,yi),i=0,1,2,3n;记f(xi)=yi2 For i=0,1,2,.n-1 在xi,xi+1上计算Pi(x)=f(xi)*(x-xi+1)/(xi-xi+1)+f(xi+1)(x-xi)/(xi+1-xi)3. 在x_k,x_k+1,x_k+2 上 计算 P(x)=y_i*(x-x_r)/(x_j-x_r)4.输入x的值,计算结果。步骤二:输入分段插值函数的程序如下:#include#define MAX_N 20typedef struct tagPOINT /*the structer of point */ double x; double y;POINT;int main() int n,i,j,k,l,r; POINT pointsMAX_N+1; double x; double lar1; double tmp=1.0; double lar2=0.0; clrscr(); printf(nInput n value :); /*the number of the points inserted*/ scanf(%d,&n); if(nMAX_N) printf(The input n is larger than MAX_N,please redefine the MAX_N.n); return 1; if(n=0) printf(Please input a number between 1 and %d.n,MAX_N); printf(Now input the (x_i,y_i),i=0,.%d:n,n); for(i=0;i=n;i+) scanf(%lf %lf,&pointsi.x,&pointsi.y); printf(Now input the x value:); /*the value of x*/ scanf(%lf,&x); printf(the result of fen duan cha zhi yi ci han shu is:n); /一次插值拉格朗日函数的实现 for(i=0;i=pointsi.x & x=pointsi+1.x) lar1=(x-pointsi+1.x)/(pointsi.x-pointsi+1.x)*pointsi.y+(x-pointsi.x)/(pointsi+1.x-pointsi.x)*pointsi+1.y; break; printf(once times result is:%fn,lar1); printf(the results of fen duan cha zhi er ci han shu is:n); /二次插值拉格朗日函数的实现 i=0; while(in-1) if(xpointsn-2.x) k=n-2;break; else if(xpointsi.x & x=pointsi+1.x & fabs(x-pointsi.x)pointsi.x & xfabs(x-pointsi+1.x) k=i;break; else i+; for(j=k;j=k+2;j+) for(r=k;rk+2 & r!=j;r+) tmp*=(x-pointsr.x)/(pointsj.x-pointsr.x); l=pointsj.y*tmp; lar2+=l; printf(the result of ren duan er ci cha zhi is:%lf,lar2); return 0;实 验 报 告 附 页四、实验结果分析与评价 (该部分不够填写.请填写附页)运行程序,将错误改正后。输入x=1.075,分别由一次和二次插值函数得到的结果如下:将x=1.175输入,分别得到的结果为:误差分析:用分段一次拉格朗日插值函数时,误差为: 当xx_i,x_i+1时,f(x)-p(x)=f(x)-p_i(x)=f(2)(a)(x-x_i)(x-x_i+1)/2!=M2(x_i+1-x_i)2/8其中,M2=max|f(2)(x)| 用分段二次拉格朗日

温馨提示

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

评论

0/150

提交评论