擅长:python、mysql、java
<p>关于问题1,注意<code>1/12*b</code>和{<cd2>}在sympy中是不同的。第一个是一个由符号组成的浮点数,而第二个是一个精确的符号表达式(您可以通过一个简单的print语句来检查它)。由于<code>expr</code>包含<code>1/12*b</code>,因此第二个{<cd5>}不起作用也就不足为奇了。在</p>
<p>关于问题2,您提供的<code>subs</code>规则不明确。{cd7>特别地,代换规则意味着^代换。然而,这个等式有很多解释,例如</p>
<p><code>x**2 == y + 1 - 2*x</code>(这是您考虑的那个)</p>
<p><code>x**2 + x == y + 1 - x</code></p>
<p><code>x == (y + 1 - x**2)/2</code></p>
<p>基于这个原因,我认为辛普森拒绝进行替换实际上是一个正确的方法。在</p>
<p>如果这是您想要的第一个解释,最好在<code>subs</code>规则中显式地提供它,即</p>
<pre><code>(((x+1)**2-x).expand()).subs(x**2, -2*x + y + 1)
</code></pre>
<blockquote>
<p><code>-x + y + 2</code></p>
</blockquote>