Решение системы линейных уравнений n порядка - C (СИ)
Формулировка задачи:
Нужно составить
решение системы линейных уравнений n-го порядка
.Решение задачи: «Решение системы линейных уравнений n порядка»
textual
Листинг программы
/*Метод Гаусса*/ double tmp, xx[column]; int k; /*прямой ход*/ for( i = 0; i < row; i++) { tmp = matrix[i][i]; for( j = row; j >= i; j--) matrix[i][j] /= tmp; for( j = i + 1; j < row; j++) { tmp = matrix[j][i]; for( k = row ; k >= i; k--) matrix[j][k] -= tmp*matrix[i][k]; } } /*обратный ход*/ xx[row - 1] = matrix[row - 1][row]; for( i = row - 2; i >= 0; i--) { xx[i] = matrix[i][row]; for( j = i + 1; j < row; j++) xx[i] -= matrix[i][j] * xx[j]; }
Объяснение кода листинга программы
В этом коде решается система линейных уравнений методом Гаусса. Вот список действий:
- Создаются временная переменная tmp и массив xx для хранения результатов.
- Выполняется прямой ход метода Гаусса:
- Для каждого i-го столбца (от 0 до row-1)
- Создается временная переменная tmp, которая равна i-му элементу в i-м столбце матрицы.
- Делается i-1 переходов по столбцам от i до 0, и на каждой строке (от i до 0) умножается i-й элемент на соответствующий элемент в i-м столбце и вычитается из соответствующих элементов в столбцах, начиная с i+1.
- Для каждого i-го столбца (от 0 до row-1)
- Выполняется обратный ход метода Гаусса:
- Создается массив xx размером row, где каждый элемент равен i-му элементу в i-м столбце матрицы.
- Для каждого i-го столбца (от row-1 до 0)
- Создается временная переменная tmp, которая равна i-му элементу в i-м столбце матрицы.
- Делается i-1 переходов по столбцам от i до 0, и на каждой строке (от i до 0) умножается i-й элемент на соответствующий элемент в i-м столбце и вычитается из соответствующих элементов в столбцах, начиная с i+1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д