gpt4 book ai didi

python - 有什么方法可以替换 sympy 中的内置参数变量名称吗?

转载 作者:太空宇宙 更新时间:2023-11-03 19:53:27 25 4
gpt4 key购买 nike

import sympy as sp

a = sp.Matrix([[1,1,1],[0,0,0],[0,0,0]])

b = sp.Matrix([35,0,0])

c = a.gauss_jordan_solve(b)

print(c[0][0])
print(c[0][1])
print(c[0][2])

输出:

-tau0 - tau1 + 35

tau0

tau1

我想将 tau0tau1 替换为任意字母,如何实现?

最佳答案

isympy session 中,其中 xy 已定义为符号:

In [22]: sol, params = a.gauss_jordan_solve(b)                                                            

In [23]: sol
Out[23]:
⎡-τ₀ - τ₁ + 35⎤
⎢ ⎥
⎢ τ₀ ⎥
⎢ ⎥
⎣ τ₁ ⎦

In [24]: params
Out[24]:
⎡τ₀⎤
⎢ ⎥
⎣τ₁⎦

In [25]: sol.replace(params[0], x).replace(params[1], y)
Out[25]:
⎡-x - y + 35⎤
⎢ ⎥
⎢ x ⎥
⎢ ⎥
⎣ y ⎦

solparamssympy.Matrix 对象。 taussympy.Symbol

或从 gauss_jordan_solve 文档中绘制:

In [74]: sol.xreplace({params[0]:x, params[1]:y})                                                         
Out[74]:
⎡-x - y + 35⎤
⎢ ⎥
⎢ x ⎥
⎢ ⎥
⎣ y ⎦

生成这些tau名称的代码:

    # Free parameters
# what are current unnumbered free symbol names?
name = _uniquely_named_symbol('tau', aug,
compare=lambda i: str(i).rstrip('1234567890')).name
gen = numbered_symbols(name)
tau = Matrix([next(gen) for k in range((col - rank)*B_cols)]).reshape(
col - rank, B_cols)

关于python - 有什么方法可以替换 sympy 中的内置参数变量名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59685832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com