Дифференциальные уравнения (численные методы)
Рассматриваем только решение задачи Коши. Система дифференциальных уравнений или одно уравнение должны быть преобразованы к виду
(7)
где ,–n-мерные векторы; y – неизвестная вектор-функция; x – независимый аргумент, . В частности, еслиn = 1, то система превращается в одно дифференциальное уравнение. Начальные условия задаются следующим образом: , где.
Если в окрестности точкинепрерывна и имеет непрерывные частные производные поy, то теорема существования и единственности гарантирует, что существует и при том только одна непрерывная вектор-функция , определенная внекоторой окрестности точки , удовлетворяющая уравнению (7) и условию.
Обратим внимание на то, что окрестность точки , где определено решение, может быть весьма малой. При подходе к границе этой окрестности решение может уходить в бесконечность, колебаться, с неограниченно увеличивающейся частотой, в общем, вести себя настолько плохо, что оно не может быть продолжено за границу окрестности. Соответственно, такое решение не может быть отслежено численными методами на большем отрезке, если таковой задан в условии задачи.
Решением задачи Коши на [a; b] является функция. В численных методах функция заменяется таблицей (табл. 1) .
Таблица 1
|
|
|
| |
|
|
|
|
|
Здесь ,. Расстояние между соседними узлами таблицы, как правило, берется постоянным:,.
Бывают таблицы и с переменным шагом. Шаг таблицы определяется требованиями инженерной задачи и не связан с точностью нахождения решения.
Еслиy– вектор, то таблица значений решения примет вид табл. 2.
Таблица 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В системе MATHCAD вместо таблицы используется матрица, причем она является транспонированной по отношению к указанной таблице.
Решить задачу Коши с точностью ε означает получить в указанной таблице значения (числа или векторы),, такие, что, где– точное решение. Возможен вариант, когда решение на отрезок, заданный в задаче, не продолжается. Тогда нужно ответить, что на всем отрезке задача не может быть решена, и нужно получить решение на отрезке, где оно существует, сделав этот отрезок по возможности больше.
Следует помнить, что точное решение нам не известно (иначе зачем применять численный метод?). Оценкадолжна быть обоснована из каких-то других соображений. Как правило, стопроцентной гарантии, что оценка выполняется, получить не удается. Поэтому используются алгоритмы оценки величины, которые оказываются эффективными в большинстве инженерных задач.
Общий принцип решения задачи Коши следующий. Отрезок [a; b] разбивается на ряд отрезков узлами интегрирования . Число узловk не обязано совпадать с числом узлов m итоговой таблицы значений решений (табл.1,2). Как правило, k > m. Для простоты расстояние между узлами будем считать постоянным, ;h называется шагом интегрирования. Затем, по определенным алгоритмам, зная значения приi < s , вычисляем значение . Чем меньше шагh, тем меньше значение будет отличаться от значения точного решения. Шагh в этом разбиении уже определяется не по требованиям инженерной задачи, а по требуемой точности решения задачи Коши. Кроме того, он должен выбираться так, чтобы на одном шаге табл. 1, 2 укладывалось целое число шагов h. В этом случае значения y, полученные в результате счета с шагом h в точках , используются соответственно в табл. 1 или 2.
Простейшим алгоритмом решения задачи Коши для уравнения (7) является метод Эйлера. Формула расчета такова:
(8)
Посмотрим, как оценивается точность находимого решения. Предположим, что – точное решение задачи Коши, а также, что, хотя это почти всегда не так. Тогда, где константаC зависит от функциив окрестности точки. Таким образом, на одном шаге интегрирования (нахождения решения) мы получаем ошибку порядка. Так как шагов приходится сделать, то естественно ожидать, что суммарная ошибка в последней точкебудет порядка, т.е. порядкаh. Поэтому метод Эйлера называют методом первого порядка, т.е. ошибка имеет порядок первой степени шага h. В действительности же на одном шаге интегрирования можно обосновать следующую оценку. Пусть – точное решение задачи Коши с начальным условием. Ясно, чтоне совпадает с искомым точным решениемисходной задачи Коши уравнения (7). Однако при малыхh и «хорошей» функции эти два точных решения будут отличаться мало. Формула остаточного члена формулы Тейлора гарантирует, что, это и дает ошибку шага интегрирования. Итоговая ошибка складывается не только из ошибок на каждом шаге интегрирования, но и из отклонений искомого точного решенияот точных решений,, причем эти отклонения могут становиться очень большими. Однако итоговая оценка ошибки в методе Эйлера при «хорошей» функциивсе равно имеет вид,.
При применении метода Эйлера счет идет следующим образом. По заданной точности ε определяем ориентировочно шаг . Определяем число шагови снова ориентировочно выбираем шаг. Затем опять корректируем его в сторону уменьшения, чтобы на каждом шаге табл. 1 или 2 укладывалось целое число шагов интегрирования. Получаем шагh. По формуле (8), зная и, находим. По найденному значениюинаходими так далее.
Полученный результат может не иметь желаемой точности, и, как правило, не будет ее иметь. Поэтому уменьшаем шаг в два раза и снова применяем метод Эйлера. Сравниваем результаты первого применения метода и второго в одинаковых точках . Если все расхождения меньше заданной точности, то можно считать последний результат счета ответом к задаче. Если нет, то шаг снова уменьшаем вдвое и еще раз применяем метод Эйлера. Теперь сравниваем результаты последнего и предпоследнего применения метода и т.д.
Метод Эйлера применяется сравнительно редко из-за того, что для достижения заданной точности ε требуется выполнить большое число шагов, имеющее порядок . Однако еслиимеет разрывы или разрывные производные, то методы более высоких порядков будут давать такую же ошибку, как и метод Эйлера. То есть потребуется такой же объем вычислений, как и в методе Эйлера.
Из методов более высоких порядков чаще других используется метод Рунге – Кутты четвертого порядка. В нем вычисления ведутся по формулам
.
Этот метод при наличии непрерывных четвертых производных у функции дает ошибку на одном шаге порядка, т.е. в обозначениях, введенных выше,. В целом на отрезке интегрирования при условии, что точное решение определено на этом отрезке, ошибка интегрирования будет иметь порядок.
Выбор шага интегрирования происходит так же, как было описано в методе Эйлера, за исключением того, что первоначально ориентировочное значение шага выбирается из соотношения , т.е..
В большей части программ, применяемых для решения дифференциальных уравнений, используется автоматический выбор шага. Суть его такова. Пусть уже вычислено значение . Вычисляется значениес шагомh, выбранном при вычислении . Затем выполняются два шага интегрирования с шагом, т.е. добавляется лишний узелв середине между узламии. Вычисляются два значенияив узлахи. Вычисляется величина, гдеp – порядок метода. Если δ меньше точности, заданной пользователем, то полагают . Если нет, то выбирают новый шагh равным и повторяют проверку точности. Если же при первой проверкеδ много меньше заданной точности, то делается попытка увеличить шаг. Для этого вычисляется в узлес шагомh из узла и вычисляетсяс шагом 2h из узла . Вычисляется величина. Еслименьше заданной точности, то шаг 2h считается приемлемым. В этом случае назначают новый шаг ,,. Еслибольше точности, то шаг оставляют прежним.
Нужно учесть, что программы с автоматическим выбором шага интегрирования добиваются достижения заданной точности лишь при выполнении одного шага. Это происходит за счет точности аппроксимации решения, проходящего через точку , т.е. аппроксимации решения. Такие программы не учитывают, насколько решениеотличается от искомого решения. Поэтому нет гарантии, что на всем отрезке интегрирования заданная точность будет достигнута.
Описанные методы Эйлера и Рунге – Кутты относятся к группе одношаговых методов. Это означает, что для вычисления в точкедостаточно знать значениев узле. Естественно ожидать, что если используется больше информации о решении, учитываются несколько предыдущих его значений,и т.д., то новое значениеможно будет найти точнее. Такая стратегия используется в многошаговых методах. Для их описания введем обозначение.
Представителями многошаговых методов служат методы Адамса – Башфорта:
метод первого порядка ;
метод второго порядка ;
метод третьего порядка ;
метод четвертого порядка .
Метод k-го порядка дает локальную погрешность порядка или глобальную – порядка.
Указанные методы относятся к группе экстраполяционных, т.е. новое значение явно выражается через предыдущие. Другой тип – интерполяционные методы. В них на каждом шаге приходится решать нелинейное уравнение относительно нового значения . В качестве примера возьмем методы Адамса –Моултона:
метод первого порядка ;
метод второго порядка ;
метод третьего порядка ;
метод четвертого порядка .
Для применения этих методов в начале счета нужно знать несколько значений (их число зависит от порядка метода). Эти значения нужно получить другими методами, например методом Рунге – Кутты с маленьким шагом (для повышения точности). Интерполяционные методы во многих случаях оказываются более устойчивыми и позволяют делать бόльшие шаги, чем экстраполяционные.
Чтобы не решать в интерполяционных методах нелинейное уравнение на каждом шаге, применяют предиктор-корректорные методы Адамса. Суть заключается в том, что сначала применяется на шаге экстраполяционный метод и полученное значение подставляется в правую часть интерполяционного метода. Например, в методе второго порядка
- Оглавление предисловие
- Основные понятия и вычислительные методы (теоретическая часть)
- Метод Гаусса
- Метод lu-разложения
- Обращение матрицы и вычисление определителя
- Число обусловленности матрицы (системы уравнений)
- Вычислительные методы для решения нелинейных уравнений
- Метод половинного деления
- Метод Ньютона (метод касательных)
- Метод секущих
- Метод итераций
- Преимущества и недостатки методов
- Методы решения систем нелинейных уравнений
- Метод Ньютона для систем уравнений
- Метод итераций для систем уравнений
- Некоторые сведения о полиномах и их корнях
- Полиномиальные уравнения
- Вычисление интегралов
- Дифференциальные уравнения (численные методы)
- Жесткие системы дифференциальных уравнений
- Аналитическое решение систем линейных дифференциальных уравнений с постоянными коэффициентами
- Нахождение экстремумов функции нескольких переменных
- Метод покоординатного спуска
- Симплекс-метод
- Метод наискорейшего спуска
- Метод Ньютона
- Преобразования Фурье и Лапласа
- Применение системы mathcad для решения вычислительных задач (практическая часть)
- Исправления
- Продолжение простейших вычислений
- Точность
- Символьные вычисления
- Переменные
- Функции пользователя
- Операции математического анализа
- Построение графиков функций одного переменного
- Задания для самостоятельной работы
- Матрицы
- Векторы
- Системы линейных уравнений
- Число обусловленности матрицы
- Собственные числа и собственные векторы матрицы
- Графики функций двух переменных
- Задания для самостоятельной работы
- Нахождение корней нелинейного уравнения
- Решение систем нелинейных уравнений
- Корни многочлена
- Наибольший общий делитель двух многочленов
- Кратные корни
- Результант
- Задания для самостоятельной работы
- Полиномиальные уравнения
- Вычисление определенных интегралов
- Решение дифференциальных уравнений
- Задания для самостоятельной работы
- Системы дифференциальных уравнений
- Решение жестких систем дифференциальных уравнений
- Решение линейных систем дифференциальных уравнений с постоянными коэффициентами
- Задания для самостоятельной работы
- Нахождение экстремумов функции
- Экстремумы функции многих переменных
- Преобразования Фурье и Лапласа
- Дискретное преобразование Фурье
- Задания для самостоятельной работы