python - Python 中的对角矩阵指数

标签 python matrix numpy scipy exponential

我正在编写一个考虑速度的数值算法。我在 scipy/numpy (scipy.linalg.expm2, scipy.linalg.expm) 中遇到了两个矩阵指数函数。但是我有一个矩阵,我事先知道它是对角线的。这些 scipy 函数在运行之前是否检查矩阵是否为对角线?显然,对角矩阵的求幂算法可以快得多,我只是想确保它们正在做一些聪明的事情 - 如果不是,是否有一种简单的方法可以做到这一点?

最佳答案

如果一个矩阵是对角矩阵,那么它的指数可以通过对主对角线上的每个元素取幂来获得,所以你可以通过以下方式计算它:

np.diag(np.exp(np.diag(a)))

关于python - Python 中的对角矩阵指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16081797/

相关文章:

python - 为什么 Pyinterval 算法会因 numpy.float64 而失败

python - 如何用 1 和 0 替换时间戳?

python - 跳过数组中的特定索引(或寻址索引间隔)

python - 使用 Python 对 2 个数组中包含的向量进行元素级叉积

c++ - 矩阵连续n个数的最大乘积

python - 如何在Python DataFrame上的同一列中连接相同的行名称

java - 算法复杂度和效率,指数运算java

python - Numpy - 多个 3d 数组与 2d 数组

python - Wagtail/Django ListBlock 行为

python - 使用 sqlite OperationalError : no such column 创建函数