评估" sym"的数字部分变量

时间:2014-06-03 13:40:20

标签: matlab eval symbolic-math maple

我需要评估" sym"的数字部分。 MATLAB中的变量(例如" evalf"枫树中的函数),例如我有这个sym变量:

(12 *(51 * EE * II - 8 * 39 ^(1/2)* EE * II))/(AA * ll ^ 4 * ro)

" evalf" in maple给了我12.48019224 * EE * II /(AA * ll ^ 4 * ro),有没有办法在MATLAB中做到这一点?

2 个答案:

答案 0 :(得分:3)

我认为您正在寻找vpa(变精度算术)函数

syms EE II AA ll ro
y = (12*(51*EE*II - 8*39^(1/2)*EE*II))/(AA*ll^4*ro)
vpa(y)

返回

ans =

(12.48019215375377223869826038978*EE*II)/(AA*ll^4*ro)

答案 1 :(得分:0)

MATLAB有一个simplify命令,但请记住,符号工具箱不喜欢评估给小数,它会尝试将所有内容保存在小数值中,因为这样更准确。

syms('EE','AA','ll','II','ro')
simplify((12*(51*EE*II - 8*39^(1/2)*EE*II))/(AA*ll^4*ro)))

这将减少到以下

-(12*EE*II*(8*39^(1/2) - 51))/(AA*ll^4*ro)

这是否更符合您的喜好,这取决于您,但我建议保留分数而不是小数。准确度越高越好。

eval函数也可能对您有用,但这也会使它保持小数。使用它会给你

(13722116389931*EE*II)/(1099511627776*AA*ll^4*ro)