Метод эйлера ошибка

Ошибка метода Эйлера

Представленный
метод аппроксимации решения задачи
Коши называется разностным. Решение
представляет собой совокупность
отдельных точек, называемых узловыми.

При
использовании разностных методов
существует два источника ошибок: ошибка
дискретизации, возникающая в результаты
замены дифференциального уравнения
разностной аппроксимацией (2.5), и ошибка
округления, накопившаяся при выполнении
арифметических операций. Будем считать,
что значения

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

(3.1)

называемую
глобальной
ошибкой дискретизации

(иногда эту величину называют глобальной
ошибкой усечения
).
Отметим, что

зависит от величины шага

,
поскольку предполагается, что приближения

вычисляют при заданном значении

.
Интуитивно ожидаем, что при уменьшении

ошибка дискретизации будет убывать и,
в частности, при стремлении

к нулю, так же будет стремиться к нулю.

Теорема
(ошибка дискретизации метода Эйлера).

Если функция

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

.

Порядок
метода численного интегрирования
показывает, от какой степени шага зависит
величина ошибки.

Локальная
(или шаговая)
ошибка метода – это ошибка, совершаемая
на одном шаге. Очевидно, что от шага к
шагу, т. е. при многократном применении
формулы метода, возможно наложение
ошибок. За

шагов, т. е. в точке

,
образуется глобальная
ошибка
.

Порядок
глобальной ошибки (относительно шага

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

Глобальная
ошибка метода Эйлера есть

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

приближенное решение будет все более
точным и при стремлении

к нулю будет стремиться к точному решению
с линейной скоростью

;
т.е. ожидаем, что при уменьшении шага

вдвое ошибка уменьшится примерно в два
раза. Такое поведение ошибки демонстрируется
на следующем примере.

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

Метод Хьюна

Следующий
подход представляет новую идею построения
алгоритмов решения задачи Коши. Пусть

на
отрезке

с начальным условием

Для
получения решения в точке

,
можем воспользоваться теоремой о
вычислнии определенного интеграла:

где
первообразная от

является
искомой функцией

.
Если разрешить уравнение последнее
уравнение относительно

,
получим

Теперь
можно применить численные методы
нахождения интеграла. Воспользуемся
методом трапеций с шагом

,
получим:

Правая
часть формулы включает в себя еще не
найденное значение

.
Для его нахождения воспользуемся методом
Эйлера. Получим конечную формулу,
именуемую методом
Хьюна
(синонимы:
метод
Хойна
,
метод
Эйлера-Коши
):

Продолжая
процесс, получим последовательность
точек, аппроксимирующих кривую решения

.
Метод Хьюна относится к классу методов
прогноза-коррекции. На каждом шаге метод
Эйлера используется для предсказания,
а метод трапеций для уточнения конечного
значения. Общие формулы для шага метода
Хьюна:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

(Figure 1) Illustration of the Euler method. The unknown curve is in blue, and its polygonal approximation is in red.

In mathematics and computational science, the Euler method (also called the forward Euler method) is a first-order numerical procedure for solving ordinary differential equations (ODEs) with a given initial value. It is the most basic explicit method for numerical integration of ordinary differential equations and is the simplest Runge–Kutta method. The Euler method is named after Leonhard Euler, who first proposed it in his book Institutionum calculi integralis (published 1768–1870).[1]

The Euler method is a first-order method, which means that the local error (error per step) is proportional to the square of the step size, and the global error (error at a given time) is proportional to the step size.
The Euler method often serves as the basis to construct more complex methods, e.g., predictor–corrector method.

Geometrical description[edit]

Purpose and why it works[edit]

Consider the problem of calculating the shape of an unknown curve which starts at a given point and satisfies a given differential equation. Here, a differential equation can be thought of as a formula by which the slope of the tangent line to the curve can be computed at any point on the curve, once the position of that point has been calculated.

The idea is that while the curve is initially unknown, its starting point, which we denote by A_{0}, is known (see Figure 1). Then, from the differential equation, the slope to the curve at A_{0} can be computed, and so, the tangent line.

Take a small step along that tangent line up to a point A_{1}. Along this small step, the slope does not change too much, so A_{1} will be close to the curve. If we pretend that A_{1} is still on the curve, the same reasoning as for the point A_{0} above can be used. After several steps, a polygonal curve (A_{0}A_{1}A_{2}A_{3}dots ) is computed. In general, this curve does not diverge too far from the original unknown curve, and the error between the two curves can be made small if the step size is small enough and the interval of computation is finite.[2]

First-order process[edit]

When given the values for t_0 and {displaystyle y(t_{0})}, and the derivative of y is a given function of t and y denoted as {displaystyle y'(t)=f{bigl (}t,y(t){bigr )}}. Begin the process by setting {displaystyle y_{0}=y(t_{0})}. Next, choose a value h for the size of every step and set t_{n}=t_{0}+nh (or equivalently t_{n+1}=t_{n}+h). Now, one step of the Euler method from t_{n} to t_{n+1} is:[3]

y_{n+1}=y_{n}+hf(t_{n},y_{n}).

The value of y_{n} is an approximation of the solution to the ODE at time t_{n}, i.e., y_{n}approx y(t_{n}). The Euler method is explicit, i.e. the solution y_{n+1} is an explicit function of y_{i} for ileq n.

Higher-order process[edit]

While the Euler method integrates a first-order ODE, any ODE of order N can be represented as a system of first-order ODEs. When given the ODE of order N defined as

{displaystyle y^{(N)}(t)=fleft(t,y(t),y'(t),ldots ,y^{(N-1)}(t)right),}

we implement the following formula until we reach the approximation of the solution to the ODE at the desired time:

{displaystyle {vec {y}}_{i+1}={begin{pmatrix}y_{i+1}\vdots \y_{i+1}^{(N-1)}\y_{i+1}^{(N)}end{pmatrix}}={begin{pmatrix}y_{i}+hcdot y'_{i}\vdots \y_{i}^{(N-1)}+hcdot y_{i}^{(N)}\y_{i}^{(N)}+hcdot fleft(t_{i},y_{i},y'_{i},ldots ,y_{i}^{(N)}right)end{pmatrix}}}

These first-order systems can be handled by Euler’s method or, in fact, by any other scheme for first-order systems.[4]

Example[edit]

Given the initial value problem

y'=y,quad y(0)=1,

we would like to use the Euler method to approximate y(4).[5]

Using step size equal to 1 (h = 1)[edit]

(Figure 2) Illustration of numerical integration for the equation y'=y,y(0)=1. Blue is the Euler method; green, the midpoint method; red, the exact solution, y=e^{t}. The step size is h=1.0.

The Euler method is

{displaystyle y_{n+1}=y_{n}+hf(t_{n},y_{n}).}

so first we must compute f(t_{0},y_{0}). In this simple differential equation, the function f is defined by f(t,y)=y. We have

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

By doing the above step, we have found the slope of the line that is tangent to the solution curve at the point (0,1). Recall that the slope is defined as the change in y divided by the change in t, or {textstyle {frac {Delta y}{Delta t}}}.

The next step is to multiply the above value by the step size h, which we take equal to one here:

{displaystyle hcdot f(y_{0})=1cdot 1=1.}

Since the step size is the change in t, when we multiply the step size and the slope of the tangent, we get a change in y value. This value is then added to the initial y value to obtain the next value to be used for computations.

{displaystyle y_{0}+hf(y_{0})=y_{1}=1+1cdot 1=2.}

The above steps should be repeated to find y_{2}, y_{3} and y_{4}.

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

Due to the repetitive nature of this algorithm, it can be helpful to organize computations in a chart form, as seen below, to avoid making errors.

n y_{n} t_{n} f(t_{n},y_{n}) h Delta y y_{n+1}
0 1 0 1 1 1 2
1 2 1 2 1 2 4
2 4 2 4 1 4 8
3 8 3 8 1 8 16

The conclusion of this computation is that y_{4}=16. The exact solution of the differential equation is y(t)=e^{t}, so y(4)=e^{4}approx 54.598. Although the approximation of the Euler method was not very precise in this specific case, particularly due to a large value step size h, its behaviour is qualitatively correct as the figure shows.

Using other step sizes[edit]

(Figure 3) The same illustration for h=0.25.

As suggested in the introduction, the Euler method is more accurate if the step size h is smaller. The table below shows the result with different step sizes. The top row corresponds to the example in the previous section, and the second row is illustrated in the figure.

step size result of Euler’s method error
1 16.00 38.60
0.25 35.53 19.07
0.1 45.26 09.34
0.05 49.56 05.04
0.025 51.98 02.62
0.0125 53.26 01.34

The error recorded in the last column of the table is the difference between the exact solution at t=4 and the Euler approximation. In the bottom of the table, the step size is half the step size in the previous row, and the error is also approximately half the error in the previous row. This suggests that the error is roughly proportional to the step size, at least for fairly small values of the step size. This is true in general, also for other equations; see the section Global truncation error for more details.

Other methods, such as the midpoint method also illustrated in the figures, behave more favourably: the global error of the midpoint method is roughly proportional to the square of the step size. For this reason, the Euler method is said to be a first-order method, while the midpoint method is second order.

We can extrapolate from the above table that the step size needed to get an answer that is correct to three decimal places is approximately 0.00001, meaning that we need 400,000 steps. This large number of steps entails a high computational cost. For this reason, higher-order methods are employed such as Runge–Kutta methods or linear multistep methods, especially if a high accuracy is desired.[6]

Derivation[edit]

The Euler method can be derived in a number of ways. Firstly, there is the geometrical description above.

Another possibility is to consider the Taylor expansion of the function y around t_{0}:

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

The differential equation states that y'=f(t,y). If this is substituted in the Taylor expansion and the quadratic and higher-order terms are ignored, the Euler method arises.[7] The Taylor expansion is used below to analyze the error committed by the Euler method, and it can be extended to produce Runge–Kutta methods.

A closely related derivation is to substitute the forward finite difference formula for the derivative,

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

in the differential equation y'=f(t,y). Again, this yields the Euler method.[8] A similar computation leads to the midpoint method and the backward Euler method.

Finally, one can integrate the differential equation from t_{0} to t_{0}+h and apply the fundamental theorem of calculus to get:

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

Now approximate the integral by the left-hand rectangle method (with only one rectangle):

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

Combining both equations, one finds again the Euler method.[9] This line of thought can be continued to arrive at various linear multistep methods.

Local truncation error[edit]

The local truncation error of the Euler method is the error made in a single step. It is the difference between the numerical solution after one step, y_{1}, and the exact solution at time t_{1}=t_{0}+h. The numerical solution is given by

{displaystyle y_{1}=y_{0}+hf(t_{0},y_{0}).}

For the exact solution, we use the Taylor expansion mentioned in the section Derivation above:

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

The local truncation error (LTE) introduced by the Euler method is given by the difference between these equations:

{displaystyle mathrm {LTE} =y(t_{0}+h)-y_{1}={tfrac {1}{2}}h^{2}y''(t_{0})+Oleft(h^{3}right).}

This result is valid if y has a bounded third derivative.[10]

This shows that for small h, the local truncation error is approximately proportional to h^{2}. This makes the Euler method less accurate (for small h) than other higher-order techniques such as Runge-Kutta methods and linear multistep methods, for which the local truncation error is proportional to a higher power of the step size.

A slightly different formulation for the local truncation error can be obtained by using the Lagrange form for the remainder term in Taylor’s theorem. If y has a continuous second derivative, then there exists a xi in [t_{0},t_{0}+h] such that

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

In the above expressions for the error, the second derivative of the unknown exact solution y can be replaced by an expression involving the right-hand side of the differential equation. Indeed, it follows from the equation y'=f(t,y) that[12]

{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 )}.}

Global truncation error[edit]

The global truncation error is the error at a fixed time t_{i}, after however many steps the method needs to take to reach that time from the initial time. The global truncation error is the cumulative effect of the local truncation errors committed in each step.[13] The number of steps is easily determined to be {textstyle {frac {t_{i}-t_{0}}{h}}}, which is proportional to {textstyle {frac {1}{h}}}, and the error committed in each step is proportional to h^{2} (see the previous section). Thus, it is to be expected that the global truncation error will be proportional to h.[14]

This intuitive reasoning can be made precise. If the solution y has a bounded second derivative and f is Lipschitz continuous in its second argument, then the global truncation error (denoted as {displaystyle |y(t_{i})-y_{i}|}) is bounded by

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

where M is an upper bound on the second derivative of y on the given interval and L is the Lipschitz constant of f.[15] Or more simply, when {displaystyle y'(t)=f(t,y)}, the value {textstyle L={text{max}}{bigl (}{frac {d}{dy}}{bigl [}f(t,y){bigr ]}{bigr )}} (such that t is treated as a constant). In contrast, {textstyle M={text{max}}{bigl (}{frac {d^{2}}{dt^{2}}}{bigl [}y(t){bigr ]}{bigr )}} where function {displaystyle y(t)} is the exact solution which only contains the t variable.

The precise form of this bound is of little practical importance, as in most cases the bound vastly overestimates the actual error committed by the Euler method.[16] What is important is that it shows that the global truncation error is (approximately) proportional to h. For this reason, the Euler method is said to be first order.[17]

Numerical stability[edit]

(Figure 4) Solution of y'=-2.3y computed with the Euler method with step size h=1 (blue squares) and h=0.7 (red circles). The black curve shows the exact solution.

The Euler method can also be numerically unstable, especially for stiff equations, meaning that the numerical solution grows very large for equations where the exact solution does not. This can be illustrated using the linear equation

y'=-2.3y,qquad y(0)=1.

The exact solution is y(t)=e^{-2.3t}, which decays to zero as tto infty . However, if the Euler method is applied to this equation with step size h=1, then the numerical solution is qualitatively wrong: It oscillates and grows (see the figure). This is what it means to be unstable. If a smaller step size is used, for instance {displaystyle h=0.7}, then the numerical solution does decay to zero.

(Figure 5) The pink disk shows the stability region for the Euler method.

If the Euler method is applied to the linear equation y'=ky, then the numerical solution is unstable if the product hk is outside the region

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

illustrated on the right. This region is called the (linear) stability region.[18] In the example, {displaystyle k=-2.3}, so if h=1 then hk=-2.3 which is outside the stability region, and thus the numerical solution is unstable.

This limitation — along with its slow convergence of error with h — means that the Euler method is not often used, except as a simple example of numerical integration[citation needed].

Rounding errors[edit]

In step n of the Euler method, the rounding error is roughly of the magnitude {displaystyle varepsilon y_{n}} where varepsilon is the machine epsilon. Assuming that the rounding errors are independent random variables, the expected total rounding error is proportional to {textstyle {frac {varepsilon }{sqrt {h}}}}.[19] Thus, for extremely small values of the step size the truncation error will be small but the effect of rounding error may be big. Most of the effect of rounding error can be easily avoided if compensated summation is used in the formula for the Euler method.[20]

Modifications and extensions[edit]

A simple modification of the Euler method which eliminates the stability problems noted above is the backward Euler method:

y_{n+1}=y_{n}+hf(t_{n+1},y_{n+1}).

This differs from the (standard, or forward) Euler method in that the function f is evaluated at the end point of the step, instead of the starting point. The backward Euler method is an implicit method, meaning that the formula for the backward Euler method has y_{n+1} on both sides, so when applying the backward Euler method we have to solve an equation. This makes the implementation more costly.

Other modifications of the Euler method that help with stability yield the exponential Euler method or the semi-implicit Euler method.

More complicated methods can achieve a higher order (and more accuracy). One possibility is to use more function evaluations. This is illustrated by the midpoint method which is already mentioned in this article:

{displaystyle y_{n+1}=y_{n}+hfleft(t_{n}+{tfrac {1}{2}}h,y_{n}+{tfrac {1}{2}}hf(t_{n},y_{n})right)}.

This leads to the family of Runge–Kutta methods.

The other possibility is to use more past values, as illustrated by the two-step Adams–Bashforth method:

y_{n+1}=y_{n}+{tfrac {3}{2}}hf(t_{n},y_{n})-{tfrac {1}{2}}hf(t_{n-1},y_{n-1}).

This leads to the family of linear multistep methods. There are other modifications which uses techniques from compressive sensing to minimize memory usage[21]

In popular culture[edit]

In the film Hidden Figures, Katherine Goble resorts to the Euler method in calculating the re-entry of astronaut John Glenn from Earth orbit.[22]

See also[edit]

  • Crank–Nicolson method
  • Gradient descent similarly uses finite steps, here to find minima of functions
  • List of Runge-Kutta methods
  • Linear multistep method
  • Numerical integration (for calculating definite integrals)
  • Numerical methods for ordinary differential equations

Notes[edit]

  1. ^ Butcher 2003, p. 45; Hairer, Nørsett & Wanner 1993, p. 35
  2. ^ Atkinson 1989, p. 342; Butcher 2003, p. 60
  3. ^ Butcher 2003, p. 45; Hairer, Nørsett & Wanner 1993, p. 36
  4. ^ Butcher 2003, p. 3; Hairer, Nørsett & Wanner 1993, p. 2
  5. ^ See also Atkinson 1989, p. 344
  6. ^ Hairer, Nørsett & Wanner 1993, p. 40
  7. ^ Atkinson 1989, p. 342; Hairer, Nørsett & Wanner 1993, p. 36
  8. ^ Atkinson 1989, p. 342
  9. ^ Atkinson 1989, p. 343
  10. ^ Butcher 2003, p. 60
  11. ^ Atkinson 1989, p. 342
  12. ^ Stoer & Bulirsch 2002, p. 474
  13. ^ Atkinson 1989, p. 344
  14. ^ Butcher 2003, p. 49
  15. ^ Atkinson 1989, p. 346; Lakoba 2012, equation (1.16)
  16. ^ Iserles 1996, p. 7
  17. ^ Butcher 2003, p. 63
  18. ^ Butcher 2003, p. 70; Iserles 1996, p. 57
  19. ^ Butcher 2003, pp. 74–75
  20. ^ Butcher 2003, pp. 75–78
  21. ^ Unni, M. P.; Chandra, M. G.; Kumar, A. A. (March 2017). «Memory reduction for numerical solution of differential equations using compressive sensing». 2017 IEEE 13th International Colloquium on Signal Processing Its Applications (CSPA): 79–84. doi:10.1109/CSPA.2017.8064928. ISBN 978-1-5090-1184-1. S2CID 13082456.
  22. ^ Khan, Amina (9 January 2017). «Meet the ‘Hidden Figures’ mathematician who helped send Americans into space». Los Angeles Times. Retrieved 12 February 2017.

References[edit]

  • Atkinson, Kendall A. (1989). An Introduction to Numerical Analysis (2nd ed.). New York: John Wiley & Sons. ISBN 978-0-471-50023-0.
  • Ascher, Uri M.; Petzold, Linda R. (1998). Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations. Philadelphia: Society for Industrial and Applied Mathematics. ISBN 978-0-89871-412-8.
  • Butcher, John C. (2003). Numerical Methods for Ordinary Differential Equations. New York: John Wiley & Sons. ISBN 978-0-471-96758-3.
  • Hairer, Ernst; Nørsett, Syvert Paul; Wanner, Gerhard (1993). Solving ordinary differential equations I: Nonstiff problems. Berlin, New York: Springer-Verlag. ISBN 978-3-540-56670-0.
  • Iserles, Arieh (1996). A First Course in the Numerical Analysis of Differential Equations. Cambridge University Press. ISBN 978-0-521-55655-2.
  • Stoer, Josef; Bulirsch, Roland (2002). Introduction to Numerical Analysis (3rd ed.). Berlin, New York: Springer-Verlag. ISBN 978-0-387-95452-3.
  • Lakoba, Taras I. (2012), Simple Euler method and its modifications (PDF) (Lecture notes for MATH334), University of Vermont, retrieved 29 February 2012
  • Unni, M P. (2017). «Memory reduction for numerical solution of differential equations using compressive sensing». 2017 IEEE 13th International Colloquium on Signal Processing & its Applications (CSPA). IEEE CSPA. pp. 79–84. doi:10.1109/CSPA.2017.8064928. ISBN 978-1-5090-1184-1. S2CID 13082456.

External links[edit]

  • Media related to Euler method at Wikimedia Commons
  • Euler method implementations in different languages by Rosetta Code
  • «Euler method», Encyclopedia of Mathematics, EMS Press, 2001 [1994]

Иллюстрация метода Эйлера. Неизвестная кривая отображается синим цветом, а ее полигональная аппроксимация — красным.

В математика и вычислительная наука, то Метод Эйлера (также называемый прямой метод Эйлера) является первым порядком числовой процедура решения обыкновенные дифференциальные уравнения (ODE) с заданным Первоначальный значение. Это самый простой явный метод за численное интегрирование обыкновенных дифференциальных уравнений и это самый простой Метод Рунге – Кутты. Метод Эйлера назван в честь Леонард Эйлер, который лечил это в своей книге Institutionum Calculi Integratedis (опубликовано 1768–1870 гг.).[1]

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

Неформальное геометрическое описание

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

Идея состоит в том, что, хотя кривая изначально неизвестна, ее начальная точка, которую мы обозначим A_ {0}, известен (см. картинку вверху справа). Тогда из дифференциального уравнения наклон к кривой при А_ {0} можно вычислить, а значит, и касательную.

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

{ displaystyle y '(t) = f (t, y (t)),  qquad y (t_ {0}) = y_ {0}.}

Выберите значение час для размера каждого шага и установить t_ {n} = t_ {0} + nh. Теперь один шаг метода Эйлера от t_ {n} к т_ {п + 1} = т_ {п} + ч является:[3]

y_ {n + 1} = y_ {n} + hf (t_ {n}, y_ {n}).

Значение г_ {н} является приближением решения ОДУ в момент времени t_ {n}: y_ {n}  приблизительно y (t_ {n}). Метод Эйлера явный, т.е. решение г_ {п + 1} является явной функцией г_ {i} за я  leq n.

Хотя метод Эйлера интегрирует ОДУ первого порядка, любое ОДУ порядка N можно представить в виде системы ОДУ первого порядка: для обработки уравнения

y ^ {(N)} (t) = f (t, y (t), y '(t),  ldots, y ^ {(N-1)} (t)),

введем вспомогательные переменные z_ {1} (t) = y (t), z_ {2} (t) = y '(t),  ldots, z_ {N} (t) = y ^ {(N-1)} (t) и получим эквивалентное уравнение:

 mathbf {z} '(t) = { begin {pmatrix} z_ {1}' (t)  vdots  z_ {N-1} '(t)  z_ {N}' (t)  end {pmatrix}} = { begin {pmatrix} y '(t)  vdots  y ^ {(N-1)} (t)  y ^ {(N)} (t)  end {pmatrix}} = { begin {pmatrix} z_ {2} (t)  vdots  z_ {N} (t)  f (t, z_ {1} (t),  ldots, z_ { N} (t))  end {pmatrix}}

Это система первого порядка по переменной  mathbf {z} (т) и может быть обработана методом Эйлера или, фактически, любой другой схемой для систем первого порядка.[4]

Пример

Учитывая проблему начального значения

у '= у,  quad у (0) = 1,

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

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

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

Метод Эйлера

y_ {n + 1} = y_ {n} + hf (t_ {n}, y_ {n}).  qquad  qquad

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

f (t_ {0}, y_ {0}) = f (0,1) = 1.  qquad  qquad

Выполнив вышеуказанный шаг, мы нашли наклон линии, касательной к кривой решения в точке (0,1). Напомним, что наклон определяется как изменение у делится на изменение т, или же  Delta y /  Delta t.

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

h  cdot f (y_ {0}) = 1  cdot 1 = 1.  qquad  qquad

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

y_ {0} + hf (y_ {0}) = y_ {1} = 1 + 1  cdot 1 = 2.  qquad  qquad

Вышеуказанные шаги следует повторить, чтобы найти г_ {2}, г_ {3} и г_ {4}.

{ begin {align} 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 {выровнено}}

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

п г_ {н} t_ {n} f (t_ {n}, y_ {n}) час  Delta y г_ {п + 1}
0 1 0 1 1 1 2
1 2 1 2 1 2 4
2 4 2 4 1 4 8
3 8 3 8 1 8 16

Вывод этого вычисления заключается в том, что y_ {4} = 16. Точное решение дифференциального уравнения есть у (т) = е ^ {т}, так у (4) = е ^ {4}  приблизительно 54,598. Хотя приближение метода Эйлера в данном конкретном случае было не очень точным, в частности, из-за большого размера шага значения час, его поведение качественно правильное, как видно из рисунка.

Пример кода MATLAB

Чисто; clc; Закрыть('все');y0 = 1;t0 = 0;час = 1; % попытка: h = 0,01tn = 4; % равно: t0 + h * n, где n - количество шагов[т, у] = Эйлер(t0, y0, час, tn);участок(т, у, 'b');% точное решение (y = e ^ t):тт = (t0:0.001:tn);гг = exp(тт);держать('на');участок(тт, гг, 'р');держать('выключенный');легенда('Эйлер', 'Точный');функция [t, y] = Эйлер (t0, y0, h, tn)    fprintf('% 10s% 10s% 10s% 15s  n', 'я', 'yi', 'ти', 'ф (йи, ти)');    fprintf('% 10d% + 10.2f% + 10.2f% + 15.2f  n', 0, y0, t0, ж(y0, t0));    т = (t0:час:tn)';    у = нули(размер(т));    у(1) = y0;    за i = 1: 1: длина (t) - 1        у(я + 1) = у(я) + час * ж(у(я), т(я));        fprintf('% 10d% + 10.2f% + 10.2f% + 15.2f  n', я, у(я + 1), т(я + 1), ж(у(я + 1), т(я + 1)));    конецконец% в этом случае f (y, t) = f (y)функцияdydt =ж(у, т)dydt = у;конец% ВЫХОД:% i yi ti f (yi, ti)%         0     +1.00     +0.00          +1.00%         1     +2.00     +1.00          +2.00%         2     +4.00     +2.00          +4.00%         3     +8.00     +3.00          +8.00%         4    +16.00     +4.00         +16.00% ПРИМЕЧАНИЕ: Код также выводит сравнительный график

Пример кода R

Графический вывод кода языка программирования R для поставленного примера

Ниже приведен код примера в Язык программирования R.

# ============# РЕШЕНИЕ# y '= y, где y' = f (t, y)# тогда:ж <- функция(ти,у) у# НАЧАЛЬНЫЕ ЗНАЧЕНИЯ:t0 <- 0y0 <- 1час  <- 1tn <- 4# Метод Эйлера: определение функцииЭйлер <- функция(t0, y0, час, tn, dy.dt) {  # dy.dt: производная функция    # t последовательность:  тт <- seq(t0, tn, к=час)  # таблица с количеством строк, равным tt элементов:  таблица <- data.frame(ти=тт)  таблица$йи <- y0 # Инициализирует yi с y0  таблица$Dy.dt [1] <- dy.dt(таблица$ти [1],y0) # производная  за (я в 2:Nrow(таблица)) {    таблица$yi [i] <- таблица$йи [я-1] + час*таблица$Dy.dt [i-1]    # Для следующей итерации:    таблица$Dy.dt [i] <- dy.dt(таблица$ти [я],таблица$yi [i])  }  возвращаться(таблица)}# Метод Эйлера: применение функциир <- Эйлер(t0, y0, час, tn, ж)rownames(р) <- 0:(Nrow(р)-1) # совпадать с индексом n# Точное решение для этого случая: y = exp (t)# добавлен как дополнительный столбец к rр$у <- exp(р$ти)# ТАБЛИЦА с результатами:Распечатать(р)участок(р$ти, р$у, тип="л", Col="красный", lwd=2)линии(р$ти, р$йи, Col="синий", lwd=2)сетка(Col="чернить")легенда("верх",  легенда = c("Точный", «Эйлер»), lwd=2,  Col = c("красный", "синий"))# ВЫХОД:## ti yi Dy.dt y# 0  0  1     1  1.000000# 1  1  2     2  2.718282# 2  2  4     4  7.389056# 3  3  8     8 20.085537# 4  4 16    16 54.598150# ПРИМЕЧАНИЕ: Код также выводит график сравнения

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

Та же иллюстрация для час = 0.25.

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

размер шага результат метода Эйлера ошибка
1 16.00 38.60
0.25 35.53 19.07
0.1 45.26 9.34
0.05 49.56 5.04
0.025 51.98 2.62
0.0125 53.26 1.34

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

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

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

Вывод

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

Другая возможность — рассмотреть Расширение Тейлора функции у вокруг т_ {0}:

y (t_ {0} + h) = y (t_ {0}) + hy '(t_ {0}) + { frac {1} {2}} h ^ {2} y' '(t_ {0} ) + O (h ^ {3}).

Дифференциальное уравнение утверждает, что у '= f (t, y). Если его подставить в разложение Тейлора и игнорировать квадратичные члены и члены более высокого порядка, возникает метод Эйлера.[7] Разложение Тейлора используется ниже для анализа ошибки, допущенной методом Эйлера, и его можно расширить для получения Методы Рунге – Кутты.

Близко родственный вывод — замена форвардного конечная разница формула для производной,

y '(t_ {0})  приблизительно { frac {y (t_ {0} + h) -y (t_ {0})} {h}}

в дифференциальном уравнении у '= f (t, y). Опять же, это дает метод Эйлера.[8] Аналогичное вычисление приводит к метод средней точки и обратный метод Эйлера.

Наконец, можно проинтегрировать дифференциальное уравнение из т_ {0} к т_ {0} + ч и применить основная теорема исчисления получить:

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

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

 int _ {t_ {0}} ^ {t_ {0} + h} f (t, y (t)) ,  mathrm {d} t  приблизительно hf (t_ {0}, y (t_ {0}) )).

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

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

В локальная ошибка усечения метода Эйлера — это ошибка, сделанная за один шаг. Это разница между численным решением после одного шага, г_ {1}, а точное решение в момент времени t_ {1} = t_ {0} + час. Численное решение дается формулой

y_ {1} = y_ {0} + hf (t_ {0}, y_ {0}).  quad

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

y (t_ {0} + h) = y (t_ {0}) + hy '(t_ {0}) + { frac {1} {2}} h ^ {2} y' '(t_ {0} ) + O (h ^ {3}).

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

 mathrm {LTE} = y (t_ {0} + h) -y_ {1} = { frac {1} {2}} h ^ {2} y '' (t_ {0}) + O (h ^ {3}).

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

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

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

 mathrm {LTE} = y (t_ {0} + h) -y_ {1} = { frac {1} {2}} h ^ {2} y '' ( xi).[11]

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

y '' (t_ {0}) = { partial f  over  partial t} (t_ {0}, y (t_ {0})) + { partial f  over  partial y} (t_ {0} , y (t_ {0})) , f (t_ {0}, y (t_ {0})).[12]

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

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

Это интуитивное рассуждение можно уточнить. Если решение у имеет ограниченную вторую производную и ж является Липшицева непрерывная во втором аргументе, то глобальная ошибка усечения (GTE) ограничена

| { text {GTE}} |  leq { frac {hM} {2L}} (e ^ {L (t-t_ {0})} - 1)  qquad  qquad

куда M является верхней границей второй производной от у на заданном интервале и L постоянная Липшица ж.[15]

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

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

Решение y '= - 2.3y вычисляется методом Эйлера с шагом h = 1 (синие квадраты) и в = 0,7 (красные кружки). Черная кривая показывает точное решение.

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

y '= - 2.3y,  qquad y (0) = 1.

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

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

Если применить метод Эйлера к линейному уравнению y '= ky, то численное решение неустойчиво, если произведение гонконгский находится за пределами региона

 {z  in  mathbf {C}  mid | z + 1 |  leq 1 },

показано справа. Эта область называется (линейной) регион стабильности.[18] В этом примере k равно −2,3, поэтому, если h = 1 тогда hk = -2,3 которое находится вне области устойчивости, и поэтому численное решение неустойчиво.

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

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

Обсуждение до сих пор игнорировало последствия ошибка округления. В ногу п метода Эйлера ошибка округления примерно равна величине εуп где ε — машина эпсилон. Предполагая, что все ошибки округления примерно одинакового размера, объединенная ошибка округления в N шаги примерно Nεу0 если все ошибки указывают в одном направлении. Поскольку количество шагов обратно пропорционально размеру шага час, полная ошибка округления пропорциональна ε / час. В действительности, однако, крайне маловероятно, что все ошибки округления указывают в одном направлении. Если вместо этого предполагается, что ошибки округления являются независимыми случайными величинами, то ожидаемая общая ошибка округления пропорциональна  varepsilon / { sqrt {h}}.[19]

Таким образом, для чрезвычайно малых значений размера шага ошибка усечения будет небольшой, но эффект ошибки округления может быть большим. Большей части эффекта ошибки округления можно легко избежать, если компенсированное суммирование используется в формуле метода Эйлера.[20]

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

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

y_ {n + 1} = y_ {n} + hf (t_ {n + 1}, y_ {n + 1}).

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

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

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

{ displaystyle y_ {n + 1} = y_ {n} + hf { Big (} t_ {n} + { tfrac {1} {2}} h, y_ {n} + { tfrac {1} { 2}} hf (t_ {n}, y_ {n}) { Big)}}.

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

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

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. ^ Stoer & Bulirsch, 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. ^ Unni, M. P .; Chandra, M. G .; Кумар, А. А. (март 2017 г.). «Сокращение памяти для численного решения дифференциальных уравнений с использованием сжатия». 13-й Международный коллоквиум IEEE по приложениям обработки сигналов (CSPA), 2017 г.: 79–84. Дои:10.1109 / CSPA.2017.8064928. ISBN  978-1-5090-1184-1. S2CID  13082456.
  22. ^ Хан, Амина. «Познакомьтесь с математиком« Скрытых фигур », который помог отправить американцев в космос». Лос-Анджелес Таймс. Получено 12 февраля 2017.

Рекомендации

  • Аткинсон, Кендалл А. (1989). Введение в численный анализ (2-е изд.). Нью-Йорк: Джон Уайли и сыновья. ISBN  978-0-471-50023-0.
  • Ascher, Uri M .; Петцольд, Линда Р. (1998). Компьютерные методы решения обыкновенных дифференциальных и дифференциально-алгебраических уравнений. Филадельфия: Общество промышленной и прикладной математики. ISBN  978-0-89871-412-8.
  • Мясник, Джон С. (2003). Численные методы решения обыкновенных дифференциальных уравнений.. Нью-Йорк: Джон Уайли и сыновья. ISBN  978-0-471-96758-3.
  • Хайрер, Эрнст; Норсетт, Сиверт Пол; Ваннер, Герхард (1993). Решение обыкновенных дифференциальных уравнений I: нежесткие задачи. Берлин, Нью-Йорк: Springer-Verlag. ISBN  978-3-540-56670-0.
  • Изерлес, Арье (1996). Первый курс численного анализа дифференциальных уравнений. Издательство Кембриджского университета. ISBN  978-0-521-55655-2.
  • Стоер, Йозеф; Булирш, Роланд (2002). Введение в численный анализ (3-е изд.). Берлин, Нью-Йорк: Springer-Verlag. ISBN  978-0-387-95452-3.
  • Лакоба, Тарас И. (2012), Простой метод Эйлера и его модификации (PDF) (Конспект лекций для MATH334), Университет Вермонта, получено 29 февраля 2012
  • Унни, М. П. (2017). «Сокращение памяти для численного решения дифференциальных уравнений с использованием сжатия». 13-й Международный коллоквиум по обработке сигналов и ее приложениям (CSPA), 2017 г.. IEEE CSPA. С. 79–84. Дои:10.1109 / CSPA.2017.8064928. ISBN  978-1-5090-1184-1. S2CID  13082456.

внешняя ссылка

  • СМИ, связанные с Метод Эйлера в Wikimedia Commons
  • Реализации метода Эйлера на разных языках к Код Розетты
  • «Метод Эйлера», Энциклопедия математики, EMS Press, 2001 [1994]

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


метод эйлера
— простейший численный метод решения систем обыкновенных дифференциальных уравнений. Впервые описан Леонардом Эйлером в 1768 году в работе «Интегральное исчисление». Метод Эйлера является явным, одношаговым методом первого порядка точности. Он основан на аппроксимации интегральной кривой кусочно-линейной функцией, так называемой ломаной Эйлера.

Описание метода

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Ломаная Эйлера (красная линия) — приближенное решение в пяти узлах задачи Коши и точное решение этой задачи (выделено синим цветом)

Пусть дана задача Коши для уравнения первого порядка:

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

где функция Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера определена на некоторой области Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера. Решение ищется на интервале Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера. На этом интервале введем узлы:

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

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

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

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

Оценка погрешности метода на шаге и в целом

Погрешность на шаге или локальная погрешность — это разность между численным решением после одного шага вычисления Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера и точным решением в точке Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера. Численное решение задается формулой

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Точное решение можно разложить в ряд Тейлора:

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Локальную ошибку Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера получаем, вычитая из второго равенства первое:

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Это справедливо, если {displaystyle y}Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера имеет непрерывную вторую производную . Другим достаточным условием справедливости этой оценки, из которого вытекает предыдущее и которое обычно может быть легко проверено, является непрерывная дифференцируемость Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера по обоим аргументам .

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

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

Значение метода Эйлера

Метод Эйлера являлся исторически первым методом численного решения задачи Коши . Об этом говорит сайт https://intellect.icu . О. Коши использовал этот метод для доказательства существования решения задачи Коши. Ввиду невысокой точности и вычислительной неустойчивости для практического нахождения решений задачи Коши метод Эйлера применяется редко. Однако в виду своей простоты метод Эйлера находит свое применение в теоретических исследованиях дифференциальных уравнений, задач вариационного исчисления и ряда других математических проблем.

Характеристика метода Эйлера

  • Метод Эйлера является одношаговым методом, то есть для расчета последующей точки необходимо знать только координаты предыдущей.
  • Данный метод использует явную схему. В правой части формулы Эйлера стоят все известные величины.
  • Метод Эйлера не является устойчивым методом, поэтому он применяется только для ОДУ, решением которых являются достаточно гладкие функции.
  • Этот метод характеризуется первым порядком точности (точность низкая).

Модификации и обобщения

Модифицированный метод Эйлера с пересчетом

Повысить точность и устойчивость вычисления решения можно с помощью неявного метода Эйлера следующего вида.

Прогноз:

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера.

Коррекция:

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера.

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

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

Двухшаговый метод Адамса — Башфорта

Другой способ повысить точность метода заключается в использовании не одного, а нескольких вычисленных ранее значений функции:

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Это линейный многошаговый метод.

Реализации на языках программирования

Реализация на языке Си для функции Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера.

#include 

double func(double x, double y)
{
	return 6*x*x+5*x*y; // функция первой производной
}

int main(int argc, char** argv)
{
    int i, n; 
    double x, y, h;

    h = 0.01; // шаг
    n = 10; // количество итераций
    x = 1; // x0
    y = 1; // y0

    for (i = 0; i < n; i++)
    {
        y += h * func(x, y); // вычисление yi
        x += h;
    }

    return EXIT_SUCCESS;
}

Реализация на языке Python 3.7:

# n - количество итераций, h - шаг, (x, y) - начальная точка
def Euler(n = 10, h = 0.01, x = 1, y = 1):
    for i in range(n):
        y += h * function(x, y)
        x += h
    return x, y # решение

def function(x, y):
    return 6 * x**2 + 5 * x * y # функция первой производной

print(Euler())

Улучшенный метод Эйлера

Метод Эйлера для расчета дифференциальных уравнений имеет небольшую точность расчета. Как было показано ранее (см. Лекцию 10. Численные методы интегрирования дифференциальных уравнений. Метод Эйлера), точность расчета у него зависит от размера шага линейно, зависимость точности от шага — первой степени. То есть, чтобы увеличить точность в 10 раз, надо уменьшить шаг в 10 раз. На практике интересуются более совершенными методами. Вопрос стоит так: можно ли увеличить точность на порядок, но при этом сэкономить на количестве вычислений? Да, такие методы есть. Модифицированный метод Эйлера имеет точность второго порядка. В методе Эйлера производная берется в начале шага и по ней прогнозируется движение системы на конец шага, считая, что во время шага производная неизменна. То есть в течение всего шага производная считается той, какой она была в самом начале шага. Это основной источник неточности.

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

Пусть, как и прежде (см. Лекцию 10. Численные методы интегрирования дифференциальных уравнений. Метод Эйлера), требуется решить уравнение y = f(x, y, t). Идея уточненного метода Эйлера состоит в том, что производную вычисляют не в i-ой точке, а между двумя соседними точками: i иi + 1. Данная процедура состоит из следующих шагов:

  • в точке i вычисляют значение производной:
    f(xi, yi, t);
  • делают пол-шага и вычисляют значение функции на середине отрезка:
    yi + 1/2 = yi + f(xi, yi, t) · Δt/2;
  • в точке i + 1/2 вычисляют производную:
    f(xi + 1/2, yi + 1/2, t + Δt/2);
  • делается полный шаг из точки i в точку i + 1 по значению уточненной производной:
    yi + 1 =yi + f(xi + 1/2, yi + 1/2, t + Δt/2) · Δt;
  • значение t увеличивается: t := t + Δt. Вся процедура повторяется сначала.

Данный метод обладает точностью Ο2(h), то есть на порядок выше, чем метод Эйлера, при увеличении числа вычислений всего в 2 раза.

На рис. 14.1 показано, какой будет ошибка ε (расхождение между реальным и вычисленным теоретическим значением), если шаг делается по значению производной, вычисленной в точке i, как это делается в методе Эйлера. Эта ошибка может быть достаточно велика!

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Рис. 14.1. Движение реальной и расчетной системы по методу Эйлера и расхождение между ними (ошибка)

На рис. 14.2 показано, как по значению производной, вычисленной в точке i, делается полшага до точки t + Δt/2 (направление производной показано линией A). И в точке t + Δt/2 вычисляют новую производную. Касательная в точке t + Δt/2 будет другой — линия B. Ее наклон равен производной в точке t + Δt/2.

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Рис. 14.2. Уточнение значения производной внутри шага расчета

Далее переносят линию B обратно в точку t. Это соответствует тому, что из точки t снова делается, — но уже полный, — шаг Δt до точки t + Δt по направлению, соответствующему линии C(рис. 14.3). Линия C параллельна B. То есть значение производной в точке t берется искусственно равным производной в точке t + Δt/2. Ошибка расчета (см. ε1) во многих случаях при этом уменьшается.

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

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

Существует другой вариант модифицированного метода Эйлера, когда производную для того, чтобы сделать шаг из точки i, берут не в i-ой точке и не в i + 1/2, а как среднее арифметическое двух производных: производной в точке i (направление производной показано на рис. 14.4 линией A) и производной в точке i + 1 (направление производной показано линией B). Направление «средней» производной показано линией C.

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Рис. 14.4. Расчет движения системы по среднему значению производной на шаге

Блок схема и алгоритм метода Эйлера

Решение ОДУ 1-го порядка

Общий вид ОДУ 1-го порядка:

F(x, y, y’)=0

Уравнение разрешаем относительно старшей производной:

y’=f(x, y)

Начальная точка: x0, y0.

Количество точек на интегральной кривой решения n

Шаг h, с которым будет изменяться значение аргумента.

Метод Эйлера

y’=f(x, y)

Представляем производную функции y’ в виде конечной разности.

За величину приращения аргумента Dx принимается величина шага h:

Тогда:Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Аналогично: Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

В общем виде: — формула Эйлера Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Графическая интерпретация метода Эйлера

Предположим, что мы имеем истинное решение ОДУ: y=y(x).

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

От начальной точки (x0, y0) проводим касательную к графику до пересечения с линией x=x1. Получаем новую точку (x1, y1).

Из графика видно, что с увеличением количества шагов погрешность возрастает.

Если величину шага h уменьшить, то результат получится более точным.

Блок-схема метода Эйлера

Метод Эйлера - решения систем обыкновенных дифференциальных уравнений. Уточненный метод Эйлера

Вау!! 😲 Ты еще не читал? Это зря!

  • Метод Рунге — Кутты метод рунге-кутты ,
  • задача Коши общие понятия дифференциальных уравнений первого порядка , задача коши , дифференциальные уравнения первого порядка , ду первого порядка ,
  • метод Адамса
  • метод Хенричи
  • аппроксимация функций , интерполяция , интерполяция функций , аппроксимация ,

Я что-то не договорил про метод эйлера, тогда сделай замечание в комментариях Надеюсь, что теперь ты понял что такое метод эйлера, уточненный метод эйлера
и для чего все это нужно, а если не понял, или есть замечания,
то нестесняся пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории
Моделирование и Моделирование систем

Понравилась статья? Поделить с друзьями:
  • Метод указывания на ошибки
  • Методические ошибки это ошибки
  • Методические ошибки учителя английского
  • Методические ошибки при развитии гибкости
  • Методические ошибки педагога