Создание разных матриц одним и тем же матрично-матричным умножением внутри цикла с использованием Python - PullRequest
0 голосов
/ 25 августа 2018

У меня есть квадратная матрица размерности n * n.Я должен определить функцию, которая принимает эту матрицу A в качестве входных данных, а также значение k.Матрица A является случайной матрицей, порожденной случайной случайной функцией.Предположим, что k = 4, тогда мы должны создать три разных матрицы, таких как:

 matrix_2=A*A
 matrix_3=A*A*A
 matrix_4=A*A*A*A

Где все вышеупомянутые умножения являются умножением матриц (где столбцы A = Строка B), а не умножением по элементам.

k может иметь любое значение, заданное пользователем.Как мы можем реализовать это с помощью цикла for в Python.

1 Ответ

0 голосов
/ 25 августа 2018

Используйте list или dict для переменного числа переменных. В этом случае вы можете использовать словарное понимание, с ключами словаря, выровненными по степени:

from numpy.linalg import matrix_power

np.random.seed(0)

n = 2
A = np.random.random((n, n))

def make_arrays(arr, k):
    return {i: matrix_power(arr, i) for i in range(1, k+1)}

res = make_arrays(A, 4)

Результат:

{1: array([[0.5488135 , 0.71518937],
           [0.60276338, 0.54488318]]),
 2: array([[0.73228622, 0.78220024],
           [0.65924031, 0.72798764]]),
 3: array([[0.87337022, 0.94993107],
           [0.80060427, 0.86814988]]),
 4: array([[1.05190103, 1.14222656],
           [0.96267139, 1.04562393]])}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...