Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- print('Данная программа определяет некоторые нормы матрицы')
- n = 0 # размерность матрицы
- while n<=0: #считываем размерность матрицы до тех пор, пока не будет введено корректное значение
- print('Введите размерность матрицы', end = ' ')
- try:
- n = int(input())
- except Exception as e:
- print('Ошибка.')
- if n > 0:
- break
- matrix = [0 for i in range(n*n)]
- max_element = 0
- for i in range(n): # считываем матрицу
- for j in range(n):
- flag = False
- while flag == False: # считываем A[i][j] до тех пор, пока не будет введено корректное значение
- print('Введите',i+1,j+1,'элемент матрицы', end = ' ')
- try:
- matrix[i*n+j] = float(input())
- max_element = max(max_element, abs(matrix[i*n+j]))
- flag = True
- except Exception as e:
- print('Ошибка.')
- def get_cube(): # функция для нахождения кубической формы
- ans = 0
- for i in range(n):
- pre = 0
- for j in range(n):
- pre+=abs(matrix[i*n+j])
- ans = max(ans, pre)
- return ans
- def get_oct(): # функция для нахождения октоэдрической формы
- ans = 0
- for j in range(n):
- pre = 0
- for i in range(n):
- pre+=abs(matrix[i*n+j])
- ans = max(ans, pre)
- return ans
- def get_euc(): # функция для нахождения евклидовой формы
- ans = 0
- for i in range(n):
- for j in range(n):
- ans+=matrix[i*n+j]*matrix[i*n+j]
- from math import sqrt
- return sqrt(ans)
- print('==========================================')
- print()
- print('==========================================')
- print("Кубическая норма матрицы равна: %.3f" % (get_cube()))
- print("Октоэдрическая норма матрицы равна %.3f" % (get_oct()))
- print("Евклидова норма матрицы равна %.3f" % (get_euc()))
- print("max(A[i][j])*n = %.3f" % (max_element*n)) # вывод верхней границы оценки норм
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement