Untitled
unknown
plain_text
2 years ago
3.7 kB
12
Indexable
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))
Editor is loading...