数值分析matlab版第二章

发布 2022-07-14 14:26:28 阅读 2725

实验报告二。

题目:插值法。

目的:掌握线性插值法,二次插值,lagrange插值多项式,newton插值,三次样条函数,差分与等距节点插值,hermite插值。

数学原理:1)线性插值。

设已知, 及=f() f(),为不超过一次多项式且满足=,=几何上,为过(,)的直线,从而得到。

x-).为了推广到高阶问题,我们将式(2)变成对称式。

(x)+ x).

其中,x)=,x)=。均为1次多项式且满足。

x)=1且(x)=0。或(x)=0且(x)=1。

两关系式可统一写成= 。3)

(2)n阶lagrange插值。

设已知,,,及=f()(i=0,1,..n),为不超过n次多项式且满足(i=0,1,..n).

易知=(x)+.

其中,均为n次多项式且满足式(3)(i,j=0,1,..n),再由(ji)为n次多项式的n个根知=c.最后,由。

c=,i=0,1,..n.

总之, =式为n阶lagrange插值公式,其中,(i=0,1,..n)称为n阶lagrange插值的基函数。

3)求newton插值多项式,算法组织如下:

newton插值多项式的表达式如下:

其中每一项的系数ci的表达式如下:

根据以上公式,计算的步骤如下:

4)求三次样条插值多项式,算法组织如下:

所谓三次样条插值多项式是一种分段函数,它在节点分成的每个小区间上是3次多项式,其在此区间上的表达式如下:

因此,只要确定了的值,就确定了整个表达式,的计算方法如下:

令:则满足如下n-1个方程:

方程中有n+1个未知量,则令和分别为零,则由上面的方程组可得到的值,可得到整个区间上的三次样条插值多项式。

习题3线性插值。

> x = 0.5 0.6];

> y =[0.693147 -0.510826];

> f = interp1(x,y,0.54,'linear')f =

> format long;

> x0 = 0.4 0.5 0.6 0.7 0.8];

> y0 =[0.916291 -0.693147 -0.510826 -0.357765 -0.223144];

> x=0.54;

> n=length(x0);

> s =0;

> for j=0:(n-1)

t =1;for i=0:(n-1)

if i~=j

t=t*(x-x0(i+1))/x0(j+1)-x0(i+1));

endend

s= s+t*y0(j+1);

end> ss =

> interpl(x,y,0.54,'cublic')ans=

习题8> x=-4:4;

> f=exp(x)f =

> y0=[0.0183,0.0498,0.

1353,0.3679,1.0000,2.

7183,7.3891,20.0855,54.

5982]y0 =

> x=3.5;

> n=length(x0);

s=0;for j=0:(n-1)

t=1;for i=0:(n-1)

if i~=j

t=t*(x-x0(i+1))/x0(j+1)-x0(i+1));

endend

s=s+t*y0(j+1);

end> ss =

> x=-3.5;

> n=length(x0);

s=0;for j=0:(n-1)

t=1;for i=0:(n-1)

if i~=j

t=t*(x-x0(i+1))/x0(j+1)-x0(i+1));

endend

s=s+t*y0(j+1);

end> ss =

习题21:> x0=-5:5;

>y0=[0.0385,0.0588,0.

1000,0.2000,0.5000,1.

0000,0.5000,0.2000,0.

1000, 0.0588,0.0385];

> x=-4.5;

> n=length(x0);

s=0;for j=0:(n-1)

t=1;for i=0:(n-1)

if i~=j

t=t*(x-x0(i+1))/x0(j+1)-x0(i+1));

endend

s=s+t*y0(j+1);

end> ss =

> x=-4;

> n=length(x0);

s=0;for j=0:(n-1)

t=1;for i=0:(n-1)

if i~=j

t=t*(x-x0(i+1))/x0(j+1)-x0(i+1));

endend

s=s+t*y0(j+1);

end> ss =

> x=-3.5;

> n=length(x0);

s=0;for j=0:(n-1)

t=1;for i=0:(n-1)

if i~=j

t=t*(x-x0(i+1))/x0(j+1)-x0(i+1));

endend

s=s+t*y0(j+1);

end> ss =

> x=3.5;

> n=length(x0);

s=0;for j=0:(n-1)

t=1;for i=0:(n-1)

if i~=j

t=t*(x-x0(i+1))/x0(j+1)-x0(i+1));

endend

s=s+t*y0(j+1);

end> ss =

> x=2.5x =

> n=length(x0);

s=0;for j=0:(n-1)

t=1;for i=0:(n-1)

if i~=j

t=t*(x-x0(i+1))/x0(j+1)-x0(i+1));

endend

s=s+t*y0(j+1);

end> ss =

> x=-2.5;

> n=length(x0);

s=0;for j=0:(n-1)

t=1;for i=0:(n-1)

if i~=j

t=t*(x-x0(i+1))/x0(j+1)-x0(i+1));

endend

s=s+t*y0(j+1);

end> ss =

习题24function h=hermite(x,y,ff)

n=length(x);

m=length(y);

if n~=m

error('the lengths of x and y must be equel!')

return;

endu=input('请输入插值点:u=')

h=0;lu=ones(n);

l=zeros(n);

p=zeros(n);

for j=1:1:n

for i=1:1:n

if i~=j

s(i)=(u-x(i))/x(j)-x(i));

lu(j)=lu(j)*s(i);

p(j)=1/(x(j)-x(i));

l(j)=l(j)+p(j);

endend

au(j)=(1+2*(x(j)-u)*l(j))*lu(j)^2;

bu(j)=(u-x(j))*lu(j)^2;

h=h+au(j)*y(j)+bu(j)*ff(j);

endfprintf(' u=%2d, h(u)=%12.9f',u,h);

end > h=hermite(x,y,ff)

请输入插值点:u=0.30

u=3.000000e-001, h(u)=0.547914778 h =

> h=hermite(x,y,ff)

请输入插值点:u=0.39

u=3.900000e-001, h(u)=0.624962000 h =

总结:插值理论是数值微分积分,函数逼近,微分方程数值解数值分析的基础。lagrange插值多项式是数值积分和常微分方程数值解的重要工具,二分段多项式插值由于具有良好的稳定性和收敛性,因此更便于应用,特别是样条函数。

拉格朗日插值模型简单,结构紧凑,是经典的插值法。但是由于拉格朗日的插值多项式和每个节点都有关,当改变节点个数时,需要重新计算。且当增大插值阶数时容易出现龙格现象。

数值分析第二章

第二章插值法。1 当时,求的二次插值多项式。解 则二次拉格朗日插值多项式为。2 给出的数值表。用线性插值及二次插值计算的近似值。解 由 知,若采用线性插值法计算即,则。若采用二次插值法计算时,3 给全的函数表,步长若函数表具有5位有效数字,研究用线性插值求近似值时的总误差界。解 求解近似值时,误差可...

数值分析第二章

列选主元lu分解法 function l,u,pv luex a luex lu factorization with partial pivoting synopsis l,u,pv luex a input a coefficient matrix output l lower triangul...

数值分析第二章作业

1.当,时,且。求的二次牛顿插值多项式 证明 2.当时,且求的牛顿插值多项式,并给出其差商型余项表达式。3.已知函数满足,求其三次牛顿插值多项式,并证明存在使得。4.已知,求的四次牛顿插值多项式,并给出其导数 假设函数的五阶导数存在 型余项表达式。5.设,为互异实数,是以其为节点的lagrange插...