【问题标题】:Lagrange interpolation graph拉格朗日插值图
【发布时间】:2015-02-01 23:08:55
【问题描述】:

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

我正在尝试逼近 [-π,π] 中的 sin(x)。 如果我使用 12 个点进行插值,我得到的结果很好。 但是,如果我尝试使用 200 个点进行插值,我将无法理解图表,因为绿线应该绘制 th 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)');

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

x=linspace(-pi,pi,12)

任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: matlab graphics graph interpolation polynomial-math


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 2019-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      相关资源
      最近更新 更多