我有这个等式,它定义了一个椭圆。
7.91x^2 + -0.213xy + 5.46y^2 -0.031x -0.0896y = 1
一般形式:Ax^2 + Bxy + Cy^2 + Dx +Ey = 1
我正在使用python 2.7 - pythonxy
当然,我尝试通过尝试解决点x和y的数组,但它不起作用。我在下面的代码中使用了来自this question的方法,但它没有显示所需的椭圆。
import numpy as np
import matplotlib.pyplot as plt
z = -np.linspace(-0.5,+0.5,1000)
x = np.linspace(-0.5,+0.5,1000)
x,z = np.meshgrid(x,z)
Z = -1 + 5.46*z**2
X = 7.91*x**2
plt.contour(x,z,(X+Z),[0])
plt.xlim([-0.6,0.6])
plt.ylim([-0.6,+0.6)
答案 0 :(得分:1)
您显示的代码不代表椭圆的等式。有点难以确定你在该代码中究竟尝试了什么,但这里的方法当然与linked question的答案完全相同,即用网格网格计算方程式的左边并将右侧的级别显示为contour
行。
import numpy as np
import matplotlib.pyplot as plt
x = -np.linspace(-0.5,+0.5,1000)
y = np.linspace(-0.5,+0.5,1000)
X,Y = np.meshgrid(x,y)
#equation: 7.91x^2 + -0.213xy + 5.46y^2 -0.031x -0.0896y = 1
eqn = 7.91* X**2 -0.213*X*Y + 5.46*Y**2 -0.031*X - 0.0896*Y
Z = 1
plt.contour(X,Y,eqn,[Z])
plt.xlim([-0.6,0.6])
plt.ylim([-0.6,+0.6])
plt.show()