首页 文章

拉格朗日插值图

提问于
浏览
1

这是拉格朗日插值的代码 . 我正在调用一个名为 polyinterp 的函数来执行插值 .

我试图近似[-π,π]中的sin(x) . 如果我使用12个点进行插值,我得到的结果很好 . 然而,如果我尝试使用200点进行插值,我无法理解图形,因为绿线应该绘制sin(x)而蓝色圆圈表示使用的点 .

x=linspace(-pi,pi,200)
target=sin(x);
figure('name', 'Polynomial Interpolation 200 points'); 
u=-pi:0.01:pi
output_2 = polyinterp(u,x,target);
plot(x,target,'o',u,output_2,'-')
axis([-pi,pi, -1,1]);
xlabel('x (radians)');    %  label the x-axis
ylabel('sine function');  %  label the y-axis
title('sin(x)');

enter image description here

对于12点插值,我改变了这一行:

x=linspace(-pi,pi,12)

enter image description here

任何帮助将受到高度赞赏 . 谢谢

1 回答

  • 1

    您的问题可能是由有限的浮点精度引起的 . 我不知道究竟是什么 polyinterp ,但通常n个点定义了第(n-1)阶的多项式 . 在你的情况下,这是第199顺序 . 这意味着它有一个x ^ 199项,x的范围是-3到3.检查 eps(3.^199) ,你会得到由浮点运算引起的巨大精度误差 .

相关问题