我正在尝试为test_Lagrange_interpolation()创建一个函数。
我需要绘制(1)构建在网格(2)上的拉格朗日插值,其中N = 8个节点,并在x处进行评估。 和 另一个图拉格朗日插值(1)建立在网格(3)上,其中N = 8个节点并在x处进行评估。
因此,换句话说,为了使空间网格均匀,我们可以使用linspace(-1,1,9) 对于不稳定的空间网格我们可以使用什么?
Thankx
答案 0 :(得分:1)
首先,我们有Lagrange polynomials类型
x
进行插值。x
是不均匀的向量。那么,不均匀插值有什么好处?这是由于偶数插值的一些不足:Runge's phenomenon,这是一个区间边缘振荡的问题,当在一组等间距插值点上使用高次多项式时发生这种问题的
换句话说,请看下图。左边是具有偶数网格的LaGrange多项式,右边的网格是不均匀的(Chebyshev polynomials),我们可以认为在这种情况下,正确的网格(不均匀网格)的性能更好。
代码:
clc; clear;
syms X
subplot(1,2,1)
ezplot('1/(1+25*x^2)',[-3 3])
Y=0;
xx=-3:0.5:3;
yy=1./(1+25*xx.^2);
for ii=1:length(xx)
tmp=1;
for jj=1:length(xx)
if (jj == ii)
continue;
end
tmp=tmp*(X-xx(jj))/(xx(ii)-xx(jj));
end
Y=Y+tmp*yy(ii);
end
hold on
ezplot(Y,[-3 3])
axis([-3 3 0 1.2])
title('even grid')
subplot(1,2,2)
ezplot('1/(1+25*x^2)',[-3 3])
Y2=0;
xx=-cos((0:12)/12*pi)*3;
yy=1./(1+25*xx.^2);
for ii=1:length(xx)
tmp=1;
for jj=1:length(xx)
if (jj == ii)
continue;
end
tmp=tmp*(X-xx(jj))/(xx(ii)-xx(jj));
end
Y2=Y2+tmp*yy(ii);
end
hold on
ezplot(Y2,[-3 3])
axis([-3 3 0 1.2])
title('uneven grid')
希望它有所帮助!