我正在尝试在python中定义以下ODES系统:”>
def rhs(t, P):
dP = np.zeros_like(P)
dP[0] = np.sqrt((1 - 3 / P) * (2 + 4 / P**2))
dP[1] = 1 / math.pow(P,2)
return dP
但是,我遇到一个错误:
ValueError:设置具有序列的数组元素。
我不确定这是什么问题...感谢您提供任何帮助!
显然,您的状态P有2个成分。因此,您从P计算的表达式也将具有两个组成部分。然后,您尝试将这些元组分配给数组dP
中的单个单元格,这是不可能的,并导致该错误消息。
您可能希望在这些表达式中将P
替换为其第一个元素P[0]
。或使用
def rhs(t, u):
P,phi = u
dP = ...
dphi = ...
return [dP, dphi]