ВУЗ:
Составители:
Рубрика:
91
class QMatrix : Matrix
{
// конструктор производного класса
public QMatrix(int rows): base(rows, rows)
{
}
// метод получения подматрицы вычеркиванием заданных
// строки и столбца
QMatrix SubMatrix(int i1, int j1)
{
int rows = Rows;
// матрица-результат имеет порядок
// на 1 меньше исходной
QMatrix temp = new QMatrix(rows - 1);
// формируем новую матрицу, игнорируя
// строку с номером i1 и столбец с номером j1
for(int i = 0; i < i1; i++)
{
for(int j = 0;j < j1; j++)
temp[i,j] = a[i,j];
for (int j = j1 + 1; j < rows; j++)
temp[i,j - 1] = a[i,j];
}
for (int i = i1 + 1; i < rows; i++)
{
for(int j = 0; j < j1; j++)
temp[i - 1, j] = a[i, j];
for (int j = j1 + 1; j < rows; j++)
temp[i - 1, j - 1] = a[i,j];
}
return temp;
}
// метод вычисления определителя матрицы
public double Determinant()
{
double det = 0;
int rows = Rows;
// определитель 1-ого порядка совпадает
// с единственным элементом матрицы
if(rows == 1)
return a[0,0];
QMatrix temp = new QMatrix(rows - 1);
// раскладываем определитель по 0-ой строке
for (int j = 0; j < rows; j++)
{
// получаем матрицу для вычисления
// минора элемента a0j
temp = SubMatrix(0, j);
// добавляем очередное произведение элемента
// на его алгебраическое дополнение
if(j % 2 == 0)
class QMatrix : Matrix
{
// конструктор производного класса
public QMatrix(int rows): base(rows, rows)
{
}
// метод получения подматрицы вычеркиванием заданных
// строки и столбца
QMatrix SubMatrix(int i1, int j1)
{
int rows = Rows;
// матрица-результат имеет порядок
// на 1 меньше исходной
QMatrix temp = new QMatrix(rows - 1);
// формируем новую матрицу, игнорируя
// строку с номером i1 и столбец с номером j1
for(int i = 0; i < i1; i++)
{
for(int j = 0;j < j1; j++)
temp[i,j] = a[i,j];
for (int j = j1 + 1; j < rows; j++)
temp[i,j - 1] = a[i,j];
}
for (int i = i1 + 1; i < rows; i++)
{
for(int j = 0; j < j1; j++)
temp[i - 1, j] = a[i, j];
for (int j = j1 + 1; j < rows; j++)
temp[i - 1, j - 1] = a[i,j];
}
return temp;
}
// метод вычисления определителя матрицы
public double Determinant()
{
double det = 0;
int rows = Rows;
// определитель 1-ого порядка совпадает
// с единственным элементом матрицы
if(rows == 1)
return a[0,0];
QMatrix temp = new QMatrix(rows - 1);
// раскладываем определитель по 0-ой строке
for (int j = 0; j < rows; j++)
{
// получаем матрицу для вычисления
// минора элемента a0j
temp = SubMatrix(0, j);
// добавляем очередное произведение элемента
// на его алгебраическое дополнение
if(j % 2 == 0)
91
Страницы
- « первая
- ‹ предыдущая
- …
- 89
- 90
- 91
- 92
- 93
- …
- следующая ›
- последняя »
