It looks like a bug with floating point numbers. It also gives the right answer if you instead use Rational(point). I would suggest opening an issue for this on the SymPy issue tracker.
Aaron Meurer On Wed, Mar 11, 2020 at 4:10 PM Jesse Carter <[email protected]> wrote: > > Hi - > > First time poster so sorry if this has been discussed before. > > I'm having an issue with doing a series expansion of an expression with a log > term in it where the argument of log is close to 1. > > For instance, if I do a series expansion about an arbitrary point x0, then > substitute a value for x0, it works fine. But if I instead try to do an > expansion about that point directly in the series function, I can get an > error for certain values. > > The following gives an error on the last line, but works fine if I set, say, > point = 0.49. > > import sympy as sym > > point = 0.491 > x, x0 = sym.symbols(['x', 'x0']) > f = sym.log(x/(1-x)) > > print(sym.series(f, x=x, x0=x0, n=1).removeO().subs(x0, point)) > print(sym.series(f, x=x, x0=point, n=1).removeO()) > > Is the latter not an intended way of using the series expansion functionality? > > For what it's worth I tried both sympy 1.4 and 1.5.1 through Anaconda. > > Here is the error: > Traceback (most recent call last): > File "sympy-bug.py", line 17, in <module> > print(sym.series(f, x=x, x0=point,n=1).removeO()) > File > "/apps/local/anaconda/Anaconda3-2019.10/lib/python3.7/site-packages/sympy/series/series.py", > line 12, in series > return expr.series(x, x0, n, dir) > File > "/apps/local/anaconda/Anaconda3-2019.10/lib/python3.7/site-packages/sympy/core/expr.py", > line 2720, in series > s = self.subs(x, rep).series(x, x0=0, n=n, dir='+', logx=logx) > File > "/apps/local/anaconda/Anaconda3-2019.10/lib/python3.7/site-packages/sympy/core/expr.py", > line 2730, in series > rv = self.subs(x, xpos).series(xpos, x0, n, dir, logx=logx) > File > "/apps/local/anaconda/Anaconda3-2019.10/lib/python3.7/site-packages/sympy/core/expr.py", > line 2766, in series > % (str(n), self)) > ValueError: Could not calculate 1 terms for log((_x + 0.491)/(0.509 - _x)) > > Any ideas? Thanks. > > - Jesse > > -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/8a82921e-8b79-4b7d-bd90-f986230db0fb%40googlegroups.com. -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sympy/CAKgW%3D6%2Bw7U_UhJQNm46FLSms9SkfDfSqa6G_ekuJUWuOUpR7Kg%40mail.gmail.com.
