Занятие №10:
Системы дифференциальных уравнений
Решение систем диф. уравнений
\begin{cases}
\dfrac{d \theta(t)}{dt} - \omega(t) = 0 \\
\dfrac{d \omega(t)}{dt} + k \cdot \omega + c \sin(\theta(t)) = 0
\end{cases}
Система дифференциальных уравнений
\begin{cases}
\dfrac{d \theta(t)}{dt} = \omega(t) \\
\dfrac{d \omega(t)}{dt} = - k \cdot \omega - c \sin(\theta(t))
\end{cases}
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
# Определяем переменную величину
t = np.arange(0, 10, 0.01)
# Определяем функцию для системы диф. уравнений
def diff_func(z, t): # z - изменяемая величина для системы
theta, omega = z # Указание изменяемых функций, через z
# Первое уравнение системы
dtheta_dt = omega
# Второе уравнение системы
domega_d = - b * omega - c * np.sin(theta)
return dtheta_dt, domega_d
Алгоритм численного решения
Функция возвращает значения производных системы в том же порядке, в котором они записаны
# Определяем начальные значения и параметры,
# входящие в систему диф. уравнений
theta0 = np.pi - 0.1
omega0 = 0
# Начальное значение изменяемой величины системы
z0 = theta0, omega0
b = 0.25
c = 5.0
# Решаем систему диф. уравнений
sol = odeint(diff_func, z0, t)
# Строим решение в виде графика
plt.plot(t, sol[:, 1], 'b', label='theta(t)')
plt.legend()
plt.show()
Тут тоже соблюдаем порядок!
# Строим решение в виде графика
plt.plot(sol[:, 1], sol[:, 0], 'g', label='theta(omega)')
plt.legend()
plt.show()
# Строим решение в виде графика
plt.plot(sol[:, 0], sol[:, 1], 'g', label='omega(theta)')
plt.legend()
plt.show()
Дифференциальные уравнения второго порядка
y = \dfrac{\Delta x}{\Delta t}
\begin{cases}
\dfrac{d x}{d t} = y\\
\\
\dfrac{d y}{d t} = ...
\end{cases}
Изменение изменения …
y = \dfrac{d x}{d t}
\dfrac{\Delta y}{\Delta t}
\dfrac{\Delta \left(\dfrac{\Delta x}{\Delta t}\right)}{\Delta t}
\dfrac{\Delta \left(\Delta x\right)}{(\Delta t)^2}
\dfrac{\Delta^2 x}{(\Delta t)^2}
\dfrac{d^2 x}{d t^2}
\dfrac{d^2 x}{d t^2}
\dfrac{d}{d t}
\left(\dfrac{dx}{dt}\right)
\dfrac{d^2 y}{dx^2} - \sin(y) \cdot \dfrac{dy}{dx} + 3xy + 5 = 0
\begin{cases}
\dfrac{dy}{dx} = \omega \\
\\
\dfrac{d\omega}{dx} = \sin(y) \cdot \omega - 3xy - 5
\end{cases}
Дифференциальные уравнения второго порядка
# Начальные значения и параметры
y0 = 0.01
omega0 = 0.05
z0 = y0, omega0
Результат
Спасибо за понимание!
Лекция №10. Системы диф. уравнений
By Alexey Baigashov
Лекция №10. Системы диф. уравнений
- 99