Начнем пожалуй с того, что решать дифференциальные уравнения вручную может быть не совсем просто.

На данном ресурсе http://mathprofi.ru/differencialnye_uravnenija_primery_reshenii.html есть шпоры как это делать вручную, там есть множество подсказок по различным разделам высшей математики, например мне это пригодилось, потому что помнить все и вся не всегда представляется возможным.

Конкретно в данном посте я попытаюсь прорешать 10 примеров из первой темы данного предмета.

Дифференциальные уравнения первого порядка. Примеры решений.Дифференциальные уравнения с разделяющимися переменными

Учитывая что на mathprofi уже есть решения и ответы к этим 10 примерам, я предложу дополнить её решениями данных уравнений с помощью персонального компьютера, а конкретно с помощью языка программирования Python и библиотеки символьного вычисления и решения уравнений SymPy.

Пример 1:

Предложу решить этот пример с помощью Python

import sympy print("#Дифференциальные уравнения первого порядка.") print("#Дифференциальные уравнения с разделяющимися переменными") print("#Пример 1")  x = sympy.symbols('x')#Независимая переменная y = sympy.Function('y')#Зависимая переменная  equation = sympy.Eq(x*y(x).diff(x), y(x))#Условие задачи выражение print("Условие:") print(equation) solution = sympy.dsolve(equation)#Метод решения диф. уравнения print("Общее решение:") print(solution) print("Ответ сошелся") print("-----------------------------------------------------------------")

Результатом работы данного скрипта будет такой вывод:

#Дифференциальные уравнения первого порядка. #Дифференциальные уравнения с разделяющимися переменными #Пример 1 Условие: Eq(x*Derivative(y(x), x), y(x)) Общее решение: Eq(y(x), C1*x) Ответ сошелся

Смотрим ответ на mathprofi:

Решаем дифференциальные уравнения с помощью Python часть 1

В точности то, что написано в 7 строке вывода.

Пример 2:

Решаем дифференциальные уравнения с помощью Python часть 1

Это задача с условием, поэтому код немного усложнится.

print("#Дифференциальные уравнения первого порядка.") print("#Дифференциальные уравнения с разделяющимися переменными") print("#Пример 2")  x = sympy.symbols('x') y = sympy.Function('y')  equation = sympy.Eq(y(x).diff(x), -2*y(x)) print("Условие:") print(equation) solution = sympy.dsolve(equation) print("Общее решение:") print(solution) C1=sympy.solve(solution.subs(x,0).subs(y(0),2),'C1')[0]#Подставляем условия z=solution.subs('C1',C1) print("Частное решение:") print(z) print("Ответ сошелся")

Смотрим вывод работы скрипта:

#Дифференциальные уравнения первого порядка. #Дифференциальные уравнения с разделяющимися переменными #Пример 2 Условие: Eq(Derivative(y(x), x), -2*y(x)) Общее решение: Eq(y(x), C1*exp(-2*x)) Частное решение: Eq(y(x), 2*exp(-2*x)) Ответ сошелся

Сравним 7 и 9 строки вывода работы скрипта с общим и частным решением на сайте соответственно:

Решаем дифференциальные уравнения с помощью Python часть 1

Пример 3:

Решаем дифференциальные уравнения с помощью Python часть 1

print("#Дифференциальные уравнения первого порядка.") print("#Дифференциальные уравнения с разделяющимися переменными") print("#Пример 3")  x = sympy.symbols('x') y = sympy.Function('y')  equation = sympy.Eq(y(x).diff(x)+(2*y(x)+1)*sympy.cot(x),0) print("Условие:") print(equation) solution = sympy.dsolve(equation) print("Общее решение:") print(solution) print("Ответ сошелся")

Выхлоп:

#Дифференциальные уравнения первого порядка. #Дифференциальные уравнения с разделяющимися переменными #Пример 3 Условие: Eq((2*y(x) + 1)*cot(x) + Derivative(y(x), x), 0) Общее решение: Eq(y(x), C1/sin(x)**2 - 1/2) Ответ сошелся

Ответ:

Решаем дифференциальные уравнения с помощью Python часть 1

Пример 4:

Решаем дифференциальные уравнения с помощью Python часть 1

Код:

print("#Дифференциальные уравнения первого порядка.") print("#Дифференциальные уравнения с разделяющимися переменными") print("#Пример 4")  x = sympy.symbols('x') y = sympy.Function('y')  equation = sympy.Eq(y(x)*sympy.ln(y(x))+x*y(x).diff(x),0) print("Условие:") print(equation) solution = sympy.dsolve(equation) print("Общее решение:") print(solution) C1=sympy.solve(solution.subs(x,1).subs(y(1),sympy.exp(1)),'C1')[0] z=solution.subs('C1',C1) print("Частное решение:") print(z) print("Ответ сошелся")

Выхлоп:

#Дифференциальные уравнения первого порядка. #Дифференциальные уравнения с разделяющимися переменными #Пример 4 Условие: Eq(x*Derivative(y(x), x) + y(x)*log(y(x)), 0) Общее решение: Eq(y(x), exp(C1/x)) Частное решение: Eq(y(x), exp(1/x)) Ответ сошелся

Ответ:

Решаем дифференциальные уравнения с помощью Python часть 1

Пример 5:

Решаем дифференциальные уравнения с помощью Python часть 1

Код

print("#Дифференциальные уравнения первого порядка.") print("#Дифференциальные уравнения с разделяющимися переменными") print("#Пример 5")  x = sympy.symbols('x') y = sympy.Function('y')  equation = sympy.Eq(y(x).diff(x)*sympy.exp(y(x)-x*x)-2*x,0) print("Условие:") print(equation) solution = sympy.dsolve(equation) print("Общее решение:") print(solution) C1=sympy.solve(solution.subs(x,0).subs(y(0),sympy.ln(2)),'C1')[0] z=solution.subs('C1',C1) print("Частное решение:") print(z) print("Ответ сошелся")

Выхлоп:

#Дифференциальные уравнения первого порядка. #Дифференциальные уравнения с разделяющимися переменными #Пример 5 Условие: Eq(-2*x + exp(-x**2 + y(x))*Derivative(y(x), x), 0) Общее решение: Eq(y(x), log(C1 + exp(x**2))) Частное решение: Eq(y(x), log(exp(x**2) + 1)) Ответ сошелся

Ответ:

Решаем дифференциальные уравнения с помощью Python часть 1

Пример 6:

Решаем дифференциальные уравнения с помощью Python часть 1

Код:

print("#Дифференциальные уравнения первого порядка.") print("#Дифференциальные уравнения с разделяющимися переменными") print("#Пример 6")  x = sympy.symbols('x') y = sympy.Function('y')  equation = sympy.Eq((y(x).diff(x))*y(x)*sympy.sqrt(1-x*x)-sympy.sqrt(3+y(x)*y(x)),0) print("Условие:") print(equation) solution = sympy.dsolve(equation) print("Общее решение:") print(solution) print("Ответ неизвестен правилен ли")

Выхлоп:

#Дифференциальные уравнения первого порядка. #Дифференциальные уравнения с разделяющимися переменными #Пример 6 Условие: Eq(sqrt(1 - x**2)*y(x)*Derivative(y(x), x) - sqrt(y(x)**2 + 3), 0) Общее решение: [Eq(y(x), -sqrt(C1**2 + 2*C1*asin(x) + asin(x)**2 - 3)), Eq(y(x), sqrt(C1**2 + 2*C1*asin(x) + asin(x)**2 - 3))] Ответ неизвестен правилен ли

Ответ:

Решаем дифференциальные уравнения с помощью Python часть 1

В данном примере 6 на сайте надо было выразить через функцию выше ответ, а код решает сложный диффур и выражает его через зависимую переменную y. Оставим данное уравнение и ответ потомкам.

Пример 7:

Решаем дифференциальные уравнения с помощью Python часть 1

Код:

print("#Дифференциальные уравнения первого порядка.") print("#Дифференциальные уравнения с разделяющимися переменными") print("#Пример 7")  x = sympy.symbols('x') y = sympy.Function('y')  equation = sympy.Eq((y(x).diff(x))*2*(y(x)*x+y(x))+x*(y(x)**4+1),0) print("Условие:") print(equation) solution = sympy.dsolve(equation) print("Общее решение:") print(solution) print("Ответ неизвестен правилен ли")

Выхлоп:

#Дифференциальные уравнения первого порядка. #Дифференциальные уравнения с разделяющимися переменными #Пример 7 Условие: Eq(x*(y(x)**4 + 1) + 2*(x*y(x) + y(x))*Derivative(y(x), x), 0) Общее решение: [Eq(y(x), -sqrt(tan(C1 - x + log(x + 1)))), Eq(y(x), sqrt(tan(C1 - x + log(x + 1))))] Ответ неизвестен правилен ли

Ответ:

Решаем дифференциальные уравнения с помощью Python часть 1

Данный ответ 7 автор сайта называет общим интегралом и делает проверку дифференцируя этот ответ, а код решает сложный диффур и выражает его через y.

Пример 8:

Решаем дифференциальные уравнения с помощью Python часть 1

Код:

print("#Дифференциальные уравнения первого порядка.") print("#Дифференциальные уравнения с разделяющимися переменными") print("#Пример 8")  x = sympy.symbols('x') y = sympy.Function('y')  equation = sympy.Eq(2*y(x).diff(x)*sympy.sin(y(x))*sympy.cos(y(x))*sympy.sin(x)**2+sympy.cos(x),0) print("Условие:") print(equation) solution = sympy.dsolve(equation) print("Общее решение:") print(solution) print("Ответ неизвестен правилен ли") for sol in solution:     C1=sympy.solve(sol.subs(x,sympy.pi*0.5).subs(y(sympy.pi*0.5),0),'C1')     if C1==[] or C1==[-1]:         continue     z=sol.subs('C1',C1)     print("Частное решение:")     print(z)

Выхлоп:

#Дифференциальные уравнения первого порядка. #Дифференциальные уравнения с разделяющимися переменными #Пример 8 Условие: Eq(2*sin(x)**2*sin(y(x))*cos(y(x))*Derivative(y(x), x) + cos(x), 0) Общее решение: [Eq(y(x), pi - asin(sqrt(C1 + 1/sin(x)))), Eq(y(x), asin(sqrt(C1 + 1/sin(x))) + pi), Eq(y(x), -asin(sqrt(C1 + 1/sin(x)))), Eq(y(x), asin(sqrt(C1 + 1/sin(x))))] Ответ неизвестен правилен ли

Ответ:

Решаем дифференциальные уравнения с помощью Python часть 1

Данный пример 8 я не смог решить с условием, у кого будут идеи где я ошибся, прошу в комментарии.

Пример 9:

Решаем дифференциальные уравнения с помощью Python часть 1

Код:

print("# Дифференциальные уравнения первого порядка.") print("# Дифференциальные уравнения с разделяющимися переменными") print("# Пример 9") x = sympy.symbols('x') y = sympy.Function('y') equation = sympy.Eq(y(x).diff(x) * y(x) *(1+sympy.exp(x)) - sympy.exp(y(x)), 0) print("Условие:") print(equation) solution = sympy.dsolve(equation) print("Общее решение:") print(solution) print("Ответ неизвестен правилен ли")

Выхлоп:

# Дифференциальные уравнения первого порядка. # Дифференциальные уравнения с разделяющимися переменными # Пример 9 Условие: Eq((exp(x) + 1)*y(x)*Derivative(y(x), x) - exp(y(x)), 0) Общее решение: Eq(y(x), -LambertW(C1 + x*exp(-1) - exp(-1)*log(exp(x) + 1)) - 1) Ответ неизвестен правилен ли

Ответ:

Решаем дифференциальные уравнения с помощью Python часть 1

В 9 примере в ответе опять общий интеграл.

Пример 10:

Решаем дифференциальные уравнения с помощью Python часть 1

Код:

print("# Дифференциальные уравнения первого порядка.") print("# Дифференциальные уравнения с разделяющимися переменными") print("# Пример 10") x = sympy.symbols('x') y = sympy.Function('y') print("Условие:") equation = sympy.Eq(y(x).diff(x) * (x+3*x*x) -y(x)+3, 0) print(equation) solution = sympy.dsolve(equation) print("Общее решение:") print(solution) print("Ответ сошелся")

Выхлоп:

# Дифференциальные уравнения первого порядка. # Дифференциальные уравнения с разделяющимися переменными # Пример 10 Условие: Eq((3*x**2 + x)*Derivative(y(x), x) - y(x) + 3, 0) Общее решение: Eq(y(x), 3*(C1*x + 3*x + 1)/(3*x + 1)) Ответ сошелся

Ответ:

Решаем дифференциальные уравнения с помощью Python часть 1

Итог

Очень полезная библиотека этот SymPy – упрощает жизнь и решения сложных дифференциальных уравнений.