如何在Sympy中将虚拟变量(sympy.core.symbol.Dummy)转换为常规符号?
例如,假设我们要在满足某些方程f(x_1,x_2)= 0的矩阵内核中找到所有向量(x_1,x_2)。
我将其分为两个步骤。首先:
from sympy import Matrix
M = Matrix( [[1,0],
[0,0] ])
zeros = Matrix([[0],
[0]])
sol = M.gauss_jordan_solve(zeros)[0]
第二:求解f(sol)= 0。
但是我不知道如何告诉Sympy将sol的条目视为符号。有什么想法吗?
答案 0 :(得分:0)
sol.free_symbols
返回sol
中所有符号的集合(“ free”是在这种情况下无关紧要的细节)。如果您想用自己选择的其他符号替换它们,请创建新的符号(视需要而定),并使用subs
进行替换,如下所示。
from sympy import symbols
dummies = list(sol.free_symbols)
my_syms = symbols("x0:{}".format(len(dummies))) # Example: symbols("x0:3") creates x0, x1, x2
sol = sol.subs(dict(zip(dummies, my_syms)))