Python NumPy中的变量

Python NumPy中的变量,python,matrix,numpy,scipy,Python,Matrix,Numpy,Scipy,在NumPy中,我试图表示如下形式的微分方程:y'=p(t)y+g(t),其中p(t)是一个nxn矩阵,g(t)是一个nx1矩阵。比如: y' = [[1,5], [2,1]] + [[e^t], [1]] def yderiv(t): return [[1,5], [2,1]] + [[np.exp(t)], [1]] 我知道如何用NumPy表示矩阵,但如何表示包含变量的矩阵(例如,2t或e^t)?从这个意义上讲,“变量”(如,y是t的函数)应该用该变量域的1d数组表示。这将增加数

在NumPy中,我试图表示如下形式的微分方程:
y'=p(t)y+g(t)
,其中
p(t)
是一个nxn矩阵,
g(t)
是一个nx1矩阵。比如:

y' = [[1,5], [2,1]] + [[e^t], [1]]
def yderiv(t):
    return [[1,5], [2,1]] + [[np.exp(t)], [1]]

我知道如何用NumPy表示矩阵,但如何表示包含变量的矩阵(例如,
2t
e^t
)?

从这个意义上讲,“变量”(如,
y
t
的函数)应该用该变量域的1d数组表示。这将增加数组的维数(使其
(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)]
您需要执行以下操作:

y' = [[1,5], [2,1]] + [[e^t], [1]]
def yderiv(t):
    return [[1,5], [2,1]] + [[np.exp(t)], [1]]

我不确定
e^t
是否达到了你的预期。你是说
np.exp(t)之类的东西吗
?@Hooked是的。矩阵可以包含变量。谢谢@Hooked,你可能是对的。我刚刚从上面复制了。@askewchan是的,我的意思是。我正在尝试自己解决ODE,而不是使用NumPy使用SciPy。可能使用SciPy集成,但我需要单独解决实际的ODE,而不是使用库。要使用该变量域的1d数组,它是否会像:`g=[2t,1,2],其中最后一个元素2是大小?恐怕我不明白。numpy.poly1d表示一个多项式。矩阵[[np.exp(t)],[1]]不是多项式,但是。np.exp(t)单独使用时会出错,因为t没有定义。