【问题标题】:Solve_ivp setting an array element with a sequence.The requested array has a inhomogen shape after1dimensions.Thedetected shape was(4,)+inhomogeneousSolve_ivp 设置具有序列的数组元素。请求的数组在 1 维之后具有不均匀的形状。检测到的形状为 (4,)+不均匀
【发布时间】:2021-12-30 03:48:41
【问题描述】:

我将solve_ivp 用于4 个ODE 方程的系统,但它给了我这个错误。可能是因为我需要的solve_ivp中的y0是4项(初始值:x0,y0,w0,z0),我像数组一样输入它。如何在求解器中输入这些初始值?如果我尝试像列表一样放置会发生相同的错误。 我写了一个我的代码示例(写完太长了)

def funct(iv,t):
    a=iv[0]
    b=iv[1]
    c=iv[2]
    c=iv[3]
    # ODE
    dxdt=...
    dydt=...
    dwdt=...
    dzdt=...
    ODES=[dxdt,dydt,dwdt,dzdt]
    return ODES
x0=1
y0=2
w0=3 
z0=4 
initial_values=np.array([x0,y0,w0,z0]) #*******
t_s = np.linspace(0,100,1001)
#Integración del modelo
inputs = (D,E,F,G,H,J,K)
solut = odeint(funct, initial_values, t_s)


 

【问题讨论】:

  • 您在帖子中到处都提到了solve_ivp,但代码 sn-p 使用了odeint
  • 对不起:solut =solve_ivp(funct, initial_values, t_s)
  • 对于solve_ivp,需要交换initial_valuest_s的顺序。 :)

标签: python ode solver


【解决方案1】:

根据文档:https://docs.scipy.org/doc/scipy/reference/generated/scipy.integrate.solve_ivp.html

solut = solve_ivp(funct, t_s, initial_values)

这将是正确的顺序。

【讨论】:

    猜你喜欢
    • 2021-07-14
    • 2021-07-29
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-26
    • 1970-01-01
    • 2012-05-04
    相关资源
    最近更新 更多