ODES:ValueError:设置具有序列的数组元素

问题描述 投票:-1回答:1

我正在尝试在python中定义以下ODES系统:“以下使用ODES的python系统”>

这种方式:

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:设置具有序列的数组元素。

我不确定这是什么问题...感谢您提供任何帮助!

python ode differential-equations valueerror
1个回答
0
投票

显然,您的状态P有2个成分。因此,您从P计算的表达式也将具有两个组成部分。然后,您尝试将这些元组分配给数组dP中的单个单元格,这是不可能的,并导致该错误消息。

您可能希望在这些表达式中将P替换为其第一个元素P[0]。或使用

def rhs(t, u):
    P,phi = u
    dP = ...
    dphi = ...
    return [dP, dphi]
© www.soinside.com 2019 - 2024. All rights reserved.