在sympys中,Eq(lhs,rhs)
可以实例化一个方程。不过,我真的很好奇它的行为,想问一下这个等式是怎么回事
类型是要使用的!在
我要问的原因是,在Maple中,我们使用等式(lhs == rhs
)作为标准工具。但是,我在sympy中看到过很多脚本使用x= y+z
,其中x
是一个python变量,因此只有表达式y+z
才是sympy的实际数学。这将对以下示例产生影响:
MWE:
t = S('t')
f = Function('f')(t)
g = Function('g')(t)
equation = Eq(f,g+1)
equation2 = equation-1
equation3 = equation.diff(t)
equation4 = equation.subs(equation) # this I can do with subs(*equation.args)
以上所有这些都会产生意想不到的结果:第一个结果给出了一个括号中的等式-1,这真的很奇怪。这种区分只作用于左手侧,这在imho中是相当误导的。替换产生错误,只有注释行有效。最后一个对我来说还可以,因为我知道我可以让它工作。但是,对于1和2,除了手动执行所有操作之外,是否还有其他更有用的符号,例如:
^{pr2}$相比之下,Maple可以在数学意义上替代、推导和添加方程(双方都需要解决)。在
我将很高兴有任何关于如何在sympy中“正常”工作的意见。目前看来,使用rhs表达式似乎只是一种方法,Eq
是一个“附带项目”。谢谢你在这个问题上的每一个意见!在
在
isympy
会话中:type(equation)
是sympy.core.relational.Equality
。在
^{pr2}$Out[5]
中的=
与In[4]
行中的python=
无关。在这里的
type
是不同的:sympy.core.add.Add
这是一个
sympy.core.function.Derivative
。它看起来像是一个未赋值的导数,应用于整个equation
对象。在subs
表达式中的错误只是subs
的误用。为什么要使用equation
作为方法的参数?在正确使用
subs
:===
Eq
的引用:https://docs.sympy.org/latest/modules/core.html?highlight=eq#sympy.core.relational.Equality
我仍在努力研究}。它更像是两个对象之间的测试,评估结果为真或假,或保持未评估。在
sympy
文档,但在我看来,Eq
并不像通常的代数意义上创建{通过将
f
替换为g
,我们得到了可以计算的关系:equation2
和equation3
中的相同子元素会产生错误(无法添加数字和False
)或{equation
部分完成,求值为False
,表达式的重置起作用(或不起作用)。在使用
*equation.args
符合以下模式:===
https://docs.sympy.org/latest/gotchas.html 建议
Eq(x,y)
的替代方案是x-y
:相关问题 更多 >
编程相关推荐