Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 105
Текст из файла (страница 105)
Однако для более сложных систем представленный способ аналитического вычисления якобиана является наиболее простым в реализации средивсех возможных в Mathcad. Поэтому его стоит запомнить.Продолжая разговор о якобиане, поясним, для чего он нужен встроенным функциямгруппы Stiff. Все дело в том, что в теории численных методов доказано, что чем болеевырожденным является якобиан системы ОДУ, тем она более жесткая. То есть матрица Якоби является относительной мерой жесткости, и это ее свойство может быть использовано для наиболее оптимальной настройки численного метода. Когда определитель якобиана, вне зависимости от значений функций и переменной, равен нулю,система имеет предельно высокую степень жесткости.14.2.
Численное решение ОДУ в форме задачи Коши • 4 7 5Интересно, что в решении этой же системы, полученном с помощью вычислительногоблока Given-Odesolve (методом Stiff) наблюдается осцилляция (рис. 14.24), указывающая на неустойчивость алгоритма, а при попытке решить систему с помощью функцииRadau решение вовсе расходится.1.5т1000-0.5хРис. 14.24. Осцилляция решения жесткой системы ОДУ, полученного с помощьювычислительного блока Given-OdesolveВозникшие проблемы связаны в первую очередь с тем, что оба метода не требуют задания якобиана в символьном виде, что, безусловно, снижает эффективность их работы.Используя блок Given-Odesolve и функцию Radau, можно быстро получить решение менее жестких систем, не тратя время на составление громоздкого якобиана. Однако найти решение особо жестких систем с их помощью не удастся, в таких случаях нужнопользоваться функциями семейства Stiff.Следует помнить, что для корректной работы функций Stiffb и Stiffr также необходимтщательный подбор входных условий.
Так, снижение начальной концентрации фермента Е в рассмотренном примере с 0,1 до 0,01 увеличивает жесткость системы, и еерешение оказывается непосильным даже для Stiffb и Stiffr при любом количествешагов.Аналогично функциям для решения простых систем ОДУ, для встроенных функцийStiffr и Stiffb имеются модификации, позволяющие определять решение в одной (конечной) точке (например, в задачах химической кинетики интерес представляют концентрации реагентов именно в определенный момент времени):• stiffr(yO,tO,tl,acc,F,J,k,s) — метод Розенброка;• stiffb(yO,tO,tl,acc,F,J,k,s) — метод Булирша-Штера;• radau(yO, t0, tl, асе, F, k, s) - метод RADAU5.Данные функции имеют весьма значительное количество параметров — восемь, что,однако, позволяет пользователю активно влиять на ход поиска решения. Особенностиопределения параметров в случае применения функций stiffb и stiffr точно такие же, какпри использовании функций bulstoer и rkadapt, поэтому подробно останавливаться наних мы не будем.
Единственное же отличие состоит в том, что вам необходимо задать,в связи со спецификой алгоритмов для решения жестких ОДУ, функцию якобиана J,что делается точно так же, как для функций семейства stiff в стандартной интерпретации.476 *Глава 14. Дифференциальные уравнения14.3. Краевые задачиКраевые задачи отличаются от задач Коши тем, что начальные условия для них задаются па обеих границах интервала поиска решений. В данном разделе мы рассмотримспособы решения краевых задач для ОДУ и их систем с помощью встроенных алгоритмов, а также подробно разберем принципы построения разностных схем для краевыхзадач средствами программирования.14.3.1.
Решение краевых задач для ОДУ с помощьювстроенных средствКраевая форма для ОДУ и систем ОДУ используется в основном в физике и техникев тех случаях, когда определить все начальные значения на левой границе промежутканевозможно. При этом найти решение для заданных таким образом дифференциальных уравнений значительно сложнее, чем для задач Коши.В Mathcad имеется возможность решения ОДУ и систем ОДУ, заданных в форме краевых задач, с помощью специального численного метода, называемого методом пристрелки или методом стрельбы (shooting method).
При этом, аналогично задачам Коши,можно использовать либо вычислительный блок, либо специальные встроенные функции.Так как эффективное использование встроенных средств для решения краевых задачтребует определенного представления о лежащем в их основе методе стрельбы (shootingmethod), то нелишне будет разобраться в его принципах.Прежде всего нужно отметить, что метод стрельбы не предназначен для непосредственного решения дифференциальных уравнений.
С его помощью можно лишь преобразовать краевую задачу в форму Коши, определив недостающие на левой границе начальные условия. Сделать же это можно только подбором (естественно, направленным)параметров исходя из того условия, что соответствующие решения полученной задачиКоши в правой крайней точке интервала должны совпадать с исходными краевымиусловиями с определенным уровнем точности.Представим, что нам нужно найти закон, по которому совершает колебания некотораясистема, описываемая следующим дифференциальным уравнением второго порядка:,2dtИзвестно, что в начальный момент времени (t=0) отклонение системы от точки равновесия равно нулю, а амплитудного значения Х=1 оно достигает при t=ji/2.
На языкематематики эти факты можно выразить следующими краевыми условиями:Х(0) = О1iЗаданное нами выше уравнение является примером двухточечной линейной (так какпри необходимости оно может быть преобразовано в систему из двух линейных ОДУ)нежесткой краевой задачи, и наиболее оптимальный способ ее решения связан с переходом к задаче Коши с помощью метода пристрелки.Реализуя метод стрельбы, прежде всего нужно определиться с недостающим начальным условием на левой границе интервала.
В общем случае считается, что это можетбыть сделано произвольным образом, однако на практике, естественно, можно найти14.3. Краевые задачи * 4 7 7довольно точное приближение за счет того, что каждый из подбираемых параметровимеет вполне реальный физический смысл. Так, например, в нашем случае первая производная по X(t) — это мгновенная линейная скорость колебательной системы. Естественно, что хоть ее значение и будет максимальным в момент времени t=0, по величинеоно не может быть очень большим (такую оценку можно сделать, сопоставив имеющиеся сведения об амплитудном значении отклонения и периоде колебаний).Учитывая приведенные выше доводы, предположим, что Х'(0) равняется, например,трем.
Решая заданную таким образом задачу Коши с помощью блока Given-Odesolve,получим функцию решения, график которой приведен на рис. 14.25.я'2Рис. 14.25. Первое приближение для решения краевой задачиКак видно из графика, функция решения принимает в точке t=rc/2 большее значение,чем оно должно быть исходя из начальных условий. А это означает, что величину еепервой производной нужно сделать несколько меньшей, положив, например, Х'(0)=2.Решив при таких значениях начальных условий дифференциальное уравнение, обнаружим, что реально скорость колебательной системы в исходной точке должна бытьеще меньше (рис. 14.26). При величине же Х'(0)=0.5 окажется, что максимум функциирешения лежит ниже заданного изначально уровня.
И лишь определив искомый параметр как 1, находим подходящее приближение.Описанная последовательность действий демонстрирует (конечно, в очень упрощенной форме) основной принцип метода стрельбы. То есть, зная значение функций решения в точке правой границы интервала, очень часто можно, решив последовательностьзадач Коши (исходя из некоторого начального приближения), найти с определеннымуровнем точности и решение самой системы ОДУ.Х'(0)=2Х'(0)=1Х'(0)=0.52 --y(t)1 -t,2Рис. 14.26. Последовательность приближений в методе стрельбыJ478 •Глава 14. Дифференциальные уравненияТехническая реализация метода стрельбы в Mathcad совсем не сложна, и написать соответствующую программу можно всего за несколько минут.
Однако делать этого нетникакого смысла, так как в системе уже имеются встроенные функции, позволяющиепреобразовывать краевые задачи в форму задач Коши.Приведем решение описанной выше краевой задачи о колебаниях с помощью вычислительного блока Given-Odesolve.Пример 1 4 . 2 1 . Решение краевой задачи о колебаниях с помощьювычислительного блока (рис. 14.27)GivenХ(0) = Оi'dt"y:=Odesolve(t,10)Рис. 14.27. График решения краевой задачи о колебанияхКак вы можете заметить из приведенного примера, никаких особых отличий междурешением ОДУ в краевой форме и форме Коши с помощью вычислительного блоканет. Единственное, вы должны корректно задать начальные условия: так, например, выне можете при решении уравнения второго порядка на одной границе определить значение функции, а на другой — ее производной.
Соответствующие начальные условиядолжны быть определены либо только функциями, либо только производными.При решении ОДУ более высоких порядков для задания краевых условий появляетсядовольно значительное количество вариантов. Это связано с тем, что различным может быть как распределение условий между границами, так и относительное количество производных различных порядков. Так, например, можно найти кривую корняОДУ 4-го порядка, если три начальных условия определены на правой границе, и только один — на левой.
Всего же вариантов задания граничных условий для такого уравнения могут быть десятки.Как и для систем ОДУ, заданных в форме Коши, вычислительный блок Given-OdesoLveможет находить решения для систем дифференциальных уравнений произвольногопорядка с краевыми условиями. Приведем пример простейшей краевой системы ОДУ,описывающей траекторию движения тела, брошенного под углом к горизонту. В лю-14.3. Краевые задачи• 479-о Действует только сила притяжения F=mg, где m - масса2одного падения (9,81 м/с ). Тогда, с учетом второго закона Ныооси х и у можно представить в виде следующих уравнений:2d ym—i- = -m-g2dtdfoV**у части уравнений на т , мы получим проекции вектора ускорения на оси х.отовую систему дифференциальных уравнений осталось дополнить крае.овиями: пусть время полета составило пять секунд, за которые<b>Текст обрезан, так как является слишком большим</b>.