如何评估或绘制SYM对象?

时间:2014-04-04 16:03:47

标签: matlab symbolic-math linear-interpolation

我正在编写一个用于在matlab中解决拉格朗日插值的脚本。 我是新手,我不知道它是如何运作的。

插值数据是下一个

X = [0 1 2 4 8]
Y = [1 5 10 24 50]

然后我以这种方式建立多项式的拉格朗日:

syms x

l1 = ( (x-X(2)) * (x-X(3)) * (x-X(4)) * (x-X(5)) ) / ( (X(1)-X(2)) * (X(1)-X(3)) * (X(1)-X(4)) *(X(1)-X(5)) )

l2 = ( (x-X(1)) * (x-X(3)) * (x-X(4)) * (x-X(5)) ) / ( (X(2)-X(1)) * (X(2)-X(3)) * (X(2)-X(4)) *(X(2)-X(5)) )

l3 = ( (x-X(1)) * (x-X(2)) * (x-X(4)) * (x-X(5)) ) / ( (X(3)-X(1)) * (X(3)-X(2)) * (X(3)-X(4)) *(X(3)-X(5)) )

l4 = ( (x-X(1)) * (x-X(2)) * (x-X(3)) * (x-X(5)) ) / ( (X(4)-X(1)) * (X(4)-X(2)) * (X(4)-X(3)) *(X(4)-X(5)) )

l5 = ( (x-X(1)) * (x-X(2)) * (x-X(3)) * (x-X(4)) ) / ( (X(5)-X(1)) * (X(5)-X(2)) * (X(5)-X(3)) *(X(5)-X(4)) )

interp = l1*Y(1) + l2*Y(2) + l3*Y(3) + l4*Y(4) + l5*Y(5)

但是当我想要评估它或者我想要绘制它时我不知道是哪种方式。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

制作一个symfun:

f(x)= l1*Y(1) + l2*Y(2) + l3*Y(3) + l4*Y(4) + l5*Y(5);

绘制它:

ezplot(f)

评估它:

f(1)

要提高可读性,请使用:

f(x)=simplify(l1*Y(1) + l2*Y(2) + l3*Y(3) + l4*Y(4) + l5*Y(5))