(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, y2(х0)=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). Построить таблицы решения и графики. Сравнить результаты с аналитическим решением.