如何解决决定因素?

时间:2015-06-07 17:36:20

标签: matlab

请参阅此matlab脚本,它不会按原样执行。

>> syms x    
>> A=('[1-x -1 0;-1 3-1.5*x -2;0 -2 5-2*x]')
>>solve(det(A),'x')

x的答案应该来了

0.351
1.605
3.54

但似乎代码中存在某种我无法找到的错误。

1 个答案:

答案 0 :(得分:1)

首先,矩阵的行列式是一个数。不是矢量。因此,您声明的结果是' x'不可能是这样。

其次,你的矩阵' A'是' char'不是象征性的表达。试试这个:

syms x
A = [1-x, -1 0; ...
    -1, 3-1.5*x, -2; ...
    0, -2, 5-2*x];

d = det(A);
solve(d, 'x');

你应该

>> d =
>> - 3*x^3 + (33*x^2)/2 - (45*x)/2 + 6

现在,当你替换' x'你得到一个真实的数字。例如

>> subs(d, 5)
>> ans =
>> -69