2016-12-10 3 views
1

Я новичок в симпы. Я работаю с симплексными матрицами. Кто-нибудь знает о создании матрицы как субъекта из матричного уравнения? для примера, если уравнение имеет вид A + 2B = C, здесь A, B и C являются матрицами. Я хочу, чтобы тема была B. Так что окончательный ответ должен выглядеть как B = (C-A)/2. Есть ли какой-либо прямой способ сделать это?Создание темы для формулы матрицы в Sympy

ответ

1

Подход, предлагаемый агентом, представляется применимым: см. How to solve matrix equation with sympy?.

Сначала объявите A, B и C некоммутативными переменными и получим решение уравнения. Во-вторых, переопределите C и A в качестве требуемых массивов, а затем примените формулу к этим массивам.

>>> from sympy import * 
>>> A,B,C = symbols('A B C', commutative=False) 
>>> solve(A+2*B-C,B) 
[(-A + C)/2] 
>>> A = Matrix([2,2,1,5]) 
>>> C = Matrix([1,1,1,1]) 
>>> A = A.reshape(2,2) 
>>> C = C.reshape(2,2) 
>>> (-A + C)/2 
Matrix([ 
[-1/2, -1/2], 
[ 0, -2]]) 

Чтобы ответить на этот вопрос в комментариях: Определить матрицу C, чтобы быть нулевой матрицей в правой части уравнения и продолжить, как указано выше.

>>> A,B,C = symbols('A B C', commutative=False) 
>>> solve(2*A+B-C,A) 
[(-B + C)/2] 
>>> B = Matrix([1,4,3,5]) 
>>> B = B.reshape(2,2) 
>>> C = Matrix([0,0,0,0]) 
>>> C = C.reshape(2,2) 
>>> (-B + C)/2 
Matrix([ 
[-1/2, -2], 
[-3/2, -5/2]]) 
+0

Благодарим вас за ответ. Это решило мою проблему. Теперь у меня есть еще одна проблема: я не мог смешивать матричные переменные со значениями матрицы, такими как 2 * A + B = Матрица ([[0,0], [0,0]]). Здесь я хочу сделать А предметом. Есть ли какой-либо способ сделать симпы? – Venilope

+0

Pls видит отредактированный ответ. –

+0

Спасибо. Извините за неудобства, в основном, то, что я хочу, - это мой вход для sympy, содержащий значения матриц с переменными. поэтому я не могу изменить его как все матрицы как переменные сначала, как то, что вы сказали выше bcoz в моем i/p, есть несколько значений и матричных переменных, поэтому я не могу изменить каждое значение матрицы на переменные, а затем отправить его на sympy , Есть ли способ сделать это в sympy ?. Если нет, я планировал реализовать это для sympy. Поэтому, пожалуйста, помогите мне узнать, существует ли эта функциональность или нет./P может быть так же 2 * A + Matrix [] = Matrix []. Пожалуйста, дайте мне знать, если есть способ. – Venilope

Смежные вопросы