我有一些符号计算的代码:
from sympy import *
import numpy
A = MatrixSymbol('A',2,2)
f = Matrix(A).det() # for example only, the actual function is of the same flavor
如何使用相同尺寸的显式矩阵替换A
?我尝试了以下代码,但它没有产生预期的结果:
f.subs(A,Matrix(numpy.random.rand(2,2)))
返回:
Matrix([
[ 0.204259256795002, 0.198427966386296],
[0.0929675373783559, 0.516653291115676]])[0, 0]*Matrix([
[ 0.204259256795002, 0.198427966386296],
[0.0929675373783559, 0.516653291115676]])[1, 1] - Matrix([
[ 0.204259256795002, 0.198427966386296],
[0.0929675373783559, 0.516653291115676]])[0, 1]*Matrix([
[ 0.204259256795002, 0.198427966386296],
[0.0929675373783559, 0.516653291115676]])[1, 0]
答案 0 :(得分:0)
替换有效。默认情况下它仍未评估。要对其进行评估,请使用doit()
,例如
>>> f.subs(A,Matrix(numpy.random.rand(2,2))).doit()
-0.0866313884475072