I'd say nsolve and lambdify should be able to do it. Especially for
lambdify, I don't see the point of using mpmath if you aren't going to
support arbitrary precision.

Aaron Meurer

On Tue, Jan 13, 2015 at 5:00 AM, Colin Macdonald <[email protected]>
wrote:

> I'd like to solve SymPy expressions to high (arbitrary) precision.  I
> tried `nsolve` with `mpmath.mp.dps = 128`, and filed #8564,
> as nsolve is currently limited to double precision.
>
> My current idea is to convert my expression to an lambda involving only
> mpmath objects.  Then call `mpmath.mp.findroot`.  This is essentially what
> nsolve does anyway (except for the part about "only mpmath" objects).
>
> How do I do that?  `lambdify(x, expr, module=mpmath)` is limited to
> double-precision (filed #8818, but not sure if this is by design or a bug).
>
> `mpmath.mpmathify` works for individual floats...
>
> Best I have so far is something like:
>
> ````
> d = 128    %  precision desired.
> g = sqrt(2) - x   % I want to solve g == 0 for x
>
> % here's my approach
> h = g.evalf(d)
> f = lambda meh: h.subs(x, meh)   % yuck
>
> q = mpmath.mp.findroot(f, 1.0)
>
> q*q   % should be 2 to 128 digits, looks good:
> %
> mpf('2.000000000000000000000000000000000000000000000000000000000000000038')
> ````
>
> thanks,
> Colin
>
> --
> 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.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/bd276484-1f37-4d29-b9b4-2cfbbee3fb5c%40googlegroups.com
> <https://groups.google.com/d/msgid/sympy/bd276484-1f37-4d29-b9b4-2cfbbee3fb5c%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAKgW%3D6LwjocCSnjdBjyT3Mzp%2BTpSxfw7w%3DXtFV9u3UBE_%3D29CQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to