如何在 Python 中绘制二次双变量表达式?例如,以下表达式:
-0.5x^2 - 0.5y^2 +0.5 xy + x + y + 0.3 = 0
是否有必要将其转换为 Polar 系统?
最佳答案
这是一种使用 sympy 的方法,Python的符号数学库:
from sympy import symbols, Eq
from sympy.plotting import plot_implicit
x, y = symbols('x y')
plot_implicit(Eq(-0.5*x**2 - 0.5*y**2 + 0.5*x*y + x + y + 0.3, 0))
![plot_implicit](/image/TJtcp.png)
使用 numpy 和 matplotlib,您可以创建坐标网格并调用
plt.contour
轮廓级别为 0:import matplotlib.pyplot as plt
import numpy as np
x1d = np.linspace(-1, 5, 50)
y1d = np.linspace(-1, 5, 50)
x, y = np.meshgrid(x1d, y1d)
f = -0.5 * x ** 2 - 0.5 * y ** 2 + 0.5 * x * y + x + y + 0.3
fig, ax = plt.subplots()
ax.contour(x, y, f, levels=[0], colors='dodgerblue')
ax.scatter(x=[0.24881, 3.75119], y=[0.24881, 3.75119], color='crimson') # draw two points in matplotlib
ax.set_aspect('equal')
plt.show()
![example plot](/image/yVS8a.png)
关于python - 如何在 Python 中绘制二元多项式函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66577256/