Как рассчитать произведение диагонали в Sympy? - PullRequest
0 голосов
/ 09 марта 2020

Я дал матрицу Симпи, таким образом, матрицу, состоящую из действительных значений и значений символов c, и я хочу вычислить произведение диагональных элементов матрицы; Пример:

import numpy as np
import sympy as sp
from sympy import *
from sympy.matrices import Matrix

A=sp.Matrix([[1,0,1],[2,3,1],[y,5,x]])

Теперь желаемый результат будет 3x; Конечно, я мог бы сделать это с помощью для l oop, но есть ли другое, более чистое решение?

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Оскар Бенджамин предоставил отличное решение. Это также будет работать:

np.product(np.diag(A))
0 голосов
/ 09 марта 2020

Вы можете использовать diagonal для получения диагональных элементов и prod для их умножения:


In [46]: A.diagonal()
Out[46]: [1  3  x]

In [47]: prod(_)
Out[47]: 3⋅x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...