СПОСОБЫ ПРЕДСТАВЛЕНИЯ МАТРИЦ
СПЕЦИАЛЬНОГО ВИДА

Некоторые подпрограммы Библиотеки имеют дело с матрицами специального вида, для которых приняты следующие способы компактного представления в памяти машины.

Симметричная и эрмитова матрицы

Симметричная матрица размера  n * n   представляется в виде вектора длины  n ( n + 1 ) / 2,  который состоит из элементов нижнего треугольника матрицы, выписанных последовательно по строкам. Тем самым, элемент матрицы  a i j  может быть найден как элемент этого вектора с индексом  k = i (i - 1) / 2 + j    для  i > или =  j ( для  i < j  элемент  a i j = a j i ). Например, для симметричной матрицы  A   размера  3 * 3   имеем:

           | a11  a12   a13 |
           | a21  a22   a23 |  -- >
           | a31  a32   a33 |

                                            | a11 |
                                            | a21 |
                                   -- >   | a22 |
                                            | a31 |
                                            | a32 |
                                            | a33 |

Аналогично, для эрмитовой матрицы размера  n * n   принято представление в виде комплексного вектора длины  n ( n + 1 ) / 2.   При этом хранятся лишь элементы на и под главной диагональю по строкам.

Треугольная матрица

Верхняя (нижняя) треугольная матрица размера  n * n   задается вектором длины  n ( n + 1 ) / 2,  в котором последовательно записаны столбцы (строки) ненулевого треугольника матрицы. Например, для нижней треугольной матрицы  A   размера 3 * 3   имеем:

           |  a11      0        0    |
           |  a21     a22       0   |  -- >
           |  a31     a32      a33  |

                                                  |  a11  |
                                                  |  a21  |
                                         -- >   |  a22  |
                                                  |  a31  |
                                                  |  a32  |
                                                  |  a33  |

Ленточная квадратная матрица

Ленточная квадратная матрица размера  n * n   с K   нижними и  m   верхними ненулевыми кодиагоналями задается прямоугольной матрицей размера  n * (K + 1 + m),   в первых  K столбцах которой расположены нижние кодиагонали, в  (K+1) - ом столбце - главная диагональ, а в последних  m столбцах - верхние кодиагонали. Например, для ленточной матрицы  A   размера  5 * 5   c K = 2 и  m = 1   имеем:

           |   a11     a12      0       0        0    |
           |   a21     a22     a23      0        0    |
           |   a31     a32     a33     a34      0    |   -- >
           |    0      a42     a43     a44     a45   |
           |    0       0      a53     a54      a55   |

                                                                           |    0       0       a11     a12   |
                                                                           |    0       a21     a22     a23  |
                                                                -- >     |   a31     a32     a33     a34   |
                                                                           |   a42     a43     a44     a45   |
                                                                           |   a53     a54      a55     0    |

Симметричная ленточная матрица

Симметричная ленточная матрица размера  n * n     с K нижними и K верхними ненулевыми кодиагоналями задается прямоугольной матрицей размера  n * (K+1),  в первых  K столбцах которой расположены нижние кодиагонали,  а в (K+1)-ом столбце - главная диагональ. Например, для симметричной ленточной матрицы  A   размера  4 * 4   с K=1   имеем:

           |   a11     a12      0       0    |
           |   a21     a22     a23      0    |
           |    0      a32     a33     a34   |   -- >
           |    0       0      a43     a44   |

                                                                           |    0      a11   |
                                                                           |   a21     a22   |
                                                                -- >     |   a32     a33   |
                                                                           |   a43     a44   |

Треугольная ленточная матрица

Верхняя (нижняя) треугольная ленточная матрица размера  n * n   с K верхними (нижними) ненулевыми кодиагоналями задается прямоугольной матрицей размера  n * (K+1),   в первом(последнем) столбце которой расположены элементы главной диагонали, а в последних(первых) K столбцах - верхние(нижние) кодиагонали. Например, для верхней треугольной ленточной матрицы  A   размера  4 * 4   с K=1   имеем:

           |   a11     a12      0       0    |
           |    0      a22     a23      0    |
           |    0       0      a33     a34   |   -- >
           |    0       0       0      a44   |

                                                                           |   a11     a12  |
                                                                           |   a22     a23  |
                                                                -- >     |   a33     a34  |
                                                                           |   a44      0    |

а для нижней треугольной ленточной матрицы  B   размера  4 * 4   с K=1   имеем:

           |   b11       0       0      0    |
           |   b21     b22      0      0    |
           |    0      b32     b33     0    |   -- >
           |    0       0      b43     b44  |

                                                                           |    0      b11    |
                                                                           |   b21     b22   |
                                                                -- >     |   b32     b33   |
                                                                           |   b43     b44   |

Диагональная матрица

Диагональная матрица размера   n * n   задается вектором длины   n,  в котором записаны диагональные элементы матрицы. Например, для диагональной матрицы  A   размера   3 * 3   имеем:

           |   a11      0       0    |
           |    0      a22      0    |   -- >
           |    0       0      a33   |

                                                         |   a11   |
                                              -- >     |   a22   |
                                                         |   a33   |