<p>在您的示例中,<code>sym.lambdify</code>创建了一个python函数,它看起来像</p>
<pre><code>def DerivativeOff(x,y):
return 2*x + y**2
</code></pre>
<p>这里的numpy后端不起任何作用,因为乘法、加法和乘幂都是python的原始函数。因此,您可以将任何参数传递给<code>DerivativeOff</code>,尤其是sympy符号。在代码末尾尝试<code>DeravativeOff(x,y)</code>。在</p>
<p>现在,如果函数包含python本身无法处理的更复杂的表达式,情况就会发生变化。以下面的例子为例:</p>
^{pr2}$
<p>在本例中,lambdify需要用一些非标准python替换sin函数。为此,它将求助于numpy(您为本例指定了“numpy”)。因此,DerivateOff2看起来像</p>
<pre><code>def DerivativeOff2(x,y):
return numpy.cos(x)*y
</code></pre>
<p>很明显,纽比不能处理交响乐符号。。。在</p>
<p>现在如果您只想绘图,sympy有一些绘图模块(依赖matplotlib):<a href="http://docs.sympy.org/latest/modules/plotting.html" rel="nofollow noreferrer">http://docs.sympy.org/latest/modules/plotting.html</a></p>
<p>你甚至可以用它来制作3d绘图。在</p>
<p>编辑:
以下方法也能起作用:</p>
<pre><code>import sympy as sym
def f(x,y):
return sym.sin(x) + x*sym.sin(y)
def fprime(x,y):
return sym.diff(f(x,y),y)
x, y = sym.symbols('x y')
print(fprime(1,y)) #works perfectly fine
print(fprime(x,1)) #does not work because it would mean to derive with respect to 1
print(fprime(x,y).subs(y,1)) #works, derives with respect to y, then substitutes 1 for y
</code></pre>