Уход и... Инструменты Дизайн ногтей

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

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

Рассмотрим задачу Коши для дифференциального уравнения

y" (t ) = f (t, y (t ))

с начальным условием y (t 0) = y 0.

Как и в методе Эйлера, выберем шаг h = и построим сетку с системой узлов t i = t 0 + ih, i = 0, 1, …, n.

Обозначим через y i приближенное значение искомого решения в точке t i .

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

y i+ 1 = y i + h (k + 2k + 2k + k ),

k = f (t i , y i ),

k = f (t i + , y i + k ), (6.17)

k = f (t i + , y i + k ),

k = f (t i +h, y i + hk ),

i = 0, 1, …, n.

Оценка погрешности. Оценка погрешности метода Рунге - Кутта затруднительна. Грубую оценку погрешности дает правило Рунге (см. раздел 6.2). Так как метод Рунге - Кутта имеет четвертый порядок точности, т. е. p = 4, то оценка погрешности (6.6) примет вид

R |y- y |. (6.18)

Используя правило Рунге, можно построить процедуру приближенного вычисления решения задачи Коши методом Рунге - Кутта четвертого порядка точности с заданной точностью . Нужно, начав вычисления с некоторого значения шага h , последовательно уменьшать это значение в два раза, каждый раз вычисляя приближенное значение y , i = 0, 1, …, n. Вычисления прекращаются тогда, когда будет выполнено условие:

R |y- y | < . (6.19)

Приближенным решением будут значения y , i = 0, 1, …, n.

Пример 6.4.

Методом Рунге - Кутта четвертого порядка точности найдем решение на отрезке следующей задачи Коши.

y" (t ) = 2ty , y (0) = 1. (6.20)

Возьмем шаг h = 0.1. Тогда n = = 10.

В соответствии с (6.17) расчетные формулы примут вид:

y i+ 1 = y i + h (k + 2k + 2k + k ),

k = 2t i y i ,

k = 2(t i +)(y i + k ), (6.21)

k = 2(t i +)(y i + k ),

k = 2(t i +h )(y i + hk ),

i = 0, 1, …, 10.

Задача (6.20) имеет точное решение: y (t ) = e , поэтому погрешность определяется как абсолютная величина разности между точными и приближенными значениями i = | y (t i ) - y i |.

Найденные по формулам (6.21) приближенные значения решения y i и их погрешности i представлены в таблице 6.5:

Таблица 6.5

t i

y i

t i

y i

Задачи к зачету по курсу “Вычислительные методы”

Указание. Каждый студент вначале должен определить параметр своего контрольного задания, s = log 10 (1 +), где k - номер студента в списке группы, k = 1, 2, … Решение задач должно быть оформлено аккуратно и содержать все промежуточные расчеты. В качестве образца можно взять примеры, рассмотренные в соответствующих разделах методических указаний.

1. Методом деления отрезка пополам найти корень уравнения

4(1 - x 2) - e x = s с точностью = 10 -3 .

2. Методом Зейделя решить систему уравнений с точностью =10-3.

6.2+s 2.2+s 1.2+s 16.55+s

A = 2.2+s 5.5+s -1.5+s , b = 10.55+s .

1.2+s -1.5+s 7.2 +s 16.80+s

3. Найти приближение функции f (x ) = e sx на отрезке многочленом Тейлора с точностью = 10 -3 . Вычислить e s .

4. Вычислить приближенно по формуле средних прямоугольников интеграл при n = 4 и оценить погрешность результата.

5. Методом Эйлера найти численное решение задачи Коши

y " = 2sy ; y (0) = 1, на отрезке с шагом h = 0.2.

Сравнить с точным решением.

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

1. Вывод расчетных формул.

Поясним вывод расчетных формул метода Рунге-Кутты. Пусть (как и в § 14.5) решение

дифференциального уравнения удовлетворяющее условию Запишем равенство (14.58) в следующем виде:

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

Введем на отрезке вспомогательных узлов , Заметим, что Заменяя входящий в равенство (14.66) интеграл квадратурной суммой с узлами получаем приближенное равенство

Однако воспользоваться равенством (14.67) для вычисления нельзя, так как значения функции у в точках для неизвестны. Чтобы найти эти значения, запишем равенства

аналогичные равенству (14.66). Заменяя для каждого входящий в формулу (14.68) интеграл соответствующей ему квадратурной формулой с узлами придем к приближенным равенствам

позволяющим последовательно вычислять приближения к значениям

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

Часто из этих формул исключают вспомогательные величины и записывают формулы так:

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

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

2. Устойчивость и сходимость.

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

Теорема 14.7. Пусть правая часть дифференциального уравнения удовлетворяет условию Тогда всякий явный -этапный метод Рунге-Кутты устойчив на конечном отрезке

Следствие. Пусть выполнено условие Тогда если явный -этапный метод Рунге-Кутты имеет порядок аппроксимации, то он сходится с порядком точности.

Справедливость следствия вытекает из теоремы 14 4.

3. Семейство явных двухэтапных методов.

Выведем расчетные формулы семейства явных двухэтапных методов Рунге-Кутты второго порядка точности. Запишем формулы явного двухэтапного метода

Параметрами этого метода являются величины Представим погрешность аппроксимации

Решение дифференциального уравнения в виде разложения по степеням Формула Тейлора

с учетом равенств дает формулу

(аргументы у функции и ее частных производных опускаем).

Представим значение функции в точке используя формулу Тейлора для функции двух переменных с центром в точке

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

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

Итак (с учетом следствия из теоремы 14.7), можно утверждать, что при любом метод

имеет второй порядок точности.

Заметим, что при формула (14.69) дает метод Эйлера-Коши, а при усовершенствованный метод Эйлера (см. § 14.5).

4. Метод Рунге-Кутты четвертого порядка точности.

Наиболее известным из методов Рунге-Кутты является классический -этапный метод четвертого порядка точности:

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

Замечание. Применение метода (14.70) к решению задачи о вычислении интеграла (14.36) порождает формулу Симпсона

Таким образом, классический метод Рунге-Кутты четвертого порядка точности (14.70) можно рассматривать как аналог формулы Симпсона, отвечающий решению задачи Коши.

Пример 14.15. Про демонстрируем работу метода Рунге-Кутты четвертого порядка точности применительно к решению «задачи Коши (14.45). В этом случае расчетные формулы принимают вид

Найденные с шагом приближенные значения решения и их погрешности приведены в табл. 14.4.

Таблица 14.4 (см. скан)

5. Обсуждение методов Рунге-Кутты.

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

Увеличивая число вспомогательных точек, можно построить методы Рунге-Кутты любого порядка точности Однако уже при

Эти методы используются довольно редко. Это объясняется как чрезмерной громоздкостью получающихся вычислительных формул, так и том, что преимущества методов высокого порядка точности над методами, в которых проявляются либо в тех задачах, где нужна очнь высокая точность и используются ЭВМ высокой разрядности, либо в тех задачах, где решение очень гладкое. Кроме того, методы Рунге-Кутты высокого порядка точности часто оказываются менее эффективными по сравнению с методами Адамса того же порядка точности (см. § 14 7).

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

Эти методы имеют ряд преимуществ перед явными методами, однако это достигается за счет существенного усложнения вычислительного алгоритма, так как на каждом шаге необходимо решать систему нелинейных уравнений. В настоящее время неявные методы Рунге-Кутты применяются в основном для решения так называемых жестких задач (см. § 14 11).

6. Автоматический выбор шага.

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

Интуитиьно ясно, что на участках плавного изменения решения счет можно вести с достаточно крупным шагом. В то же время на тех участках, где происходят резкие изменения поведения решения, необходимо выбирать мелкий шаг интегрирования. Обычно начальное значение шага задает пользователь. Далее шаг интегрирования меняется в соответствии с величинои получаемой в ходе вычислений оценки локальной погрешности. Само по себе изменение шага для методов Рунге-Кутты (впрочем, как и для всех других одношаговых методов) не представляет сложности. Действительная проблема состоит в том, как оценить локальную погрешность и выбрать очередной шаг интегрирования.

Один из распространенных подходов состоит в использовании правила Руте (правила двойною пересчета) Пусть значение в точке

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

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

Вычитая из равенства (14.72) равенство (14.73), получим формулу

Сравнение ее с (14.73) приводит к приближенному равенству

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

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

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

7. Влияние вычислительной погрешности.

Влияние погрешностей на результат вычислений с помощью явных методов Рунге - Кутты примерно таково же, как и для метода Эйлера (см. § 14.4). Однако для них Кроме того, высокая точность методов позволяет вести интегрирование со сравнительно большим шагом и поэтому влияние вычислительной погрешности обычно бывает несущественным.

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

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

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

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

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

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

Задание

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

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

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

Что нужно сделать? Нужно найти и построить ломаную , которая приближает график функции на промежутке . Поскольку длина этого промежутка равна единице, а шаг составляет , то наша ломаная будет состоять из 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 частей». В этом случае нужно найти шаг разбиения , после чего придерживаться обычной схемы решения. Кстати, начальное условие должно быть такого вида: , то есть «икс нулевое», как правило, совпадает с левым концом отрезка. Образно говоря, ломаная всегда «выходит» из точки .

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

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

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

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

Методы Рунге-Кутты – это группа методов, широко применяемых на практике для решения ОДУ. В этих методах при вычислении значения искомой функции в очередной точке х i+1 используется информация о предыдущей точке х i , y i . Методы различаются объемом вычислений и точностью результата.

Порядок метода Рунге-Кутты определяется кратностью вычисления значения производной искомой функции f(x,y) на каждом шаге. В соответствии с этим метод Эйлера является методом Рунге-Кутты первого порядка, поскольку для получения очередного значения y i +1 функция f(x) вычисляется один раз в предыдущей точке х i , y i . В методах Рунге-Кутты более высоких порядков для вычисления очередного значения искомой функции в точке х i +1 значение правой части уравнения y’= f(x,y) вычисляется несколько раз, количество которых и определяет порядок метода.

Метод Рунге-Кутты 2-го порядка (Усовершенствованный метод Эйлера). Вычисление значения искомой функции в точке х i +1 проводится в два этапа. Сначала вычисляют вспомогательную величину по методу Эйлера :

(6.5.3-1)

Затем значение производной искомой функции в точке (x i +1 ,y i +1) используется для вычисления окончательного значения функции:

(6.5.3-2)

Подставляя (6.5.3-1) в (6.5.3-2), окончательно получим расчетную формулу метода Рунге-Кутты 2 -го порядка:

(6.5.3-3)

Этот метод также называют методом прогноза и коррекций . Сначала находят грубое приближение по методу Эйлера (прогноз), а затем уточненное значение y i +1 (коррекция).

В общем виде формулу (6.5.3-3) можно представить как

(6.5.3-4)

Метод Рунге-Кутты второго порядка имеет наглядную геометрическую интерпретацию (рис. 6.5.3-1). Построение проводится следующим образом: определяется пересечением перпендикуляра, восстановленного из точки x i +1 c касательной L 1 , проведенной к кривой y(x) в предыдущей точке (х i ,y i). Затем в точке проводится прямая L 2 с тангенсом угла наклона, равным . Прямую проводят через точку под углом, тангенс которого находим усреднением значений тангенсов углов наклона L 1 и L 2 . Прямая L проводится параллельно через точку (х i ,y i). Ее пересечение с перпендикуляром, восстановленным из точки х i +1, и дает уточненное значение y i +1 .

Погрешность метода Рунге-Кутты второго порядка связана с величиной шага интегрирования отношением e 2 =C 2 h 3 , где C 2 – произвольная постоянная.

Пример 6.5.3-1. Решить методом Рунге-Кутты второго порядка ОДУ y¢= 2x/y с начальными условиями x 0 = 1 и y 0 = 1 на отрезке и шагом h = 0.2.

Проводя дальнейшее обобщение формул Рунге-Кутты, для решения ОДУ первого порядка можно записать следующее:



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

(6.5.3-5)

Величина n в (6.5.3-4) определяется порядком метода, а коэффициентам a 2 ,a 3 , … ,a n , Р 1 , Р 2 , … ,P n подбирают такие значения, которые обеспечивают минимальную погрешность. Так, для метода Рунге-Кутты четвертого порядка (n=4) получена расчетная формула при следующих коэффициентах: a 2 = a 3 =1/2, a 4 =1, P 1 = P 4 =1/6, P 2 = P 3 =2/6.

Подставив значения коэффициентов в (6.5.3-4), имеем

(6.5.3-6)

Геометрическая интерпретация этого метода очень сложна и потому не приводится.

Погрешность метода Рунге-Кутты четвертого порядка значительно меньше методов первого и второго порядков и пропорциональна величине h (e 4 =C 4 h 5).

Пример 6.5.3-2. Решить методом Рунге-Кутты четвертого порядка ОДУ y¢= 2x/y с начальными условиями x 0 = 1 и y 0 = 1 на отрезке с шагом h = 0,2.

На практике для обеспечения требуемой точности (при использовании любого приближенного метода решения ОДУ ) применяется автоматический выбор шага методом двойного просчета . При этом в каждой точке х i по формуле, соответствующей выбранному методу, производится расчет y i с шагом h (y i (h)) и с шагом h/2 (y i (h /2)). Цель двойного просчета состоит в том, чтобы для каждой точки численного решения эти значения отличались на величину, не превышающую заданной погрешности e. В этом случае общая формула для оценки погрешности решения ОДУ методами Рунге-Кутты имеет следующий вид:

где p – порядок метода Рунге-Кутты . Эта формула называется также правилом Рунге .

Если | y i (h)) - y i (h /2) |< e, то шаг для следующей точки выбирается равным h, иначе шаг уменьшается вдвое и продолжается уточнение y i в точке х i .

Пусть требуется найти решение дифференциального уравнения

y ’ = f (t , y ),

удовлетворяющее начальному условию

y’ (t 0) = y 0 .

Принцип, на котором основан метод Рунге – Кутта, можно пояснить, как и принцип, на котором основан метод Эйлера, с помощью разложения функции в ряд Тейлора

Чтобы удержать в ряде Тейлора член n -го порядка, необходимо вычислить n -ю производную зависимой переменной. При использовании модифицированного метода Эйлера для получения второй производной в конечно-разност-ной форме достаточно было знать наклон кривой на концах рассматриваемого интервала. Чтобы вычислить третью производную в конечно-разностном виде, необходимо иметь значения второй производной, по меньшей мере, в двух точках. Для этого необходимо дополнительно определить наклон кривой в некоторой промежуточной точке интервала h , т. е. между tn и n 1 t + . Очевидно, чем выше порядок вычисляяемой производной, тем больше дополнительных точек потребуется вычислить внутри интервала. Так как существует несколько способов расположения внутренних точек и выбора относительных весов для найденных производных, то метод Рунге – Кутта, в сущности, объединяет целое семейство методов решения дифференциальных уравнений.

Наиболее распространенным из них является метод четвёртого порядка точности , при котором удерживаются все члены ряда Тейлора, включая h 4 . Расчеты при использовании этого классического метода производятся по формулам:

Метод Эйлера и его модификация по сути дела являются методами Рунге – Кутта первого и второго порядка соответственно. Более высокая точность метода Рунге – Кутта позволяет увеличить шаг интегрирования h . Допустимая погрешность на шаге определяет его максимальную величину. В прикладных пакетах программ выбор шага часто осуществляется автоматически. Для этого проводят вычисления сначала с шагом h , а затем – с шагом h /2.

За оценку погрешности вычислений с шагом h /2 можно принять приближенную формулу

где - вычисленное значение с шагом h /2; y n – вычисленное значение с шагом h . Пример: y ’ = xy .

При реализации методов Рунге – Кутта на ЭВМ для каждой точки проводят двойной счет. Если полученные при этом значения удовлетворяют выражению (5.4), то для точки t n+1 шаг удваивают, в противном случае уменьшают вдвое. Однако необходимо помнить, что выражение (5.4) приближенное и при неблагоприятных условиях можно получить совершенно ошибочные результаты, хотя в большинстве случаев дело обстоит благополучно.