Advertisement
Guest User

Time-dependent ODE

a guest
Jan 31st, 2020
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.55 KB | None | 0 0
  1. from scipy.integrate import ode
  2.  
  3. def f(t, y, arg1):
  4.     return [1j*arg1*y[0] + y[1], -arg1*y[1]**2]
  5. def jac(t, y, arg1):
  6.     return [[1j*arg1, 1], [0, -arg1*2*y[1]]]
  7.  
  8. r = ode(f, jac).set_integrator('zvode', method='bdf')
  9.  
  10. t = np.arange(0, 10, 1)
  11. results = np.empty((len(t), 1 + len(y0)), dtype=float) + np.nan
  12.  
  13. r.set_initial_value([1.0j, 2.0], t[0])
  14. for ind in range(len(t) - 1):
  15.     r.set_f_params(param[ind]).set_jac_params(param[ind])
  16.     tmp_result = r.integrate(t[ind+1])
  17.     if not r.successful():
  18.         break
  19.     results[ind] = tmp_result
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement