【发布时间】:2020-05-30 15:06:15
【问题描述】:
下面附上我的代码
import sympy as sym
k = [3,10,0.65,0.3]
x = [999, 1, 0]
SU, IN, IM= x[0], x[1], x[2]
def equation():
dsdt = '(IM/k0) - ((IN/(IN+SU))*k1*k2*SU)'
dindt = '((IN/(IN+SU))*k1*k2*SU) - (IN/k3)'
dimdt = '(IN/k3) - (IM/k0)'
return [dsdt, dindt, dimdt]
def Jacobian(v_str, f_list):
vars = sym.symbols(v_str)
f = sym.sympify(f_list)
J = sym.zeros(len(f),len(vars))
for i, fi in enumerate(f):
for j, s in enumerate(vars):
J[i,j] = sym.diff(fi, s)
return J
Jacobian('k0 k1 k2 k3', equation())
我需要将返回值放在 numpy.array 中以进行进一步处理...现在我只是对其进行硬编码。 使用jupyter notebook,python版本3.7.6
样本输出:
【问题讨论】:
-
返回的矩阵
J中有哪些矩阵元素?只有数字? -
返回矩阵是方程形式
-
@V.Ayrat AttributeError: MutableDenseMatrix 没有属性 sub。
-
.subs()不是.sub()