Opened 7 years ago

# series of x^s, when s is symbolic

Reported by: Owned by: dkrenn major sage-6.4 symbolics symbolic, series, exponent mforets N/A

### Description

We have the following behaviour:

```sage: var('s')
s
sage: (x^s).series(x, 0)
Order(1)
sage: (x^s).series(x, 1)
(0^s) + Order(x)
sage: (x^s).series(x, 2)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-4-5abc79662303> in <module>()
----> 1 (x**s).series(x, Integer(2))

/usr/opt/sage-6.1.1/local/lib/python2.7/site-packages/sage/symbolic/expression.so in sage.symbolic.expression.Expression.series (sage/symbolic/expression.cpp:17596)()

ValueError: power::eval(): division by zero
```

This output is weird and definitely wrong (since the correct output depends strongly on `s`.).

### comment:1 Changed 7 years ago by vbraun_spam

• Milestone changed from sage-6.2 to sage-6.3

### comment:2 Changed 6 years ago by vbraun_spam

• Milestone changed from sage-6.3 to sage-6.4

### comment:3 Changed 6 years ago by dkrenn

Still there in 6.6

### comment:4 Changed 5 years ago by rws

• Status changed from new to needs_info

Could you please specify what output exactly to expect?

### comment:5 Changed 4 years ago by mforets

• Status changed from needs_info to needs_work

there is no error if you declare `s` as integer:

```sage: s = SR.var('s', domain='integer')
sage: (x^s).series(x, 2) # ok (?) or we expect x^s
(0^s) + (0^(s - 1)*s)*x + Order(x^2)
```

to compare, W|A gives various series representations. in this case maybe it could answer just `x^s`?

however, there is this closely related issue:

```sage: n = SR.var('n', domain='integer')
sage: ((x+1/x)**n).series(x)  # wrong (what happened with n?)
1 + Order(x^20)
```

one expects something like `1/x^n*(1 + n*x^2 + O(x^3))`.

this behaviour has side effects for example if you want to compute the residue of this function:

```sage: f = 1/x*((x^2+1)/(2*x))**(2*k)
sage: f.residue(x==0)   # wrong
(1/2)^(2*k)
```

in fact:

```sage: f(k=4)
1/256*(x^2 + 1)^8/x^9
sage: f(k=4).residue(x==0)
35/128
sage: f.residue(x==0).subs(k==4)
1/256
sage: res(k) = 1/2**(2*k)*binomial(2*k, k)   # correct answer
sage: res(k=4)
35/128
```

a bit unrelated, but let me mention that SymPy?'s `residue` gives wrong result for this one (0), and giac gives unevaluated expression.

Note: See TracTickets for help on using tickets.