擅长:python、mysql、java
<p>SymPy图可以与<a href="https://docs.sympy.org/latest/modules/plotting.html#sympy.plotting.plot.Plot.extend" rel="nofollow noreferrer">^{<cd1>}</a>组合。但是,SymPy打印类型不包括点打印,这正是您想要的临界点。在这种情况下,应该直接使用matplotlib,SymPy无论如何都会暗地里这么做。在</p>
<p>下面是一个基于您的代码的示例,但是没有分号,具有列表理解功能,并且matplotlib用于所有绘图。注意,<code>lambdify</code>提供了一种在一组点上高效地计算一组SymPy表达式的方法。在</p>
<pre><code>from sympy import *
import numpy as np
import matplotlib.pyplot as plt
x = symbols('x')
equation = x*exp(-x**2/10)
firstDeriv = equation.diff(x)
secondDeriv = firstDeriv.diff(x)
criticalPoints = list(solveset(firstDeriv, x))
criticalPointsY = [equation.subs(x, a) for a in criticalPoints]
xx = np.linspace(-10, 10, 1000)
yy = lambdify(x, [equation, firstDeriv, secondDeriv])(xx)
plt.plot(xx, np.transpose(yy))
plt.plot(criticalPoints, criticalPointsY, 'k*')
plt.show()
</code></pre>
<p><img src="https://i.stack.imgur.com/yFFff.png" alt="plot"/></p>