gpt4 book ai didi

python - Sympy 函数替换

转载 作者:行者123 更新时间:2023-12-01 02:26:07 24 4
gpt4 key购买 nike

我使用类似的东西

x = Function('x',real=True)(t)

它在我的所有计算中给出了x(t) 作为函数变量。我现在可以区分时间、求解(不是 nonlinsolvesolveset,因为它们无法替代这些函数)等等。

但是,我想将结果导出到 MATLAB。所以我需要把 (t) 去掉。我可以用 d = {x(t):x} 填充 dict,但我认为有一种更优雅的方法可以为所有函数执行此操作,例如 y(t),z(t),...

我想要的结果是输入

expr = x(t)-y(t)
output = x-y

其中 x 和 y 可以是 Sympy 已知的“函数”,但输出中不应有 (t)。而且我确实希望避免在不依赖时间的情况下再次引入所有变量!

最佳答案

这是一个循环 walks through the expression tree并将参数为 t 的任何函数替换为与该函数名称匹配的符号。替换是在表达式的另一个副本中进行的,以避免修改我们正在遍历的表达式。

示例:如果 expr 为 x(t) - y(t),则 expr1 为 x - y

expr1 = expr
for f in preorder_traversal(expr):
if f.args == (t,):
expr1 = expr1.subs(f, Symbol(str(f.func)))
print(expr1)

关于python - Sympy 函数替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47389524/

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