首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在症状中操纵diop_linear的结果

如何在症状中操纵diop_linear的结果
EN

Stack Overflow用户
提问于 2020-07-19 05:16:22
回答 1查看 72关注 0票数 1

我有以下简单的代码:

代码语言:javascript
复制
import sympy
from sympy.solvers.diophantine.diophantine import diop_linear

x, y = sympy.symbols('x y')
eq = 2*x+3*y-10
sol_eq = diop_linear(eq)

变量sol_eq等于(3*t_0 - 10, 10 - 2*t_0)。现在,我希望能够将值1替换为t_0,并对其求值。但是如果我尝试sol_eq[0].subs({t_0:1}),我当然会得到一个错误,因为t_0没有定义。如果我将t_0定义为一个符号,似乎将它们视为不同的符号。

有什么建议吗?症状帮助似乎没有提供任何关于如何操作结果的指示,或者更准确地说,我还没有找到答案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-19 06:10:13

你可以自己定义符号,只要你设置了integer=True假设,它就会起作用:

代码语言:javascript
复制
In [1]: import sympy 
   ...: from sympy.solvers.diophantine.diophantine import diop_linear 
   ...:  
   ...: x, y = sympy.symbols('x y') 
   ...: eq = 2*x+3*y-10 
   ...: sol_eq = diop_linear(eq)                                                                                                               

In [2]: sol_eq                                                                                                                                 
Out[2]: (3⋅t₀ - 10, 10 - 2⋅t₀)

In [3]: t0 = Symbol('t_0', integer=True)                                                                                                       

In [4]: sol_eq_1 = tuple(s.subs({t0: 1}) for s in sol_eq)                                                                                      

In [5]: sol_eq_1                                                                                                                               
Out[5]: (-7, 8)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62973877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档