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

(4.3)

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

……………. (4.4)

Следовательно, решение (4.3) сводится к ре­шению системы дифференциальных уравне­ний первого порядка( 4.4).

Метод Эйлера — Коши — простейший ме­тод первого порядка для численного инте­грирования дифференциальных уравнений. Он реализуется следующей рекуррентной формулой:

(4.5)

гдеh — шаг интегрирования (приращение переменной х). Этот метод обладает боль­шой погрешностью и имеет систематическое накопление ошибок. Погрешность метода R~(h2) т. е. пропорциональна h2.

Метод Эйлера — Коши с итерациями за­ключается в вычислении на каждом шаге начального значения

(4.6)

Затем с помощью итерационной формулы

(4.7)

решение уточняется. Итерации проводят до тех пор, пока не совпадает заданное число цифр результата на двух последних шагах итераций. Погрешность метода R ~ (h3). Обычно число итераций не должно превы­шать 3—4, иначе нужно уменьшить шаг h.

Модифицированный метод Эйлера второго порядка реализуется следующими рекур­рентными формулами:

(4.8)

где .

Метод дает погрешность R~(h3) и имеет меньшее время вычислений, поскольку вместо нескольких итераций производится вычисление только одного значения

Метод трапеций — одна из модификаций метода Эйлера второго порядка. Он реали­зуется применением на каждом шаге формулы

(4.9)

где , , и дает погрешность R~(h3). Этот ме­тод относится к общим методам Рунге - Кутта.

Метод Рунге — Кутта четвертого порядка является наиболее распространенным мето­дом решения систем () при шаге h = const. Его достоинством является высокая точность — погрешность R~(h5) — и мень­шая склонность к возникновению неустойчи­вости решения. Алгоритм реализации метода Рунге — Кутта заключается в циклических вычислениях Yj(i+1) на каждом i+1 шаге по следующим формулам:

(4.10)

При переходе от одной формулы к дру­гой задаются или вычисляются соответствую­щие значения хи Yj; и находятся по под­программе значения функций Fj (х, Yj,).Решение одного дифференциального урав­нения методом Рунге — Кутта производится по приведенным формулам, если в них опустить индекс j, а из алгоритма исклю­чить циклы.. Последнее резко упрощает программу и позволяет получить минималь­но возможное время счета.

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

Метод Рунге — Кутта для дифферен­циального уравнения второго порядка вида

(4.11)

имеющий погрешность R~(h5),реализуется с помощью следующих формул:

(4.12)

Перед началом вычислений надо задать шаг h и начальные значения хо, у(хо)=уо и у' (х0) =y0′.

Автоматическое изменение шага в ходе решения систем дифференциальных уравне­ний необходимо, если решение требуется получить с заданной точностью. При высо­кой точности (погрешность ε=E=10-3) и решении в виде кривых с сильно разли­чающейся крутизной автоматическое измене­ние шага обеспечивает уменьшение общего числа шагов в несколько раз, резко умень­шает вероятность возникновения числовой неустойчивости, дает более равномерное рас­положение точек графика кривых (решений) при их выводе на печать.

Метод Рунге — Кутта с автоматическим изменением шага заключается в том, что после вычисления yj(i+1) с шагом h все вы­числения проводятся повторно с шагом h/2. Полученный результат y*j(i+1) сравнивается с yj(i+1). Если с |yj(i+1) ̶ y*j(i+1)|<е, вычис­ления продолжают с шагом h, в противном случае шаг уменьшают. Если это неравен­ство слишком сильное, шаг, напротив, увели­чивают. При той же погрешности R~(hs) лучшие результаты дает описанный ниже метод.

Метод Рунге — Кутта Мерсона с авто­матическим изменением шага обеспечивает приближенную оценку погрешности на каж­дом шаге интегрирования. Погрешность интегрирования имеет порядок п5. Этот метод реализуется следующим алго­ритмом.

1. Задается число уравнений N, погреш­ность ε= Е.начальный шаг интегрирования h = H и начальное значение х=х0, у1(x0)=у0, y20)=y2, …, yN(x0)=yN

2. С помощью 5 циклов с управляющей переменной j= 1, 2, ...., N вычисляются коэф­фициенты:

3. Находятся (в последнем цикле) зна­чение

и погрешность

4. Проверяется выполнение условий

Если первое условие не выполняется, де­лится шаг h на 2 и повторяются вычисления с п. 2, восстановив начальные значения Yji. Если это условие выполняется и выпол­няется второе условие, значения xi+1=xi+h выводятся на печать. Если второе условие не выполняется, шаг hувеличи­вается вдвое и вычисления опять повто­ряются с п. 2.

Таким образом, Yj(i+1) выводится на пе­чать только при одновременном выполнении условий этого пункта.

Как отмечалось, погрешность Rj(i+1) на каждом шаге метода Рунге — Кутта — Мер­сона оценивается приближенно. При решении нелинейных дифференциальных уравнений истинная погрешность может отличаться в несколько раз от заданной E.

Метод Рунге — Кутта — Фельберга с ав­томатическим изменением шага дает более точную оценку погрешности на каждом шаге и реализуется последовательным цикличе­ским вычислением по следующим формулам :

Погрешность

в этом методе — разность приращений Yj(i+1), вычисленных по двум формулам: порядка n = 4 () и порядка n+1. Последняя формула не приводится, но использована для вычисления Rj(i+1) Если Rj(i+1) >E, шаг n уменьшается вдвое, если Rj(i+1) < E/20, он увеличивается вдвое. Этот метод имеет четвер­тый порядок.

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

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

Методы прогноза и коррекции — разно­видности многошаговых методов, при кото­рых решение вначале проводится по формуле прогноза, а затем уточняется по формуле коррекции.

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

Задание на лабораторную работу

Индивидуальные варианты для выполнения лабораторной работы приведены на листе «Задания». Ввести свой номер варианта в окно «Вариант» на листе «Исходные данные»

В соответствии с вариантом задания подготовить аналитическое решение дифференциального уравнения для дальнейшей оценки погрешности численных методов. Решение дифференциального уравнения (4.2) для начальных условий () имеет вид:

,

где ,

Вариант решения уравнения приведен на рис. 4.2.

 

Рис. 4.2 Аналитическое решение дифференциального

уравнения

 

Последовательно для различных численных методов составить алгоритмы численного решения дифференциального уравнения в соответствии с формулами (). Используя средства таблиц Microsoft Excel или VBA Microsoft Excel подготовить процедуры решения. Вычислить по разработанным процедурам значения u2(t). Построить таблицы решения и графики. Сравнить результаты с аналитическим решением.