如何在Matlab中使用方程式?

时间:2014-10-04 14:29:22

标签: matlab interpolation equation

我正在使用Matlab Code for Lagrange Interpolation。

我的问题是使用方程式。

要解决拉格朗日,您需要先找到Li(x)'s ( L0(x) to Ln(x) )

e.g。对于L0(x),我们得到了:

L0(x) = (x-x1) (x-x2) (x-x3) / (x0-x1) (x0-x2) (x0-x3)

以一个例子为例:

l0(x) = ( x^3 - ( 2 * x^2 ) + 2x ) / 6

这是一个等式。

我编写了代码,但它不接受变量 z (我使用的代替X),它告诉我们:

  

"未定义的功能或变量' z'。"

这当然是正确的,因为它是变量而不是数据,但我怎么能使用或写这个?

1 个答案:

答案 0 :(得分:1)

MATLAB默认情况下不喜欢未定义的变量(和大多数编程语言一样!)

你有两种方法来解决你的问题:数字化解决拉格朗日"手工和#34; - 即使用像ode45这样的函数,或者尝试象征性地执行它。这意味着您必须明确定义x作为符号变量 - 使用syms x并使用symbolic maths toolbox,或者使用数字方案,例如{{3} }。

如果要在MATLAB中定义函数,则需要将定义存储到单独的文件中并保存。

例如:

function out = ellZero( x, a )
    x0  = a(1); x1 = a(2); x2 = a(3); x3 = a(4);                % SET Constants 
    out = (x-x1).*(x-x2).*(x-x3)./((x0-x1).*(x0-x2).*(x0-x3));  % RET Expression
end

如果您想了解更多有关MATLAB如何处理functions和' sub - functions'的信息,请查看ode45。您可能也对the documentation感兴趣。

希望有所帮助!