python - 带有矩阵变量的 Numpy 多项式
问题描述
p = np.polynomial.Polynomial((0, 0, 1)) # p(x) = x^2
x = np.array(
[[2, 2],
[2, 2]]
)
print(p(x))
[[4. 4.]
[4. 4.]]
print(x @ x)
[[8 8]
[8 8]]
numpy 中是否有一种方法可以处理多项式,在矩阵点对它们进行评估并获得由原点矩阵乘法产生的结果,如第二个print中一样,尽管第一个print语句的结果如何
解决方案
使用库函数计算x ^ n
矩阵x
和整数:n
from numpy.linalg import matrix_power
x = [[2, 2], [2, 2]]
print(matrix_power(x, 2))
输出:
[[8 8]
[8 8]]
如果您需要计算有限和1 + x + x @ x / 2 + .. + x^n / n!
:
from numpy.linalg import matrix_power
from math import factorial
def compute_sum(x, n):
s = 0
for i in range(n+1):
s += matrix_power(x, n) / factorial(n)
return s
x = [[2, 2], [2, 2]]
print(compute_sum(x, 3))
输出:
[[21.33333333 21.33333333]
[21.33333333 21.33333333]]
推荐阅读
- java - 在使用 GSON 的 JSON 序列化中包含某个瞬态字段
- flutter - Flutter : PlatformException(no_available_camera, 没有可用于拍照的相机。, null, null)
- apache-kafka - 如何在 Spring Kafka 中使用确认
- google-cloud-platform - Java Cloud Function 访问预设环境变量
- c++ - 如何忽略该行的其余部分?
- pine-script - 尝试将 pinescript 代码转换为版本 4 时出现无法使用参数调用“abs”错误
- html - 使用 CSS 打印半张 A4 页面
- reactjs - 将 Route 中的多个参数与 WordPress 中的 React Router Dom 匹配
- laravel - 如何在 Laravel 中使用主管处理作业?
- r - 根据条件使用其他列的值创建列