Метод Эйлера является методом первого порядка, что означает, что локальная ошибка (ошибка на шаг) пропорциональна квадрату размера шага, а глобальная ошибка (ошибка в данный момент времени) пропорциональна размеру шага. Метод Эйлера часто служит основой для построения более сложных методов, например, метода предиктора-корректора .
Геометрическое описание
Цель и почему это работает
Рассмотрим задачу вычисления формы неизвестной кривой, которая начинается в заданной точке и удовлетворяет заданному дифференциальному уравнению. Здесь дифференциальное уравнение можно рассматривать как формулу, с помощью которой наклон касательной к кривой может быть вычислен в любой точке кривой, как только положение этой точки было вычислено.
Идея заключается в том, что хотя кривая изначально неизвестна, ее начальная точка, которую мы обозначим как , известна (см. Рисунок 1). Затем из дифференциального уравнения можно вычислить наклон кривой в точке , а значит, и касательную.
Сделайте небольшой шаг вдоль этой касательной до точки Вдоль этого небольшого шага наклон не слишком сильно изменится, поэтому будет близок к кривой. Если мы притворимся, что все еще на кривой, можно использовать те же рассуждения, что и для точки выше. После нескольких шагов вычисляется многоугольная кривая ( ). В общем, эта кривая не слишком сильно расходится с исходной неизвестной кривой, и ошибку между двумя кривыми можно сделать небольшой, если размер шага достаточно мал, а интервал вычисления конечен. [2]
Процесс первого порядка
При заданных значениях для и , а производная от является заданной функцией от и обозначается как . Начните процесс, установив . Затем выберите значение для размера каждого шага вдоль оси t и установите (или эквивалентно ). Теперь метод Эйлера используется для нахождения из и : [3]
Значение является приближением решения в момент времени , т.е. . Метод Эйлера является явным , т.е. решение является явной функцией для .
Процесс более высокого порядка
В то время как метод Эйлера интегрирует ОДУ первого порядка, любое ОДУ порядка может быть представлено как система ОДУ первого порядка. При задании ОДУ порядка, определенного как
а также , , и , реализуем следующую формулу до тех пор, пока не достигнем приближения решения ОДУ в желаемое время:
Эти системы первого порядка можно обрабатывать методом Эйлера или, по сути, любой другой схемой для систем первого порядка. [4]
Пример первого порядка
Учитывая задачу начального значения
мы хотели бы использовать метод Эйлера для аппроксимации . [5]
Используя размер шага, равный 1 (ч = 1)
Метод Эйлера - это
поэтому сначала мы должны вычислить . В этом простом дифференциальном уравнении функция определяется как . Мы имеем
Выполнив вышеуказанный шаг, мы нашли наклон линии, которая касается кривой решения в точке . Напомним, что наклон определяется как изменение в , деленное на изменение в , или .
Следующий шаг — умножить указанное выше значение на размер шага , который мы здесь принимаем равным единице:
Поскольку размер шага — это изменение , то когда мы умножаем размер шага и наклон касательной, мы получаем изменение значения. Затем это значение добавляется к исходному значению, чтобы получить следующее значение, которое будет использоваться для вычислений.
Для нахождения , и следует повторить указанные выше шаги .
Ввиду повторяющегося характера этого алгоритма может быть полезно организовать вычисления в виде диаграммы, как показано ниже, чтобы избежать ошибок.
Вывод этого вычисления таков : . Точное решение дифференциального уравнения равно , поэтому . Хотя приближение метода Эйлера в этом конкретном случае не было очень точным, особенно из-за большого размера шага значения , его поведение качественно правильно, как показано на рисунке.
Использование других размеров шага
Как было предложено во введении, метод Эйлера точнее, если размер шага меньше. В таблице ниже показан результат с разными размерами шага. Верхняя строка соответствует примеру в предыдущем разделе, а вторая строка проиллюстрирована на рисунке.
Ошибка, записанная в последнем столбце таблицы, представляет собой разницу между точным решением при и приближением Эйлера. В нижней части таблицы размер шага составляет половину размера шага в предыдущей строке, и ошибка также составляет примерно половину ошибки в предыдущей строке. Это говорит о том, что ошибка примерно пропорциональна размеру шага, по крайней мере для довольно малых значений размера шага. Это справедливо в общем случае, также и для других уравнений; см. раздел Глобальная ошибка усечения для получения более подробной информации.
Другие методы, такие как метод средней точки , также проиллюстрированный на рисунках, ведут себя более благоприятно: глобальная ошибка метода средней точки примерно пропорциональна квадрату размера шага. По этой причине метод Эйлера называют методом первого порядка, тогда как метод средней точки — методом второго порядка.
Мы можем экстраполировать из приведенной выше таблицы, что размер шага, необходимый для получения ответа, который является правильным до трех знаков после запятой, составляет приблизительно 0,00001, что означает, что нам нужно 400 000 шагов. Такое большое количество шагов влечет за собой высокие вычислительные затраты. По этой причине используются методы более высокого порядка, такие как методы Рунге-Кутты или линейные многошаговые методы , особенно если требуется высокая точность. [6]
Пример более высокого порядка
Для этого примера третьего порядка предположим, что дана следующая информация:
Отсюда мы можем выделить y''' и получить уравнение:
Используя это, мы можем получить решение для : А используя решение для , мы можем получить решение для : Мы можем продолжать этот процесс, используя ту же формулу столько, сколько необходимо, чтобы найти желаемое .
Вывод
Метод Эйлера можно вывести несколькими способами.
(1) Во-первых, выше приведено геометрическое описание.
(2) Другая возможность — рассмотреть разложение Тейлора функции вокруг :
Дифференциальное уравнение утверждает, что . Если это подставить в разложение Тейлора и проигнорировать квадратичные и более высокие члены, то возникает метод Эйлера. [7]
Разложение Тейлора используется ниже для анализа ошибки, допускаемой методом Эйлера, и его можно расширить для получения методов Рунге–Кутты .
(3) Тесно связанный вывод заключается в замене производной на прямую формулу конечной разности :
в дифференциальном уравнении . Опять же, это дает метод Эйлера. [8]
Локальная ошибка усечения метода Эйлера — это ошибка, сделанная за один шаг. Это разница между численным решением после одного шага, , и точным решением в момент времени . Численное решение задается как
Для точного решения мы используем разложение Тейлора, упомянутое в разделе «Вывод» выше:
Локальная ошибка усечения (LTE), введенная методом Эйлера, определяется разностью между этими уравнениями:
Этот результат действителен, если имеет ограниченную третью производную. [10]
Это показывает, что при малых локальная ошибка усечения приблизительно пропорциональна . Это делает метод Эйлера менее точным, чем методы более высокого порядка, такие как методы Рунге-Кутты и линейные многошаговые методы , для которых локальная ошибка усечения пропорциональна более высокой степени размера шага.
Немного иную формулировку для локальной ошибки усечения можно получить, используя форму Лагранжа для остаточного члена в теореме Тейлора . Если имеет непрерывную вторую производную, то существует такое , что
[11]
В приведенных выше выражениях для погрешности вторая производная неизвестного точного решения может быть заменена выражением, содержащим правую часть дифференциального уравнения. Действительно, из уравнения следует , что [12]
Глобальная ошибка усечения
Глобальная ошибка усечения — это ошибка в фиксированное время , после того, как столько шагов метод должен сделать, чтобы достичь этого времени от начального времени. Глобальная ошибка усечения — это кумулятивный эффект локальных ошибок усечения, совершенных на каждом шаге. [13] Количество шагов легко определяется как , что пропорционально , а ошибка, совершенная на каждом шаге, пропорциональна (см. предыдущий раздел). Таким образом, следует ожидать, что глобальная ошибка усечения будет пропорциональна . [14]
Это интуитивное рассуждение можно сделать точным. Если решение имеет ограниченную вторую производную и является непрерывным по Липшицу по второму аргументу, то глобальная ошибка усечения (обозначаемая как ) ограничена
где — верхняя граница второй производной на заданном интервале, а — константа Липшица . [15] Или, проще говоря, когда , значение (такое, что рассматривается как константа). Напротив, где функция — точное решение, которое содержит только переменную.
Точная форма этой границы не имеет большого практического значения, поскольку в большинстве случаев граница значительно переоценивает фактическую ошибку, допущенную методом Эйлера. [16] Важно то, что она показывает, что глобальная ошибка усечения (приблизительно) пропорциональна . По этой причине метод Эйлера называют методом первого порядка. [17]
Пример
Если у нас есть дифференциальное уравнение и точное решение , и мы хотим найти и для когда . Таким образом, мы можем найти границу ошибки при t=2,5 и h=0,5:
Обратите внимание, что t 0 равно 2, поскольку это нижняя граница для t в .
Численная стабильность
Метод Эйлера также может быть численно неустойчивым , особенно для жестких уравнений , что означает, что численное решение становится очень большим для уравнений, где точное решение не становится. Это можно проиллюстрировать с помощью линейного уравнения
Точное решение — , которое спадает до нуля как . Однако если применить метод Эйлера к этому уравнению с шагом , то численное решение будет качественно неверным: оно колеблется и растет (см. рисунок). Вот что значит быть нестабильным. Если использовать меньший шаг, например , то численное решение действительно спадает до нуля.
Если метод Эйлера применяется к линейному уравнению , то численное решение неустойчиво, если произведение находится вне области
На рисунке справа показано. Эта область называется (линейной) областью устойчивости . [18] В примере, , поэтому если то что находится за пределами области устойчивости, и, таким образом, численное решение неустойчиво.
Это ограничение — вместе с его медленной сходимостью ошибки с — означает, что метод Эйлера нечасто используется, за исключением простого примера численного интегрирования [ требуется ссылка ] . Часто модели физических систем содержат члены, представляющие быстро распадающиеся элементы (т. е. с большими отрицательными экспоненциальными аргументами). Даже когда они не представляют интереса для общего решения, нестабильность, которую они могут вызвать, означает, что при использовании метода Эйлера потребуется исключительно малый временной шаг.
Ошибки округления
На шаге метода Эйлера ошибка округления примерно равна величине , где — машинный эпсилон . Предполагая, что ошибки округления являются независимыми случайными величинами, ожидаемая общая ошибка округления пропорциональна . [19] Таким образом, для чрезвычайно малых значений размера шага ошибка усечения будет мала, но эффект ошибки округления может быть большим. Большую часть эффекта ошибки округления можно легко избежать, если в формуле для метода Эйлера использовать компенсированное суммирование . [20]
Модификации и расширения
Простая модификация метода Эйлера, устраняющая отмеченные выше проблемы устойчивости, — это обратный метод Эйлера :
Это отличается от (стандартного или прямого) метода Эйлера тем, что функция вычисляется в конечной точке шага, а не в начальной точке. Обратный метод Эйлера является неявным методом , что означает, что формула для обратного метода Эйлера имеет с обеих сторон, поэтому при применении обратного метода Эйлера нам приходится решать уравнение. Это делает реализацию более затратной.
Более сложные методы могут достичь более высокого порядка (и большей точности). Одна из возможностей — использовать больше оценок функций. Это иллюстрируется методом средней точки , который уже упоминался в этой статье:
Другая возможность — использовать больше прошлых значений, как показано на двухшаговом методе Адамса–Башфорта:
Это приводит к семейству линейных многошаговых методов . Существуют и другие модификации, которые используют методы компрессионного зондирования для минимизации использования памяти [21]
^ Аткинсон 1989, с. 346; Лакоба 2012, уравнение (1.16)
^ Исерлес 1996, стр. 7
^ Мясник 2003, стр. 63
^ Бутчер 2003, стр. 70; Исерлес 1996, стр. 57
↑ Мясник 2003, стр. 74–75.
↑ Мясник 2003, стр. 75–78.
^ Унни, МП; Чандра, МГ; Кумар, АА (март 2017 г.). «Сокращение памяти для численного решения дифференциальных уравнений с использованием компрессионного зондирования». 2017 IEEE 13-й Международный коллоквиум по обработке сигналов и ее приложениям (CSPA) . стр. 79–84. doi :10.1109/CSPA.2017.8064928. ISBN 978-1-5090-1184-1. S2CID 13082456.
^ Хан, Амина (9 января 2017 г.). «Познакомьтесь с математиком из «Скрытых фигур», который помог отправить американцев в космос». Los Angeles Times . Получено 12 февраля 2017 г.
Стер, Йозеф; Булирш, Роланд (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.
Внешние ссылки
В Wikibook Calculus есть страница по теме: Метод Эйлера
Медиа, связанные с методом Эйлера на Wikimedia Commons
Реализации метода Эйлера на разных языках от Rosetta Code