|
from sympy.core.sympify import sympify |
|
|
|
|
|
def series(expr, x=None, x0=0, n=6, dir="+"): |
|
"""Series expansion of expr around point `x = x0`. |
|
|
|
Parameters |
|
========== |
|
|
|
expr : Expression |
|
The expression whose series is to be expanded. |
|
|
|
x : Symbol |
|
It is the variable of the expression to be calculated. |
|
|
|
x0 : Value |
|
The value around which ``x`` is calculated. Can be any value |
|
from ``-oo`` to ``oo``. |
|
|
|
n : Value |
|
The number of terms upto which the series is to be expanded. |
|
|
|
dir : String, optional |
|
The series-expansion can be bi-directional. If ``dir="+"``, |
|
then (x->x0+). If ``dir="-"``, then (x->x0-). For infinite |
|
``x0`` (``oo`` or ``-oo``), the ``dir`` argument is determined |
|
from the direction of the infinity (i.e., ``dir="-"`` for |
|
``oo``). |
|
|
|
Examples |
|
======== |
|
|
|
>>> from sympy import series, tan, oo |
|
>>> from sympy.abc import x |
|
>>> f = tan(x) |
|
>>> series(f, x, 2, 6, "+") |
|
tan(2) + (1 + tan(2)**2)*(x - 2) + (x - 2)**2*(tan(2)**3 + tan(2)) + |
|
(x - 2)**3*(1/3 + 4*tan(2)**2/3 + tan(2)**4) + (x - 2)**4*(tan(2)**5 + |
|
5*tan(2)**3/3 + 2*tan(2)/3) + (x - 2)**5*(2/15 + 17*tan(2)**2/15 + |
|
2*tan(2)**4 + tan(2)**6) + O((x - 2)**6, (x, 2)) |
|
|
|
>>> series(f, x, 2, 3, "-") |
|
tan(2) + (2 - x)*(-tan(2)**2 - 1) + (2 - x)**2*(tan(2)**3 + tan(2)) |
|
+ O((x - 2)**3, (x, 2)) |
|
|
|
>>> series(f, x, 2, oo, "+") |
|
Traceback (most recent call last): |
|
... |
|
TypeError: 'Infinity' object cannot be interpreted as an integer |
|
|
|
Returns |
|
======= |
|
|
|
Expr |
|
Series expansion of the expression about x0 |
|
|
|
See Also |
|
======== |
|
|
|
sympy.core.expr.Expr.series: See the docstring of Expr.series() for complete details of this wrapper. |
|
""" |
|
expr = sympify(expr) |
|
return expr.series(x, x0, n, dir) |
|
|