ТЕОРИЯ И ИСТОРИЯ ОБРАЗОВАТЕЛЬНОЙ ПРАКТИКИ

advertisement
УДК 519.622
ЯВНО-НЕЯВНЫЙ АЛГОРИТМ С ПРИМЕНЕНИЕМ СХЕМ
ЧЕТВЕРТОГО ПОРЯДКА1
А.Е. Новиков
Введение. Во многих важных приложениях возникает проблема численного
решения задачи Коши для обыкновенных дифференциальных уравнений. В современных методах решения жестких задач при вычислении стадий применяется LU-разложение матрицы Якоби. В случае достаточно большой размерности
исходной системы быстродействие алгоритма интегрирования фактически полностью определяется временем декомпозиции этой матрицы. Для повышения
эффективности расчетов в ряде алгоритмов используется замораживание матрицы Якоби, то есть применение одной матрицы на нескольких шагах интегрирования [1]. В алгоритмах интегрирования на основе известных безытерационных численных схем, к которым относятся методы типа Розенброка [2] и их
различные модификации, проблема замораживания более трудная. Некоторым
аналогом замораживания матрицы Якоби является применение в расчетах алгоритмов интегрирования на основе явных и L-устойчивых методов с автоматическим выбором численной схемы [3]. Эффективность алгоритма может быть
повышена за счет расчета переходных участков явным методом. В качестве
критерия выбора эффективного метода применяется неравенство для контроля
устойчивости. Здесь на основе L-устойчивого (4,2)-метода и схемы Мерсона
четвертого порядка точности построен алгоритм переменной структуры. Приведены результаты расчетов.
Исследование (4,2)-метода. Рассмотрим задачу Коши вида
y  f ( y ) , y (t0 )  y0 , t0  t  tk ,
(1)
где y и f − вещественные N-мерные вектор-функции, t − независимая переменная. Для решения задачи (1) рассмотрим численную формулу [4]
yn1  yn  p1k1   p1k4 ,
Dn  E  ahf n , Dn k1  hf ( yn ) , Dn k2  k1 ,
(2)
Dn k3  hf ( yn  β31k1  β32 k2 )  α32 k2 , Dn k4  k3  α42 k2 ,
где h – шаг интегрирования, a, pi, βij и αij − числовые коэффициенты, ki, 1≤i≤4, −
стадии метода, E − единичная матрица, f′n=∂f/∂y − матрица Якоби задачи (1).
Подставим разложения ki в виде рядов Тейлора в первую формулу (2). Полагая
yn= y(tn) и сравнивая полученное представление с рядом Тейлора для точного
решения, запишем условия четвертого порядка точности
1) p1  p2  (1  α32 ) p3  (1  α32  α 42 ) p 4  1 ,
2) ap1  2ap2  (a  β31  β32  3aα32 ) p3 
(2a  β31  β32  4aα32  3aα42 ) p4  05 ,
3) a 2 p1  3a 2 p2  (a 2  2aβ31  3aβ32  6a 2α32 ) p3 
1
Работа выполнена при частичной финансовой поддержке РФФИ (проект 14-01-00047)
1
(3a 2  3aβ31  4aβ32  10a 2α32  6a 2α42 ) p4  1 6 ,
4) a3 p1  4a3 p2  (a3  3a 2 β31  6a 2 β32 
10a3α32 ) p3  (4a3  6a 2 β31  10a 2 β32 
20a3α32  10a3α42 ) p4  1 24 ,
5) ( β31  β32 )2 ( p3  p4 )  13 ,
6) a( β31  β32 )( β31  2 β32 )( p3  p4 )  18 ,
(3)
7) a( β31  β32 )2 (05 p3  p4 )  1 24 ,
8) ( β31  β32 )3 ( p3  p4 )  1 4 .
Применяя (2) для решения тестовой задачи y  λy , y (0)  y0 , t  0 , имеем условие L-устойчивости численной формулы (2) вида a(a  p1 )  ( β31  a) p3  0 .
Исследуя совместность этого соотношения и (3), запишем
32a  4
76a 2  29a  3
146a 2  89a  12
, p2 
, p3 
,
p1 
2
2
27 a
27a
27a
4  16a
48a  9
9  24a
, β31 
, β32 
,
(4)
p4 
27 a
32a
32a
864a 3  828a 2  288a  36
54a 2  57a  12
, α42 
,
α32 
a (4  16a) 2
8a  32a 2
где a определяется из условия L-устойчивости 24a 4  96a3  72a 2  16a  1  0 .
Данное уравнение имеет четыре вещественных корня. Для расчетов рекомендуется a=0.57281606248213, потому что в этом случае схема (2) дополнительно
является A-устойчивой. Для контроля точности вычислений метода (2) четвертого порядка будем применять метод третьего порядка вида
yn1,1  yn  b1k1  b2k2  b3k3  b4k5 ,
где Dnk5=k4, а ki, 1≤i≤3, определены в (2). Нетрудно видеть, что требования третьего порядка имеют вид
b1  b2  (1  α32 )b3  (1  α32  α42 )b4  1,
ab1  2ab2  (a  β31  β32  3aα32 )b3 
(3a  β31  β32  5aα32  4aα42 )b4  1/ 2 ,
a 2b1  3a 2b2  (a 2  2aβ31  3aβ32  6a 2α32 )b3 
(6a 2  4aβ31  5aβ32  15a 2α32  10a 2α42 )b4  1/ 6 ,
( β31  β32 )2 (b3  b4 )  1/ 3 ,
где коэффициенты a, β31, β32, α32 и α42 заданы в (4). Данная система линейна относительно параметров bi, 1≤i≤4. При применении коэффициентов (4), имеем
b1  1.203100567018353 , b2  6.552116304144386 10 1 ,
b3  7.115271884598151 101 , b4  1.189345958672225 10 1 .
Теперь оценку ошибки εn,0 можно вычислить по формуле εn,0=||yn+1− yn+1,1||, а при
выборе шага проверять неравенство εn,0≤ε, где ||∙|| – некоторая норма в RN, ε –
точность расчетов.
2
Оценку максимального собственного числа vn,0=h|λn,max| матрицы Якоби системы (1), необходимую для перехода на явную формулу, оценим через ее норму по формуле
N
vn,0 || f / y || max1i N  j 1| fi ( yn ) / y j | .
Контроль точности и устойчивости метода Мерсона. Одним из самых
эффективных явных методов типа Рунге-Кутты четвертого порядка точности
является метод Мерсона [5]
1
2
1
yn1  yn  k1  k4  k5 ,
6
3
6
1
1
1
k1  hf ( yn ) , k2  hf ( yn  k1 ) , k3  hf ( yn  k1  k2 ) ,
(5)
3
6
6
1
3
1
3
k4  hf ( yn  k1  k3 ) , k5  hf ( yn  k1  k3  2k4 ) .
8
8
2
2
Пятое вычисление функции f не дает увеличение порядка до пятого, но позволяет расширить интервал устойчивости до 3.5 и оценить величину локальной
ошибки δn,4 с помощью ki, то есть
δn4  (2k1  9k3  8k4  k5 ) /30 .
Для контроля точности будем применять неравенство ||δn,4||≤5ε5/4, которое получено с учетом накопления глобальной ошибки из локальных ошибок [5]. Несмотря на то, что обоснование неравенства проведено на линейном уравнении,
оно с достаточно высокой надежностью использовалось для решения нелинейных задач.
Теперь построим неравенство для контроля устойчивости. Применяя к разности k3−k2 формулу Тейлора с остаточным членом в форме Лагранжа первого
порядка, имеем
k3  k2  h[f ( μn ) / y](k2  k1 ) / 6 ,
где вектор μn вычислен в некоторой окрестности решения y(tn). Учитывая, что
k2  k1  h2 f n f n / 3  O(h3 ) ,
для контроля устойчивости (5) можно использовать неравенство
vn,4  6max | (k3  k2 )i /(k2  k1 )i | 35 ,
1i  N
где числу 3.5 равна длина интервала устойчивости. Отметим, что по мнимой
оси область устойчивости также ограничена числом 3.5. Введем обозначения
εn,4=δn,4/5. Тогда для контроля точности схемы (5) можно применять неравенство εn,4≤ε5/4, а для контроля устойчивости следующее – vn,4≤3.5. Так как оценка
максимального собственного числа vn,4=h|λn,max| является грубой, то контроль
устойчивости используется как ограничитель на размер шага интегрирования.
В результате прогнозируемый шаг hn+1 вычисляется следующим образом. Новый шаг hac по точности определим по формуле hac=q1hn, где hn есть последний
успешный шаг, а q1, учитывая соотношение εn,4=O(h5n), задается уравнением
q51εn,4≤ε. Шаг hst по устойчивости зададим формулой hst=q2hn, где q2, учитывая
соотношение vn,4=O(hn), определяется из равенства q2vn,4=3.5. Тогда прогнозируемый шаг hn+1 вычисляется по формуле
3
hn1  max[hn ,min(hac , h st )] .
Данная формула стабилизирует шаг на участке установления решения, где
определяющую роль играет устойчивость.
Алгоритм интегрирования. На основе построенных методов легко сформулировать алгоритм переменного шага, в котором на каждом шаге выбирается
наиболее эффективная численная схема. Расчеты всегда начинаются явным методом потому, что в нем не используется матрица Якоби. Нарушение неравенства vn,4≤3.5 вызывает переход на L-устойчивую схему. Передача управления
явным методам происходит в случае выполнения неравенства vn,0≤3.5, где
оценка vn,0 вычисляется через норму матрицы Якоби. Норма ||ξ|| в неравенствах
для контроля точности вычисляется по формуле
(6)
|| ξ || max{ ξi  /( yni  r )} ,
1i  N
где i – номер компоненты, r – положительный параметр. Если по i-й компоненте решения выполняется неравенство ||yni||<r, то контролируется абсолютная
ошибка rε, в противном случае – относительная ошибка ε. Ниже построенный
алгоритм переменного порядка и шага, а также с автоматическим выбором явной или L-устойчивой численной схемы будем называть RKMK4.
Результаты расчетов. В качестве примера выбрана модель кольцевого
модулятора [6]. Получая на входе низкочастотный сигнал Uin1 и высокочастотный сигнал Uin2, кольцевой модулятор генерирует на выходе смешанный сигнал
U2. Математическая модель состоит из пятнадцати уравнений
y1  C 1( y8  05 y10  05 y11  y14  R1 y1) ,
y2  C 1( y9  05 y12  05 y13  y15  R1 y2 ) ,
y3  Cs1( y10  q(U D1)  q(U D4 )) ,
y4  Cs1( y11  q(U D2 )  q(U D3 )) ,
y5  Cs1( y12  q(U D1)  q(U D3 )) ,
y6  Cs1( y13  q(U D2 )  q(U D4 )) ,
y7  C p1( R p1 y7  q(U D1)  q(U D 2 )  q(U D3 )  q(U D 4 )) ,
y8   Lh1 y1 , y9   Lh1 y2 ,
y10  Ls 21 (05 y1  y3  Rg 2 y10 ) ,
y11  Ls31 (05 y1  y4  Rg 3 y11) ,
y12  Ls 21 (05 y2  y5  Rg 2 y12 ) ,
y13  Ls31 (05 y2  y6  Rg 3 y13 ) ,
y14  Ls11( y1  U in1 (t )  ( Ri  Rg1) y14 ,
y15  Ls11( y2  ( Rc  Rg1) y15 ,
y  R15  y (0)  0 0  t  103 .
Вспомогательные функции задаются формулами
4
(7)
U D1  y3  y5  y7  U in 2 (t ) U D 2   y4  y6  y7  U in 2 (t )
U D3  y4  y5  y7  U in 2 (t ) U D 4   y3  y6  y7  U in 2 (t )
q (U )   (e U  1) U in1 (t )  05sin(2000 t )
U in 2 (t )  2sin(20000 t )
Расчеты проводились со следующим параметрами: C=1.6·10–8, Cs=2·10–12,
Cp=10–8, Lh=4.45, Ls1=0.002, Ls2=Ls3=5·10–4, γ=40.67286402·10–9, R=25000,
Rp=Ri=50, Rg1=36.3, Rg2=Rg3=17.3, Rc=600, δ=17.7493332. Вычисления проводились на Intel Core 2 Quad CPU с численной матрицей Якоби с требуемой точностью ε=10-4. Для решения задачи построенному алгоритму потребовалось 77
687 вычислений правой части и 2 212 декомпозиций матрицы Якоби. Фактическая точность вычислений не хуже задаваемой точности.
Заключение. В построенном алгоритме с помощью признака можно задавать различные режимы расчета: 1) явным методом с контролем или без контроля устойчивости; 2) L-устойчивым методом с аналитической или численной
матрицей Якоби; 3) с автоматическим выбором численной схемы. Все это позволяет применять данный алгоритм для решения как жестких, так и нежестких
задач. При расчетах с автоматическим выбором численной схемы вопрос о том,
является ли задача жесткой или нет, перекладывается на алгоритм интегрирования.
Список литературы
[1] Хайрер Э., Ваннер Г. Решение обыкновенных дифференциальных уравнений. Жесткие и дифференциально-алгебраические задачи. – М.: Мир, 1999. –
685 c.
[2] Rosenbrock H.H. Some general implicit processes for the numerical solution of
differential equations // Computer. 1963. №5. P. 329–330.
[3] Новиков A.E., Новиков E.A. Численное решение жестких задач с небольшой точностью // Математическое моделирование. 2010. Т.22, №1. С.46– 56.
[4] Новиков Е.А., Шитов Ю.А., Шокин Ю.И. Одношаговые безытерационные
методы решения жестких систем // ДАН СССР. 1988. Т. 301, №6. С. 1310–
1314.
[5] Merson R.H. An operational methods for integration processes // Proc. of Symp.
on Data Processing. Weapons Research Establishment, Salisbury, Australia. 1957.
P. 331.
[6] Kampowski W., Rentrop P., Schmidt W. Classication and numerical simulation
of electric circuits // Surveys on Mathematics for Industry. – 1992. – №2(1). – P.
23–65.
5
Download