This looks like a bug in SymPy.

Aaron Meurer

On Fri, Jul 8, 2016 at 6:46 PM, Kenneth Frankel <[email protected]> wrote:

> I downloaded python and simply (etc) from anaconda, and installed
> anaconda2 and anaconda3.
> I upgraded to the latest simply (1.0) and have this problem
>
> When I run
>
> import sympy
>
> from sympy import *
>
> sympy.__version__
>
>
> x=Symbol('x')
>
> y=Symbol('y')
>
> M=IndexedBase('M')
>
>
> integrate(cos(M[0] + x*y),x)
>
> integrate(cos(M[0] + x),x)
>
> integrate(cos(M[0] * x),x)
>
>
> They all work except integrate(cos(M[0] * x),x) throws an error (see
> output below).
>
> All I can find in the documentation is that there can be 'problems'.
>
> Any idea if I am missing something or is there a bug in simply?
>
> In the meantime my problem is so complex, I can only use variables 2 at a
> time,
>
> so I can hardcode a fix in my formulas.
>
>
> Thanks for any advice.
>
> Regards,
>
> Ken Frankel
>
>
> output:
>
> (same in python 3.5.1 and 2.7.11
>
>
> python
>
> Python 2.7.11 |Anaconda 4.0.0 (32-bit)| (default, Dec  6 2015, 18:08:45)
>
> [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
>
> Type "help", "copyright", "credits" or "license" for more information.
>
> Anaconda is brought to you by Continuum Analytics.
>
> Please check out: http://continuum.io/thanks and https://anaconda.org
>
> >>> import sympy
>
> >>> from sympy import *
>
> >>> sympy.__version__
>
> '1.0'
>
> >>>
>
> >>> x=Symbol('x')
>
> >>> y=Symbol('y')
>
> >>> M=IndexedBase('M')
>
> >>>
>
> >>> integrate(cos(M[0] + x*y),x)
>
> Piecewise((x*cos(M[0]), Eq(y, 0)), (sin(x*y + M[0])/y, True))
>
>
> >>> integrate(cos(M[0] + x),x)
>
> sin(x + M[0])
>
>
> >>> integrate(cos(M[0] * x),x)
>
> Traceback (most recent call last):
>
>   File "<stdin>", line 1, in <module>
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/integrals/integrals.py",
> line 1280, in integrate
>
>     risch=risch, manual=manual)
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/integrals/integrals.py",
> line 486, in doit
>
>     conds=conds)
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/integrals/integrals.py",
> line 860, in _eval_integral
>
>     h = trigintegrate(g, x, conds=conds)
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/integrals/trigonometry.py",
> line 100, in trigintegrate
>
>     return Piecewise((zz, Eq(a, 0)), (fx / a, True))
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/functions/elementary/piecewise.py",
> line 110, in __new__
>
>     r = cls.eval(*newargs)
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/functions/elementary/piecewise.py",
> line 146, in eval
>
>     cond_eval = cls.__eval_cond(cond)
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/functions/elementary/piecewise.py",
> line 507, in __eval_cond
>
>     if checksol(cond, {}, minimal=True):
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/solvers/solvers.py",
> line 227, in checksol
>
>     if not val.is_constant(*list(sol.keys()), simplify=not minimal):
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/core/expr.py",
> line 535, in is_constant
>
>     simultaneous=True)
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/core/basic.py",
> line 893, in subs
>
>     rv = rv._subs(old, d*m, **kwargs)
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/core/basic.py",
> line 1016, in _subs
>
>     rv = fallback(self, old, new)
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/core/basic.py",
> line 988, in fallback
>
>     arg = arg._subs(old, new, **hints)
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/core/basic.py",
> line 1016, in _subs
>
>     rv = fallback(self, old, new)
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/core/basic.py",
> line 993, in fallback
>
>     rv = self.func(*args)
>
>   File
> "/home/Users/frankel/anaconda2/lib/python2.7/site-packages/sympy/tensor/indexed.py",
> line 334, in __new__
>
>     raise TypeError("Base label should be a string or Symbol.")
>
> TypeError: Base label should be a string or Symbol.
>
> --
> 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/9fdd6809-e4da-4ff1-a3be-d206f02cb169%40googlegroups.com
> <https://groups.google.com/d/msgid/sympy/9fdd6809-e4da-4ff1-a3be-d206f02cb169%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 https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAKgW%3D6JxRFT2m_vKGLU3NB0tdpckCkfZLZSL1Tf02HdDrSRenw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to