在Mathematica中如果使用了小数,软件会按照浮点数计算,从而导致不准确的结果。
例如下面的例子,计算下面两个相同式子的拉氏反变换得到的结果会不同:
代码如下
InverseLaplaceTransform[323/(56182 p + 323 p^2 + 1000 p^3), p,
t] // Simplify
InverseLaplaceTransform[0.323/(56.182 p + 0.323 p^2 + p^3), p,
t] // Simplify
如果希望把浮点数转换为有理数,可以使用Rationalize
函数
1.5 // Rationalize (* 输出 3/2 *)
如果希望把有理数转换成浮点数,可以使用N
函数
N[1/3] (*这将返回 0.333333 这样的浮点数结果。*)