Advertisement
999ms

Untitled

Feb 11th, 2019
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.39 KB | None | 0 0
  1. print('Данная программа определяет некоторые нормы матрицы')
  2.  
  3. n = 0 # размерность матрицы
  4. while n<=0:     #считываем размерность матрицы до тех пор, пока не будет введено корректное значение
  5.     print('Введите размерность матрицы', end = ' ')
  6.     try:
  7.         n = int(input())
  8.     except Exception as e:
  9.         print('Ошибка.')
  10.     if n > 0:
  11.         break
  12. matrix = [0 for i in range(n*n)]
  13. max_element = 0
  14. for i in range(n): # считываем матрицу
  15.     for j in range(n):
  16.         flag = False
  17.         while flag == False: # считываем A[i][j] до тех пор, пока не будет введено корректное значение
  18.             print('Введите',i+1,j+1,'элемент матрицы', end = ' ')
  19.             try:
  20.                 matrix[i*n+j] = float(input())
  21.                 max_element = max(max_element, abs(matrix[i*n+j]))
  22.                 flag = True
  23.             except Exception as e:
  24.                 print('Ошибка.')
  25.  
  26. def get_cube(): # функция для нахождения кубической формы
  27.     ans = 0
  28.     for i in range(n):
  29.         pre = 0
  30.         for j in range(n):
  31.             pre+=abs(matrix[i*n+j])
  32.         ans = max(ans, pre)
  33.     return ans
  34.  
  35. def get_oct(): # функция для нахождения октоэдрической формы
  36.     ans = 0
  37.     for j in range(n):
  38.         pre = 0
  39.         for i in range(n):
  40.             pre+=abs(matrix[i*n+j])
  41.         ans = max(ans, pre)
  42.     return ans
  43.  
  44. def get_euc(): # функция для нахождения евклидовой формы
  45.     ans = 0
  46.     for i in range(n):
  47.         for j in range(n):
  48.             ans+=matrix[i*n+j]*matrix[i*n+j]
  49.     from math import sqrt
  50.     return sqrt(ans)
  51. print('==========================================')
  52. print()
  53. print('==========================================')
  54. print("Кубическая норма матрицы равна: %.3f" % (get_cube()))
  55. print("Октоэдрическая норма матрицы равна %.3f" % (get_oct()))
  56. print("Евклидова норма матрицы равна %.3f" % (get_euc()))
  57. print("max(A[i][j])*n = %.3f" % (max_element*n)) # вывод верхней границы оценки норм
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement