如何使用args将数组传递给scipy.integrate.solve_ivp?

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

如何将数组传递给scipy.integate.solve_ivp函数?现在u=1.0,我想要的是u=np.random.uniform(-1, 1, 1000)

scipy版本为1.4.1

代码是:

import numpy as np
from scipy.integrate import solve_ivp

def func(t, x, u):
    dydt = (-x + u) / 5
    return dydt

y0 = 0
t_span = [0, 10]  
t_eval = np.linspace(0, 10, 1000)
u = 1.0

sol = solve_ivp(func, t_span=t, y0=y0, t_eval=t, args=(u, ))

任何帮助将不胜感激!

python scipy ode odeint
1个回答
0
投票

我认为这可能有效。

import numpy as np
from scipy.integrate import odeint

def func(t, x, u):
    dydt = (-x + u(t)) / 5
    return dydt  

y0 = 0
t = np.linspace(0, 10, 1000)
u = lambda t: np.random.uniform(-1, 1, 1)

sol = odeint(fund, y0=y0, t=t, args=(u, ))
© www.soinside.com 2019 - 2024. All rights reserved.