这将创建一个点列表,并且 sympysolve()
方法应该返回 x 的值。相反,它返回了另一个方程,我不知道为什么。并且正在图中创建一个点列表ogrid()
,ravel()
这是在 Matplotlib 上,如果这有所不同,但我认为它不应该。它应该找到方程的根。我不确定我在这里做错了什么,导致它不返回值,而是返回另一个等式:
from mpl_toolkits.axes_grid.axislines import SubplotZero
from pylab import *
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.path import Path
import matplotlib.patches as patches
from matplotlib import rc
import random
from sympy.solvers import solve
from sympy import *
a = -2; b = 1
y, x = np.ogrid[-10:10:100j, -10:10:100j]
xlist = x.ravel(); ylist = y.ravel()
elliptic_curve = pow(y, 2) - pow(x, 3) - x * a - b
plt.contour(xlist, ylist, elliptic_curve, [0])
randmid = random.randint(30,70)
#y = ylist[randmid]; x = xlist[randmid]
xsym, ysym = symbols('x ylist[randmid]')
x_result = solve(pow(ysym, 2) - pow(xsym, 3) - xsym * a - b, xsym) # 11/5/13 needs to return a value
我正在自学 Python,所以这可能是初级程序员可以帮助我解决的问题,但是如果专业人士看到这一点并且可以抽出时间来提供帮助,那就太好了。
编辑:
返回 y 大约 3.xx 的值,其中没有 3 个可能的 x 值: