Untitled
unknown
plain_text
a year ago
3.7 kB
3
Indexable
Never
print('------------------------------------------------------------------------------------------------------------------------------') print(' Лабораторная работа №1 ') print(' Вариант 4 ') print(' Выполнил: Бикеев Вадим Владимрович ') print(' Группа: М6О-308С-21 ') print(' Преподаватель: Котельников Михаил Вадимович') print('------------------------------------------------------------------------------------------------------------------------------') # number_of_equations - количество уравнений в СЛАУ # matrix_of_the_system - матрица СЛАУ # matrix_X - матрица решений # determ - определитель # action - действие с матрицей print('Введите количество уравнений') number_of_equations = int(input()) print() print('Введите матрицу из', number_of_equations, 'строк' , number_of_equations + 1, 'столбцов') #Вводим исходную матрицу matrix_of_the_system = [] for _ in range(number_of_equations): matrix_of_the_system.append([float(elem) for elem in input().split()]) print() print('Выберите действие: 1 - Решить СЛАУ. 2 - Посчитать определитель.') # Выбираем действие action = int(input()) #Приведение матрицы к треугольному виду for i in range(number_of_equations - 1): k = i while k < number_of_equations - 1: # множиетель, позволяющий занулить первый ненулевой элемент строки multiplier = matrix_of_the_system[k+1][i] / matrix_of_the_system[i][i] #Вычитаем строки for j in range(i, number_of_equations + 1): matrix_of_the_system[k+1][j] = matrix_of_the_system[k+1][j] - matrix_of_the_system[i][j]*multiplier k += 1 matrix_X = [0 for _ in range(number_of_equations)] #Обратный ход и последний элемент if matrix_of_the_system[number_of_equations-1][number_of_equations-1] != 0: matrix_X[number_of_equations-1] = round(matrix_of_the_system[number_of_equations-1][number_of_equations]/matrix_of_the_system[number_of_equations-1][number_of_equations-1], 4) for i in range(number_of_equations-2, -1, - 1): x = matrix_of_the_system[i][number_of_equations] for j in range(i+1,number_of_equations): x = x - matrix_of_the_system[i][j]*matrix_X[j] matrix_X[i] = round(x / matrix_of_the_system[i][i], 4) print('') #Выводим решение СЛАУ if action == 1: print('Решение СЛАУ:') print('') for i in range(number_of_equations): print('x', i + 1, sep = '', end = '') print(' =', matrix_X[i]) #Считаем определитель elif action == 2: determ = 1 print('') for i in range(number_of_equations): determ *= matrix_of_the_system[i][i] print(round(determ, 4))