Этот алгоритм обсчитан на компьютерах в кандидатской диссертации.
Этот алгоритм требует дополнения матрицы краевых условий U до квадратной невырожденной:
Начальные значения Y (0), Y (0), Y (0), Y (0), Y*(0) находятся из решения следующих систем линейных алгебраических уравнений:
∙ Y*(0) = ,
∙ Y (0) = , где i = , , , ,
где 0 – вектор из нулей размерности 4х1.
Замена метода численного интегрирования Рунге-Кутта в методе прогонки С.К.Годунова
Эта замена формул Рунге-Кутта на формулу теории матриц обсчитана на компьютерах в кандидатской диссертации.
В методе С.К.Годунова как показано выше решение ищется в виде:
Y(x) = Y (x) ∙ c + Y*(x).
На каждом конкретном участке метода прогонки С.К.Годунова между точками ортогонализации можно вместо метода Рунге-Кутта пользоваться теорией матриц и выполнять расчет через матрицу Коши:
Y (x ) = K(x - x ) ∙Y (x ).
Так выполнять вычисления быстрее, особенно для дифференциальных уравнений с постоянными коэффициентами.
И аналогично через теорию матриц можно вычислять и вектор Y*(x) частного решения неоднородной системы дифференциальных уравнений. Или для этого вектора отдельно можно использовать метод Рунге-Кутта, то есть можно комбинировать теорию матриц и метод Рунге-Кутта.
Метод половины констант
Этот метод пока не обсчитан на компьютерах.
Выше было показано, что решение системы линейных обыкновенных дифференциальных уравнений можно искать в виде только с половиной возможных векторов и констант. Была приведена формула для начала вычислений:
Y(0) = М ∙с + ∙ .
Из теории матриц известно, что если матрица ортонормирована, то её обратная матрица есть её транспонированная матрица. Тогда последняя формула приобретает вид:
Y(0) = М ∙с + U ∙u
или
Y(0) = U ∙u + М ∙с
или
Y(0) = ∙ ,
Таким образом записана в матричном виде формула для начала счета с левого края, когда на левом крае удовлетворены краевые условия.
Далее запишем V∙Y(1) = v и Y(1) = K(1←0) ∙Y(0) + Y*(1←0) совместно:
V∙ [ K(1←0) ∙Y(0) + Y*(1←0) ] = v
V∙ K(1←0) ∙Y(0) = v - V∙Y*(1←0)
и подставим в эту формулу выражение для Y(0):
V∙ K(1←0) ∙ ∙ = v - V∙Y*(1←0).
V∙ K(1←0) ∙ ∙ = p.
Таким образом мы получили выражение вида:
D ∙ = p,
где матрица D имеет размерность 4х8 и может быть естественно представлена в виде двух квадратных блоков размерности 4х4:
∙ = p.
Тогда можем записать:
D1∙ u + D2 ∙ c = p.
Отсюда получаем, что:
c = D2 ∙ ( p - D1∙ u )
Таким образом, искомые константы найдены.
Далее показано как применять этот метод для решения «жестких» краевых задач.
Запишем
V∙ K(1←0) ∙ ∙ = p.
совместно с K(1←0) = K(1←x2) ∙ K(x2←x1) ∙ K(x1←0) и получим:
V∙ K(1←x2) ∙ K(x2←x1) ∙ K(x1←0) ∙ ∙ = p.
Эту систему линейных алгебраических уравнений можно представить в виде:
[ V∙ K(1←x2) ] ∙ { K(x2←x1) ∙ K(x1←0) ∙ ∙ } = p.
[ матрица ] ∙ { вектор } = вектор
Эту группу линейных алгебраических уравнений можно подвергнуть построчному ортонормированию, которое сделает строчки [матрицы] ортонормированными, {вектор} затронут не будет, а вектор получит преобразование. То есть получим:
[ V∙ K(1←x2) ] {K(x2←x1) ∙ K(x1←0) ∙ } =p .
И так далее.
В итоге поочередного вычленений матриц слева из вектора и ортонормирования получим систему:
D ∙ = p ,
Отсюда получаем, что:
c = D2 ∙ (p - D1 ∙ u )
Таким образом, искомые константы найдены.
Дата: 2019-07-25, просмотров: 207.