在 NumPy 中,我试图表示以下形式的微分方程:y' = p(t)y + g(t)
,其中p(t)
是 nxn 矩阵,并且g(t)
是 nx1 矩阵。就像是:
y' = [[1,5], [2,1]] + [[e^t], [1]]
我知道如何在 NumPy 中表示矩阵,但我将如何表示包含变量的矩阵(例如,2t
或e^t
)?
这种意义上的“变量”(如,y
是 的函数t
)可能应该由该变量域的一维数组表示。这将增加数组的维度(使其成为域的大小(长度为(n, n, m)
)。m
t
如果您打算使用 scipy ode 求解器,那么您可以将其编写为函数,而不是
t = np.arange(0, 10, .1)
y' = [[1,5]*len(t), [2,1]*len(t)] + [[np.exp(t)], [1]*len(t)]
您需要执行以下操作:
def yderiv(t):
return [[1,5], [2,1]] + [[np.exp(t)], [1]]