ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »