ЧМ_Билеты. 1. Основные характеристики численных методов. Взаимосвязь характеристик
Скачать 1.85 Mb.
|
Интегрирование систем ОДУ в системе Mathcad Для интегрирования систем ОДУ в Mathcad введён ряд функций Приведём только некоторые функции дающие решения для систем ОДУ представленных в обычной форме Коши: Rkadapt(y, x1, x2, n, D) – возвращает матрицу решений адаптивным методом Рунге-Кутта на интервале от x1 до x2 с переменным шагом при минимальном числе шагов n причем правые части уравнений в символьной форме задаются в векторе D а начальные условия – в векторе y; rkfixed(y, x1, x2, n, D) – возвращает матрицу решений методом Рунге-Кутта на интервале от x1 до x2 при фиксированном числе шагов n причем правые части уравнений записаны в символьном векторе D а начальные условия – в векторе y 42. Пример алгоритма интегрирования ОДУ методом прогноза и коррекции. Алгоритмы методов прогноза и коррекции Порядок построения алгоритма численного интегрирования ОДУ методом прогноза и коррекции с разгоном одношаговым методом рассмотрим на примере. Первым вариантом метода Адамса (формулы (15)) с разгоном методом РК4 (формулы (7)) найти решение ОДУ 0 16 ' '' x e y y y в интервале 4 , 0 0 к x x с начальными условиями 1 ) ( , 0 ) ( 0 ' 0 x y x y Разрешаем уравнение относительно старшей производной x e y y y 16 ' '' , вводим новые переменные ' 1 0 , y y y y и исходное уравнение сводим к нормальной системе ДУ первого порядка: 83 16 , 0 1 ' 1 1 ' 0 x e y y y y y Разгон выполняется однократным использованием формул: ). 2 2 ( 6 ), 2 2 ( 6 4 3 2 1 1 1 , 1 4 3 2 1 0 1 , 0 l l l l h y y k k k k h y y m m m m )). ( exp( ) ( 16 ) ( , )), 2 ( exp( ) 2 ( 16 ) 2 ( , 2 )), 2 ( exp( ) 2 ( 16 ) 2 ( , 2 ), exp( 16 , 3 01 3 1 4 3 1 4 2 0 2 1 3 2 1 3 1 0 1 1 2 1 1 2 0 1 1 1 1 h x hk y hl y l hl y k h x k h y l h y l l h y k h x k h y l h y l l h y k x y y l y k m m m m m m m m m m m m m m m m Теперь необходимо перейти к методу прогноза и коррекции, где в прогнозе используются начальные условия и узел с решением, полученным в результате разгона. Для этого нужно соответствующим образом переименовать переменные, что позволит связать разгон с методом прогноза и коррекции и построить алгоритм. В начальных условиях имена переменных m m y y 1 0 , заменим на 1 0 , y y . Результаты разгона 1 , 1 1 , 0 , m m y y переименуем в , 10 00 y y Связь полученных через переименование имен и имен переменных, которые будут использованы для прогноза и коррекции, представлена на рис.8.6. 84 Рис.8.6 – связь начальных условий, разгона, прогноза и коррекции Теперь формулы для прогноза и коррекции будут иметь вид: )))). ( exp( 16 ( )) exp( 16 ( 3 ( 2 ), 3 ( 2 0 1 00 10 10 100 1 10 00 000 h x y y x y y h y y y y h y y ))). exp( 16 ( ))) ( exp( 16 (( 2 ), ( 2 00 10 000 100 10 11 10 100 00 01 x y y h x y y h y y y y h y y Полученные выше формулы позволяют построить алгоритм (рис.8.7) для выполнения задания. 85 начало ) 0 ( ' ), 0 ( , , , 0 x y x y h xk x ) 0 ( ' 1 ), 0 ( 0 , 0 x y y x y y x x 1 , 0 , y y x h x l l l l h y y k k k k h y y e hk y hl y l hl y k e k h y l h y l l h y k e k h y l h y l l h y k e y y l y k h x h x h x x ), 4 3 2 2 2 1 ( 6 1 10 ), 4 3 2 2 2 1 ( 6 0 00 , ) 3 0 ( 16 ) 3 1 ( 4 , 3 1 4 , ) 2 2 0 ( 16 ) 2 2 1 ( 3 , 2 2 1 3 , ) 1 2 0 ( 16 ) 1 2 1 ( 2 , 1 2 1 2 , 0 16 1 1 , 1 1 ) ( ) 2 / ( ) 2 / ( а 86 43. Адаптивный алгоритм интегрирования ОДУ методом прогноза и коррекции. Рис.8.7 – алгоритм численного интегрирования ДУ второго порядка методом прогноза и коррекции (первый вариант метода Адамса) с разгоном методом РК4 а 10 , 00 , y y x h x e y y e y y h y y y y h y y e y y e y y h y y y y h y y x h x h x x )), 00 16 10 ( ) 000 16 100 (( 2 10 11 ), 10 100 ( 2 00 01 )), 0 16 1 ( ) 00 16 10 ( 3 ( 2 10 100 ), 1 10 3 ( 2 00 000 ) ( ) ( 2 / h xk x 11 10 , 01 00 , 10 1 , 00 0 y y y y y y y y конец нет 87 ааа Рис.8.8 – адаптивный алгоритм численного интегрирования ДУ второго порядка методом прогноза и коррекции (первый вариант метода Адамса) с разгоном методом РК4 начало ) 0 ( ' ), 0 ( , , , 0 , x y x y h xk x ) 0 ( ' 1 ), 0 ( 0 , 0 x y y x y y x x 1 , 0 , y y x h x y y y y l k ..., 1 10 ..., 0 00 ..., 4 ..., ..., 1 10 , 00 , y y x 10 100 ..., 00 000 y y y y прогноз 0 k шаге на коррекций во кол текущее k k y y y y ..., 10 11 ..., 00 01 10 11 , 00 01 y y или y y да 2 k 2 k h x 2 / h xk x конец да да 11 10 , 01 00 , 10 1 , 00 0 y y y y y y y y коррекция 2 * h 2 / h 11 1 , 01 0 y y y y да 4 РК методом разгон 88 44. Методы Рунге-Кутта интегрирования ОДУ. Пример алгоритма. Метод Рунге-Кутта третьего порядка РК3 Порядок погрешности метода - 4 h Формулы метода: 2 , , 2 , 2 / , , , 4 * 6 2 1 3 1 2 1 3 2 1 1 hk hk y h x f k hk y h x f k y x f k k k k h y y m m m m m m m m (6) Метод Рунге-Кутта четвертого порядка РК4 Наиболее распространен и имеет порядок погрешности h 5 . Формулы метода: ). , ( ), 2 / , 2 / ( ), 2 / , 2 / ( ), , ( , 2 2 * 6 / 3 4 2 3 1 2 1 4 3 2 1 1 hk y h x f k hk y h x f k hk y h x f k y x f k k k k k h y y m m m m m m m m m m (7) Все вышеприведенные методы называются одношаговыми так как для вычисления 1 m y достаточно знать лишь m y - значение решения на предыдущем шаге Это позволяет использовать их при переменном шаге интегрирования Алгоритмы одношаговых методов Рунге-Кутта Поскольку алгоритмы одношаговых методов однотипны, то достаточно рассмотреть один пример, чтобы построить алгоритм для любого другого задания. Методом РК3 решить систему ОДУ 8 ) ( , 2 ) ( , 8 , 0 ' , ' 0 0 0 x z x y при x x интервале в z y z z z y y y k Введем новые переменные , 1 0 z y y y Тогда система примет вид: 89 ). /( ), /( 1 0 1 ' 1 1 0 0 ' 0 y y y y y y y y Используем формулы (6) для метода РК3: ). 2 2 /( ) 2 ( ), 2 2 /( ) 2 ( ), 2 2 /( ) 2 ( ), 2 2 /( ) 2 ( ), /( ), /( 2 1 1 2 1 0 2 1 1 3 2 1 1 2 1 0 2 1 0 3 1 1 1 0 1 1 2 1 1 1 0 1 0 2 1 0 1 1 1 0 0 1 hl hl y hk hk y hl hl y l hl hl y hk hk y hk hk y k l h y k h y l h y l l h y k h y k h y k y y y l y y y k m m m m m m m m m m m m m m m m m m ). 4 ( 6 ), 4 ( 6 3 2 1 1 1 , 1 3 2 1 0 1 , 0 l l l h y y k k k h y y m m m m 90 Рис.8.5 – алгоритм численного интегрирования системы ДУ методом РК3 начало ) ( ), ( , , , 0 0 0 x z x y h xk x ) ( 1 ), ( 0 , 0 0 0 x z y x y y x x 1 , 0 , y y x h x l l l h y y k k k h y y hl hl y hk hk y hl hl y l hl hl y hk hk y hk hk y k l h y k h y l h y l l h y k h y k h y k y y y l y y y k ), 3 2 4 1 ( 6 1 1 ), 3 2 4 1 ( 6 0 0 ), 2 2 1 1 2 2 1 0 /( ) 2 2 1 1 ( 3 ), 2 2 1 1 2 2 1 0 /( ) 2 2 1 0 ( 3 ), 1 2 1 1 2 0 /( ) 1 2 1 ( 2 ), 1 2 1 1 2 0 /( ) 1 2 0 ( 2 ), 1 0 /( 1 1 ), 1 0 /( 0 1 2 / h xk x да конец |