# How to write code for SeriesCoefficient to work for non integral coefficients?

I have a function of $$r$$ which I expand at $$\infty$$ using Series. It is a complicated and messy function, with a parameter $$0 \leq \epsilon < 1$$. After expansion, the total series consists of terms like

$$\left(\frac{r}{M}\right)^{2 + 2\epsilon} \left(\frac{a}{r^2} + r^{2 \epsilon} + ..... \right)$$

I want to collect the coefficients of $$r$$ from this series expansion which is denoted by serinf in the following code block. (I have not copied the entire expansion here, since it is too big. I have uploaded a Mathematica notebook here, and the series has been saved - it might take a minute or two to evaluate. When I use SeriesCoefficient I get back terms with the variable $$r$$ even though the series was obtained using Series[f[r], {r,∞, 4}] which is not what I want.

How do I get the coefficients of different powers of $$r$$, even those that include real but non-integral symbolic exponents?

• There are ways to handle Puiseux series (en.wikipedia.org/wiki/Puiseux_series) involving terms such as $r^\epsilon$, but not using built-in functionality. In your notebook you write "Below is a series which has been expanded at infinity, up to order 4". I'd like to see f[r] before being expanded into an asymptotic series. And there are new(er) Asymptotic functions that might be better than Series for your problem. Jul 6, 2022 at 21:48

Let your expression be myExpression. Then to obtain a list of coefficients of the powers of $$r$$, first extract all the exponents in theExp. Then supply the list of exponents to Coefficient:

theExp=Exponent[myExpression,r,List];
theCoeff=Coefficient[myExpression,r,#]&/@ theExp;


You can go further and make a table of exponent and coefficient:

myTable=MapThread[{#1,#2//N}&,{theExp,theCoeff}];
myTable//MatrixForm


with the "//N" meaning to display the coefficient to machine precision. Or if you want to see the first ten for example:

myTable[[1;;10]]//MatrixForm


Update:

Take for example your portion of the expression above:

myExpression = (r/theM)^(2 + 2 \[Epsilon]) (a/r^2 + r^(2 \[Epsilon]))
Exponent[myExpression, r, List]

(* {2 \[Epsilon], 2 + 4 \[Epsilon]} *)


However, when I attempt to retrieve the coefficients:

 theCoeff = Coefficient[Expand@myExpression, r, #] & /@ theExp

(* {(r^2 (r/theM)^(2 \[Epsilon]))/theM^2,0} *)


These are not correct. Should be:

$$\left\{\frac{a}{m^{2+2\epsilon}},\frac{1}{m^{2+2\epsilon}}\right\}$$

Don't know what the problem is.

• Exponent[myExpression,r,List] does not return any exponent that includes $\epsilon$. It looks like it's the same problem again, where Mathematica does not recognise non-integral/symbolic exponents. Mar 24, 2022 at 5:53
• Ok. It seems the exponents of your expression above were identified but when I attempted to retrieve the associated coefficients, Mathematica returned the wrong results. See above.
– josh
Mar 24, 2022 at 12:43

(r/theM)^(2 + 2 \[Epsilon]) (a/r^2 + r^(2 \[Epsilon]));

{a theM^(-2 - 2 \[Epsilon]), theM^(-2 - 2 \[Epsilon])}
? We put r==1 in the j-th term of the expanded expr to obtain the j-th coefficient.