Лабораторная работа 9

Задание 1

Напишие функцию, выполняющую вычисление следа квадратной матрицы. След матрицы – это сумма её диагональных элементов.


import numpy as np

def trace(A):
    ...
    ...
    ...
    return tr


M1 = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12.0],[1,2,3,4]])

result = trace(M1)

print(result)

Задание 2

Напишие функцию, выполняющую поворот квадратной матрицы против часовой стрелки на 90 градусов.


import numpy as np

def rotate90ccw(A):
    ...
    ...
    ...
    return res


M1 = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12.0],[1,2,3,4]])

result = rotate90ccw(M1)

print(result)

Задание 3

Напишите функцию, вычисляющую произведение матрицы на вектор


import numpy as np

def MatrixVec(M, v):
    ...
    ...
    ...
    return res


M = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12.0]])
a = np.array([1,2,3,4.0])

result = MatrixVec(M, a)

print(result)

Проверьте результат при помощи функции dot библиотеки numpy.

Задание 4

Напишите функцию, вычисляющую произведение двух матриц


import numpy as np

def MatrixMatrix(A, B):
    ...
    ...
    ...
    return res


M1 = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12.0]])
M2 = np.array([[1,2],[1,2],[1,2],[1,2]])

result = MatrixMatrix(M1, M2)

print(result)

Проверьте результат при помощи функции dot библиотеки numpy.

Задание 5

Перепешите код функции в предыдущем задании, используя синтаксис A[:,0], A[:,1], для исключения одного цикла из кода функции, представив каждый столбец матрицы результата как линейную комбинацию столбцов матрицы A, например

\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} = \left( 5 \begin{bmatrix} 1 \\ 3 \end{bmatrix} + 7 \begin{bmatrix} 2 \\ 4 \end{bmatrix} \quad 6 \begin{bmatrix} 1 \\ 3 \end{bmatrix} + 8 \begin{bmatrix} 2 \\ 4 \end{bmatrix} \right)

Задание 6

Напишие функцию, выполняющую транспонирование квадратной матрицы без создания новой матрицы


import numpy as np

def transpose(A):
    ...
    ...
    ...
    return A


M1 = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12.0],[1,2,3,4]])

result = transpose(M1)

print(result)


© 2018. All rights reserved.