Probably your tolerance is too high. In any case, this is already implemented: http://docs.sympy.org/0.7.2/modules/plotting.html#sympy.plotting.plot_implicit.plot_implicit
On 30 April 2013 11:23, Pushpak Dagade <[email protected]> wrote: > I am trying to create a simple 2d plot by solving a equation in x and y, > for given y. > I am using sympy.mpmath.findroot to solve the equation. It solves it > correctly for all 'y' points, except for a few ones, where the 'x' I get on > solving starts diverging (giving no solution if I take points even more > finely). I have also attached the associated plot. What I expect is a > simple quadratic plot, for all 'y' points (from 0 to ). > > This is the code - > > ################################################################# > > from numpy import arange > > from sympy import * > > import matplotlib.pyplot as plt > > > p,q,r = -0.000116108381457823, 0.180075602770215, 12.0188009030456 > > > Y_ = arange(0,1,0.01) > > X = [] > > Y = [] > > > x = symbols('x') > > > for y in Y_: > > def f1(x): > > y0 = ( -(x - y/2 + q/2 - p) + sqrt((x - y/2 + q/2 - p)**2 - \ > > 4.60844*(p*y-x*q)*(y-q)) )/(2.30422*(y-q)) > > return (y0 - y) > > > try: > > X.append(mpmath.findroot(f1, 0, verbose=False, tol=1e-3, verify=True)) > > Y.append(y) > > except ValueError: > > print '.', > > > plt.plot(X, Y) > > plt.show() > > ################################################################# > > > <https://lh4.googleusercontent.com/-nJYWoNYqwpM/UX-NBTejvgI/AAAAAAAADEA/s-JJjlsMHTE/s1600/sympy_mpmath_findroot.png> > > > Kindly help me finding what is wrong here. (Note, I need to get 10 such > plots). > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/sympy?hl=en-US. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/sympy?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.
