分段线性插值与三次样条插值法_第1页
分段线性插值与三次样条插值法_第2页
分段线性插值与三次样条插值法_第3页
分段线性插值与三次样条插值法_第4页
分段线性插值与三次样条插值法_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、实验报告实验项目插值法实验日期2016/9/30理论内容分段线性插值与三次样条插值授课日期2016/9/0实验室名称文理管203微机编号E1实验目的及要求:1、 学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;2、 明确插值多项式和分段插值多项式各自的优缺点;3、熟悉插值方法的程序编制;如果绘出插值函数的曲线,观察其光滑性。实验内容:编写分段线性插值法及三次样条插值法通用子程序,依据数据表Xi2.02.12.22.32.41.414211.44911.483341.51651.549143807593构造相应的插值多项式,并计算函数f(x) x在x 2.15的近似值实验步骤及程序:

2、1、分段线性插值法流程图2、分段线性插值法源程序:function f = fenduan(x=2.0 2.1 2.2 2.3 2.4;y=1.414214 1.449138 1.483340 1.516575 1.549193;y_1=0.5*y.A(-0.5);x0=2.15;f = 0.0;if(len gth(x) = len gth(y)if(le ngth(y) = len gth(y_1)n = len gth(x);elsedisp(y 和 y 的导数的维数不相等!);return;endelsedisp(x 和 y 的维数不相等!);return;endfor i=1: ni

3、f(x(i)=xO)in dex = i;break;endendh = x(i ndex+1) - x(i ndex);fl = y(i ndex)*(1+2*(x0-x(i ndex)/h)*(xO-x(i ndex+1)A2/h/h + .y(i ndex+1)*(1-2*(x0-x(i ndex+1)/h)*(x0-x(i ndex)A2/h/h;f = fl;3、三次样条插值法流程图4、三次样条插值法源程序fun cti onyy, b, c, d=spli ne3(,,)%三次样条插值函数(x,y)为插值节点,xx 为插值点;%flag 表端点边界条件类型:%flag=O:自然样条

4、(端点二阶导数为 0);%flag=1:第一类边界条件(端点一阶导数给定);%flag=2:第二类边界条件(端点二阶导数给定);%vl,vr 表左右端点处的在边界条件值。% 样条函数为:Si(x)=yi+bi*(x-xi)+ci*(x-xi)A2+di*(x-xi)A3%b,c,d 分别为各子区间上的系数值%yy 表插值点处的函数值.x=2.0 2.1 2.2 2.3 2.4;y=1.414214 1.449138 1.483340 1.516575 1.549193;xx=2.15;flag=0;vl=2.0;vr=2.4;if len gth(x)=le ngth(y)n=len gth(

5、x);a=zeros (n-1,1);b=a;d=a;dx=a;dy=a;A=zeros (n);B=zeros (n ,1);endfor i=1: n-1a(i)=y(i);dx(i)=x(i+1)-x(i);dy(i)=y(i+i)-y(i);endfor i=2: n-1A(i,i-1)=dx(i-1);A(i,i)=2*(dx(i-1)+dx(i);A(i,i+1)=dx(i);B(i,1)=3*(dy(i)/dx(i)-dy(i-1)/dx(i-1);end%自然样条端点条件(端点二阶导数为零)if flag=O;A(1,1)=1;A(n,n )=1;end%- %端点一阶导数条件

6、%if flag=1A(1,1)=2*dx(1);A(1,2)=dx(1);A( n,n-1)=dx (n-1);A( n,n )=2*dx (n-1);B(1,1)=3*(dy(1)/dx(1)-vl);B(n ,1)=3*(vr-dy( n-1)/dx( n-1);end%- %端点二阶导数条件%if flag=2A(1,1)=2;A(n,n )=2;B(1,1)=vl;B(n ,1)=vr;end%- %c=AB;for i=1: n-1d(i)=(c(i+1)-c(i)/(3*dx(i);b(i)=dy(i)/dx(i)-dx(i)*(2*c(i)+c(i+1)/3; endmm, n

7、n =size(xx);yy=zeros(m m,nn);for i=1:mm* nnfor ii=1: n-1if xx(i)=x(ii) & xx(i)x(ii+1)j=ii;break;elseif xx(i)=x (n)j=n-1;endendyy(i)=a(j)+b(j)*(xx(i)-x(j)+c(j)*(xx(i)-x(j)A2+d(endendj)*(xx(i)-x( j)A3;结果分析与讨论:运用 MATLAB 分别对分段线性插值和三次样条插值进行编程的到数值均为1.4664说明实验结果准确无误,通过实验可以得出,在低阶方程的求解中,两种方法均能精确的 得到近似解,但是在高阶方程的求解中三次样

温馨提示

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

评论

0/150

提交评论