logo search
mathcad

Двухточечные краевые задачи

Функции Mathcad, описанные выше, позволяют находить решение для дифференциального уравнения n-ого порядка при условии, что известны начальные условия для решения и его первых (n -1) производных в начальной точке интервала, на котором ищется решение. В этом разделе рассматривается следующая задача. Предположим, что известны не все начальные условия в начальной точке интервала, но зато известны дополнительно значения решения и/или некоторых его производных в другой точке интервала. В частности, если:

В этом случае необходимо использовать функцию sbval, чтобы найти недостающие начальные условия в x1. После того, как эти недостающие начальные условия будут получены, можно будет решать обычную задачу с начальными условиями — задачу Коши. В этом случае не нужно решать двухточечную краевую задачу. Для решения полученной задачи Коши можно использовать любую из функций, описанных ранее в этой главе.

Пример, приведенный на Рисунке 7, показывает, как использовать функцию sbval. Обратите внимание, что функция sbval не возвращает решение дифференциального уравнения. Она только вычисляет недостающие начальные условия. При этом они выбираются согласованными с теми значениями, которые были заданы в конечной точке интервала. Далее нужно использовать найденные начальные условия, возвращенные функцией sbval, и решать возникающую обычную задачу с начальными условиями при помощи тех функций, которые описаны ранее в этой главе.

Функция sbval возвращает вектор, содержащий недостающие начальные условия в точке x1. Аргументы функции sbval:

sbval ( v, x1, x2, D, load, score)

v =

Вектор начальных приближений для искомых недостающих начальных значений в точке x1.

x1, x2 =

Граничные точки интервала, на котором ищется решение дифференциальных уравнений.

D (x, y) =

Функция, возвращающая значение в виде вектора из n элементов, которые содержат первые производные неизвестных функций.

load (x1, v) =

Векторозначная функция, возвращающая значения начальных условий в точке x1. Вектор состоит из n элементов. Они соответствуют вектору начальных условий в точке x1. Некоторые из этих элементов будут константами, определяемыми начальными условиями. Другие элементы будут неизвестными и будут найдены функцией sbval. Если значение начального условия неизвестно, необходимо использовать вектор, соответствующий вектору начальных приближений из v.

score(x2, y) =

Векторозначная функция, возвращающая вектор, количество элементов которого равно числу элементов вектора v. Каждый элемент вектора содержит разность между начальным условием, заданным в точке x2, и значением искомого решения в этой точке. Вектор score показывает, насколько значения найденного решения в точке x2 близки к значениям, заданным в x2. Значение 0 для любого элемента указывает на полное совпадение между заданным начальным условием и тем значением, которое возвращается функцией sbval.

Рисунок 7: Использование функции sbval для получения недостающих начальных условий для дифференциального уравнения, соответствующих значениям, заданным в конечной точке интервала.

Рисунок 8: Использование функции bvalfit для согласовывания решений в середине интервала поиска решения.

Также возможно, что информация, необходимая для использования функции sbval, задана неполностью, но дополнительно известны значения решения первых (n-1) производных в некоторой промежуточной точке xf. В этой ситуации необходимо использовать функцию bvalfit. Эта функция решает двухточечную краевую задачу подобного типа методом стрельбы: из конечных точек интервала выпускаются всевозможные траектории решений, и из них выбирается та, которая принимает заданное значение в промежуточной точке xf.

bvalfit ( v1, v2, x1, x2, xf, D, load1, load2, score)

v1, v2 =

Вектор v1 содержит начальное приближение для начальных условий, которые не заданы в точке x1. Вектор v2 содержит начальное приближение для начальных условий, которые не заданы в точке x2.

x1, x2 =

Граничные точки интервала, на котором ищется решение дифференциального уравнения.

xf =

Некоторая точка между x1 и x2. В этой точке решения, начинающиеся в точках  x1 и x2, должны быть равны.

D (x, y) =

Функция, возвращающая значение в виде вектора из n элементов, содержащих первые производные неизвестных функций.

load1 (x1, v1) =

Векторозначная функция, возвращающая значения начальных условий в точке x1. Вектор состоит из n элементов. Они соответствуют вектору начальных условий в точке x1. Некоторые из этих элементов будут константами, определяемыми начальными условиями. Другие элементы будут неизвестными. Если значение начального условия неизвестно, то нужно использовать соответствующее значение из вектора начальных приближений v1.

load2 (x2, v2) =

Аналогичный load1, но для значений в точке x2.

score(xf, y) =

Векторозначная функция, возвращающая вектор из n элементов. Он определяет, насколько значения решений, начинающихся из точек x1  и x2, должны соответствовать в точке xf. Например, если необходимо, чтобы решения совпадали, определите score(xf, y):= y.

Этот метод становится особенно полезным, когда производные имеют разрыв где-либо на интервале поиска решения. Пример этого приведен на Рисунке 8.