文档介绍:实验名称插值法
实验目的
学****并熟练掌握MATLAB语言的编程;
通过课程实****能够应用MATLAB软件来计算函数的插值,了解函数插值方法。 实验原理
牛顿差商形式多项式
P(x)=f(x0)+f[x0,x1](x-x0)+f[x03? + - % + ,x g [,] - + - + ,x g[,] - + - +,x g [,]
{2}2 .在区间[-1,1]上分别取n=(x)= 1 )做多项
1 + 25 x 2
式及三次样条差值,对每个n值,分别画出差值函数及f(x)的函数.
龙格图函数做多项式
function L=lagrange(a,b,a0) syms x
n=length(a)
L=
for i=1:n
l=b(i);
for j=1:i-1
l=l.*(x-a(j))/(a(i)-a(j));
end
for j=i+1:n
l=l.*(x-a(j))/(a(i)-a(j));
end
L=L+l;
simplify(L);
end
L=collect(L)
L=vpa(L,6)
L=subs(L,'x',a0);
end
clear all
subplot(1,2,1);
a=linspace(-1,1,10);
b=1./(1+);
L=Lagrange(a,b)
b0=subs(L,'x',a);
plot(a,b0,'rs')
hold on
plot(a,b)
title('n=10E±pA2aOpo—Ey');
subplot(1,2,2);
a=linspace(-1,1,20);
b=1./(1+);
L=Lagrange(a,b)
b0=subs(L,'x',a);
plot(a,b0,'rs');
hold on;
plot(a,b)
title('n=2 0E±pA2aOpo—Ey');
图像:
三次样条插值函数插值程序: subplot(1,2,1);
a=linspace(-1,1,5);
b=1./(1+);
a0=linspace(-1,1,10);
b0=spline(a,b,a0);
plot(a,b,'rs',a0,b0) hold on
plot(a,b,'G') title('n=10时的插值函数'); subplot(1,2,2);
a=linspace(-1,1,5);
b=1./(1+);
a0=linspace(-1,1,20);
b0=spline(a,b,a0);
plot(a,b,'rs',a0,b0) hold on
plot(a,b,'G')
title('n=2 0时的插值函数');
图像:
y012345678
可以得到平方根函数的近似,在区间[0,64]上作图.
⑴用这9个点作8次多项式插值Ls(x).
(2)用三次样条(第一边界条件)