matlab实现插值法和曲线拟合电子教案Word文档格式.docx

上传人:b****1 文档编号:14385153 上传时间:2022-10-22 格式:DOCX 页数:12 大小:187.41KB
下载 相关 举报
matlab实现插值法和曲线拟合电子教案Word文档格式.docx_第1页
第1页 / 共12页
matlab实现插值法和曲线拟合电子教案Word文档格式.docx_第2页
第2页 / 共12页
matlab实现插值法和曲线拟合电子教案Word文档格式.docx_第3页
第3页 / 共12页
matlab实现插值法和曲线拟合电子教案Word文档格式.docx_第4页
第4页 / 共12页
matlab实现插值法和曲线拟合电子教案Word文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

matlab实现插值法和曲线拟合电子教案Word文档格式.docx

《matlab实现插值法和曲线拟合电子教案Word文档格式.docx》由会员分享,可在线阅读,更多相关《matlab实现插值法和曲线拟合电子教案Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

matlab实现插值法和曲线拟合电子教案Word文档格式.docx

x1<

…<

xn=b,已知函数y=f(x)在这些插值结点的函数值为yk=f(xk)(k=0,1,…,n)求一个分段函数Ih(x),使其满足:

(1)Ih(xk)=yk,(k=0,1,…,n);

(2)在每个区间[xk,xk+1]上,Ih(x)是个一次函数。

易知,Ih(x)是个折线函数,在每个区间[xk,xk+1]上,(k=0,1,…,n),于是,Ih(x)在[a,b]上是连续的,但其一阶导数是不连续的。

3拉格朗日插值多项式算法

输入,令。

对,计算

4分段线性插值算法

输入(x,y),k=0,1,…,n;

计算

5插值法和分段线性插值程序

按下列数据分别作五次插值和分段线性插值,画出两条插值曲线以及给定数据点。

求x1=0.32,x2=0.55,x3=0.68时的函数近似值,并比较两种方法的插值余项。

0.30

0.42

0.50

0.58

0.66

0.72

1.04403

1.08462

1.11803

1.15603

1.19817

1,23223

拉格朗日插值程序:

functionlagrint

xi=[0.32,0.55,0.68];

%xi=[0.2:

0.001:

0.8];

x=[0.3,0.42,0.50,0.58,0.66,0.72];

y=[1.04403,1.08462,1.11803,1.15603,1.19817,1.23223];

L=zeros(size(y));

m=length(xi);

fori=1:

m

dxi=xi(i)-x;

L

(1)=prod(dxi(2:

6))/prod(x

(1)-x(2:

6));

L(6)=prod(dxi(1:

6-1))/prod(x(6)-x(1:

6-1));

forj=2:

6-1

num=prod(dxi(1:

j-1))*prod(dxi(j+1:

den=prod(x(j)-x(1:

j-1))*prod(x(j)-x(j+1:

L(j)=num/den;

end

yi(i)=sum(y.*L);

fprintf('

x=%f,y=%f\n'

xi(i),yi(i));

plot(xi,yi,'

r'

);

axis([0.20.81.031.24]);

holdon

plot(x,y,'

b.'

'

markersize'

20)

gridon

分段线性插值算法程序:

function[y]=div

%xi=[0.3:

0.72];

x0=[0.3,0.42,0.50,0.58,0.66,0.72];

y0=[1.04403,1.08462,1.11803,1.15603,1.19817,1.23223];

k=1;

forj=1:

3

fori=1:

5

ifxi(j)>

=x0(i)&

&

xi(j)<

=x0(i+1)&

k<

=3

lx

(1)=(xi(j)-x0(i+1))/(x0(i)-x0(i+1));

lx

(2)=(xi(j)-x0(i))/(x0(i+1)-x0(i));

y(k)=lx

(1)*y0(i)+lx

(2)*y0(i+1);

k=k+1;

end

plot(xi,y,'

plot(x0,y0,'

6运算结果

拉格朗日插值结果

x=0.320000,y=1.049958

x=0.550000,y=1.141271

x=0.680000,y=1.209300

拉格朗日插值余项:

分段插值结果

ans=

1.05081.14181.2095

分段线性插值余项:

由于拉格朗日插值的余项比分段线性插值的余项要求更为严格,点少、区间小的时候,拉格朗日插值要更好。

但在区间较大、节点较多的时候,分段线性插值要更好。

二、牛顿前插

1牛顿前插原理

次牛顿前插公式:

插值余项:

阶差分记作。

阶差商是

差分和差商之间的关系是

2牛顿前插算法

输入。

对,计算各阶差分

计算函数值3牛顿前插程序:

编写一个用牛顿前插公式计算函数值的程序,要求先输出差分表,再计算x点的函数值

0.125

0.250

0.375

0.500

0.625

0.750

0.796

0.773

0.744

0.704

0.656

0.602

分别求x=0.158和x=0.636的三次插值的值,并比较二者的插值余项。

这里以x=0.636为例

function[P]=newtoncha

x0=0.636;

X=[0.1250.2500.3750.5000.6250.750];

Y=[0.7960.7730.7440.7040.6560.602];

h=abs(X

(2)-X

(1));

n=find(abs(x0-X)<

3*h);

X=X(n

(1):

n(end));

Y=Y(n

(1):

w=length(X);

R=zeros(w,w);

R(:

1)=Y(:

fork=2:

w

forj=k:

R(j,k)=R(j,k-1)-R(j-1,k-1);

t=(x0-X

(1))/h;

T=1;

form=1:

w-1

T=T*(t-m+1);

N(m)=R(m+1,m+1)*T/factorial(m);

P=R(1,1)+sum(N);

4运行结果:

差分表

0.796000000000000

0.773000000000000

.023*********

0.744000000000000

.029*********

-0.006000000000000

0.704000000000000

-0.040000000000000

-0.011000000000000

-0.005000000000000

0.656000000000000

-0.048000000000000

-0.008000000000000

0.003000000000000

0.008000000000000

0.602000000000000

-0.054000000000000

0.002000000000000

-0.001000000000000

-0.009000000000000

X=0.636时ans=0.651459661824000x=0,158时ans=0.790229818880000

三、曲线拟合

1曲线拟合原理:

给定数据。

记拟合函数的形式为(1.1),

其中为已知的线性无关函数。

求系数使得

(1.2)

取最小值。

(1.3)为拟合函数或经验公式。

如果,则(1.3)为次最小二乘拟合多项式

2曲线拟合算法:

已知数据对,求多项式,使得为最小。

注意到此时,

多项式系数满足下面的线性方程组:

其中

然后只要调用线性方程组的函数程序即可

3曲线拟合程序:

试分别用抛物线y=a+bx2和指数曲线y=aebx拟合下列数据

1

2.5

3.5

4

3.8

1.50

26.0

33.0

画出数据点和两条拟合曲线,并通过计算2个拟合函数残差向量的2范数来比较拟合优劣。

用抛物线y=a+bx拟合程序:

functionZXE

x=[12.5^23.5^24^2];

y=[3.81.5026.033.0];

m=1;

S=zeros(1,2*m+1);

T=zeros(m+1,1);

fork=1:

2*m+1

S(k)=sum(x.^(k-1));

m+1

T(k)=sum(x.^(k-1).*y);

A=zeros(m+1,m+1);

a=zeros(m+1,1);

forj=1:

A(i,j)=S(i+j-1);

a=A\T;

a[%d]=%f\n'

k,a(k));

p=polyfit(x,y,1);

u=polyval(p,x);

plot(sqrt(x),u,'

b'

holdon

plot(sqrt(x),y,'

指数曲线y=aebx拟合程序:

functionZXE2

x=[12.53.54];

y=log(y);

plot(x,exp(u),'

plot(x,exp(y),'

拟合曲线:

a[1]=-0.168731

a[2]=0.833636

结论:

求解散点函数的时候,点少、区间小的时候,拉格朗日插值要更好。

但在区间较大,节点较多的时候,分段线性插

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

当前位置:首页 > 自然科学 > 化学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1