Matlab或Octave如何如此之快?

时间:2014-01-29 21:55:19

标签: python performance matlab math computation

我对MatlabOctave的计算速度感到困惑。

如何立即提供5^5^5^5(= 2.351*10^87如果你想知道的话)的计算结果?

我找到了一些关于the speed for matrix computationsthis article)的结果,但没有关于其他事项的结果。并且this不是解释(Python中我的(天真)实现现在运行大约5分钟。)

1 个答案:

答案 0 :(得分:3)

5^5^5^5毕竟不需要这么多操作。例如,在每个功率步骤,例如a^b,您可以计算exp(log(a)*b),这会得到相同的结果。

我不是说这是Matlab如何做到的,并且可能存在数值精度问题。但这说明多功率操作并不像直接计算所暗示的那么难。

至于数值精度:

>> format long
>> 5^5^5^5
ans =
    2.350988701644576e+087
>> exp(log(exp(log(exp(log(5)*5))*5))*5)
ans =
    2.350988701644561e+087

相对错误是

>> 1 - (5^5^5^5 / exp(log(exp(log(exp(log(5)*5))*5))*5))
ans =
   -6.661338147750939e-015

eps不远。

相关问题