Занятие №9:
Дифференциальное уравнение
Постановка дифференциальной задачи
Виды уравнений
линейное уравнение
квадратное уравнение
кубическое уравнение
трансцендентное уравнение
дифференциальное уравнение
Дифференциальное уравнение
Дифференциальное уравнение – уравнение, в которое входят производные функции, и может входить сама функция, независимая переменная и параметры.
Алгоритм постановки
Алгоритма нет, но вы держитесь!
Методика:
• определитель изменяемую функцию "f(x)"
• определить независимую переменную величину "x"
• определить начальные условия
Пример - задача
Из эксперимента известно, что скорость радиоактивного распада пропорциональна количеству вещества. Определить закон изменения количества вещества со временем и найти период, за который распадется половина вещества (период полураспада).
Тут должен быть еще один мем про радиоактивность, но приличных я не нашел, если найдете - высылайте!
Постановка диф. задачи
Дано:
Найти:
Начальное условие:
изменяемая величина -
количество вещества
переменная величина -
время
закон изменения
со временем:
Решение:
это исходя из условий задачи
минус – означает, что величина уменьшается
Постановка диф. задачи
изменение, малое, но конечное
Постановка диф. задачи
бесконечно малое изменение
В итоге
средняя скорость изменения
Дифференциальное уравнение
мгновенная скорость изменения
Библиотека SciPy
Библиотека scipy
SciPy – библиотека для языка программирования Python с открытым исходным кодом, предназначенная для выполнения научных и инженерных расчётов
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
# Пределы изменения переменной величины
# В данной задаче переменной величиной является время
t = np.arange(0, 10**6, 100)
# Запись диф. уравнения в виде функции
def radio_function(m, t):
dmdt = - k * m
return dmdt
# Определение начальных условий и параметров
m_0 = 10
k = 1.61*10**(-6) # Постоянная распада для Висмута 210
Алгоритм численного решения
'''
k_Ur_238 = 4.84*10**(-18) # Уран 238
k_Tl_210 = 8.76*10**(-3) # Талий 210
'''
# Решение дифференциального уравнения функцией odeint
solve_Bi = odeint(radio_function, m_0, t)
# Построение решения в виде графика функции
plt.plot(t, solve_Bi[:,0], label='Распад Висмута 210')
plt.xlabel('Период распада, секунды')
plt.ylabel('Функция распада')
plt.title('Радиоактивный распад')
plt.legend()
plt.show()
Спасибо за понимание!
Лекция №9. Дифференциальное уравнение
By Alexey Baigashov
Лекция №9. Дифференциальное уравнение
- 218