我想对一个矩阵进行积分,以使输出矩阵的每个元素与被积分矩阵的相应元素积分。代码段如下:
SELECT *
FROM t
ORDER BY ORG, IIF(Earliest_Date IS NULL, 1, 0), Status ASC;
这给出一个方阵,每个元素的函数为t。我使用以下内容进行整合:
import numpy as np
from scipy.integrate import quad
N=3
A = np.random.rand(N,N)
evs = np.linalg.eigvals(A)
evs = -np.sort(-evs)
Anew = A/(evs[0]+1) - np.eye(N)
B = np.eye(N)
def integrand(t,A,B):
prod = np.multiply(sp.linalg.expm(A*t),B)
return np.multiply(prod,prod.T)
但是,我收到以下错误消息:
np.vectorize(quad)(integrand,0,1,args=(Anew,B))
尽管这说明缺少“ B”,但由于我提供B作为参数,因此我不理解。我也不确定我是否正确实现了向量化。
答案 0 :(得分:0)
尝试scipy.integrate.quad_vec
。它尚未发布,因此您需要scipy的开发版本,该版本可从github获得。或者,等到scipy 1.4发布。