Here's some example input for one of the systems you gave:

from sage.interfaces.phc import phc
r4.<p,q,x,y> = PolynomialRing(CDF,4)
eqlist = [p+q-9, q*y+p*x+6, q*y^2+p*x^2-24,p-1]
bb_sols = phc.blackbox(eqlist,r4)
bb_sols.solutions()

-MH

On Oct 29, 8:41 am, mhampton <[EMAIL PROTECTED]> wrote:
> PHCpack is probably the best thing to use for numerical solutions of
> polynomial equations, or equations that can be converted into
> polynomials (e.g.. sin and cos).  My interface was recently included
> in sage but the PHCpack developers are working on a more sophisticated
> one which will hopefully make mine obsolete.  But until then, give it
> a try and I'll be happy to help if you have problems.
>
> Cheers,
> Marshall Hampton
>
> On Oct 29, 4:40 am, Jason Grout <[EMAIL PROTECTED]> wrote:
>
> > William Stein wrote:
> > > On 10/28/07, David Joyner <[EMAIL PROTECTED]> wrote:
> > >> On 10/26/07, Jason Grout <[EMAIL PROTECTED]> wrote:
> > >>> I'm trying to numerically solve a system of equations.  Currently I 
> > >>> have:
>
> > >>> sage: var('x y p q')
> > >>> sage: eq1 = p+q==9
> > >>> sage: eq2 = q*y+p*x==-6
> > >>> sage: eq3 = q*y^2+p*x^2==24
> > >>> sage: solve([eq1,eq2,eq3,p==1],p,q,x,y)
> > >>> [[p == 3, q == 6, x == (-2*sqrt(10) - 2)/3, y == (sqrt(2)*sqrt(5) -
> > >>> 2)/3], [p == 3, q == 6, x == (2*sqrt(10) - 2)/3, y == (-sqrt(2)*sqrt(5)
> > >>> - 2)/3]]
>
> > >>> I'd like the answer to be a numeric approximation, though (i.e.,
> > >>> x==-2.77485177345).  I can't find any other solving routines other than
> > >>> the symbolic one, though.  Is there a way to numerically approximate the
> > >>> solution, other than going through each solution and calling n() on the
> > >>> left side of each symbolic expression?
>
> > >> Examples using numpy and octave are give in the constructions cookbook:
>
> > >>http://www.sagemath.org/doc/html/const/node35.html
>
> > > Note that his systems are nonlinear, but your examples
> > > in the constructions book are linear.  So it's sort of
> > > a different thing.
>
> > William is correct here.
>
> > > Some options for solving systems of nonlinear equations  *numerically* 
> > > include:
>
> > >   * [100% sage] Use scipy, which wraps minpack:
> > > Type
> > >    sage: import scipy.optimize
> > >    sage: scipy.optimize.fsolve ?
> > > to hopefully get going.   Also just try scipy.optimize.[tab]
>
> > I saw this late Saturday night and tried to get it working, but haven't
> > been successful yet.  I think it's a matter of figuring out what fsolve
> > is expecting to be passed and how to interpret the results (e.g., it
> > appears that fsolve expects the function to take a vector, or list of
> > parameters, and not just a bunch of parameters).
>
> > >   * [Not sage] Use phcpack, which is open source (GPL'd) but not
> > > included in Sage. It is able to do amazing things with solving
> > > algebraic systems numerically, using a method called "Polynomial
> > > Homotopy Continuation".  There is a Sage interface to phcpack, that
> > > Marshall Hampton worked on (he frequently posts on sage-devel).
>
> > Thanks for this tip as well.
>
> > For now, I just ended up making a patch for the functionality that I
> > wanted (isn't that what we encourage here? :).  Carl merged it into
> > 2.8.10 last night.  It adds a solution_dict optional parameter to solve
> > that returns a dictionary of the solutions.  This makes it easy to refer
> > to the values in a solution.  Using the solution_dict option, my
> > original problem may be solved with:
>
> > sage: var('x y p q')
> > sage: eq1 = p+q==9
> > sage: eq2 = q*y+p*x==-6
> > sage: eq3 = q*y^2+p*x^2==24
> > sage: solutions=solve([eq1,eq2,eq3,p==1],p,q,x,y, solution_dict=True)
> > sage: for solution in solutions: print solution[p].n(), solution[q].n(),
> > solution[x].n(), solution[y].n()
>
> > However, it would still probably be more efficient to use fsolve or the
> > other method above since I don't need the symbolic solution.  I'll look
> > at getting fsolve to work and post an example of working code.
>
> > Thanks,
>
> > Jason


--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to