0

我需要在 MATLAB 中实现拉格朗日迭代。

我(想我已经)理解它是如何工作的。我不明白如何实现 x。

假设我想计算这些点: (0,1) (1,1) (2,4)

所以我需要做这些:

l_0(x) = (x-1)(x-2)/(0-1)(0-2)
l_1(x) = (x-0)(x-2)/(1-0)(1-2)
l_2(x) = (x-0)(x-1)/(2-0)(2-1)

等等...

所以我想做一个 MATLAB 函数来接收 (x,y) 点,并检索结果多项式的系数。

在这种情况下: ( 3/2, 3/2, 1 )

我不想要答案的代码 - 只是如何实现上述 x 变体。

谢谢

4

2 回答 2

1

我不确定这是否是您需要的,但我认为您正在寻找的是MATLAB 匿名函数

在你的情况下,你会写

l_0 = @(x) (x-1)(x-2)/(0-1)(0-2)
l_1 = @(x) (x-0)(x-2)/(1-0)(1-2)
l_2 = @(x) (x-0)(x-1)/(2-0)(2-1)

然后你可以像常规函数一样使用你的拉格朗日多项式:

val = y0 * l_0(x0) + y1 * l_1(x1) + y2 * l_2(x2)

那是你要找的吗?

于 2013-06-14T14:27:15.813 回答
0

好吧,如果您不想要代码,那么 x 只是 x 点的输入值范围内的任何值。在您的情况下,介于 0 和 2 之间的任何值。

于 2013-06-14T14:28:07.497 回答