在matlab中用矩阵求解二次方程

时间:2014-12-26 12:34:09

标签: matlab math matrix quadratic

我正在尝试数字地找到X^2+X+C=0的解决方案,其中C是矩阵C=[-6,-5;0,-6]0=[0,0;0,0],这是一个二次方程,其中变量是2x2矩阵。

所以我编写了以下matlab命令

C=[-6,-5;0,-6]
[X1,F,e_flag]=fsolve('X^2+X+C',[1,1;1,1])

其中[1,1;1,1]是我们的初始估算值,或X0

我收到以下错误

“使用inlineeval时出错(第15行) 内联表达式错误==> X ^ 2 + X + C  未定义的函数或变量'X'。

内联/ feval错误(第34行)         INLINE_OUT_ = inlineeval(INLINE_INPUTS_,INLINE_OBJ_.inputExpr,         INLINE_OBJ_.expr);

fsolve出错(第218行)             fuser = feval(funfcn {3},x,varargin {:});

引起:     初始用户提供的目标函数评估失败。 FSOLVE     不能继续。“

如何使用fsolve解决这些问题?

1 个答案:

答案 0 :(得分:2)

我不认为fsolve可以与你方程的字符串表示一起使用。 您应该将函数句柄传递给求解器,如下所示:

C = [-6,-5;0,-6];
[X1,F,e_flag] = fsolve(@(X) X^2+X+C,[1,1;1,1]);

这也取决于你的意思:X^2。在Matlab中,这意味着矩阵乘积X*X。如果你想要进入平方,你应该使用X.^2,在这种情况下你将有四个独立的二次方程,你可以独立解决。