ВУЗ:
Составители:
Рубрика:
90
В конструкторе производного класса QMatrix осуществляется вызов
конструктора класса Matrix, в который передается количество строк и
столбцов создаваемой матрицы (в данном случае они совпадают):
class QMatrix : Matrix
{
public QMatrix(int rows): base(rows, rows)
{
. . .
}
. . .
}
Класс QMatrix расширяет базовый класс путем добавления новых
методов – вычисления определителя и обратной матрицы. Для этого
требуется вычислить миноры исходной матрицы. Поэтому в класс QMatrix
добавим метод формирования подматрицы, полученной из исходной
вычеркиванием заданной строки и заданного столбца. Как известно,
определитель такой подматрицы является одним из миноров исходной
матрицы.
Согласно теореме Лапласа определитель матрицы Q(
)det(Q
) равен
сумме произведений элементов строки (столбца) на их алгебраические
дополнения:
ininiiii
AqAqAqQ ...)det(
2211
,
где
ij
ji
ij
MA
)1(
,
ij
M
– дополнительный минор элемента
ij
q
(определитель матрицы, полученной вычеркиванием из исходной строки с
номером i и столбца с номером j).
Согласно этой формуле для вычисления определителя n-ого порядка
требуется вычислить n определителей (n-1)-ого порядка. Поэтому метод
вычисления определителя матрицы будет рекурсивным.
Для вычисления обратной матрицы для матрицы Q требуется найти
матрицу алгебраических дополнений (
ij
A
) элементов, транспонировать ее и
разделить на значение
)det(Q
. Если матрица является вырожденной (ее
определитель равен нулю), обратной матрицы не существует. В этом случае
генерируется исключение.
Таким образом, определение класса QMatrix станет таким:
В конструкторе производного класса QMatrix осуществляется вызов
конструктора класса Matrix, в который передается количество строк и
столбцов создаваемой матрицы (в данном случае они совпадают):
class QMatrix : Matrix
{
public QMatrix(int rows): base(rows, rows)
{
. . .
}
. . .
}
Класс QMatrix расширяет базовый класс путем добавления новых
методов – вычисления определителя и обратной матрицы. Для этого
требуется вычислить миноры исходной матрицы. Поэтому в класс QMatrix
добавим метод формирования подматрицы, полученной из исходной
вычеркиванием заданной строки и заданного столбца. Как известно,
определитель такой подматрицы является одним из миноров исходной
матрицы.
Согласно теореме Лапласа определитель матрицы Q( det(Q) ) равен
сумме произведений элементов строки (столбца) на их алгебраические
дополнения:
det(Q) qi1 Ai1 qi 2 Ai 2 ... qin Ain ,
где Aij (1) i j M ij , M ij – дополнительный минор элемента qij
(определитель матрицы, полученной вычеркиванием из исходной строки с
номером i и столбца с номером j).
Согласно этой формуле для вычисления определителя n-ого порядка
требуется вычислить n определителей (n-1)-ого порядка. Поэтому метод
вычисления определителя матрицы будет рекурсивным.
Для вычисления обратной матрицы для матрицы Q требуется найти
матрицу алгебраических дополнений ( Aij ) элементов, транспонировать ее и
разделить на значение det(Q) . Если матрица является вырожденной (ее
определитель равен нулю), обратной матрицы не существует. В этом случае
генерируется исключение.
Таким образом, определение класса QMatrix станет таким:
90
Страницы
- « первая
- ‹ предыдущая
- …
- 88
- 89
- 90
- 91
- 92
- …
- следующая ›
- последняя »
