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

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

ОДУ можно записать в виде:

F x , y , y , y ,..., y

где x – независимая переменная,

y i - i -ая производная от

искомой функции, n – порядок уравнения. Общее решение ОДУ n -го порядка содержит n произвольных постоянных

c 1 , c 2 ,..., c n , т.е. общее решение имеет вид y x , c 1 , c 2 ,..., c n . Для выделения единственного решения необходимо задать n дополнительных условий. В зависимости от способа задания

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

Ясно, что при n 1 можно говорить только о задачи Коши. Примеры постановки задачи Коши:

dy x 2 y 3

y 1 1;

d 2 y dy

y 1 1,

dx 2 dx xy ,

y 1 0 .

Примеры краевых задач:

d 2 y

y sin x ,

y 0 1,

y 1 0

dx 2

d 3 y

d 2 y

y 1 0,

y 3 2 .

x x dx 2

dx ,

y 1 0,

Решить такие

аналитически удается лишь для

некоторых специальных типов уравнений, поэтому применение приближенных методов решения является необходимостью.

Приближенные методы решения задачи Коши для ОДУ первого порядка

Требуется найти решение y (x ) ОДУ первого порядка

f x, y

на отрезке x 0 , x n при условии

y x0 y0 .

Приближенное решение будем искать в узлах расчетной

xi x0 ih,

i 0,1,..., n с

xn x0

Необходимо найти

приближенные

значения в

узлах сетки

y i =y (x i ). Результаты расчетов занесем в таблицу

Интегрируя

уравнение на

отрезке x i , x i

1 , получим

x i 1

y i 1

yi f x, y dx .

Для того, чтобы найти все значения y i , нужно каким-то образом

вычислить интеграл, стоящий в правой части (5.4). Применяя различные квадратурные формулы, будем получать методы решения задачи (5.2), (5.3) разного порядка точности.

Метод Эйлера

Если для вычисления интеграла в (5.4) воспользоваться простейшей формулой левых прямоугольников первого порядка

Явный метод Эйлера имеет первый порядок аппроксимации. Реализация метода. Поскольку x 0 , y 0 , f x 0 , y 0

известны, применяя (5.5) последовательно, определим все y i : y 1 y 0 hf x 0 , y 0 , y 2 y 1 hf x 1 , y 1 , ….

Геометрическая

интерпретация

(рис. 5.1.):

Пользуясь тем, что в точке x 0 известно решение y x 0 y 0

и значение его производной y x 0 dy

f x0 , y0 ,

x x0

записать уравнение касательной к графику искомой функции

f x0 , y0

y y0

f x0 , y0 x x0 .

достаточно

шаге h

ордината

y1 y0 hf x0 , y0

касательной, полученная подстановкой в правую часть значения x 1 x 0 h , должна мало отличаться от ординаты y x 1 решения

y x задачи Коши. Следовательно, точка x 1 , y 1 пересечения касательной с прямой x x 1 может быть приближенно принята

за новую начальную точку. Через эту точку снова проведем

прямую y y 1 f x 1 , y 1 x x 1 ,

которая приближенно отражает

поведение касательной к y x

использовать

x i 1

прямоугольников:

f x, y dx hf xi 1 , yi 1 , то

неявный метод Эйлера

y i 1

y i hf x i 1 , y i 1 , i 0,1,..., n 1.

Этот метод называют неявным, поскольку для вычисления

неизвестного

значения

yi 1 y xi 1 по

известному

значению

требуется решать уравнение, в общем случае

нелинейное. Неявный метод Эйлера также имеет первый порядок аппроксимации.

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

В данном методе вычисление y i 1 состоит из двух этапов:

~ y i 1 y i hf x i , y i ,

y i 1

f xi , yi f xi 1 , yi 1

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

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

Рассмотрим дифференциальное уравнение первого порядка

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

x = x 0 , y (x 0 )= y 0 (3.2)

Требуется найти решение уравнения на отрезке [а , b ].

Разобьем отрезок [a , b ] на n равных частей и получим последовательность х 0 , х 1 , х 2 ,…, х n , где x i = x 0 + ih (i =0,1,…, n ), а h =(b - a )/ n − шаг интегрирования.

В методе Эйлера приближенные значения у(х i +1 ) y i +1 вычисляются последовательно по формулам:

y i+1 = у i +hf(x i , y i ) (i=0,1,2…) (3.3)

При этом искомая интегральная кривая у=у(х) , проходящая через точку М 0 0 , у 0 ), заменяется ломаной М 0 М 1 М 2 с вершинами М i (x i , y i ) (i =0,1,2,…); каждое звено М i M i +1 этой ломаной, называемой ломаной Эйлера, имеет направление, совпадающее с направлением той интегральной кривой уравнения (1), которая проходит через точку М i (см. рисунок 2):

Рисунок 2. Вид ломаной Эйлера

Модифицированный метод Эйлера более точен.Сначала вычисляются вспомогательные значения искомой функции у к+1/2 в точках х к+1/2 , затем находится значение правой части уравнения (3.1) в средней точке y k+1/2 =f( xk+1/2 , y k+1/2 ) и определяют у к+ :

Тогда:
(3.4)

Формулы (3.4) − рекуррентные формулы метода Эйлера.

Для оценки погрешности в точке х к проводят вычисления у к с шагом h , затем с шагом 2 h и берут 1/3 разницы этих значений:

,

где у(х) - точное решение дифференциального уравнения.

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

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

Методы Рунге-Кутта обладают следующими свойствами:

    Эти методы являются одноступенчатыми: чтобы найти у к+1  нужна информация о предыдущей точке (x к y к )

    Методы согласуются с рядом Тейлора вплоть до членов порядка h p  где степень р различна для различных методов и называется порядковым номером или порядком метода

    Они не требуют вычисления производных от f(x y)  а требуют вычисления самой функции

Алгоритм Рунге-Кутта третьего порядка:

(3.5)

Алгоритм Рунге-Кутта четвертого порядка:

(3.6)

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

3.3. Метод Адамса

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

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

Y k -1 , Y k -2 , Y k -3 …

Если используются значения в k предыдущих узлах, то говорят о k-шаговом методе интегрирования уравнения. Одним из способов построения многошаговых методов заключается в следующем. По значениям функции, вычисленным в k предшествующих узлах, строится интерполяционный полином степени (k-1) – L k -1 (x ) , который используется при интегрировании дифференциального уравнения по выражению:

Интеграл при этом выражается через квадратурную формулу:

где λ l – квадратурные коэффициенты.

Полученное таким образом семейство формул называется явной k -шаговой схемой Адамса . Как видно, при k =1 в качестве частного случая получается формула Эйлера.

Например, для формулы 4 порядка имеем:

(3.7)

y ( p ) k +1 – “прогноз” ,вычисленный с использованием значений в предыдущих точках, f ( p ) k +1 –приближенное значение функции,вычисленное в точке получения прогноза, y ( c ) k +1 – «коррекция» прогнозного значения, y k +1 – искомое значение по Адамсу.

Достоинство такого метода решения ДУ заключается в том, что в каждой точке рассчитывается только одно значение функции F(x,y). К недостаткам можно отнести невозможность старта многошагового метода из единственной начальной точки, так как для вычислений по k -шаговой формуле необходимо значение значения функции в k узлах. Поэтому приходится (k-1) решение в первых узлах x 1 , x 2 , …, x k-1 получать с помощью какого-либо одношагового метода, например метода Рунге-Кутта 4–го порядка.

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

4. Краткое описание программы на C++ и представление результатов ее выполнения

Системой дифференциальных уравнений называется система вида

где x - независимый аргумент,

y i - зависимая функция, ,

y i | x=x0 =y i0 - начальные условия.

Функции y i (x), при подстановке которой система уравнений обращается в тождество, называется решением системой дифференциальных уравнений .

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


Дифференциальным уравнением второго порядка называется уравнение вида



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

Численно ищется частное решение уравнения (2), которое удовлетворяет заданным начальным условиям, то есть решается задача Коши.

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

. (3)


Функция f 2 (x, y 1 , y) в систему (3) введена формально для того, чтобы методы, которые будут показаны ниже, могли быть использованы для решения произвольной системы дифференциальных уравнений первого порядка. Рассмотрим несколько численных методов решения системы (3). Расчетные зависимости для i+1 шага интегрирования имеют следующий вид. Для решения системы из n уравнений расчетные формулы приведены выше. Для решения системы из двух уравнений расчетные формулы удобно записать без двойных индексов в следующем виде:

  1. Метод Эйлера .

    у 1,i+1 =у 1,i +hf 1 (x i , y 1,i , y i),

    у i+1 =у i +hf 2 (x i , y 1,i , y i),

  2. Метод Рунге-Кутта четвертого порядка .

    у 1,i+1 =у 1,i +(m 1 +2m 2 +2m 3 +m 4)/6,

    у i+1 =у i +(k 1 +2k 2 +2k 3 +k 4)/6,

    m 1 =hf 1 (x i , y 1,i , y i),

    k 1 =hf 2 (x i , y 1,i , y i),

    m 2 =hf 1 (x i +h/2, y 1,i +m 1 /2, y i +k 1 /2),

    k 2 =hf 2 (x i +h/2, y 1,i +m 1 /2, y i +k 1 /2),

    m 3 =hf 1 (x i +h/2, y 1,i +m 2 /2, y i +k 2 /2),

    k 3 =hf 2 (x i +h/2, y 1,i +m 2 /2, y i +k 2 /2),

    m 4 =hf 1 (x i +h, y 1,i +m 3 , y i +k 3),

    k 4 =hf 2 (x i +h, y 1,i +m 3 , y i +k 3),

    где h - шаг интегрирования. Начальные условия при численном интегрировании учитываются на нулевом шаге: i=0, x=x 0 , y 1 =y 10 , y=y 0 .

Контрольное задание по зачетной работе.

Колебания с одной степенью свободы

Цель. Изучение численных методов решения дифференциальных уравнений второго порядка и систем дифференциальных уравнений первого порядка.

Задание. Численно и аналитически найти:

  1. закон движения материальной точки на пружинке х(t),
  2. закон изменения силы тока I(t) в колебательном контуре (RLC - цепи) для заданных в табл.1,2 режимов. Построить графики искомых функций.

Варианты заданий.


Таблица режимов



Варианты заданий и номера режимов:

  1. движение точки
  2. RLC - цепь


Рассмотрим более подробно порядок составления дифференциальных уравнений и приведения их к машинному виду для описания движения тела на пружинке и RLC-цепи.


  1. Название, цель работы и задание.
  2. Математическое описание, алгоритм (структограмма) и текст программы.
  3. Шесть графиков зависимости (три точные и три приближенные) x(t) или I(t), выводы по работе.

Введение

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

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

Решением обыкновенного дифференциального уравнения называется такая функция y(x), которая при любых х удовлетворяет этому уравнению в определенном конечном или бесконечном интервале. Процесс решения дифференциального уравнения называют интегрированием дифференциального уравнения.

Исторически первым и наиболее простым способом численного решения задачи Коши дляОДУ первого порядка является метод Эйлера. В его основе лежит аппроксимация производной отношением конечных приращений зависимой (y) и независимой (x) переменных между узлами равномерной сетки:

где y i+1 это искомое значение функции в точке x i+1 .

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

Данная формула оказывается неявной относительно y i+1 (это значение есть и в левой и в правой части выражения), то есть является уравнением относительно y i+1 , решать которое можно, например, численно, применяя какой-либо итерационный метод (в таком виде его можно рассматривать как итерационную формула метода простой итерации).

Состав курсовой работы: Курсовая работа состоит из трех частей. В первой части краткое описание методов. Во второй части постановка и решение задачи. В третьей части – программная реализация на языке ЭВМ

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

1. Теоретическая часть

Численное дифференцирование

Дифференциальным называется уравнение, содержащее один или несколько производных. В зависимости от количества не зависимых переменных, дифференциальные уравнения делятся на две категории.

    Обыкновенные дифференциальные уравнения (ОДУ)

    Дифференциальные уравнения в частных производных.

Обыкновенными дифференциальными уравнениями называются такие уравнения, которые содержат одну или несколько производных от искомой функции . Их можно записать виде

независимая переменная

Наивысший порядок , входящий в уравнение (1) называется порядком дифференциального уравнения.

Простейшим (линейным) ОДУ является уравнение (1) порядка разрешенное относительно производной

Решением дифференциального уравнения (1) называется всякая функция,которая после ее подстановки в уравнение обращает его в тождество.

Основная задача, связанная с линейной ОДУ известно как задача Каши:

Найти решение уравнения (2) в виде функции удовлетворяющий начальному условию (3)

Геометрически это означает, что требуется найти интегральную кривую, проходящую через точку ) при выполнение равенства (2).

Численный с точки зрения задачи Каши означает: требуется построить таблицу значений функции удовлетворяющий уравнение (2) и начальное условие (3) на отрезке с некоторым шагом . Обычно считается, что то есть начальное условие задано в левом конце отрезка.

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

Пусть дано уравнение (2) с начальным условием тоесть поставлена задача Каши. Решим вначале следующую задачу. Найти простейшим способом приближенное значение решения в некоторой точке где -достаточно малый шаг. Уравнение (2) совместно с начальным условием (3) задают направление касательной искомой интегральной кривой в точке с координатами

Уравнение касательной имеет вид

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

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

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

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

Получение таблицы значений искомой функции

по методу Эйлера заключается в циклическом применение формулы

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

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

1.1 Усовершенствованный метод Эйлера

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

А формула (5) получает вид

Формула (7) применена только для , следовательно, значения по ней получить нельзя, поэтому находят по методу Эйлера, при этом для получения более точного результата поступают так: с начало по формуле (5) находят значение

(8)

В точке а затем находится по формуле (7) с шагом

(9)

После того как найдено дальнейшие вычисления при производится по формуле (7)

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

Не обошла стороной вычислительная математика и дифференциальные уравнения! Сегодня на уроке мы познакомимся с основами приближённых вычислений в этом разделе математического анализа, после чего перед вами приветливо распахнутся толстые-претолстые книги по теме. Ибо вычислительная математика стороной диффуры ещё как не обошла =)

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

Рассмотрим дифференциальное уравнение первого порядка , для которого требуется найти частное решение , соответствующее начальному условию . Что это значит? Это значит, нам нужно найти функцию (предполагается её существование) , которая удовлетворяет данному дифф. уравнению, и график которой проходит через точку .

Но вот незадача – переменные в уравнении разделить невозможно. Никакими известными науке способами. А если и возможно, то получается неберущийся интеграл. Однако частное-то решение существует! И здесь на помощь приходят методы приближенных вычислений, которые позволяют с высокой (а зачастую с высочайшей) точностью «сымитировать» функцию на некотором промежутке.

Идея методов Эйлера и Рунге-Кутты состоит в том, чтобы заменить фрагмент графика ломаной линией , и сейчас мы узнаем, как эта идея реализуется на практике. И не только узнаем, но и непосредственно реализуем =) Начнём с исторически первого и самого простого метода. …Вы хотите иметь дело со сложным дифференциальным уравнением? Вот и я тоже не хочу:)

Задание

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

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

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

Что нужно сделать? Нужно найти и построить ломаную , которая приближает график функции на промежутке . Поскольку длина этого промежутка равна единице, а шаг составляет , то наша ломаная будет состоять из 10 отрезков:

причём, точка уже известна – она соответствует начальному условию . Кроме того, очевидны «иксовые» координаты других точек:

Осталось найти . Никакого дифференцирования и интегрирования – только сложение и умножение! Каждое следующее «игрековое» значение получается из предыдущего по простой рекуррентной формуле:

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

Таким образом:

«Раскручиваемся» от начального условия :

Понеслось:

Результаты вычислений удобно заносить в таблицу:

А сами вычисления автоматизировать в Экселе – потому что в математике важен не только победный, но ещё и быстрый конец:)

По результатам 2-го и 3-го столбцов изобразим на чертеже 11 точек и 10 отрезков, соединяющих смежные точки. Для сравнения я построю график точного частного решения :


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

Как можно улучшить приближение? Первая мысль – измельчить разбиение. Разделим отрезок , например, на 20 частей. Тогда шаг составит: , и совершенно понятно, что ломаная из 20 звеньев заметно точнее приблизит частное решение. С помощью того же Экселя не составит труда обработать 100-1000 и даже миллион (!) промежуточных отрезков, однако зададимся вопросом: а нельзя ли КАЧЕСТВЕННО улучшить метод?

Но перед тем как раскрыть этот вопрос, не могу не остановиться на неоднократно прозвучавшей сегодня фамилии. Читая биографию Леонарда Эйлера , просто поражаешься, как невероятно много может успеть сделать за свою жизнь человек! Сопоставимо вспомнился только К.Ф. Гаусс. …Вот и мы постараемся не потерять мотивацию к обучению и новым открытиям:))

Усовершенствованный метод Эйлера

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

Цель усовершенствования состоит в том, чтобы приблизить «красные квадратики» ломаной к соответствующим «зелёным точкам» точного решения .

И идея модификации такова: отрезки должны быть параллельны касательным , которые проведены к графику функции не на левых краях , а «посерединке» интервалов разбиения. Что, естественно, улучшит качество приближения.

Алгоритм решения работает в том же русле, но формула, как нетрудно догадаться, усложняется:
, где

Плясать вновь начинаем от частного решения и сразу же находим 1-й аргумент «внешней» функции:

Теперь находим нашего «монстра», который на поверку оказался не таким уж и страшным – обратите внимание, что это ТА ЖЕ функция , вычисленная в другой точке:

Умножаем результат на шаг разбиения:

Таким образом:

Алгоритм заходит на второй круг, не поленюсь, распишу его подробно:

рассматриваем пару и находим 1-й аргумент «внешней» функции:

Рассчитываем и находим её 2-й аргумент:

Вычислим значение:

и его произведение на шаг:

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


Числа целесообразно округлять до 4-5-6 знаков после запятой. Нередко в условии той или иной задачи есть прямое указание , с какой точностью следует проводить округление. Я подровнял сильно «хвостатые» значения до 6 знаков.

По результатам 2-го и 3-го столбцов (слева) построим ломаную , и для сравнения я снова приведу график точного решения :


Результат существенно улучшился! – красные квадратики практически «спрятались» за зелёными точками точного решения.

Однако нет пределов совершенству. Одна голова хорошо, а две – лучше. И снова немецкие:

Классический метод Рунге-Кутты 4-го порядка

Его цель добиться ещё бОльшего приближения «красных квадратиков» к «зелёным точкам». Вы спросите, куда ещё ближе? Во многих, в частности физических, исследованиях бывает ПРИНЦИПИАЛЬНО важен 10-й, а то и 50-й точный знак после запятой. Нет, такой точности можно достичь и простым методом Эйлера, но на СКОЛЬКО частей придётся разбить промежуток ?! …Хотя с современными вычислительными мощностями это не проблема – тысячи кочегаров китайского космического корабля гарантируют!

И, как правильно подсказывает заголовок, при использовании метода Рунге-Кутты на каждом шаге нам придётся вычислить значение функции 4 раза (в отличие от двукратного вычисления в предыдущем параграфе) . Но задача эта вполне и вполне подъёмная если нанять китайцев. Каждое следующее «игрековое» значение получается из предыдущего – ловим формулы:
, где , где:

Готовы? Ну тогда начинаем:))


Таким образом:

Первая строка запрограммирована, и я копирую формулы по образцу:


Не думал, что так быстро разделаюсь с методом Рунге-Кутты =)

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

В нижеследующую таблицу я сведу значения (для каждого из трёх методов) и соответствующие абсолютные погрешности приближённых вычислений:


Как видите, метод Рунге-Кутты даёт уже 4-5 верных знака после запятой по сравнению с 2 верными знаками усовершенствованного метода Эйлера! И это не случайность:

– Погрешность «обычного» метода Эйлера не превосходит шага разбиения. И в самом деле – взгляните на самый левый столбец погрешностей – там после запятых только один ноль, что и говорит нам о точности 0,1.

– Усовершенствованный метод Эйлера гарантирует точность: (смотрим на 2 нуля после запятой в средней колонке погрешностей) .

– И, наконец, классический метод Рунге-Кутты обеспечивает точность .

Изложенные оценки погрешностей строго обосновывается в теории.

Как можно ЕЩЁ улучшить точность приближения? Ответ прямо-таки философский: качеством и/или количеством =) В частности, существует и другие, более точные модификации метода Рунге-Кутты. Количественный путь, как уже отмечалось, состоит в уменьшении шага, т.е. в разбиении отрезка на бОльшее количество промежуточных отрезков. И с увеличением этого количества ломаная всё больше и больше будет походить на график точного решения и в пределе – совпадёт с ним.

В математике это свойство называется спрямляемостью кривой . К слову (небольшой оффтоп) , «спрямить» удаётся далеко не всё – рекомендую прочитать интереснейшую , в которых уменьшение «участка исследования» не влечёт за собой упрощение объекта исследования.

Так получилось, что я разобрал всего лишь одно дифференциальное уравнение и поэтому пара дополнительных замечаний. Что ещё нужно иметь в виду на практике? В условии задачи вам может быть предложен другой отрезок и другое разбиение, причём иногда встречается следующая формулировка: «найти методом… …на промежутке , разбив его на 5 частей». В этом случае нужно найти шаг разбиения , после чего придерживаться обычной схемы решения. Кстати, начальное условие должно быть такого вида: , то есть «икс нулевое», как правило, совпадает с левым концом отрезка. Образно говоря, ломаная всегда «выходит» из точки .

Безусловным достоинством рассмотренных методов, является тот факт, что они применимы к уравнениям с очень сложной правой частью. И безусловный недостаток – далеко не каждый диффур можно представить в таком виде.

Но почти всё в этой жизни поправимо! – ведь мы рассмотрели лишь малую толику темы, и моя фраза о толстых-претолстых книгах была вовсе не шуткой. Существует великое множество приближённых методов нахождения решений ДУ и их систем, в которых применяются, в том числе, принципиально другие подходы. Так, например, частное решение можно приблизить степенным рядом . Однако это уже статья другого раздела.

Надеюсь, мне удалось разнообразить скучноватую вычислительную математику, и вам было интересно!

Спасибо за внимание!



Читайте также: