Диссертация (1149672), страница 12
Текст из файла (страница 12)
На последнем шаге, для x1,..., xn M получимсистему:xi / t j Ri j ( x1,..., xnM ) , i [1: n M ] , j [1: s] ,(2.25)где Ri j - полиномы.Шаг 3. Вычисляем начальные значения для переменных xn1,..., xn M .Таким образом, исходная задача Коши сведена к полиномиальной.Приведенная на Рис. 2.2 блок-схема отражает описанный выше алгоритм сведения системы (2.18) к полиномиальной форме и соответствует тексту соответствующего раздела программы “AVM” (см. главу 4).2.5.3 Пример: сведение полной системы к полиномиальной формеЗдесь применяется алгоритм сведения к полиномиальной форме к задаче Коши дляполной системы, состоящей из шести уравнений в частных производных относительно трех функций двух аргументов и начальных условий. Правые части уравненийзаданы в терминах тех же функций, что и пример в п.
2.4.4 к алгоритму символьного66дифференцирования системы функций многих переменных. Как и упомянутый пример, тот, что будет здесь рассмотрен, также является иллюстративным и, в то жевремя - отладочным для программы “AVM” (см. главу 4). Реализация вручную алгоритмов для обоих примеров оказалась достаточно трудоемким и затратным по времени делом.
С другой стороны, рассмотрение подобных достаточно сложных примеров ради отладки программы “AVM” и иллюстрации алгоритмов было совершеннонеобходимым, а реализация содержательных реальных примеров при моделированиив задачах динамики на основе этих и других алгоритмов при помощи программы“AVM” будет рассмотрена в главе 5. Перейдем к разбору примера по шагам.Шаг 1. Пользователь заносит систему и начальные условия:x1 / t j x33 (sin cos(a ln2 x2 bx3 ) b ln 4 x2 ) sin5 (a ln 2 x2 bx3 ) Dv( g 2 ,1, 1; x1 ),x2 / t j x22 cossin(a ln 2 x2 bx3 ) cos4 (a ln 2 x2 bx3 ) EK j (sin sin(a ln 2 x2 bx3 ), x1 ),(2.26)x3 / t j x1j (ch 2 (a ln 2 x2 bx3 ) sin(a ln 2 x2 bx3 )) sh5 (a ln 2 x2 bx3 ) , j 1, 2 , (1, 2 ) (a, b) - вещественные постоянные (параметры),x1 (t0 ) x1,0 , x2 (t0 ) x2,0 , x3 (t0 ) x3,0Подбиблиотека состоит из объединения Пб1,…,Пб6, т.е.
из 12 функций:ln p, p 1,sin p,cos p, shp, chp ;EK ( p1, p2 ), EKs( p1, p2 ), EKc( p1, p2 ), EKi( p1, p2 ),Dv(a, b, c; p) , DV (a, b, c; p) .Шаг 2. Преобразуем систему (2.26) шаг за шагом (шаг 2.1, шаг 2.2,…), пока неполучим полиномиальную систему, применяя на каждом шаге элементарное преобразование к системе полученной на предыдущем шаге:Шаг 2.1(a) В качестве первой функции ( P) возьмем, например, ln x2 .(b) Функциями расширения ln p будут функции: 1 ln p,2 p 1 , которые удовлетворяют системе:d1 / dp 2 , d2 / dp 22 .67Сообщение об ошибкеВХОД: заведение системыНетВозможно ли построение подбиблиотеки для исходнойсистемы?Заведение ипроверкаисходныхданныхДаПостроение подбиблиотеки для исходной системы.Формирование разделов и таблицы параметровЯвляется ли полиномиальной полученная системаНетПодготовкаНайти в системе функцию,аргументы которой –полиномыДаЗамена в системе функций расширенияновыми переменнымиПреобразованияДобавление к системе уравнений для функцийрасширения с заменой этих функций новымипеременнымиВывод таблицы параметров, переменных, начальных данных иуравненийВыводданныхРис.
2.2 Блок-схема алгоритма и программы сведениядифференциальных уравнений к полиномиальной формеВводим дополнительные переменные x4 ln x2 , x5 x21 .(c) Заменяя ln x2 , x21 во всех их вхождениях в правые части уравнений (9) наx4 , x5 соответственно, получаем новую запись этих исходных уравнений:68x1 / t j x33 (sin cos(ax42 bx3 ) bx44 ) sin5 (ax42 bx3 ) Dv( g 2 ,1, 1; x1 ),x2 / t j x22 cossin(ax42 bx3 ) cos4 (ax42 bx3 ) EK j (sin sin(ax42 bx3 ), x1 ),x3 / t j x1j (ch 2 (ax42 bx3 ) sin(ax42 bx3 )) sh5 (ax42 bx3 ) , j 1, 2 ,(d) Уравнения для введенных дополнительных переменных следующие:x4 / t j ln x2 / t j x21 x2 / t j x5 ( x22 cossin(ax42 bx3 ) cos4 (ax42 bx3 ) EK j (sin sin(ax42 bx3 ), x1 ))x5 / t j x21 / t j x22 x2 / t j x52 ( x22 cossin(ax42 bx3 ) cos4 (ax42 bx3 ) EK j (sin sin(ax42 bx3 ), x1 ))Итак в результате шага 2.1 получена система:x1 / t j x33 (sin cos(ax42 bx3 ) bx44 ) sin5 (ax42 bx3 ) Dv( g 2 ,1, 1; x1 ),x2 / t j x22 cossin(ax42 bx3 ) cos4 (ax42 bx3 ) EK j (sin sin(ax42 bx3 ), x1 ),x3 / t j x1j (ch 2 (ax42 bx3 ) sin(ax42 bx3 )) sh5 (ax42 bx3 ) , j 1, 2 ,x4 / t j ln x2 / t j x21 x2 / t j x5 ( x22 cossin(ax42 bx3 ) cos4 (ax42 bx3 ) EK j (sin sin(ax42 bx3 ), x1 ))x5 / t j x21 / t j x22 x2 / t j x52 ( x22 cossin(ax42 bx3 ) cos4 (ax42 bx3 ) EK j (sin sin(ax42 bx3 ), x1 ))Шаг 2.2 - Шаг 2.7.
Действуя аналогично, вводим переменныеx6 sin(ax42 bx3 ), x7 cos(ax42 bx3 ),x8 sh(ax42 bx3 ), x9 ch(ax42 bx3 ),x10 cosx6 , x11 sinx6 , x12 sinx7 , x13 cosx7 ,x14 EK ( x11 , x1 ), x15 EKs( x11 , x1 ), x16 EKc( x11 , x1 ), x17 EKi( x11 , x1 ),x18 Dv( g 2 ,1, 1; x1 ), x19 DV ( g 2 ,1, 1; x1 ),и в результате шага 2.7 получаем итоговую систему:.69x1 / t j x33 ( x12 bx44 ) x65 x18j ,x2 / t j x22 x10 x74 x14j ,x3 / t j x1j ( x92 x6 ) x85 , j 1, 2 ,x4 / t j x5 ( x22 x10 x74 x14j ),x5 / t j x52 ( x22 x10 x74 x14j ),x6 / dt j x7 (2ax4 x5 ( x22 x10 x74 x14j ) b( x1j ( x92 x6 ) x85 )),x7 / t j x6 (2ax4 x5 ( x22 x10 x74 x14j ) b( x1j ( x92 x6 ) x85 )),x8 / t j x9 (2ax4 x5 ( x22 x10 x74 x14j ) b( x1j ( x92 x6 ) x85 )),x9 / t j x8 (2ax4 x5 ( x22 x10 x74 x14j ) b( x1j ( x92 x6 ) x85 )),x10 / t j x11 x7 (2ax4 x5 ( x22 x10 x74 x14j ) b( x1j ( x92 x6 ) x85 )),x11 / t j x10 x7 (2ax4 x5 ( x22 x10 x74 x14j ) b( x1j ( x92 x6 ) x85 )),x12 / t j x13 x6 (2ax4 x5 ( x22 x10 x74 x14j ) b( x1j ( x92 x6 ) x85 )),x13 / t j x12 x6 (2ax4 x5 ( x22 x10 x74 x14j ) b( x1j ( x92 x6 ) x85 )),x14 / t j x15 x17 x10 x7 (2ax4 x5 ( x22 x10 x74 x14j ) b( x1j ( x92 x6 ) x85 )) x17 ( x33 ( x12 bx44 ) x65 x18j ),x15 / t j x15 x16 x17 x10 x7 (2ax4 x5 ( x22 x10 x74 x14j ) b( x1j ( x92 x6 ) x85 )) x16 x17 ( x33 ( x12 bx44 ) x65 x18j ),x16 / t j x152 x17 x10 x7 (2ax4 x5 ( x22 x10 x74 x14j ) b( x1j ( x92 x6 ) x85 )) x15 x17 ( x33 ( x12 bx44 ) x65 x18j ),x17 / t j ( x16 x172 x11 x152 x173 ) x10 x7 (2ax4 x5 ( x22 x10 x74 x14j ) b( x1j ( x92 x6 ) x85 )) x11 x152 x173 ( x33 ( x12 bx44 ) x65 x18j ),x18 / t j x19 ( x33 ( x12 bx44 ) x65 x18j ) x182 x19 ( x22 x10 x74 x14j ) x183 x19 ( x1j ( x92 x6 ) x85 ),x19 / t j x18 ( g 2 x12 x1 1)( x33 ( x12 bx44 ) x65 x18j ) x182 x19 ( x22 x10 x74 x14j ) x183 x19 ( x1j ( x92 x6 ) x85 ).Исходные переменные и начальные данные:x1, x2 , x3; x1,0 , x2,0 , x3,0Дополнительные переменные и начальные данные для них:701x4 ln x2 , x5 x21; x4,0 ln x2,0 , x5,0 x2,022x6 sin(ax42 bx3 ), x7 cos(ax42 bx3 ); x6,0 sin(ax4,0 bx3,0 ), x7,0 cos(ax4,0 bx3,0 )22x8 sh(ax42 bx3 ), x9 ch(ax42 bx3 ); x8,0 sh(ax4,0 bx3,0 ), x9,0 ch(ax4,0 bx3,0 )x10 cos x6 , x11 sin x6 ; x10,0 cos x6,0 , x11,0 sin x6,0x12 sin x7 , x13 cos x7 ; x12,0 sin x7,0 , x13,0 cos x7,0x14 EK ( x11, x1 ), x15 EKs( x11, x1 ); x14,0 EK ( x11,0 , x1,0 ), x15,0 EKs( x11,0 , x1,0 )x16 EKc( x11, x1 ), x17 EKi ( x11 , x1 ); x16,0 EKc( x11,0 , x1,0 ), x17,0 EKi ( x11,0 , x1,0 )x18 Dv( g 2 ,1, 1; x1 ), x19 DV ( g 2 ,1, 1; x1 ); x18,0 Dv( g 2 ,1, 1; x1,0 ), x19,0 DV ( g 2 ,1, 1; x1,0 ).713.
Метод рядов Тейлора: модифицированный алгоритмЗдесь рассматривается алгоритм пошагового интегрирования дифференциальныхуравнений методом рядов Тейлора, который используют при построении численныхматематических моделей динамики.Очевидными преимуществами пошагового метода рядов Тейлора решения задачи Коши для системы обыкновенных дифференциальных уравнений по сравнению с другими пошаговыми методами можно считать возможность создания длянего сравнительно простых и эффективных алгоритмов выбора порядка и шага, атакже то, что на каждом шаге этим методом получают не очередное табличное значение решения, а представление его с заданной точностью полиномом на всем промежутке между узловыми значениями аргумента.
Тем не менее, раньше этот методредко применялся, так как считали, что основная сложность его реализации, состоящая в необходимости расчета производных решения порядков более единицы, прирасчете достаточно сложных реальных моделей непреодолима.В настоящее время отношение к методу рядов Тейлора изменилось: опубликовано на сегодняшний день много (сотни) посвященных ему работ, особенно работ,так или иначе связанных со сложными математическими моделями динамики,например, [6, 14, 18, 24, 67-70, 73-76, 81-83, 97-98, 100-101, 108-109, 113-114, 117,124]. Большая часть этих работ так или иначе связана или с алгоритмами автоматического дифференцирования или с возможностью сведения обыкновенных дифференциальных уравнений этих моделей к полиномиальной форме, то есть с идеей метода дополнительных переменных, которая восходит к работе Анри Пуанкаре [53,54, 115] (см.
выше, параграф 2.3)Основными задачами, которые решают при реализации (в автоматическом режиме) метода рядов Тейлора являются:а) автоматический выбор начального шага и порядка метода;б) автоматический выбор очередных величин шага и порядка;в) автоматическое (лучше – символьное) вычисление коэффициентов Тейлора.72В ряде работ предложены и реализованы алгоритмы, которые тем или иным способом решают все эти задачи, например, в упомянутых выше. Отвечающие за точность результата способы решения задач а), б) в этих работах хоть и различаются,но основаны на сходных идеях и имеют поэтому общие черты и детали, а вот задачав), отвечающая во многом за затраты машинного времени, решается в них не всегдана основе одних и тех же идей. Например, для нахождения коэффициентов Тейлорав [6, 14, 18, 24, 67, 68, 73] используется метод неопределенных коэффициентов, в[113, 114] - метод последовательных приближений Пикара, в [103, 104] применяютсячисленные методы, а в [69, 70, 74-76, 97, 98, 100, 101, 108, 109, 124] используютмощный метод аналитического дифференцирования.В параграфе 3.1 обсуждаются вопросы реализации метода рядов Тейлора для полиномиальных систем обыкновенных дифференциальных уравнений, а в параграфе3.2 предлагается алгоритм нахождения коэффициентов Тейлора для решения систем, принадлежащих классам s (m) , которые рассматривались в параграфе 2.1, исоответствующая модификация алгоритма Бабаджанянца-Большакова [14] решенияобыкновенных дифференциальных уравнений методом рядов Тейлора.3.1 Методы рядов Тейлора для полиномиальных системПрежде всего надо отметить, что когда мы говорим о полиномиальных системахдифференциальных уравнений, то должны иметь в виду, что можем к таковым свести любую систему классаs(m) при помощи алгоритма, который был предложеннами в параграфе 2.5.















