| @ -1,2 +1,10 @@ | |||||
| # Dynamical systems examples Lynch | # Dynamical systems examples Lynch | ||||
| Repository for examples related with book Dynamical system with applications using Python by Stephen Lynch. | Repository for examples related with book Dynamical system with applications using Python by Stephen Lynch. | ||||
| # List of examples included | |||||
| ## Chapter 2 | |||||
| - program 2-a: | |||||
| - program 2-b: | |||||
| - program 2-c: | |||||
| - program 2-d: | |||||
| - program 2-e: Numerical and truncated series solutions. | |||||
| @ -0,0 +1,12 @@ | |||||
| # Program 02d: Power series solution of a second order ODE; | |||||
| # example 8, chapter 2 | |||||
| from sympy import Function, dsolve, pprint | |||||
| from sympy.abc import t | |||||
| x = Function('x') | |||||
| dxdt2 = x(t).diff(t, 2) | |||||
| dxdt = x(t).diff(t) | |||||
| ode = dxdt2+2*t**2*dxdt+x(t) | |||||
| sol = dsolve(ode, hint='2nd_power_series_ordinary', n=6) | |||||
| print('Solution:\n') | |||||
| pprint(sol) | |||||
| @ -0,0 +1,29 @@ | |||||
| # Program 02e: Numerical and truncated series solution | |||||
| # figure 2.6 | |||||
| import matplotlib.pyplot as plt | |||||
| import numpy as np | |||||
| from scipy.integrate import odeint | |||||
| def ode(X, t): | |||||
| x = X[0] | |||||
| y = X[1] | |||||
| dxdt = y | |||||
| dydt = x-t**2*y | |||||
| return [dxdt, dydt] | |||||
| X0 = [1, 0] | |||||
| t = np.linspace(0, 10, 1000) | |||||
| sol = odeint(ode, X0, t) | |||||
| x = sol[:, 0] | |||||
| y = sol[:, 1] | |||||
| fig, ax = plt.subplots() | |||||
| ax.plot(t, x, label='Numerical') | |||||
| ax.plot(t, 1+t**2/2+t**4/24, 'r-', label='Truncated series') | |||||
| plt.xlabel('t') | |||||
| plt.ylabel('x') | |||||
| plt.xlim(0, 4) | |||||
| plt.ylim(0, 4) | |||||
| ax.legend() | |||||
| plt.show() | |||||