kxcoze

me_lab9_9.py

Nov 9th, 2022
927
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.83 KB | None | 0 0
  1. from fractions import Fraction as f
  2.  
  3. import numpy as np
  4.  
  5. def ladder(a):
  6.     # Приводим к ступенчатому виду
  7.     n = len(a)
  8.     m = len(a[0])
  9.     # Ведущая строка k, Ведущий элемент q
  10.     for k in range(n):
  11.         for i in range(1+k, n):
  12.             if not any(a[k]):
  13.                 a = np.append(a, [a[k]], axis=0)
  14.                 a = np.delete(a, k, axis=0)
  15.                 continue
  16.             x = -a[i][k]/a[k][k]
  17.             for j in range(m):
  18.                 a[i][j] = a[k][j]*x + a[i][j]
  19.     return a
  20.  
  21. def format_mat(a):
  22.     # Форматируем вывод матрицы
  23.     return np.array([[f'{i}' for i in x] for x in a])
  24.  
  25. n = int(input())
  26. A = np.array([[f(x) for x in input().split()] for i in range(n)])
  27. m = len(A[0])
  28. A = ladder(A)
  29. print(format_mat(A))
  30.  
Advertisement
Add Comment
Please, Sign In to add comment