Численные методы в среде символьной математики. Программирование и решение задач: Учебно-методическое пособие, страница 12

FORCE0(A, i, j, n) – процедура, возвращающая копию матрицы A, в которой (i,j)-й элемент за один щаг превращается в 0 путем  вычитания ведущей (n-й) строки, умноженной на соответствующий масштабирующий коэффициент, равный отношению элементов j-го столбца строк i и n. Ее определение имеет вид:

      €  €              A            ‚                  ‚

      ¦  ¦               i,j         ¦                  ¦

VECTOR¦IF¦m_ = i, A  - ——————·A , A  ¦, m_, DIMENSION(A)¦

      ¦  ¦         i    A      n   m_¦                  ¦

                       n,j         ƒ                  ƒ

Например, обнуление -того элемента матрицы A, определенную выше, в строке i=2 и столбце j=1 по ведущей строке n=1 , будет выполнено, если вызвать на исполнение эту процедуру следующей строкой:

FORCE0 (A, 2, 1, 1)

„ a11        a12              a13       †

¦                                       ¦

¦             a12·a21          a13·a21  ¦

¦  0   a22 - —————————  a23 - ————————— ¦

¦               a11              a11    ¦

¦                                       ¦

… a31        a32              a33       ‡

Применив эту процедуру для i=3, можно обнулить элемент в первом столбце третьей строки. Сцепление первой и преобразованных второй и третьей строк в единую матрицу можно представить следующим оператором:

APPEND(„A †,VECTOR(FORCE0(A,i,1,1) ,i,2,DIMENSION(A)))

       … 1‡                       i                   

Здесь первый фактический параметр представляет неизмененная первая строка матрицы A , а второй – матрицу с двумя векторными компонентами: преобразованными второй и третьей строкой. Исполнение этого оператора дает матрицу

„ a11        a12              a13       †

¦             a12·a21          a13·a21  ¦

¦  0   a22 - —————————  a23 - ————————— ¦

¦               a11              a11    ¦

¦             a12·a31          a13·a31  ¦

¦  0   a32 - —————————  a33 - ————————— ¦

…               a11              a11    ‡

Для получения верхнетреугольной матрицы методом исключения Гаусса в полученной матрице необходимо к нулю свести элемент второго столбца (j=2) в третьей строке(i=3) , принимая в качестве ведущей строки вторую строку (n=2). В качестве первого фактического параметра (матрицы) в процедуре FORCE0() можно подставить либо конкретное значение матрицы, либо ее имя, которому это значение присвоено ранее, либо весь оператор, исполнение которого возвращает значение нужного значения матрицы, как показано в следующей строке :

FORCE0(APPEND(„A †, VECTOR(FORCE0(A, i, 1, 1) , i, 2,~

              … 1‡                           i                                ~DIMENSION(A))), 3, 2, 2)

Значок волнистой тильды ~ при выводе текста алгебраического окна на принтер означает переход каждой строки текста оператора или операнда на другую строку. Выполнив записанную выше процедуру для матрицы A с символьными компонентами, получим результат Гауссова исключения в символьном представлении следующего вида:

„ a11        a12                                    a13                             †

¦                                                                                   ¦

¦             a12·a21                                a13·a21                        ¦

¦  0   a22 - —————————                        a23 - —————————                       ¦

¦               a11                                    a11                          ¦

¦                                                                                   ¦

¦                        (a12·a23 - a13·a22)·(a22·a31 - a21·a32)     a23·a32        ¦

¦  0          0         ————————————————————————————————————————— - ————————— + a33 ¦

…                                a22·(a11·a22 - a12·a21)               a22          ‡

Числовой пример выполнения прямого хода метода исключения Гаусса покажем на линейной системе 3-х уравнений с тремя неизвестными:

„  x + 4·y + 5·z = 6  †

¦  2·x + y + 2·z = 3  ¦

… 3·x + 7·y + 8·z = 9 ‡

В векторной форме эта система представляется так:

„ 1  4  5 †   „ x †   „ 6 †

¦ 2  1  2 ¦ • ¦ y ¦ = ¦ 3 ¦