ВУЗ:
Составители:
Рубрика:
35
// метод вывода решения СЛАУ
public void PrintSolution()
{
. . .
}
}
Сначала опишем функции решения системы линейных уравнений
различными методами.
Метод Крамера используется для решения системы линейных
уравнений с квадратной матрицей коэффициентов. Если матрица
коэффициентов СЛАУ является неквадратной, будет генерироваться
исключение с соответствующим сообщением. Для квадратной матрицы будет
вычисляться определитель. Если определитель не равен нулю, единственное
решение системы уравнений определяется по формуле Крамера:
j
j
x
,
,..1 nj
где
– определитель матрицы А, а
j
- определитель матрицы, в которой j-й
столбец исходной матрицы заменен на вектор свободных членов. Если
определитель матрицы (
) равен нулю, то будет сгенерировано еще одно
исключение.
// метод Крамера решения СЛАУ
public void Kramer()
{
// проверка, является ли матрица прямоугольной
if (m != n)
throw new Exception("Матрица не является квадратной");
double det = a.Determinant(); // вычисление определителя
// матрицы коэффициентов
// проверка определенности системы
if (det == 0)
throw new Exception("Деление на 0");
rang = m;
// вычисление корней по формулам Крамера
Matrix temp = a.Copy();
for (int j = 0; j < n; j++)
{
for (int i = 0; i < n; i++)
temp[i, j] = b[0, i];
x[0, j] = temp.Determinant / det;
for (int i = 0; i < n; i++)
// метод вывода решения СЛАУ public void PrintSolution() { . . . } } Сначала опишем функции решения системы линейных уравнений различными методами. Метод Крамера используется для решения системы линейных уравнений с квадратной матрицей коэффициентов. Если матрица коэффициентов СЛАУ является неквадратной, будет генерироваться исключение с соответствующим сообщением. Для квадратной матрицы будет вычисляться определитель. Если определитель не равен нулю, единственное решение системы уравнений определяется по формуле Крамера: j xj , j 1..n, где – определитель матрицы А, а j - определитель матрицы, в которой j-й столбец исходной матрицы заменен на вектор свободных членов. Если определитель матрицы ( ) равен нулю, то будет сгенерировано еще одно исключение. // метод Крамера решения СЛАУ public void Kramer() { // проверка, является ли матрица прямоугольной if (m != n) throw new Exception("Матрица не является квадратной"); double det = a.Determinant(); // вычисление определителя // матрицы коэффициентов // проверка определенности системы if (det == 0) throw new Exception("Деление на 0"); rang = m; // вычисление корней по формулам Крамера Matrix temp = a.Copy(); for (int j = 0; j < n; j++) { for (int i = 0; i < n; i++) temp[i, j] = b[0, i]; x[0, j] = temp.Determinant / det; for (int i = 0; i < n; i++) 35
Страницы
- « первая
- ‹ предыдущая
- …
- 34
- 35
- 36
- 37
- 38
- …
- следующая ›
- последняя »