Решение краевых задач с дополнительным условием в промежуточной точке
Иногда дифференциальные уравнения определяются с граничными условиями не только на концах интервала, но и с дополнительным условием в некоторой промежуточной точке расчетного интервала. Чаше всего такие задачи содержат данные о негладких в некоторой внутренней точке интервала решениях. Для них имеется встроенная функция bvaif it, также реализующая алгоритм стрельбы.
- bvalfit(z1,z2,x0,x1,xf,D,load1,load2,score) – поиск вектора недостающих граничных условий для краевой задачи с дополнительным условием в промежуточной точке для системы N ОДУ;
- z1 – вектор, присваивающий недостающим начальным условиям на левой границе интервала начальные значения;
- z2 – вектор того же размера, присваивающий недостающим начальным условиям на правой границе интервала начальные значения;
- х0 – левая граница расчетного интервала;
- x1 – правая граница расчетного интервала;
- xf – точка внутри интервала;
- D(х,у) – векторная функция, описывающая систему N ОДУ, размера NXI и двух аргументов – скалярного х и векторного у. При этом у – это неизвестная векторная функция аргумента х того же размера NXI;
- loadi(x0,z) – векторная функция размера NXI левых граничных условий, причем недостающие начальные условия поименовываются соответствующими компонентами векторного аргумента z;
- load2 (x1,z) – векторная функция размера NXI правых граничных условий, причем недостающие начальные условия поименовываются соответствующими компонентами векторного аргумента z;
- score (xf, у) – векторная функция размера NXI, выражающая внутреннее условие для векторной функции у в точке xf.
Обычно функция bvalf it применяется для задач, в которых производная решения имеет разрыв во внутренней точке xf. Некоторые из таких задач не удается решить обычным методом пристрелки, поэтому приходится вести пристрелку сразу из обеих граничных точек. В этом случае дополнительное внутреннее условие в точке xf является просто условием сшивки в ней левого и правого решений. Поэтому для данной постановки задачи оно записывается в форме score(xf,y): = y.
Рассмотрим действие функции bvaifit на знакомом примере модели взаимодействия пучков света (см. рис. 12.1), предположив, что в промежутке между xf=0.5 и x1=1.0 находится другая, оптически более плотная среда с другим коэффициентом ослабления излучения а(х)=3. Соответствующая краевая задача решена в листинге 12.3, причем разрывный показатель ослабления определяется в его второй строке.
Листинг 12.3. Краевая задача с дополнительным условием в промежуточной точке:
Система уравнений и левое краевое условие вводится так же, как и в предыдущем листинге для функции sbvai. Обратите внимание, что таким же образом записано и правое краевое условие. Для того чтобы ввести условие отражения на правой границе, пришлось определить еще один неизвестный пристрелочный параметр z20. Строка листинга, в которой определена функция score, задает условие стрельбы – сшивку двух решений в точке xf. В самой последней строке листинга выдан ответ – определенные численным методом значения обоих пристрелочных параметров, которые объединены в вектор и (мы применили в предпоследней строке операцию транспонирования, чтобы результат получился в форме вектора, а не матрицы-строки).