对初始条件的方程使用scipysolve_ivp

时间:2019-01-12 20:21:45

标签: python scipy equation differential-equations

我很难适应scipy的solve_ivp。假设我们有一个二阶普通线性微分方程,例如spring(y''= -k ** 2 * y)。条件是弹簧处于位置0(时间0)时速度为v0。我该如何使用初始条件来解决它?

y'' = -k**2*y  # First this needs to be modified into first order equation

def function1(t, y, k):  #original function
return y[1], -k**2*y[1]

function2 = lambda t, y: function1(t, y, k = 10)  #function with only t and y

t = np.linspace(0, 100, 1000)

solution = solve_ivp(function2, (0, 100), (0, 0), t_eval = t)

solution.y[0]

1 个答案:

答案 0 :(得分:1)

如果要编码

y'' = -k**2*y  

作为一阶系统,您应该使用

def function1(t, y, k):  #original function
    return y[1], -k**2*y[0]

问题中的代码编码y'' = -k**2*y'