Смекни!
smekni.com

Методы решения краевых задач, в том числе "жестких" краевых задач (стр. 5 из 9)

Аналогично запишем на правом крае ещё одно уравнение краевых условий:

N ∙ Y(0) = n ,

где матрица N записывается из тех же соображений дополнительных линейно независимых параметров на правом крае, а вектор n неизвестен.

Для правого края тоже справедлива соответствующая система уравнений:

∙ Y(1) =
.

Запишем Y(1) = K(1←0) ∙Y(0) + Y*(1←0) и подставим в последнюю систему линейных алгебраических уравнений:

∙ [ K(1←0) ∙Y(0) + Y*(1←0) ] =
,

∙ K(1←0) ∙Y(0) =
-
∙ Y*(1←0),

∙ K(1←0) ∙Y(0) =
,

∙ K(1←0) ∙Y(0) =
.

Запишем вектор Y(0) через обратную матрицу:

Y(0) =

и подставим в предыдущую формулу:

∙ K(1←0) ∙
=
.

Таким образом, мы получили систему уравнений вида:

В ∙

=
,

где матрица В известна, векторы u и s известны, а векторы m и t неизвестны.

Разобьем матрицу В на естественные для нашего случая 4 блока и получим:

=
,

откуда можем записать, что

В11 ∙ u + B12 ∙ m = s,

B21 ∙ u + B22 ∙ m = t.

Следовательно, искомый вектор m вычисляется по формуле:

m = B12

∙ (s – B11∙ u).

А искомый вектор n вычисляется через вектор t:

t = B21 ∙ u + B22 ∙ m,

n = t + N ∙ Y*(1←0).

В случае «жестких» дифференциальных уравнений предлагается выполнять поочередное построчное ортонормирование.

Запишем приведенную выше формулу

∙ K(1←0) ∙
=

в виде:


∙ K(1←x2) ∙ K(x2←x1) ∙ K(x1←0) ∙
=
.

Эту формулу можно записать в виде разделения левой части на произведение матрицы на вектор:

[

∙ K(1←x2) ] ∙ { K(x2←x1) ∙ K(x1←0) ∙
} =

[ матрица ] ∙ { вектор } = вектор

Эту группу линейных алгебраических уравнений можно подвергнуть построчному ортонормированию, которое сделает строчки [матрицы] ортонормированными, {вектор} затронут не будет, а вектор получит преобразование. То есть получим:

[

∙ K(1←x2) ]
{ K(x2←x1) ∙ K(x1←0) ∙
} =

Здесь следует сказать, что подвектор t подвергать преобразованию не нужно, так как невозможно, так как его первоначальное значение не известно. Но подвектор t нам оказывается и не нужен для решения задачи.

Далее запишем:

[[

∙ K(1←x2) ]
∙ K(x2←x1)] { K(x1←0) ∙
} =

[ матрица ] { вектор } = вектор

Аналогично и эту группу линейных алгебраических уравнений можно подвергнуть построчному ортонормированию, которое сделает строчки [матрицы] ортонормированными, {вектор} затронут не будет, а вектор получит преобразование. То есть получим:

[[

∙ K(1←x2) ]
K(x2←x1)]
{ K(x1←0) ∙
} =
.

И так далее.

В результате поочередного ортонормирования получим:

В

=
,

=
.

Следовательно, искомый вектор m вычисляется по формуле:

m = B12

∙ (s
– B11
∙ u).

7 Формула для начала счета методом прогонки С.К.Годунова

Эта формула обсчитана на компьютерах в кандидатской диссертации.

Рассмотрим проблему метода прогонки С.К.Годунова.

редположим, что рассматривается оболочка ракеты. Это тонкостенная труба. Тогда система линейных обыкновенных дифференциальных уравнений будет 8-го порядка, матрица A(x) коэффициентов будет иметь размерность 8х8, искомая вектор-функция Y(x) будет иметь размерность 8х1, а матрицы краевых условий будут прямоугольными горизонтальными размерности 4х8.

Тогда в методе прогонки С.К.Годунова для такой задачи решение ищется в следующем виде:

Y(x) = Y

(x) c
+ Y
(x) c
+ Y
(x) c
+ Y
(x) c
+ Y*(x),

или можно записать в матричном виде:

Y(x) = Y

(x) ∙ c + Y*(x),

где векторы Y

(x), Y
(x), Y
(x), Y
(x) – это линейно независимые вектора-решения однородной системы дифференциальных уравнений, а вектор Y*(x) – это вектор частного решения неоднородной системы дифференциальных уравнений.