преобразовать это матричное уравнение во что-то numpy может понять - PullRequest
1 голос
/ 22 февраля 2020

Я знаю, как решить основные c линейные матричные уравнения с numpy.

Однако у меня есть матрица A и уравнение A ^ 2 + xA + yI = 0, где x и y не векторы, а скорее скаляр. I - единичная матрица, а 0 - нулевая матрица измерений, соответствующих A.

Это очень просто на бумаге для небольших матриц (при условии, конечно, что решение существует), но я тренируюсь для собеседование по кодированию и, как ожидается, решит подобные проблемы с python. И, возможно, приведенная матрица будет довольно большой ...

Вот примерная матрица A, которая дает решения x = -2, y = 1:

np.array([[1,1,0],
          [0,1,0]
          [0,0,1]]

На бумаге, это так же просто, как решить систему линейных уравнений x = -2 и x + y = -1. Проблема, с которой я сталкиваюсь, состоит в том, чтобы проанализировать уравнение в его вышеупомянутой форме, чтобы оно было в форме системы уравнений (или, альтернативно, линейного матричного уравнения в форме Ax = B).

1 Ответ

1 голос
/ 23 февраля 2020

Проблема, с которой я сталкиваюсь, заключается в том, чтобы проанализировать приведенное выше уравнение в форме системы уравнений (или, в качестве альтернативы, линейного матричного уравнения в форме Ax = B

Скажите, что A имеет n столбцов. Для квадратной матрицы Q с n столбцами пусть E (Q ) будет вектором длины- n ^ 2 , сформированным путем итерации по элементам Q (скажем, в главном порядке строк).

Затем решение для x, y в

A ^ 2 + xA + yI = 0

эквивалентно решению для z в система

B z = - c

где

  • z = [x, y] - это вектор-столбец длины 2

  • B - матрица n ^ 2 X 2 , столбцы которой E (A) и E (I)

  • c равно E (A ^ 2)

...