我正在使用 scipy.integrate 中的 quad 从对象获取有限范围内的积分。假设目标对象处于打击中:
∫expm(A*X).expm(B*X)dx
其中 A 和 B 都是 numpy 矩阵。
为了解决这个问题,我使用了打击代码:
from scipy.integrate import quad
from scipy.linalg import expm
import numpy as np
def integrand(X, A, B):
return np.dot(expm(A*X),expm(B*X))
A = np.array([[1, 2], [3, 4]])
B = np.array([[1, 2], [3, 4]])
I= quad(integrand, 0, 1, args=(A,B))
但是对于结果,我得到了这个错误:
TypeError: only length-1 arrays can be converted to Python scalars
我知道当函数需要单个值但您传递一个数组时,会引发错误“只有长度为 1 的数组可以转换为 Python 标量”。但我的问题是基于数组。那么我该如何解决它。