Question: Method of Multiple Scales

So, I'm trying to delelop an algorithm for the method of multiple scales. Starting with a simple ODE:

diff(x(t), `$`(t, 2))+x(t) = 0

After scaling, it should be written in the form:

(d/dT[0]+epsilon*d/dT[1]+epsilon^2*d/dT[2])^2*(epsilon^3*X[3]+epsilon^2*X[2]+epsilon*X[1])+epsilon*X[1]+epsilon^2*X[2]+epsilon^3*X[3] = 0

A proto-algorithm would be:

restart;
ode := diff(x(t), `$`(t, 2))+x(t) = 0;
i_ini := 1; i_fin := 3; j_ini := 0; j_fin := 2;
PDEtools:-dchange({t = sum(epsilon^j*T[j], j = j_ini .. j_fin), x(t) = sum(epsilon^i*X[i](T[1]), i = i_ini .. i_fin)}, ode, [{T[0], T[1], T[2]}, {X[1], X[2], X[3]}])

It is not working, though. Could anyone help me out?

Thanks in advance.

Please Wait...