Python是一个错误的工具,你试图排除那些会使错误更少的帮助程序。你正在尝试做的是最纯粹的数值计算 - 而python是一种脚本语言,在使用本机库时,它实际上只能利用数值效率。其中一个是numpy,但是你可能已经注意到了(但没有写)但是没有用,因为你的数字在实际计算M n 更大的n。
即使有一种神奇的方法可以在一个允许单个指令中的矩阵 - 矩阵乘法的情况下优化算法,并且您只需要另一条指令来计算并检查您是否仍然应该乘以要计算M n ,您的计算将需要2 * 10 19 指令。假设您有8个CPU,每秒可以处理40亿个CPU,那么它仍然需要不到20年的时间。你需要的是正确的数学。就像,真的很强的数学。你可以找到一个对角形式,使得M = U D U -1 ; U是单一的,D是对角矩阵。然后,使用matrix exponential e,您可以得到e M = U e D U.经典指数规则适用,因此您可以轻松计算e 中号 10 19 。这仍然很难看,但会在你认为更安全的时候终止。但是,如果没有数学数学学位,那就好了。