Как методом эйлера найти решение дифференциального уравнения

Метод Эйлера

Содержание:

  1. Примеры с решением

Пусть требуется решить задачу Коши: найти решение дифференциального уравнения Метод Эйлера удовлетворяющее начальному условию Метод Эйлера

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

Метод Эйлера для решения указанной задачи Коши основан на непосредственной замене производной разностным отношением по приближенной формуле Метод Эйлера Метод Эйлера

Приближенные значения Метод Эйлера в точках Метод Эйлера вычисляются по формуле Метод Эйлера

По этой ссылке вы найдёте полный курс лекций по высшей математике:

Примеры с решением

Пример 1.

С помощью метода Эйлера найти значения решения уравнения Метод Эйлера удовлетворяющего условию Метод Эйлера, в первых пяти точках отрезка [0; 0,5] при Метод Эйлера.

Решение:

По формуле (14.2) находим точкиМетод Эйлера

Метод Эйлера Значения искомой функции Метод Эйлера удовлетворяющей условиям данной задачи Коши, находим в соответствии с формулой (14.3). Результаты вычислений отражены в таблице 14.1. Замечание.

Точное решение уравнения Метод Эйлера удовлетворяющее условию Метод Эйлера, выражается формулой Метод Эйлера Следовательно, Метод Эйлера Таблица 14.1

Метод Эйлера

Возможно вам будут полезны данные страницы:

Пример 2.

Методом Эйлера найти значения решения дифференциального уравнения Метод Эйлера, для которого Метод Эйлера, в пяти точках отрезка [1; 1,5], приняв Метод Эйлера

Решение:

На основании формулы (14.2) определяем точки Метод Эйлера Метод Эйлера Значения искомой функции Метод Эйлера, удовлетворяющей условию дайной задачи Коши, вычисляем по формуле (14.3). Результаты вычислений занесены в таблицу 14.2.

Таблица 14,2 Метод Эйлера

Метод Эйлера

Метод Эйлера

Лекции:

  • Производная функции
  • Иррациональные выражения
  • Метод вариации произвольных постоянных
  • Сходимость ряда
  • Как найти область определения функции: решение
  • Уравнение сферы
  • Пределы: примеры решения
  • Площадь поверхности конуса
  • Целые рациональные выражения
  • Числовые ряды. Числовой ряд. Сумма ряда

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

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

Пусть
дано дифференциальное уравнение:

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


.

Выбрав
достаточно малый шаг h,
строится система равноотстоящих точек

.

В
методе Эйлера приближенные значения

вычисляются
последовательно по формулам:


.

При
этом искомая интегральная кривая

,
проходящая через точку
,
заменяется ломанной

с вершинами

;
каждое звено

этой ломаной, называемой ломаной
Эйлера,
имеет
направление, совпадающее с направлением
той интегральной кривой уравнения

,
которая проходит через точку

y

Пример

Пусть
дано дифференциальное уравнение:

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


.

Решение
ОДУ имеет вид:

0.0

1.000

0.1

1.100

0.2

1.219

Особенности метода Эйлера.

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

Первая улучшенная формула Эйлера

Пусть
дано дифференциальное уравнение:

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

.

Решение
в каждой точке

определяется
по формуле:


,

где


.

Геометрически это
означает, что отрезок ломанная между
точками

заменяется
на два отрезка

.
Направление первого отрезка совпадает
с направлением интегральной кривой в
точке


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

Пример.

Пусть
дано дифференциальное уравнение:

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

.

Решение
ОДУ имеет вид:

0.0

1.000

0.1

1.109

0.2

1.239

Вторая улучшенная формула Эйлера

Пусть
дано дифференциальное уравнение:

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

.

Решение
в каждой точке

определяется
по формуле:


,

где

Геометрически это
означает, что определяется направление
интегральной кривой в исходной точке

и во вспомогательной точке

,
а в качестве окончательного направления
ломаной берется среднее этих направлений.

Пример.

Пусть
дано дифференциальное уравнение:

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

.


Решение
ОДУ имеет вид:

0.0

1.000

0.1

1.110

0.2

1.241

Метод Рунге-Кутта.

Метод Эйлера
относится к семейству методов Рунге-Кутта.

Метод Рунге-Кутта

-го
порядка имеет вид:


,

где при фиксированных
значениях некоторых параметров:

последовательно
вычисляются:


Наибольшее
применение на практике получил метод
Руте-Кутта 4-го порядка:


,

где

Метод
Рунге-Кутта имеет ряд важнейших
достоинств:

1)
высокая точность

2)
явная схема вычислений


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

3)
возможен переменный шаг, т.е. можно
сменить шаг, где функция быстро меняется.

  1. легко
    оформляется.

Пусть
дано дифференциальное уравнение:

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

.

Решение
ОДУ имеет вид:

0.0

1.000

0.1

1.110

0.2

1.241

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

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

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    Given a differential equation dy/dx = f(x, y) with initial condition y(x0) = y0. Find its approximate solution using Euler method.

    Euler Method : 
    In mathematics and computational science, the Euler method (also called forward 
    Euler method) is a first-order numerical procedure for solving ordinary differential 
    equations (ODEs) with a given initial value. 
    Consider a differential equation dy/dx = f(x, y) with initial condition y(x0)=y0 
    then a successive approximation of this equation can be given by: 

    y(n+1) = y(n) + h * f(x(n), y(n)) 
    where h = (x(n) – x(0)) / n 
    h indicates step size. Choosing smaller 
    values of h leads to more accurate results 
    and more computation time. 

    Example : 

        Consider below differential equation
                dy/dx = (x + y + xy)
        with initial condition y(0) = 1 
        and step size h = 0.025.
        Find y(0.1).
       
        Solution:
        f(x, y) = (x + y + xy)
        x0 = 0, y0 = 1, h = 0.025
        Now we can calculate y1 using Euler formula
        y1 = y0 + h * f(x0, y0)
        y1 = 1 + 0.025 *(0 + 1 + 0 * 1)
        y1 = 1.025
        y(0.025) = 1.025.
        Similarly we can calculate y(0.050), y(0.075), ....y(0.1).
        y(0.1) = 1.11167

    Below is the implementation:

    C++

    #include <iostream>

    using namespace std;

    float func(float x, float y)

    {

        return (x + y + x * y);

    }

    void euler(float x0, float y, float h, float x)

    {

        float temp = -0;

        while (x0 < x) {

            temp = y;

            y = y + h * func(x0, y);

            x0 = x0 + h;

        }

        cout << "Approximate solution at x = "

             << x << "  is  " << y << endl;

    }

    int main()

    {

        float x0 = 0;

        float y0 = 1;

        float h = 0.025;

        float x = 0.1;

        euler(x0, y0, h, x);

        return 0;

    }

    Java

    import java.io.*;

    class Euler {

        float func(float x, float y)

        {

            return (x + y + x * y);

        }

        void euler(float x0, float y, float h, float x)

        {

            float temp = -0;

            while (x0 < x) {

                temp = y;

                y = y + h * func(x0, y);

                x0 = x0 + h;

            }

            System.out.println("Approximate solution at x = "

                               + x + " is " + y);

        }

        public static void main(String args[]) throws IOException

        {

            Euler obj = new Euler();

            float x0 = 0;

            float y0 = 1;

            float h = 0.025f;

            float x = 0.1f;

            obj.euler(x0, y0, h, x);

        }

    }

    Python3

    def func( x, y ):

        return (x + y + x * y)

    def euler( x0, y, h, x ):

        temp = -0

        while x0 < x:

            temp = y

            y = y + h * func(x0, y)

            x0 = x0 + h

        print("Approximate solution at x = ", x, " is ", "%.6f"% y)

    x0 = 0

    y0 = 1

    h = 0.025

    x = 0.1

    euler(x0, y0, h, x)

    C#

    using System;

    class GFG {

        static float func(float x, float y)

        {

            return (x + y + x * y);

        }

        static void euler(float x0, float y, float h, float x)

        {

            while (x0 < x) {

                y = y + h * func(x0, y);

                x0 = x0 + h;

            }

            Console.WriteLine("Approximate solution at x = "

                              + x + " is " + y);

        }

        public static void Main()

        {

            float x0 = 0;

            float y0 = 1;

            float h = 0.025f;

            float x = 0.1f;

            euler(x0, y0, h, x);

        }

    }

    PHP

    <?php

    function func($x, $y)

    {

        return ($x + $y + $x * $y);

    }

    function euler( $x0, $y, $h, $x)

    {

        $temp = -0;

        while($x0 < $x)

        {

            $temp = $y;

            $y = $y + $h * func($x0, $y);

            $x0 = $x0 + $h;

        }

        echo "Approximate solution at x = ",

            $x, " is ", $y, "n";

    }

    $x0 = 0;

    $y0 = 1;

    $h = 0.025;

    $x = 0.1;

    euler($x0, $y0, $h, $x);

    ?>

    Javascript

    <script>

        function func(x, y)

        {

            return (x + y + x * y);

        }

        function euler(x0, y, h, x)

        {

            let temp = -0;

            while (x0 < x) {

                temp = y;

                y = y + h * func(x0, y);

                x0 = x0 + h;

            }

            document.write("Approximate solution at x = "

                               + x + " is " + y);

        }

        let x0 = 0;

        let y0 = 1;

        let h = 0.025;

        let x = 0.1;

        euler(x0, y0, h, x);

    </script>

    Output

    Approximate solution at x = 0.1  is  1.11167
    

    Time complexity: O(x/h)
    Auxiliary space: O(1)

    Last Updated :
    23 Nov, 2022

    Like Article

    Save Article


    Главная

    »

    Общенаучные дисциплины

    »

    Математика (2 семестр)

    »

    Приближенное решение дифференциальных уравнений первого порядка методом Эйлера.

    Приближенное решение дифференциальных уравнений первого порядка методом Эйлера.

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

    frac{dy}{dx}=f(x,y),

    y_{|_{x=x_0}}=y_0,

    где функция f определена на некоторой области Dsubset. Решение разыскивается на интервале [x0,b). На этом интервале введем узлы

    x_0<x_1<dots<x_nle

    Приближенное решение в узлах xi, которое обозначим через yi определяется по формуле

    y_i=y_{i-1}+(x_i-x_{i-1})f(x_{i-1},y_{i-1}),quad

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

    Оценка погрешности

    Метод Эйлера является методом первого порядка. Если функция f непрерывна в D и непрерывно дифференцируема по переменной y в D, то имеет место следующая оценка погрешности

    left|y(x_i)-y_iright|=O(h),

    где h — средний шаг, то есть существует C > 0 такая, что C^{-1}le.

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

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

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

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

    Вычисления по методу Эйлера с пересчетом делаются в два этапа.

    Прогноз:

    tilde.

    Коррекция:

    y_i=y_{i-1}+frac{(x_i-x_{i-1})}{2}(f(x_{i-1},y_{i-1})+f(x_i,tilde.

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


    Друзья! Приглашаем вас к обсуждению. Если у вас есть своё мнение, напишите нам в комментарии.

    Понравилась статья? Поделить с друзьями:

    Не пропустите также:

  • Как найти свой клон вконтакте
  • Как составить свою программу в excel
  • Deus ex human revolution желязны как найти
  • Как найти роутер на своем компе
  • Запуск в режиме программного рендеринга cinnamon как исправить

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии