freeCodeCamp/guide/russian/mathematics/differential-equations/eulers-method/index.md

71 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: Euler's Method
localeTitle: Метод Эйлера
---
# Метод Эйлера
Метод Эйлера представляет собой численную процедуру первого порядка для решения обыкновенных дифференциальных уравнений (ОДУ) с заданным начальным значением.
## Общая проблема с начальным значением
![](https://raw.githubusercontent.com/pranabendra/articles/master/Euler-method/images/eqn006.png)
## методология
Метод Эйлера использует простую формулу,
![](https://raw.githubusercontent.com/pranabendra/articles/master/Euler-method/images/eqn3.png)
построить касательную в точке `x` и получить значение `y(x+h)` , наклон которого равен,
![](https://raw.githubusercontent.com/pranabendra/articles/master/Euler-method/images/eqn008.png)
![](https://raw.githubusercontent.com/pranabendra/articles/master/Euler-method/images/Euler.png)
В методе Эйлера вы можете аппроксимировать кривую решения касательной в каждом интервале (т. Е. Последовательностью коротких отрезков) на шагах `h` .
_В общем_ случае, если вы используете небольшой размер шага, точность приближения возрастает.
## Общая формула
![](https://raw.githubusercontent.com/pranabendra/articles/master/Euler-method/images/eqn7.png)
![](https://raw.githubusercontent.com/pranabendra/articles/master/Euler-method/images/eqn_new_2.png)
## Функциональное значение в любой точке `b` , заданное `y(b)`
![](https://raw.githubusercontent.com/pranabendra/articles/master/Euler-method/images/eqn6.png)
где,
* **n** = количество шагов
* **h** = ширина интервала (размер каждого шага)
### ПСЕВДОКОД
![](https://raw.githubusercontent.com/pranabendra/articles/master/Euler-method/images/eqn_new_1.png)
## пример
Найти `y(1)` , учитывая
![](https://raw.githubusercontent.com/pranabendra/articles/master/Euler-method/images/eqn007.png)
Решая аналитически решение, _**y = e x**_ и `y(1)` = `2.71828` . (Примечание. Это аналитическое решение предназначено только для сравнения точности.)
Используя метод Эйлера, рассматривая `h` = `0.2` , `0.1` , `0.01` , вы можете увидеть результаты на диаграмме ниже.
![](https://raw.githubusercontent.com/pranabendra/articles/master/Euler-method/images/comparison.png)
Когда `h` = `0.2` , `y(1)` = `2.48832` (ошибка = 8,46%)
Когда `h` = `0.1` , `y(1)` = `2.59374` (ошибка = 4,58%)
Когда `h` = `0.01` , `y(1)` = `2.70481` (ошибка = 0,50%)
Вы можете заметить, насколько точность улучшается, когда шаги малы.
## Дополнительная информация:
1. [Численные методы решения дифференциальных уравнений](http://calculuslab.deltacollege.edu/ODE/7-C-1/7-C-1-h-c.html)
2. [Метод Эйлера](https://en.wikipedia.org/wiki/Euler_method)