Search code examples
matlabsymbolic-math

Series expansion of a function about infinity - how to return coefficients of series as a Matlab array?


This question is connected to this one. Suppose again the following code:

syms x
f = 1/(x^2+4*x+9)

Now taylor allows the function f to be expanded about infinity:

ts = taylor(f,x,inf,'Order',100)

But the following code

c = coeffs(ts)

produces errors, because the series does not contain positive powers of x (it contains negative powers of x).

In such a case, what code should be used?


Solution

  • Since the Taylor Expansion around infinity was likely performed with the substitution y = 1/x and expanded around 0, I would explicitly make that substitution to make the power positive for use on coeffs:

    syms x y
    f      = 1/(x^2+4x+9);
    ts     = taylor(f,x,inf,'Order',100);
    [c,ty] = coeffs(subs(ts,x,1/y),y);
    tx     = subs(ty,y,1/x);