2024-06-09 11:01:51 发布
网友
我真的很困惑Matlab或{a2}的计算速度。在
怎么可能立即给出5^5^5^5(2.351*10^87如果你想知道的话)的结果呢?在
5^5^5^5
2.351*10^87
我找到了一些关于the speed for matrix computations(this article)的结果,但没有发现其他问题。而且this不是原因(我在Python中的(天真的)实现现在运行了大约5分钟)。在
5^5^5^5毕竟不需要这么多操作。例如,在每一个幂阶,比如a^b,你可以计算exp(log(a)*b),得到相同的结果。在
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
相对误差是
离^{}不远。在
5^5^5^5
毕竟不需要这么多操作。例如,在每一个幂阶,比如a^b
,你可以计算exp(log(a)*b)
,得到相同的结果。在我并不是说Matlab一定是这样做的,而且可能存在数值精度问题。但这说明多重幂运算并不像直接计算所显示的那样困难。在
至于数值精度:
相对误差是
^{pr2}$离^{} 不远。在
相关问题 更多 >
编程相关推荐