#python #matrix #sympy #symbols
#python #матрица #sympy #символы
Вопрос:
У меня есть матрица, которая содержит символы:
t = sympy.symbols("t")
A = sympy.Matrix([[np.exp(t),1,-1)], [0,t,0], [0,t 1,0]])
Я хочу заменить все символы «t» числом.
Заранее благодарю вас.
Ответ №1:
A = sympy.Matrix([[sympy.exp(t),1,-1], [0,t,0], [0,t 1,0]]) # fixing your expression
print(A.subs(t, 5))
Что дает
Matrix([
[exp(5), 1, -1],
[ 0, 5, 0],
[ 0, 6, 0]])
Комментарии:
1. Хм, ваш aswer работает для этого простого примера, спасибо. Однако мой реальный код немного запутанный и более сложный, и, возможно, мне придется задать еще один вопрос. У меня есть матрица A в степени k. MatPow(A, k), и когда я добавляю k с числом, мощность остается за пределами матрицы. Затем, когда я пытаюсь умножить эту матрицу, конечный результат не оценивается, результаты остаются как (MatA ^ 5) * matB. Но спасибо за ваше время 🙂
2. @Emolai Если бы вы хотели вычислить выражение, вы бы сделали
A.subs(t, 5).evalf()
, или более компактноA.evalf(subs={t: 5})
. Удивительно, но по какой-то причине это все равно не будет оцениватьMatPow
объект, и я не могу понять, почему. Определенно стоит другого вопроса.3. @Emolai О, попробуй
sympy.MatPow(A, k).subs({t: 5, k: 2}).doit()
!4. Вы ответили на 2 вопроса в 1: P