实验报告二。
题目:插值法。
目的:掌握线性插值法,二次插值,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插...