Постановка краевых задач для ОДУ отличается от задач Коши, рассмотренных выше, тем, что граничные условия для них ставятся не в одной начальной точке, а на обеих границах расчетного интервала. Если имеется система N ОДУ первого порядка, то часть из N условий может быть поставлена на одной границе интервала, а оставшиеся условия – на противоположной границе. В связи с тем, что условия поставлены не на одной, а на обеих границах интервала, краевые задачи нельзя решить изложенными выше методами, предназначенными для задач Коши. Для решения краевой задачи в MathCAD нет отдельной функции. Однако есть функции, позволяющие превратить краевую задачу в задачу Коши. Эти функции «угадывают» недостающие начальные условия, исходя из того, что решение должно удовлетворять заданным условиям в конечной точке интервала интегрирования. Простейшей из функций, предназначенных для приведения краевой задачи к задаче Коши, является функция sbval.
Для того, чтобы решить двухточечную краевую задачу с помощью этой функции, следует выполнить следующие действия:
- Задайте вектор v с количеством элементов равным количеству недостающих начальных условий. Значения элементов этого вектора – это начальные приближения, исходя из которых будет происходить поиск недостающих начальных условий. На данном этапе не конкретизируется, какой из элементов вектора будет соответствовать начальному значению той или иной неизвестной функции в задаче.
- Задайте функцию F (x,y). Эта функция уже описывалась выше. Она представляет собой вектор, каждый элемент которого – это правая часть одного из уравнений системы.
- Задайте еще одну векторную функцию load (x,v). Это функция от скалярного аргумента x и вектора v, который имеет столько же компонент, сколько недостающих начальных условий в системе. Сам вектор load должен содержать такое же количество элементов, как и вектор F, т.е. столько, сколько должно быть начальных условий в задаче. Если начальное значение какой-либо из функций известно, то соответствующий элемент вектора load должен содержать это значение. Для функций, начальное значение которых неизвестно, соответствующий элемент вектора load должен содержать один из элементов вектора v.
- Следует задать еще одну некоторую функцию score (x,y). Аргументы этой функции – скаляр x и вектор y, который имеет столько элементов, сколько уравнений в системе. Количество компонент вектора score должно равняться количеству граничных условий, заданных в конечной точке отрезка интегрирования. На самом деле каждая компонента этого вектора задает одно из граничных условий в конечной точке. Например, если в задаче есть граничной условие yi(b)=c, то один из элементов вектора score должен быть функцией, которая обращается в нуль при значениях x=b и y(b)=c. Конкретный вид этой функции не играет особой роли, поэтому проще всего задавать ее в таком виде: scorek(x,y):=yi-c. Таким же образом должны быть заданы все элементы вектора score для всех конечных условий задачи.
- Теперь все введенные величины нужно использовать как аргументы в функции sbval. Использование этой функции выглядит следующим образом: Y:=sbval(v,a,b,F,load,score). Аргументы a и b – это начало и конец отрезка интегрирования.
- Результатом функции sbval будет вектор, содержащий недостающие начальные значения. Их последовательность задается той последовательностью, в которой были использованы компоненты вектора v в функции load.
- Постройте вектор начальных значений, используя известные начальные значения, а также элементы вектора Y, там где значения были неизвестны.
- Теперь можно решить полученную задачу как задачу Коши, с помощью, например, функции Rkadapt.
Ниже приведено решение дифференциального уравнения на отрезке [0,3] с начальным условием y(0)=1 и граничным условием y(3)=4. Недостающее начальное условие – y’(0).
Решение уравнений в частных производных.
Постановка задач для уравнений в частных производных включает определение самого уравнения (или системы нескольких уравнений), а также необходимого количества краевых условий (число и характер которых зависит от специфики уравнения). Согласно своему названию, уравнения должны содержать частные производные неизвестной функции u (или нескольких функций, если уравнений несколько) по различным аргументам, например, пространственной переменной x и времени t. Соответственно, для решения задачи требуется вычислить функцию нескольких переменных, например, u(x,t) в некоторой области определения аргументов 0 £ x £ L и 0£ t £ T. Граничные условия определяются как заданные временные зависимости функции u, или производных этой функции, на границах расчетной области 0 и L, а начальные – как заданная функция u(x,0).
Сами уравнения в частных производных (несколько условно) можно разделить на три основных типа:
- параболические – содержащие первую производную по одной переменной и вторую – по другой, причем все эти производные входят в уравнение с одинаковым знаком;
- гиперболические – содержащие первую производную по одной переменной и вторую – по другой, входящие в уравнения с разными знаками;
- эллиптические – содержащие только вторые производные, причем одного знака.
Средства MathCAD позволяют решать одномерные параболические и гиперболические уравнения (с одной пространственной и одной временной переменной), а также двумерное уравнение Пуассона. Такой, казалось бы, узкий круг решаемых задач на самом деле охватывает подавляющее большинство задач, возникающих в физике и технике.