Thank you, it works fine now. Sorry for my late answer, I was quite busy in
the last days.
Am Montag, 13. Februar 2017 21:12:23 UTC+1 schrieb Aaron Meurer:
>
> It looks like lambdify doesn't know how to turn uppergamma into mpmath
> functions, since mpmath doesn't have uppergamma directly. Looks like
> uppergamma.evalf uses mpmath.gammainc(z, a, inf), so it should be
> using that. You can workaround this by passing the modules argument to
> nsolve:
>
> nsolve(..., modules=['mpmath', {'uppergamma': lambda s, x:
> mpmath.gammainc(s, x, mpmath.inf)}])
>
> I opened an issue for this
> https://github.com/sympy/sympy/issues/12173. It should be easy to fix,
> if you want to give it a shot.
>
> Aaron Meurer
>
> On Mon, Feb 13, 2017 at 10:58 AM, Max Winkler <[email protected]
> <javascript:>> wrote:
> > Hi, I'm trying to solve an equation-system with nsolve. One of the
> equations
> > includes the upper gamma function, which has one of the variables as
> lower
> > integral limit. When I run this I end up with an error massage :(
> >
> > from sympy import *
> >
> > p0, T0, n, g, a, F_s_1, F_s_2, F_i, k1, k2, D, t, t0, t_rc = symbols("p0
> T0
> > n g a F_s_1 F_s_2 F_i k1 k2 D t t0 t_rc")
> > ß = a*(g - 1)/g
> > o = 5.67 * 10**-8
> >
> > F_plus_conv = o * T0**4 * exp(D*t) * (exp(-D*t0) + 1/((D*t0)**(4*ß/n)) *
> > (uppergamma(1 + 4*ß/n, D*t) - uppergamma(1 + 4*ß/n,D*t0)))
> > F_plus_rad = F_s_1/2 * (1 + D/k1 + (1 - D/k1) * exp(-k1*t)) + F_s_2/2 *
> (1 +
> > D/k2 + (1 - D/k2) * exp(-k2*t)) + F_i/2 * (2 + D*t)
> > F_plus_t_rc = Eq(F_plus_conv, F_plus_rad)
> > T_t_rc = Eq(o * T0**4 * (t_rc/t0)**(4*ß/n), F_s_1/2* (1 + D/k1 + (k1/D -
> > D/k1) * exp(-k1 * t_rc)) + F_s_2/2* (1 + D/k2 + (k2/D - D/k2) * exp(-k2
> *
> > t_rc)) + F_i/2 * ( 1+ D * t_rc))
> >
> > titan = [(n, 0.75), (g, 1.4), (a, 0.77), (F_s_1, 1.5), (F_s_2, 1.1),
> (F_i,
> > 0), (k1, 120), (k2, 0.2), (t, t_rc), (D, 1.6), (T0, 94), (p0, 1.5)]
> >
> > print(nsolve((T_t_rc.subs(titan), F_plus_t_rc.subs(titan)), (t_rc,
> > t0),(4.8,5.3)))
> >
> > Error msg:
> >
> > Traceback (most recent call last): File
> > "/home/.../nsolve_uppergammma_problem.py", line 14, in <module>
> > print(nsolve((T_t_rc.subs(titan), F_plus_t_rc.subs(titan)), (t_rc,
> > t0),(4.8,5.3)))
> > File "/usr/lib/python3.6/site-packages/sympy/solvers/solvers.py", line
> 2772,
> > in nsolve x = findroot(f, x0, J=J, *kwargs)
> > File "/usr/lib/python3.6/site-packages/mpmath/calculus/optimization.py",
> > line 928, in findroot fx = f(x0)
> > File "<string>", line 1, in <lambda> NameError: name 'uppergamma' is not
> > defined
> >
> > --
> > 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] <javascript:>.
> > To post to this group, send email to [email protected]
> <javascript:>.
> > Visit this group at https://groups.google.com/group/sympy.
> > To view this discussion on the web visit
> >
> https://groups.google.com/d/msgid/sympy/75a1cba4-72ce-4318-bb7d-513268ac065b%40googlegroups.com.
>
>
> > 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 https://groups.google.com/group/sympy.
To view this discussion on the web visit
https://groups.google.com/d/msgid/sympy/f181ea2a-1d27-4853-bc6b-e3ae9259382f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.