71 lines
3.5 KiB
Markdown
71 lines
3.5 KiB
Markdown
---
|
||
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) |