如何在MATLAB中将此求解答案转换为数字

时间:2013-05-17 04:40:49

标签: matlab symbolic-math

我解决了符号方程:

>> A=sym('[34618-150*w^2,-16502,0,0,0;-16502,31144-150*w^2,-14642,0,0;0,-14642,27018-150*w^2,-12376,0;0,0,-12376,22447-150*w^2,-10071;0,0,0,-10071,10071-150*w^2]')

A =

[ 34618-150*w^2,        -16502,             0,             0,             0]
[        -16502, 31144-150*w^2,        -14642,             0,             0]
[             0,        -14642, 27018-150*w^2,        -12376,             0]
[             0,             0,        -12376, 22447-150*w^2,        -10071]
[             0,             0,             0,        -10071, 10071-150*w^2]

>> solve(det(A),'w')

ans =

solvelib::Union({[-z1^(1/2), 1], [z1^(1/2), 1]}, z1, RootOf(X19^5 - (20883*X19^4)/25 + (17855633*X19^3)/75 - (11413518430603*X19^2)/421875 + (33558897596166236*X19)/31640625 - 631449249611223316/87890625, X19))

如何将此符号答案转换为数字?

我使用'double'但回答不正确?

我使用vpa但是当在行列式中替换时不能为零!!!

请求帮助我!!

感谢

2 个答案:

答案 0 :(得分:0)

我会这样做:

double(solve(det(A),'w'))

但我不太确定它会成为您正在寻找的解决方案。

答案 1 :(得分:-1)

对于像这样的数字,我更喜欢Mathematica。我把你的方程式放入其中并将Det取出:

543676857927080439744 - 80400721107071258400 w^2 + 
 2052468350731440000 w^4 - 18069295320000000 w^6 + 
 63416925000000 w^8 - 75937500000 w^10

不确定这是否有帮助..?也许在进行符号计算时使用mupad。