基本MATLAB - 如何"创建"一个变种

时间:2013-06-14 14:01:27

标签: matlab function variables

我需要在MATLAB中实现Lagrange iterpolation。

我(我想我已经)了解它是如何运作的。我不知道如何实现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)

依旧......

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

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

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

由于

2 个答案:

答案 0 :(得分:1)

我不确定这是否是您所需要的,但我认为您所寻找的是MATLAB anonymous functions

在你的情况下,你会写

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)

那是你在找什么?

答案 1 :(得分:0)

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