метод Эйлера

Подход к нахождению численных решений обыкновенных дифференциальных уравнений
(Рисунок 1) Иллюстрация метода Эйлера. Неизвестная кривая обозначена синим цветом, а ее полигональная аппроксимация — красным.

В математике и вычислительной науке метод Эйлера (также называемый прямым методом Эйлера ) — это численная процедура первого порядка для решения обыкновенных дифференциальных уравнений (ОДУ) с заданным начальным значением . Это самый базовый явный метод численного интегрирования обыкновенных дифференциальных уравнений и самый простой метод Рунге–Кутты . Метод Эйлера назван в честь Леонарда Эйлера , который впервые предложил его в своей книге Institutionum calculi integralis (опубликованной в 1768–1770 гг.). [1]

Метод Эйлера является методом первого порядка, что означает, что локальная ошибка (ошибка на шаг) пропорциональна квадрату размера шага, а глобальная ошибка (ошибка в данный момент времени) пропорциональна размеру шага. Метод Эйлера часто служит основой для построения более сложных методов, например, метода предиктора-корректора .

Геометрическое описание

Цель и почему это работает

Рассмотрим задачу вычисления формы неизвестной кривой, которая начинается в заданной точке и удовлетворяет заданному дифференциальному уравнению. Здесь дифференциальное уравнение можно рассматривать как формулу, с помощью которой наклон касательной к кривой может быть вычислен в любой точке кривой, как только положение этой точки было вычислено.

Идея заключается в том, что хотя кривая изначально неизвестна, ее начальная точка, которую мы обозначим как , известна (см. Рисунок 1). Затем из дифференциального уравнения можно вычислить наклон кривой в точке , а значит, и касательную. A 0 , {\displaystyle A_{0},} A 0 {\displaystyle A_{0}}

Сделайте небольшой шаг вдоль этой касательной до точки Вдоль этого небольшого шага наклон не слишком сильно изменится, поэтому будет близок к кривой. Если мы притворимся, что все еще на кривой, можно использовать те же рассуждения, что и для точки выше. После нескольких шагов вычисляется многоугольная кривая ( ). В общем, эта кривая не слишком сильно расходится с исходной неизвестной кривой, и ошибку между двумя кривыми можно сделать небольшой, если размер шага достаточно мал, а интервал вычисления конечен. [2] A 1 . {\displaystyle A_{1}.} A 1 {\displaystyle A_{1}} A 1 {\displaystyle A_{1}} A 0 {\displaystyle A_{0}} A 0 A 1 A 2 A 3 {\displaystyle A_{0}A_{1}A_{2}A_{3}\dots }

Процесс первого порядка

При заданных значениях для и , а производная от является заданной функцией от и обозначается как . Начните процесс, установив . Затем выберите значение для размера каждого шага вдоль оси t и установите (или эквивалентно ). Теперь метод Эйлера используется для нахождения из и : [3] t 0 {\displaystyle t_{0}} y ( t 0 ) {\displaystyle y(t_{0})} y {\displaystyle y} t {\displaystyle t} y {\displaystyle y} y ( t ) = f ( t , y ( t ) ) {\displaystyle y'(t)=f{\bigl (}t,y(t){\bigr )}} y 0 = y ( t 0 ) {\displaystyle y_{0}=y(t_{0})} h {\displaystyle h} t n = t 0 + n h {\displaystyle t_{n}=t_{0}+nh} t n + 1 = t n + h {\displaystyle t_{n+1}=t_{n}+h} y n + 1 {\displaystyle y_{n+1}} y n {\displaystyle y_{n}} t n {\displaystyle t_{n}}

y n + 1 = y n + h f ( t n , y n ) . {\displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n}).}

Значение является приближением решения в момент времени , т.е. . Метод Эйлера является явным , т.е. решение является явной функцией для . y n {\displaystyle y_{n}} t n {\displaystyle t_{n}} y n y ( t n ) {\displaystyle y_{n}\approx y(t_{n})} y n + 1 {\displaystyle y_{n+1}} y i {\displaystyle y_{i}} i n {\displaystyle i\leq n}

Процесс более высокого порядка

В то время как метод Эйлера интегрирует ОДУ первого порядка, любое ОДУ порядка может быть представлено как система ОДУ первого порядка. При задании ОДУ порядка, определенного как N {\displaystyle N} N {\displaystyle N}

y ( N + 1 ) ( t ) = f ( t , y ( t ) , y ( t ) , , y ( N ) ( t ) ) , {\displaystyle y^{(N+1)}(t)=f\left(t,y(t),y'(t),\ldots ,y^{(N)}(t)\right),}

а также , , и , реализуем следующую формулу до тех пор, пока не достигнем приближения решения ОДУ в желаемое время: h {\displaystyle h} t 0 {\displaystyle t_{0}} y 0 , y 0 , , y 0 ( N ) {\displaystyle y_{0},y'_{0},\dots ,y_{0}^{(N)}}

y i + 1 = ( y i + 1 y i + 1 y i + 1 ( N 1 ) y i + 1 ( N ) ) = ( y i + h y i y i + h y i y i ( N 1 ) + h y i ( N ) y i ( N ) + h f ( t i , y i , y i , , y i ( N ) ) ) {\displaystyle {\vec {y}}_{i+1}={\begin{pmatrix}y_{i+1}\\y'_{i+1}\\\vdots \\y_{i+1}^{(N-1)}\\y_{i+1}^{(N)}\end{pmatrix}}={\begin{pmatrix}y_{i}+h\cdot y'_{i}\\y'_{i}+h\cdot y''_{i}\\\vdots \\y_{i}^{(N-1)}+h\cdot y_{i}^{(N)}\\y_{i}^{(N)}+h\cdot f\left(t_{i},y_{i},y'_{i},\ldots ,y_{i}^{(N)}\right)\end{pmatrix}}}

Эти системы первого порядка можно обрабатывать методом Эйлера или, по сути, любой другой схемой для систем первого порядка. [4]

Пример первого порядка

Учитывая задачу начального значения

y = y , y ( 0 ) = 1 , {\displaystyle y'=y,\quad y(0)=1,}

мы хотели бы использовать метод Эйлера для аппроксимации . [5] y ( 4 ) {\displaystyle y(4)}

Используя размер шага, равный 1 (ч = 1)

(Рисунок 2) Иллюстрация численного интегрирования для уравнения. Синий цвет — метод Эйлера; зеленый — метод средней точки ; красный — точное решение. Размер шага равен y = y , y ( 0 ) = 1. {\displaystyle y'=y,y(0)=1.} y = e t . {\displaystyle y=e^{t}.} h = 1.0. {\displaystyle h=1.0.}

Метод Эйлера - это

y n + 1 = y n + h f ( t n , y n ) . {\displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n}).}

поэтому сначала мы должны вычислить . В этом простом дифференциальном уравнении функция определяется как . Мы имеем f ( t 0 , y 0 ) {\displaystyle f(t_{0},y_{0})} f {\displaystyle f} f ( t , y ) = y {\displaystyle f(t,y)=y}

f ( t 0 , y 0 ) = f ( 0 , 1 ) = 1. {\displaystyle f(t_{0},y_{0})=f(0,1)=1.}

Выполнив вышеуказанный шаг, мы нашли наклон линии, которая касается кривой решения в точке . Напомним, что наклон определяется как изменение в , деленное на изменение в , или . ( 0 , 1 ) {\displaystyle (0,1)} y {\displaystyle y} t {\displaystyle t} Δ y Δ t {\textstyle {\frac {\Delta y}{\Delta t}}}

Следующий шаг — умножить указанное выше значение на размер шага , который мы здесь принимаем равным единице: h {\displaystyle h}

h f ( y 0 ) = 1 1 = 1. {\displaystyle h\cdot f(y_{0})=1\cdot 1=1.}

Поскольку размер шага — это изменение , то когда мы умножаем размер шага и наклон касательной, мы получаем изменение значения. Затем это значение добавляется к исходному значению, чтобы получить следующее значение, которое будет использоваться для вычислений. t {\displaystyle t} y {\displaystyle y} y {\displaystyle y}

y 0 + h f ( y 0 ) = y 1 = 1 + 1 1 = 2. {\displaystyle y_{0}+hf(y_{0})=y_{1}=1+1\cdot 1=2.}

Для нахождения , и следует повторить указанные выше шаги . y 2 {\displaystyle y_{2}} y 3 {\displaystyle y_{3}} y 4 {\displaystyle y_{4}}

y 2 = y 1 + h f ( y 1 ) = 2 + 1 2 = 4 , y 3 = y 2 + h f ( y 2 ) = 4 + 1 4 = 8 , y 4 = y 3 + h f ( y 3 ) = 8 + 1 8 = 16. {\displaystyle {\begin{aligned}y_{2}&=y_{1}+hf(y_{1})=2+1\cdot 2=4,\\y_{3}&=y_{2}+hf(y_{2})=4+1\cdot 4=8,\\y_{4}&=y_{3}+hf(y_{3})=8+1\cdot 8=16.\end{aligned}}}

Ввиду повторяющегося характера этого алгоритма может быть полезно организовать вычисления в виде диаграммы, как показано ниже, чтобы избежать ошибок.

n {\displaystyle n} y n {\displaystyle y_{n}} t n {\displaystyle t_{n}} f ( t n , y n ) {\displaystyle f(t_{n},y_{n})} h {\displaystyle h} Δ y {\displaystyle \Delta y} y n + 1 {\displaystyle y_{n+1}}
0101112
1212124
2424148
38381816

Вывод этого вычисления таков : . Точное решение дифференциального уравнения равно , поэтому . Хотя приближение метода Эйлера в этом конкретном случае не было очень точным, особенно из-за большого размера шага значения , его поведение качественно правильно, как показано на рисунке. y 4 = 16 {\displaystyle y_{4}=16} y ( t ) = e t {\displaystyle y(t)=e^{t}} y ( 4 ) = e 4 54.598 {\displaystyle y(4)=e^{4}\approx 54.598} h {\displaystyle h}

Использование других размеров шага

(Рисунок 3) Та же иллюстрация для h = 0.25. {\displaystyle h=0.25.}

Как было предложено во введении, метод Эйлера точнее, если размер шага меньше. В таблице ниже показан результат с разными размерами шага. Верхняя строка соответствует примеру в предыдущем разделе, а вторая строка проиллюстрирована на рисунке. h {\displaystyle h}

размер шагарезультат метода Эйлераошибка
116.0038.60
0,2535.5319.07
0.145.260 9.34
0,0549.560 5.04
0,02551.980 2.62
0,012553.260 1.34

Ошибка, записанная в последнем столбце таблицы, представляет собой разницу между точным решением при и приближением Эйлера. В нижней части таблицы размер шага составляет половину размера шага в предыдущей строке, и ошибка также составляет примерно половину ошибки в предыдущей строке. Это говорит о том, что ошибка примерно пропорциональна размеру шага, по крайней мере для довольно малых значений размера шага. Это справедливо в общем случае, также и для других уравнений; см. раздел Глобальная ошибка усечения для получения более подробной информации. t = 4 {\displaystyle t=4}

Другие методы, такие как метод средней точки , также проиллюстрированный на рисунках, ведут себя более благоприятно: глобальная ошибка метода средней точки примерно пропорциональна квадрату размера шага. По этой причине метод Эйлера называют методом первого порядка, тогда как метод средней точки — методом второго порядка.

Мы можем экстраполировать из приведенной выше таблицы, что размер шага, необходимый для получения ответа, который является правильным до трех знаков после запятой, составляет приблизительно 0,00001, что означает, что нам нужно 400 000 шагов. Такое большое количество шагов влечет за собой высокие вычислительные затраты. По этой причине используются методы более высокого порядка, такие как методы Рунге-Кутты или линейные многошаговые методы , особенно если требуется высокая точность. [6]

Пример более высокого порядка

Для этого примера третьего порядка предположим, что дана следующая информация:

y + 4 t y t 2 y ( cos t ) y = sin t t 0 = 0 y 0 = y ( t 0 ) = 2 y 0 = y ( t 0 ) = 1 y 0 = y ( t 0 ) = 3 h = 0.5 {\displaystyle {\begin{aligned}&y'''+4ty''-t^{2}y'-(\cos {t})y=\sin {t}\\&t_{0}=0\\&y_{0}=y(t_{0})=2\\&y'_{0}=y'(t_{0})=-1\\&y''_{0}=y''(t_{0})=3\\&h=0.5\end{aligned}}}

Отсюда мы можем выделить y''' и получить уравнение:

f ( t , y , y , y ) = y = sin t + ( cos t ) y + t 2 y 4 t y {\displaystyle f\left(t,y,y',y''\right)=y'''=\sin {t}+(\cos {t})y+t^{2}y'-4ty''}

Используя это, мы можем получить решение для : А используя решение для , мы можем получить решение для : Мы можем продолжать этот процесс, используя ту же формулу столько, сколько необходимо, чтобы найти желаемое . y 1 {\displaystyle {\vec {y}}_{1}} y 1 = ( y 1 y 1 y 1 ) = ( y 0 + h y 0 y 0 + h y 0 y 0 + h f ( t 0 , y 0 , y 0 , y 0 ) ) = ( 2 + 0.5 1 1 + 0.5 3 3 + 0.5 ( sin 0 + ( cos 0 ) 2 + 0 2 ( 1 ) 4 0 3 ) ) = ( 1.5 0.5 4 ) {\displaystyle {\vec {y}}_{1}={\begin{pmatrix}y_{1}\\y_{1}'\\y_{1}''\end{pmatrix}}={\begin{pmatrix}y_{0}+h\cdot y'_{0}\\y'_{0}+h\cdot y''_{0}\\y''_{0}+h\cdot f\left(t_{0},y_{0},y'_{0},y''_{0}\right)\end{pmatrix}}={\begin{pmatrix}2+0.5\cdot -1\\-1+0.5\cdot 3\\3+0.5\cdot \left(\sin {0}+(\cos {0})\cdot 2+0^{2}\cdot (-1)-4\cdot 0\cdot 3\right)\end{pmatrix}}={\begin{pmatrix}1.5\\0.5\\4\end{pmatrix}}} y 1 {\displaystyle {\vec {y}}_{1}} y 2 {\displaystyle {\vec {y}}_{2}} y 2 = ( y 2 y 2 y 2 ) = ( y 1 + h y 1 y 1 + h y 1 y 1 + h f ( t 1 , y 1 , y 1 , y 1 ) ) = ( 1.5 + 0.5 0.5 0.5 + 0.5 4 4 + 0.5 ( sin 0.5 + ( cos 0.5 ) 1.5 + 0.5 2 0.5 4 0.5 4 ) ) = ( 1.75 2.5 0.817 ) {\displaystyle {\vec {y}}_{2}={\begin{pmatrix}y_{2}\\y_{2}'\\y_{2}''\end{pmatrix}}={\begin{pmatrix}y_{1}+h\cdot y'_{1}\\y'_{1}+h\cdot y''_{1}\\y''_{1}+h\cdot f\left(t_{1},y_{1},y'_{1},y''_{1}\right)\end{pmatrix}}={\begin{pmatrix}1.5+0.5\cdot 0.5\\0.5+0.5\cdot 4\\4+0.5\cdot \left(\sin {0.5}+(\cos {0.5})\cdot 1.5+0.5^{2}\cdot 0.5-4\cdot 0.5\cdot 4\right)\end{pmatrix}}={\begin{pmatrix}1.75\\2.5\\0.817\end{pmatrix}}} y i {\displaystyle {\vec {y}}_{i}}

Вывод

Метод Эйлера можно вывести несколькими способами.

(1) Во-первых, выше приведено геометрическое описание.

(2) Другая возможность — рассмотреть разложение Тейлора функции вокруг : y {\displaystyle y} t 0 {\displaystyle t_{0}}

y ( t 0 + h ) = y ( t 0 ) + h y ( t 0 ) + 1 2 h 2 y ( t 0 ) + O ( h 3 ) . {\displaystyle y(t_{0}+h)=y(t_{0})+hy'(t_{0})+{\tfrac {1}{2}}h^{2}y''(t_{0})+O\left(h^{3}\right).}

Дифференциальное уравнение утверждает, что . Если это подставить в разложение Тейлора и проигнорировать квадратичные и более высокие члены, то возникает метод Эйлера. [7] y = f ( t , y ) {\displaystyle y'=f(t,y)}

Разложение Тейлора используется ниже для анализа ошибки, допускаемой методом Эйлера, и его можно расширить для получения методов Рунге–Кутты .

(3) Тесно связанный вывод заключается в замене производной на прямую формулу конечной разности :

y ( t 0 ) y ( t 0 + h ) y ( t 0 ) h {\displaystyle y'(t_{0})\approx {\frac {y(t_{0}+h)-y(t_{0})}{h}}}

в дифференциальном уравнении . Опять же, это дает метод Эйлера. [8] y = f ( t , y ) {\displaystyle y'=f(t,y)}

Аналогичное вычисление приводит к методу средней точки и обратному методу Эйлера .


(4) Наконец, можно проинтегрировать дифференциальное уравнение от до и применить основную теорему исчисления, чтобы получить: t 0 {\displaystyle t_{0}} t 0 + h {\displaystyle t_{0}+h}

y ( t 0 + h ) y ( t 0 ) = t 0 t 0 + h f ( t , y ( t ) ) d t . {\displaystyle y(t_{0}+h)-y(t_{0})=\int _{t_{0}}^{t_{0}+h}f{\bigl (}t,y(t){\bigr )}\,\mathrm {d} t.}

Теперь аппроксимируем интеграл методом левого прямоугольника (только с одним прямоугольником):

t 0 t 0 + h f ( t , y ( t ) ) d t h f ( t 0 , y ( t 0 ) ) . {\displaystyle \int _{t_{0}}^{t_{0}+h}f{\bigl (}t,y(t){\bigr )}\,\mathrm {d} t\approx hf{\bigl (}t_{0},y(t_{0}){\bigr )}.}

Объединяя оба уравнения, снова получаем метод Эйлера. [9]


Эту линию рассуждений можно продолжить, чтобы прийти к различным линейным многошаговым методам .

Локальная ошибка усечения

Локальная ошибка усечения метода Эйлера — это ошибка, сделанная за один шаг. Это разница между численным решением после одного шага, , и точным решением в момент времени . Численное решение задается как y 1 {\displaystyle y_{1}} t 1 = t 0 + h {\displaystyle t_{1}=t_{0}+h}

y 1 = y 0 + h f ( t 0 , y 0 ) . {\displaystyle y_{1}=y_{0}+hf(t_{0},y_{0}).}

Для точного решения мы используем разложение Тейлора, упомянутое в разделе «Вывод» выше:

y ( t 0 + h ) = y ( t 0 ) + h y ( t 0 ) + 1 2 h 2 y ( t 0 ) + O ( h 3 ) . {\displaystyle y(t_{0}+h)=y(t_{0})+hy'(t_{0})+{\tfrac {1}{2}}h^{2}y''(t_{0})+O\left(h^{3}\right).}

Локальная ошибка усечения (LTE), введенная методом Эйлера, определяется разностью между этими уравнениями:

L T E = y ( t 0 + h ) y 1 = 1 2 h 2 y ( t 0 ) + O ( h 3 ) . {\displaystyle \mathrm {LTE} =y(t_{0}+h)-y_{1}={\tfrac {1}{2}}h^{2}y''(t_{0})+O\left(h^{3}\right).}

Этот результат действителен, если имеет ограниченную третью производную. [10] y {\displaystyle y}

Это показывает, что при малых локальная ошибка усечения приблизительно пропорциональна . Это делает метод Эйлера менее точным, чем методы более высокого порядка, такие как методы Рунге-Кутты и линейные многошаговые методы , для которых локальная ошибка усечения пропорциональна более высокой степени размера шага. h {\displaystyle h} h 2 {\displaystyle h^{2}}

Немного иную формулировку для локальной ошибки усечения можно получить, используя форму Лагранжа для остаточного члена в теореме Тейлора . Если имеет непрерывную вторую производную, то существует такое , что y {\displaystyle y} ξ [ t 0 , t 0 + h ] {\displaystyle \xi \in [t_{0},t_{0}+h]}

L T E = y ( t 0 + h ) y 1 = 1 2 h 2 y ( ξ ) . {\displaystyle \mathrm {LTE} =y(t_{0}+h)-y_{1}={\tfrac {1}{2}}h^{2}y''(\xi ).} [11]

В приведенных выше выражениях для погрешности вторая производная неизвестного точного решения может быть заменена выражением, включающим правую часть дифференциального уравнения. Действительно, из уравнения следует , что [12] y {\displaystyle y} y = f ( t , y ) {\displaystyle y'=f(t,y)}

y ( t 0 ) = f t ( t 0 , y ( t 0 ) ) + f y ( t 0 , y ( t 0 ) ) f ( t 0 , y ( t 0 ) ) . {\displaystyle y''(t_{0})={\frac {\partial f}{\partial t}}{\bigl (}t_{0},y(t_{0}){\bigr )}+{\frac {\partial f}{\partial y}}{\bigl (}t_{0},y(t_{0}){\bigr )}\,f{\bigl (}t_{0},y(t_{0}){\bigr )}.}

Глобальная ошибка усечения

Глобальная ошибка усечения — это ошибка в фиксированное время , после того, как столько шагов метод должен сделать, чтобы достичь этого времени от начального времени. Глобальная ошибка усечения — это кумулятивный эффект локальных ошибок усечения, совершенных на каждом шаге. [13] Количество шагов легко определяется как , что пропорционально , ​​а ошибка, совершенная на каждом шаге, пропорциональна (см. предыдущий раздел). Таким образом, следует ожидать, что глобальная ошибка усечения будет пропорциональна . [14] t i {\displaystyle t_{i}} t i t 0 h {\textstyle {\frac {t_{i}-t_{0}}{h}}} 1 h {\textstyle {\frac {1}{h}}} h 2 {\displaystyle h^{2}} h {\displaystyle h}

Это интуитивное рассуждение можно сделать точным. Если решение имеет ограниченную вторую производную и является непрерывным по Липшицу по второму аргументу, то глобальная ошибка усечения (обозначаемая как ) ограничена y {\displaystyle y} f {\displaystyle f} | y ( t i ) y i | {\displaystyle |y(t_{i})-y_{i}|}

| y ( t i ) y i | h M 2 L ( e L ( t i t 0 ) 1 ) {\displaystyle |y(t_{i})-y_{i}|\leq {\frac {hM}{2L}}\left(e^{L(t_{i}-t_{0})}-1\right)}

где — верхняя граница второй производной на заданном интервале, а — константа Липшица . [15] Или, проще говоря, когда , значение (такое, что рассматривается как константа). Напротив, где функция — точное решение, которое содержит только переменную. M {\displaystyle M} y {\displaystyle y} L {\displaystyle L} f {\displaystyle f} y ( t ) = f ( t , y ) {\displaystyle y'(t)=f(t,y)} L = max ( | d d y [ f ( t , y ) ] | ) {\textstyle L={\text{max}}{\bigl (}|{\frac {d}{dy}}{\bigl [}f(t,y){\bigr ]}|{\bigr )}} t {\displaystyle t} M = max ( | d 2 d t 2 [ y ( t ) ] | ) {\textstyle M={\text{max}}{\bigl (}|{\frac {d^{2}}{dt^{2}}}{\bigl [}y(t){\bigr ]}|{\bigr )}} y ( t ) {\displaystyle y(t)} t {\displaystyle t}

Точная форма этой границы не имеет большого практического значения, поскольку в большинстве случаев граница значительно переоценивает фактическую ошибку, допущенную методом Эйлера. [16] Важно то, что она показывает, что глобальная ошибка усечения (приблизительно) пропорциональна . По этой причине метод Эйлера называют методом первого порядка. [17] h {\displaystyle h}

Пример

Если у нас есть дифференциальное уравнение и точное решение , и мы хотим найти и для когда . Таким образом, мы можем найти границу ошибки при t=2,5 и h=0,5: y = 1 + ( t y ) 2 {\displaystyle y'=1+(t-y)^{2}} y = t + 1 t 1 {\displaystyle y=t+{\frac {1}{t-1}}} M {\displaystyle M} L {\displaystyle L} 2 t 3 {\displaystyle 2\leq t\leq 3} L = max ( | d d y [ f ( t , y ) ] | ) = max 2 t 3 ( | d d y [ 1 + ( t y ) 2 ] | ) = max 2 t 3 ( | 2 ( t y ) | ) = max 2 t 3 ( | 2 ( t [ t + 1 t 1 ] ) | ) = max 2 t 3 ( | 2 t 1 | ) = 2 {\displaystyle L={\text{max}}{\bigl (}|{\frac {d}{dy}}{\bigl [}f(t,y){\bigr ]}|{\bigr )}=\max _{2\leq t\leq 3}{\bigl (}|{\frac {d}{dy}}{\bigl [}1+(t-y)^{2}{\bigr ]}|{\bigr )}=\max _{2\leq t\leq 3}{\bigl (}|2(t-y)|{\bigr )}=\max _{2\leq t\leq 3}{\bigl (}|2(t-[t+{\frac {1}{t-1}}])|{\bigr )}=\max _{2\leq t\leq 3}{\bigl (}|-{\frac {2}{t-1}}|{\bigr )}=2} M = max ( | d 2 d t 2 [ y ( t ) ] | ) = max 2 t 3 ( | d 2 d t 2 [ t + 1 1 t ] | ) = max 2 t 3 ( | 2 ( t + 1 ) 3 | ) = 2 {\displaystyle M={\text{max}}{\bigl (}|{\frac {d^{2}}{dt^{2}}}{\bigl [}y(t){\bigr ]}|{\bigr )}=\max _{2\leq t\leq 3}\left(|{\frac {d^{2}}{dt^{2}}}{\bigl [}t+{\frac {1}{1-t}}{\bigr ]}|\right)=\max _{2\leq t\leq 3}\left(|{\frac {2}{(-t+1)^{3}}}|\right)=2}

error bound = h M 2 L ( e L ( t i t 0 ) 1 ) = 0.5 2 2 2 ( e 2 ( 2.5 2 ) 1 ) = 0.42957 {\displaystyle {\text{error bound}}={\frac {hM}{2L}}\left(e^{L(t_{i}-t_{0})}-1\right)={\frac {0.5\cdot 2}{2\cdot 2}}\left(e^{2(2.5-2)}-1\right)=0.42957} Обратите внимание, что t 0 равно 2, поскольку это нижняя граница для t в . 2 t 3 {\displaystyle 2\leq t\leq 3}

Численная стабильность

(Рисунок 4) Решение вычислено методом Эйлера с шагом (синие квадраты) и (красные круги). Черная кривая показывает точное решение. y = 2.3 y {\displaystyle y'=-2.3y} h = 1 {\displaystyle h=1} h = 0.7 {\displaystyle h=0.7}

Метод Эйлера также может быть численно неустойчивым , особенно для жестких уравнений , что означает, что численное решение становится очень большим для уравнений, где точное решение не становится. Это можно проиллюстрировать с помощью линейного уравнения

y = 2.3 y , y ( 0 ) = 1. {\displaystyle y'=-2.3y,\qquad y(0)=1.}

Точное решение — , которое спадает до нуля как . Однако если применить метод Эйлера к этому уравнению с шагом , то численное решение будет качественно неверным: оно колеблется и растет (см. рисунок). Вот что значит быть нестабильным. Если использовать меньший шаг, например , то численное решение действительно спадает до нуля. y ( t ) = e 2.3 t {\displaystyle y(t)=e^{-2.3t}} t {\displaystyle t\to \infty } h = 1 {\displaystyle h=1} h = 0.7 {\displaystyle h=0.7}

(Рисунок 5) Розовый диск показывает область устойчивости метода Эйлера.

Если метод Эйлера применяется к линейному уравнению , то численное решение неустойчиво, если произведение находится вне области y = k y {\displaystyle y'=ky} h k {\displaystyle hk}

{ z C | | z + 1 | 1 } , {\displaystyle {\bigl \{}z\in \mathbf {C} \,{\big |}\,|z+1|\leq 1{\bigr \}},}

На рисунке справа показано. Эта область называется (линейной) областью устойчивости . [18] В примере, , поэтому если то что находится за пределами области устойчивости, и, таким образом, численное решение неустойчиво. k = 2.3 {\displaystyle k=-2.3} h = 1 {\displaystyle h=1} h k = 2.3 {\displaystyle hk=-2.3}

Это ограничение — вместе с его медленной сходимостью ошибки с — означает, что метод Эйлера нечасто используется, за исключением простого примера численного интегрирования [ требуется ссылка ] . Часто модели физических систем содержат члены, представляющие быстро распадающиеся элементы (т. е. с большими отрицательными экспоненциальными аргументами). Даже когда они не представляют интереса для общего решения, нестабильность, которую они могут вызвать, означает, что при использовании метода Эйлера потребуется исключительно малый временной шаг. h {\displaystyle h}

Ошибки округления

На шаге метода Эйлера ошибка округления примерно равна величине , где — машинный эпсилон . Предполагая, что ошибки округления являются независимыми случайными величинами, ожидаемая общая ошибка округления пропорциональна . [19] Таким образом, для чрезвычайно малых значений размера шага ошибка усечения будет мала, но эффект ошибки округления может быть большим. Большую часть эффекта ошибки округления можно легко избежать, если в формуле для метода Эйлера использовать компенсированное суммирование . [20] n {\displaystyle n} ε y n {\displaystyle \varepsilon y_{n}} ε {\displaystyle \varepsilon } ε h {\textstyle {\frac {\varepsilon }{\sqrt {h}}}}

Модификации и расширения

Простая модификация метода Эйлера, устраняющая отмеченные выше проблемы устойчивости, — это обратный метод Эйлера :

y n + 1 = y n + h f ( t n + 1 , y n + 1 ) . {\displaystyle y_{n+1}=y_{n}+hf(t_{n+1},y_{n+1}).}

Это отличается от (стандартного или прямого) метода Эйлера тем, что функция вычисляется в конечной точке шага, а не в начальной точке. Обратный метод Эйлера является неявным методом , что означает, что формула для обратного метода Эйлера имеет с обеих сторон, поэтому при применении обратного метода Эйлера нам приходится решать уравнение. Это делает реализацию более затратной. f {\displaystyle f} y n + 1 {\displaystyle y_{n+1}}

Другие модификации метода Эйлера, помогающие обеспечить устойчивость, приводят к экспоненциальному методу Эйлера или полунеявному методу Эйлера .

Более сложные методы могут достичь более высокого порядка (и большей точности). Одна из возможностей — использовать больше оценок функций. Это иллюстрируется методом средней точки , который уже упоминался в этой статье:

y n + 1 = y n + h f ( t n + 1 2 h , y n + 1 2 h f ( t n , y n ) ) {\displaystyle y_{n+1}=y_{n}+hf\left(t_{n}+{\tfrac {1}{2}}h,y_{n}+{\tfrac {1}{2}}hf(t_{n},y_{n})\right)} .

Это приводит к семейству методов Рунге–Кутты .

Другая возможность — использовать больше прошлых значений, как показано на двухшаговом методе Адамса–Башфорта:

y n + 1 = y n + 3 2 h f ( t n , y n ) 1 2 h f ( t n 1 , y n 1 ) . {\displaystyle y_{n+1}=y_{n}+{\tfrac {3}{2}}hf(t_{n},y_{n})-{\tfrac {1}{2}}hf(t_{n-1},y_{n-1}).}

Это приводит к семейству линейных многошаговых методов . Существуют и другие модификации, которые используют методы компрессионного зондирования для минимизации использования памяти [21]

В фильме « Скрытые фигуры » Кэтрин Гобл прибегает к методу Эйлера при расчете возвращения астронавта Джона Гленна с околоземной орбиты. [22]

Смотрите также

Примечания

  1. ^ Бутчер 2003, стр. 45; Хайрер, Нёрсетт и Ваннер 1993, стр. 35
  2. ^ Аткинсон 1989, стр. 342; Бутчер 2003, стр. 60
  3. ^ Бутчер 2003, стр. 45; Хайрер, Нёрсетт и Ваннер 1993, стр. 36
  4. ^ Бутчер 2003, стр. 3; Хайрер, Нёрсетт и Ваннер 1993, стр. 2
  5. См. также Аткинсон 1989, стр. 344.
  6. ^ Хайрер, Норсетт и Ваннер 1993, стр. 40
  7. ^ Аткинсон 1989, стр. 342; Хайрер, Нёрсетт и Ваннер 1993, стр. 36
  8. ^ Аткинсон 1989, стр. 342
  9. ^ Аткинсон 1989, стр. 343
  10. ^ Мясник 2003, стр. 60
  11. ^ Аткинсон 1989, стр. 342
  12. ^ Стоер и Булирш 2002, с. 474
  13. ^ Аткинсон 1989, стр. 344
  14. ^ Мясник 2003, стр. 49
  15. ^ Аткинсон 1989, с. 346; Лакоба 2012, уравнение (1.16)
  16. ^ Исерлес 1996, стр. 7
  17. ^ Мясник 2003, стр. 63
  18. ^ Бутчер 2003, стр. 70; Исерлес 1996, стр. 57
  19. Мясник 2003, стр. 74–75.
  20. Мясник 2003, стр. 75–78.
  21. ^ Унни, МП; Чандра, МГ; Кумар, АА (март 2017 г.). «Сокращение памяти для численного решения дифференциальных уравнений с использованием компрессионного зондирования». 2017 IEEE 13-й Международный коллоквиум по обработке сигналов и ее приложениям (CSPA) . стр. 79–84. doi :10.1109/CSPA.2017.8064928. ISBN 978-1-5090-1184-1. S2CID  13082456.
  22. ^ Хан, Амина (9 января 2017 г.). «Познакомьтесь с математиком из «Скрытых фигур», который помог отправить американцев в космос». Los Angeles Times . Получено 12 февраля 2017 г.

Ссылки

  • Аткинсон, Кендалл А. (1989). Введение в численный анализ (2-е изд.). Нью-Йорк: John Wiley & Sons . ISBN 978-0-471-50023-0.
  • Ашер, Ури М.; Петцольд, Линда Р. (1998). Компьютерные методы решения обыкновенных дифференциальных уравнений и дифференциально-алгебраических уравнений. Филадельфия: Общество промышленной и прикладной математики . ISBN 978-0-89871-412-8.
  • Бутчер, Джон К. (2003). Численные методы решения обыкновенных дифференциальных уравнений . Нью-Йорк: John Wiley & Sons . ISBN 978-0-471-96758-3.
  • Хайрер, Эрнст; Норсетт, Сиверт Пол; Ваннер, Герхард (1993). Решение обыкновенных дифференциальных уравнений I: Нежесткие задачи . Берлин, Нью-Йорк: Springer-Verlag . ISBN 978-3-540-56670-0.
  • Исерлес, Арье (1996). Первый курс численного анализа дифференциальных уравнений. Cambridge University Press . ISBN 978-0-521-55655-2.
  • Стер, Йозеф; Булирш, Роланд (2002). Введение в численный анализ (3-е изд.). Берлин, Нью-Йорк: Springer-Verlag . ISBN 978-0-387-95452-3.
  • Лакоба, Тарас И. (2012), Простой метод Эйлера и его модификации (PDF) (Конспект лекций для MATH334), Университет Вермонта , получено 29 февраля 2012 г.
  • Unni, M P. (2017). «Сокращение памяти для численного решения дифференциальных уравнений с использованием компрессионного зондирования». 2017 IEEE 13th International Colloquium on Signal Processing & its Applications (CSPA) . IEEE CSPA. стр. 79–84. doi :10.1109/CSPA.2017.8064928. ISBN 978-1-5090-1184-1. S2CID  13082456.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Euler_method&oldid=1235429673"