分段线性插值与三次样条插值法.docx

上传人:b****1 文档编号:15233356 上传时间:2023-07-02 格式:DOCX 页数:7 大小:34.13KB
下载 相关 举报
分段线性插值与三次样条插值法.docx_第1页
第1页 / 共7页
分段线性插值与三次样条插值法.docx_第2页
第2页 / 共7页
分段线性插值与三次样条插值法.docx_第3页
第3页 / 共7页
分段线性插值与三次样条插值法.docx_第4页
第4页 / 共7页
分段线性插值与三次样条插值法.docx_第5页
第5页 / 共7页
分段线性插值与三次样条插值法.docx_第6页
第6页 / 共7页
分段线性插值与三次样条插值法.docx_第7页
第7页 / 共7页
亲,该文档总共7页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

分段线性插值与三次样条插值法.docx

《分段线性插值与三次样条插值法.docx》由会员分享,可在线阅读,更多相关《分段线性插值与三次样条插值法.docx(7页珍藏版)》请在冰点文库上搜索。

分段线性插值与三次样条插值法.docx

分段线性插值与三次样条插值法

实验报告

实验项目

插值法

实验日期

2016/9/3

0

理论内容

分段线性插值与三次样条插值

授课日期

2016/9/0

实验室名称

文理管203

微机编号

E1

实验目的及要求:

1、学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;

2、明确插值多项式和分段插值多项式各自的优缺点;

3、熟悉插值方法的程序编制;如果绘出插值函数的曲线,观察其光滑性。

实验内容:

编写分段线性插值法及三次样条插值法通用子程序,依据数据表

Xi

2.0

2.1

2.2

2.3

2.4

1.41421

1.4491

1.48334

1.5165

1.5491

4

38

0

75

93

构造相应的插值多项式,并计算函数f(x)x在x2.15的近似值

实验步骤及程序:

1、分段线性插值法流程图

 

2、分段线性插值法源程序:

function[f]=fenduan(

x=[2.02.12.22.32.4];

y=[1.4142141.4491381.4833401.5165751.549193];

y_1=0.5*y.A(-0.5);

x0=2.15;

f=0.0;

if(length(x)==length(y))

if(length(y)==length(y_1))

n=length(x);

else

disp('y和y的导数的维数不相等!

');

return;

end

else

disp('x和y的维数不相等!

');

return;

end

fori=1:

n

if(x(i)<=xO)&&(x(i+1)>=xO)

index=i;

break;

end

end

h=x(index+1)-x(index);

fl=y(index)*(1+2*(x0-x(index))/h)*(xO-x(index+1))A2/h/h+...

y(index+1)*(1-2*(x0-x(index+1))/h)*(x0-x(index))A2/h/h;

f=fl;

3、三次样条插值法流程图

 

4、三次样条插值法源程序

function[yy,b,c,d]=spline3(〜,〜,〜,〜,〜,〜)

%三次样条插值函数%(x,y)为插值节点,xx为插值点;

%flag表端点边界条件类型:

%flag=O:

自然样条(端点二阶导数为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.02.12.22.32.4];

y=[1.4142141.4491381.4833401.5165751.549193];

xx=2.15;

flag=0;

vl=2.0;

vr=2.4;

iflength(x)==length(y)

n=length(x);

a=zeros(n-1,1);

b=a;

d=a;

dx=a;

dy=a;

A=zeros(n);

B=zeros(n,1);

end

fori=1:

n-1

a(i)=y(i);

dx(i)=x(i+1)-x(i);

dy(i)=y(i+i)-y(i);

end

fori=2:

n-1

A(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

%自然样条端点条件(端点二阶导数为零)%

ifflag==O;

A(1,1)=1;

A(n,n)=1;

end

%%

%端点一阶导数条件%

ifflag==1

A(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

%%

%端点二阶导数条件%

ifflag==2

A(1,1)=2;

A(n,n)=2;

B(1,1)=vl;

B(n,1)=vr;

end

%%

c=A\B;

fori=1:

n-1

d(i)=(c(i+1)-c(i))/(3*dx(i));

b(i)=dy(i)/dx(i)-dx(i)*(2*c(i)+c(i+1))/3;end

[mm,nn]=size(xx);

yy=zeros(mm,nn);

fori=1:

mm*nn

forii=1:

n-1

ifxx(i)>=x(ii)&&xx(i)

j=ii;

break;

elseifxx(i)==x(n)

j=n-1;

end

end

j)*(xx(i)-x(j))A3;

yy(i)=a(j)+b(j)*(xx(i)-x(j))+c(j)*(xx(i)-x(j))A2+d(

end

end

结果分析与讨论:

运用MATLAB分别对分段线性插值和三次样条插值进行编程的到数值均为

1.4664

说明实验结果准确无误,通过实验可以得出,在低阶方程的求解中,两种方法均能精确的得到近似解,但是在高阶方程的求解中三次样条插值方法更加精确,误差较小,由于运用追赶法求解,速度要比分段线性插值更加的快,这就说明在应对不同阶数的方程时,我们应该选用最优方法。

评分项目

满分

得分

评分项目

满分

得分

实验步骤及程序

10

运行结果

5

结果分析与讨论

5

合计

20

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2