Hello Christophe,

Thanks for your answer.

OK. So if my equation is not solvable symbolically, I can't use SymPy? Then 
I will use a numeric solver, like SciPy.
And what does mean

> PolynomialError: 1/log(c2 + 1) contains an element of the generators set
>
when using the function 
roots
?
Cheers,
Camille

Le mardi 17 juin 2014 09:45:24 UTC+2, Christophe Bal a écrit :
>
> Hello.
>
> Does your equation solvable symbolically ? At a first glance, I don't 
> think.
>
> C.
>
>
> 2014-06-16 10:39 GMT+02:00 Camille Chambon <camille...@gmail.com 
> <javascript:>>:
>
>> Hello, 
>>
>> I would like to find 
>> c2
>> as 
>> 0.66 + 0.34 * (1 + 1.0 / c2) - 1.0 / ln(1 + c2) - 0.7 == 0
>> Thus I used the function 
>> solve
>>  like so:
>> c2 = Symbol('c2')
>> solve(0.66 + 0.34 * (1 + 1.0 / c2) - 1.0 / ln(1 + c2) - 0.7, c2)
>> But I got the following error:
>>
>> NotImplementedError                       Traceback (most recent call 
>>> last)
>>> <ipython-input-86-f1264f7163f3> in <module>()
>>> ----> 1 solve(0.66 + 0.34 * (1 + 1.0 / c2) - 1.0 / ln(1 + c2) - 0.7, c2)
>>>
>>> /usr/lib/python2.7/site-packages/sympy/solvers/solvers.pyc in solve(f, 
>>> *symbols, **flags)
>>>     883     
>>> ###########################################################################
>>>     884     if bare_f:
>>> --> 885         solution = _solve(f[0], *symbols, **flags)
>>>     886     else:
>>>     887         solution = _solve_system(f, symbols, **flags)
>>>
>>> /usr/lib/python2.7/site-packages/sympy/solvers/solvers.pyc in _solve(f, 
>>> *symbols, **flags)
>>>    1382     if result is False:
>>>    1383         raise NotImplementedError(msg +
>>> -> 1384         "\nNo algorithms are implemented to solve equation %s" % 
>>> f)
>>>    1385 
>>>    1386     if flags.get('simplify', True):
>>>
>>> NotImplementedError: multiple generators [c2, log(c2 + 1)]
>>> No algorithms are implemented to solve equation 3/10 - 1/log(c2 + 1) + 
>>> 17/(50*c2)
>>>
>>
>> I read at 
>> http://docs.sympy.org/dev/tutorial/solvers.html#solving-equations-algebraically
>>  
>> that this error often means that the solution cannot be represented 
>> symbolically. Is it the case of my equation?
>> If I can't use solve to find
>> c2
>> , then what can I use?
>> I already tried to use the function
>> roots
>> like so:
>> c2 = Symbol('c2')
>> roots(0.66 + 0.34 * (1 + 1.0 / c2) - 1.0 / ln(1 + c2) - 0.7, c2)
>> Then I got this error:
>>
>>> PolynomialError                           Traceback (most recent call 
>>> last)
>>> <ipython-input-94-fe98ccb57669> in <module>()
>>> ----> 1 roots(0.66 + 0.34 * (1 + 1.0 / c2) - 1.0 / ln(1 + c2) - 0.7, c2)
>>>
>>> /usr/lib/python2.7/site-packages/sympy/polys/polyroots.pyc in roots(f, 
>>> *gens, **flags)
>>>     759     else:
>>>     760         try:
>>> --> 761             f = Poly(f, *gens, **flags)
>>>     762         except GeneratorsNeeded:
>>>     763             if multiple:
>>>
>>> /usr/lib/python2.7/site-packages/sympy/polys/polytools.pyc in 
>>> __new__(cls, rep, *gens, **args)
>>>      93                 return cls._from_poly(rep, opt)
>>>      94             else:
>>> ---> 95                 return cls._from_expr(rep, opt)
>>>      96 
>>>      97     @classmethod
>>>
>>> /usr/lib/python2.7/site-packages/sympy/polys/polytools.pyc in 
>>> _from_expr(cls, rep, opt)
>>>     203     def _from_expr(cls, rep, opt):
>>>     204         """Construct a polynomial from an expression. """
>>> --> 205         rep, opt = _dict_from_expr(rep, opt)
>>>     206         return cls._from_dict(rep, opt)
>>>     207 
>>>
>>> /usr/lib/python2.7/site-packages/sympy/polys/polyutils.pyc in 
>>> _dict_from_expr(expr, opt)
>>>     325 
>>>     326     if opt.gens:
>>> --> 327         rep, gens = _dict_from_expr_if_gens(expr, opt)
>>>     328     else:
>>>     329         rep, gens = _dict_from_expr_no_gens(expr, opt)
>>>
>>> /usr/lib/python2.7/site-packages/sympy/polys/polyutils.pyc in 
>>> _dict_from_expr_if_gens(expr, opt)
>>>     266 def _dict_from_expr_if_gens(expr, opt):
>>>     267     """Transform an expression into a multinomial form given 
>>> generators. """
>>> --> 268     (poly,), gens = _parallel_dict_from_expr_if_gens((expr,), 
>>> opt)
>>>     269     return poly, gens
>>>     270 
>>>
>>> /usr/lib/python2.7/site-packages/sympy/polys/polyutils.pyc in 
>>> _parallel_dict_from_expr_if_gens(exprs, opt)
>>>     171                             coeff.append(factor)
>>>     172                         else:
>>> --> 173                             raise PolynomialError("%s contains 
>>> an element of the generators set" % factor)
>>>     174 
>>>     175             monom = tuple(monom)
>>>
>>> PolynomialError: 1/log(c2 + 1) contains an element of the generators set
>>>
>>
>> What does that mean ?
>> Thank you in advance for your help.
>>
>> Cheers,
>>
>> Camille
>>
>>  -- 
>> 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 sympy+un...@googlegroups.com <javascript:>.
>> To post to this group, send email to sy...@googlegroups.com <javascript:>
>> .
>> 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/8abfc70b-7c43-43e6-811d-4b8cc5372d60%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/sympy/8abfc70b-7c43-43e6-811d-4b8cc5372d60%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 sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
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/cffdfc7c-609c-4be4-98ef-b6f28a944f65%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to