符号表达式的最大数值简化

时间:2015-08-03 15:21:47

标签: matlab symbolic-math

当我在Mathematica中输入此代码时

t^3 + 6898033663572324079/6917529027641081856 // N

它将表达式简化为0.997182 + t^3

如何在MATLAB中实现相同的行为?请注意,t是一个符号变量。

1 个答案:

答案 0 :(得分:3)

使用vpa

syms t
outExact = t^3 + 6898033663572324079/6917529027641081856
outFloat = vpa(outExact)
outExact =

t^3 + 8981814666109797/9007199254740992


outFloat =

t^3 + 0.99718174452310093247575650821091

可选您可以设置数字位数,例如得到digits(5)

outFloat =

t^3 + 0.99718

outFloat = vpa(outExact,5)具有相同的效果。

科学记数法并非无足轻重,这是一个非泛型解决方案作为起点:

f(t) = t^3 + 6898033663572324079/6917529027641081856
remain = f(0)
f(t) = f(t) - remain
sprintf('%s + %1.3e',char(f(t)),double(remain))