12.1.2. Алгоритм стрельбы*

Для решения краевых задач в Mathcad реализован наиболее популярный алгоритм, называемый методом стрельбы или пристрелки (shooting method). Он, по сути, сводит решение краевой задачи к решению серии задач Коши с различными начальными условиями. Рассмотрим здесь его основной принцип на примере модели, (рис. 12.1 ), а встроенные функции, реализующие этот алгоритм, приведем в следующем разделе.
Суть метода стрельбы заключается в пробном задании недостающих граничных условий на левой границе интервала и решении затем полученной задачи Коши хорошо известными методами (см. гл. 11). В нашем примере не хватает начального условия для y1(0), поэтому сначала зададим ему произвольное значение, например y1(0)=10. Конечно, такой выбор не совсем случаен, поскольку из физических соображений ясно, что, во-первых, интенсивность излучения - величина заведомо положительная, и, во-вторых, отраженное излучение должно быть намного меньше падающего. Решение задачи Коши с помощью функции rkadapt приведено на листинге 12.1.

Листинг 12.1. Решение пробной задачи Коши для модели (12.1-1)
(для просмотра ссылки требуется MathCAD 2001 или браузер techexplorer компании IBM)

График полученных решений показан на рис. 12.2 (слева). Из него видно, что взятое наугад второе начальное условие не обеспечило выполнение граничного условия при x=1. И понятно, что для лучшего выполнения этого граничного условия следует взять большее значение y1(0). Возьмем, например, y1(0)= 15, и вновь решим задачу Коши. Результат показан на том же рис.12.2(в центре). Граничное условие выполняется с лучшей точностью, но опять-таки оказалось y1(0) недостаточным. Для еще одного значения y1(0)= 20получается решение, показанное на рис. 12.2 (справа). Из сравнения двух правых графиков легко заключить, что недостающее начальное условие больше 15, но меньше 20. Продолжая подобным образом "пристрелку" по недостающему начальному условию, возможно отыскать правильное решение краевой задачи.


Рис. 12.2. Иллюстрация метода стрельбы (листинг 12.1)

В этом и есть принцип алгоритма стрельбы. Выбирая пробные начальные условия (проводя пристрелку) и решая соответствующую серию задач Коши, можно  найти то решение системы ОДУ, которое (с заданной точностью) удовлетворит граничному условию (или, в общем случае, условиям) на другой границе расчетного интервала.
Конечно, описанный алгоритм несложно запрограммировать самому, оформив его как решение системы заданных алгоритмически уравнений, выражающих граничные условия на второй границе, относительно неизвестных пристрелочных начальных условий. Но делать этого нет необходимости, поскольку он оформлен в Mathcad в виде встроенных функций.

 
12.1.1. О постановке краевых задач
12.3.1. О разностных схемах
12.3.2. Жесткие краевые задачи
12.3.3. Нелинейные краевые задачи