1. Знакомство с численными (одношаговыми и многошаговыми) методами решения обыкновенных дифференциальных уравнений первого порядка.
2. Разработка численной ММ, реализующей один из методов.
3. Оценка точности полученной ММ при помощи средств MATLAB.
Обыкновенным дифференциальным уравнением (ОДУ) первого порядка называется уравнение , где F – известная функция трех переменных, определенная в области ОÌR3; x – неизвестная переменная, заданная на отрезке [a,b]; y=y(x) – неизвестная функция; y¢=y¢(x) – ее производная.
Функция y(x) называется решением дифференциального уравнения (ДУ), если она при всех xÎ[a,b] удовлетворяет уравнению . График решения ОДУ называют интегральной кривой дифференциального уравнения. Определение единственного из бесконечно большого числа решений y=y(x,С), где С – произвольная константа, становится возможным при задании начальных условий y(xo)=yo . В целом, такая задача ( или y¢=f(x,y), xÎ[a,b], y(xo)=yo) называется задачей Коши или задачей с начальными условиями.
Численный подход решения ОДУ предполагает использование вместо непрерывного пространства области определения искомой функции y(x) его дискретной модели. В качестве такой модели может выступать либо совокупность узлов сетки – метод конечных разностей (МКР), либо совокупность подобластей (конечных элементов) – метод конечных элементов (МКЭ). Тогда решение y(x) ищут в виде таблицы (МКР) или в виде набора аппроксимирующих функций (МКЭ). В свою очередь в рамках конечно-разностной схемы для функции одного аргумента можно выделить две группы методов: одношаговые и многошаговые. Рассмотрим подробнее эти методы.
Одношаговые методы основаны на информации о значении функции и аргумента на одном предыдущем шаге (узле) и обеспечивают автоматическое начало вычислений (самостартование), а также при необходимости изменение шага в процессе вычислений. Эти методы при вычислении функции в очередном i+1-ом узле используют ее разложение в ряд Тейлора в окрестности хo:
(1)
При малой величине h слагаемыми высших порядков можно пренебречь. В зависимости от числа последних можно выделить: метод Эйлера, модифицированный метод Эйлера, семейство методов Рунге-Кутты, в том числе с автоматическим изменением шага и др.
Метод Эйлера имеет 1-й порядок точности с ошибкой на каждом шаге интегрирования порядка h2. Тогда пренебрегая в (1) слагаемыми при h2 и выше, при замене исходного непрерывного отрезка [a,b] на совокупность узлов сетки {xi}, с учетом определения yi¢ из заданного дифференциального уравнения получим
.
Модифицированный метод Эйлера является методом 2-го порядка точности с ошибкой порядка h3 и сохраняет в ряде Тейлора слагаемые при h и h2. При этом вторая производная аппроксимируется разностью y¢¢»Dy¢/Dx=(y¢i+1-y¢i)/h, тогда
,
где – уточненное значение функции в i+1-м узле; – предварительное (прогнозное), которое определяется по методу Эйлера.
Графическая интерпретация метода Эйлера представлена на рис. 1а, а его модификации на рис. 1б, где ai – угол наклона касательной к искомой функции y в точке xi (y¢i=tgai), aср=(ai+ai+1)/2, – точное значение функции в в i+1-м узле, e М – погрешность метода.
y y
e Мe М
Dy Dy
a ia ср
Dx=hDx=h
xi xi+1 x xi xi+1 x
а) б)
Рис. 1. Интерпретация метода Эйлера и его модификации
Семейство методов Рунге-Кутты относится к методам 4-го порядка точности с ошибкой . Повышение точности обеспечивается за счет сохранения еще большего числа членов ряда Тейлора. Тогда в обобщенном виде для функции одной переменной можно записать [2]
где , , …,
,
aj, pj, bjn - фиксированные числа ( ).
При m=s=4 (s – порядок погрешности метода) наиболее употребительной для данного семейства является следующая совокупность расчетных формул:
,
где ;
.
Для дальнейшего повышения эффективности метода может быть использовано автоматическое изменение шага. При этом после вычисления с шагом h все вычисления повторяются с шагом h/2. При выполнении условия | - |<e переходят к определению с прежним шагом, в противном случае – шаг уменьшают, если условие слишком сильное (<<e) – шаг увеличивают.
Многошаговые методы базируются на использовании значений функции и аргумента на нескольких предыдущих шагах (узлах). В сравнении с одношаговыми методами многошаговые алгоритмы могут быть более эффективными при той же точности или более точными при том же объеме вычислений. Однако при их реализации возникают и серьезные затруднения:
1) данные методы не обладают свойством самостартования, поэтому перед началом вычислений необходимо найти определенное количество значений искомой функции в начале отрезка интегрирования каким-либо одношаговым методом;
2) многошаговые методы (как они были первоначально описаны) могут применяться только с постоянным шагом h;
3) никакой многошаговый метод не может быть абсолютно устойчивым, если его порядок выше второго.
Ряд разработанных алгоритмов позволяет создавать численные модели, обходящие трудности, в том числе предложенный Нордсиком подход, получивший название многозначного метода, а также семейство жестко-устойчивых методов (формул) Гира [3].
В обобщенном виде, например, для трехшагового метода можно записать [3]
.
Константы ai, bi подбираются априори. Если b0=0, то метод будет явным, ненулевое b0 приводит к неявному методу. Аналогично описываются k-шаговые методы общего вида.
Метод Адамса-Бэшфорта является явным четырехшаговым методом 4-го порядка точности с ошибкой порядка h5 и определяется выражением
.
Метод Адамса-Бэшфорта-Моултона является развитием предыдущего, реализующий так называемую схему прогноза и коррекции, в которой значение функции в очередной точке вначале определяется при помощи явной прогнозной формулы, а затем уточняется по неявной формуле коррекции
(формула прогноза);
(формула коррекции).
Трехшаговый метод Гира эквивалентен одному из его четырехзначных методов и реализуется при помощи следующей неявной формулы
.
Погрешность рассмотренных методов e M может быть оценена с помощью правила Рунге [4], в соответствии с которым для заданной области интегрирования проводят вычисления с шагом h (i=1,N), а затем с шагом h/2 (i=1,2N-1). Тогда
, (i=1,N).
Краткая оценка методов. Одношаговые методы Рунге-Кутты просты, легко программируемы и для не жестких задач при обычных требованиях к точности (»10-5) не уступают многошаговым и многозначным методам. Однако эффективно решать жесткие задачи, которые чаще всего встречаются на практике, эти методы не способны. Еще одна проблема связана с выводом решения в случае автоматического выбора шага слишком большой длины. Программы многошаговых или многозначных методов не связаны подобными ограничениями и могут быть ориентированы как для решения жестких, так и нежестких задач [3].