Программа Python для поиска следа и нормали заданной матрицы
Матрица определяется как набор чисел, расположенных в строках и столбцах. Матрица с m строк и n столбцов называется матрицей m X n, а m и n называются ее размерностями. Матрица — это двумерный массив, который создается с помощью списков или массивов NumPy в Python.
След матрицы
След матрицы определяется как сумма ее диагональных элементов (т.е. элементов от верхнего левого угла до нижнего правого). Вычисление следа матрицы возможно только для квадратной матрицы (т. е. матрицы, строки и столбцы которой имеют одинаковое количество элементов).
Предполагая, что у нас есть матрица 3X3, как показано ниже —
[a, b, c]
[d, e, f]
[g, h, i]
И Trace будет суммой (a+e+i). Возьмем матрицу 4х4.
[1, 2, 3, 4]
[6, 4, 2, 0]
[5, 1, 6, 8]
[9, 3, 6, 0]
Результирующая трассировка этой матрицы:
sum(1+4+6+0) = 11
Ниже мы обсудим примеры поиска следа матрицы.
Использование цикла For
Мы будем перебирать все элементы матрицы, используя цикл for, чтобы вычислить сумму всех диагоналей матрицы для поиска Trace.
Пример
Вычислил сумму диагоналей, перебирая все элементы через питон «цикл for».
# Defining the matrix
matrix = [[10,2,3],
[4,5,2],
[2,2,1]]
# function for calculate the normal of a matrix
def findTrace(matrix):
diag_sum = 0
for i in range(len(matrix)):
diag_sum += matrix[i][i]
return diag_sum
print("Trace of Matrix =", findTrace(matrix))
Выход
Trace of Matrix = 16
Элементы диагоналей данной матрицы равны (10, 5, 1), а след равен 16.
Использование метода NumPy.trace()
Кроме того, мы можем использовать метод трассировки() из модуля Python Numpy для вычисления трассировки матрицы. Метод numpy.trace() возвращает сумму диагоналей массива numpy.
Синтаксис
numpy.trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None)
Пример
В этом примере мы применяем метод numpy.trace() для вычисления трассировки матрицы.
import numpy as np
matrix = np.array([[10,2,3],
[4,5,2],
[2,2,1]])
# find the trace
matrix_trace = np.trace(matrix)
print("Trace of Matrix =", matrix_trace)
Выход
Trace of Matrix = 16
Элементы диагоналей данной матрицы равны (10, 5, 1), а след равен 16.
Найдите нормаль матрицы
Нормаль матрицы определяется как квадратный корень из суммы квадратов всех элементов матрицы.
Предположим, у нас есть матрица из 4 элементов.
[8, 4]
[5, 2]
Нормаль этой матрицы —
√(82 + 42 +52 +22) = 10
Использование цикла For
Переберите все элементы матрицы, используя цикл for, чтобы вычислить квадратный корень из суммы квадратов всех элементов матрицы.
Пример
Чтобы найти нормальную матрицу: сначала мы добавим математический модуль, чтобы использовать свойства math.pow() и math.sqrt().
import math
matrix = [[1,3,2],
[3,6,3],
[1,4,2]]
#function for calculate the normal of a matrix
def findNormal(matrix):
sum_of_elements = 0
for i in range(len(matrix)):
for j in range(len(matrix)):
sum_of_elements += math.pow(matrix[i][j], 2)
return math.floor(math.sqrt(sum_of_elements))
print("Normal of Matrix =", findNormal(matrix))
Выход
Normal of Matrix = 9
Используя цикл for Python, мы выполнили итерацию каждого элемента матрицы и вычислили квадраты с помощью функции math.pow(), затем суммировали квадраты и сохранили их в переменной. Наконец вычислили квадратный корень с помощью функции math.sqrt().
Использование модуля NumPy
С помощью таких методов, как power(), sqrt() и sum(), мы можем легко вычислить нормальную матрицу.
Пример
В этом примере мы импортируем модуль NumPy, чтобы использовать свойства numpy.power(), numpy.sum() и numpy.sqrt().
import numpy as np
matrix = np.array([[1,3,2],
[3,6,3],
[1,4,2]])
# find the normal
sumOfsquares = np.power(matrix, 2).sum()
matrix_normal = round(np.sqrt(sumOfsquares))
print("Trace of Matrix =", matrix_normal)
Выход
Normal of Matrix = 9
Используя функцию numpy.power(), мы вычислили квадрат каждого элемента в заданной матрице, а затем вычислили сумму квадратов с помощью функции numpy.sum(). И, наконец, вычислите квадратный корень, используя функцию numpy.sqrt(). Чтобы избежать float, мы округлили значение np.sqrt().