ВУЗ:
Составители:
Рубрика:
36
temp[i, j] = a[i, j];
}
isSolved = true;
}
В случае, если СЛАУ с квадратной матрицей
A
имеет единственное
решение, его можно получить по формуле:
BAX
1
, где
1
A
– обратная матрица к
A
.
Данная формула применима только в случаях, когда обратную матрицу
можно вычислить (матрица
A
– квадратная, ее определитель не равен 0).
Нарушение этих условий приводит к генерации исключений (генерация
исключения равенства нулю определителя предусмотрена в методе
вычисления обратной матрицы класса Matrix) .
// метод решения СЛАУ с помощью обратной матрицы
public void InverseMatrix()
{
// проверка, является ли матрица прямоугольной
if (m != n)
throw new Exception("Матрица не является квадратной");
// вычисление обратной матрицы
Matrix obr = ~a;
// поскольку для эффективного использования памяти
// вектор хранится как строка, требуется получить
// соответствующий вектор-столбец посредством
// транспонирования
Matrix B = !b;
// получение решения СЛАУ
x = obr * B;
x = !x;
rang = m;
isSolved = true;
}
Метод исключений Жордана-Гаусса может быть применен, как в
ситуации, когда СЛАУ имеет единственное решение, так и когда решений
бесконечно много. Проведение исключений всех строк по i-ой строке
осуществляется по формулам Жордана-Гаусса:
nj
a
a
a
ii
ij
ij
..1,
temp[i, j] = a[i, j];
}
isSolved = true;
}
В случае, если СЛАУ с квадратной матрицей A имеет единственное
решение, его можно получить по формуле:
X A1B , где A1 – обратная матрица к A .
Данная формула применима только в случаях, когда обратную матрицу
можно вычислить (матрица A – квадратная, ее определитель не равен 0).
Нарушение этих условий приводит к генерации исключений (генерация
исключения равенства нулю определителя предусмотрена в методе
вычисления обратной матрицы класса Matrix) .
// метод решения СЛАУ с помощью обратной матрицы
public void InverseMatrix()
{
// проверка, является ли матрица прямоугольной
if (m != n)
throw new Exception("Матрица не является квадратной");
// вычисление обратной матрицы
Matrix obr = ~a;
// поскольку для эффективного использования памяти
// вектор хранится как строка, требуется получить
// соответствующий вектор-столбец посредством
// транспонирования
Matrix B = !b;
// получение решения СЛАУ
x = obr * B;
x = !x;
rang = m;
isSolved = true;
}
Метод исключений Жордана-Гаусса может быть применен, как в
ситуации, когда СЛАУ имеет единственное решение, так и когда решений
бесконечно много. Проведение исключений всех строк по i-ой строке
осуществляется по формулам Жордана-Гаусса:
aij
aij , j 1..n
aii
36
Страницы
- « первая
- ‹ предыдущая
- …
- 35
- 36
- 37
- 38
- 39
- …
- следующая ›
- последняя »
