Projectile problem:
Expansions by Parametric Differentiation and by Iteration

Parametric Differentiation

Remove["Global`*"]

Specify the number of terms

n = 4 ;

and the general form of the expansion that we want

y[t_] := Sum[(Subscript[y, k])[t] ϵ^k, {k, 0, n}]

First time around, ode is set to equal the original differential equation. In subsequent iterations, ode is set to the ϵ-derivative of the previous version. In each iteration, we solve  ode with ϵ set to zero.

\(Do[
	\ \ \ 
      temp = If[k == 0, \(\(y'\)'\)[t] + 1/\((1 + ϵ\ y[t])\)^2, 
          D[ode, ϵ]]; ode = temp; 
	\ \ \ 
      sol = DSolve[{ode == 0 /. ϵ -> 0, y\_k[0] == 0, 
            \(y\_k'\)[0] == If[k == 0, 1, 0]}, y\_k[t], t]; 
	\ \ \ 
      temp = y\_k[t]\  /. \ sol[\([1]\)]; \ \ y\_k[t_] = temp, 

      	\ \ \ {k, 0, n}]\)

The result is

y[t]

Iteration

Remove["Global`*"]

We start by rewriting the equation into a form so that the RHS is zero for ϵ = 0:

lhs[y_] :=  D[y, {t, 2}] + 1

rhs[y_] := 
      ((ϵ 
          (2 y + ϵ (y^2)))/(((1 + ϵ y))^2))

Specify how many terms we want

n = 4 ;

\(TraditionalForm
    \`We\ initiate\ the\ iterations\ with\ \ y\_\(\(-1\)\ \)[t] = 0\)

(Subscript[y, -1])[t_] := 0

When iterating, remember to series expand each RHS for small ϵ, incorporating one more term each time around

\(\(Do\ [
\ \ 	
      sol = DSolve[{
            lhs[y\_k[t]] == 
              Normal[Series[rhs[y\_\(k - 1\)[t]], {ϵ, 0, k}]], 
            y\_k[0] == 0, \(y\_k'\)[0] == 1}, y\_k[t], t]; 
\ \ 	
      temp = y\_k[t] /. sol[\([1]\)]; \ \ y\_k[t] = temp, \ \ \ {k, 0, n}]
      	\ \ \)\)

The output looks prettiest if we collect together the expansion in powers of ϵ

Collect[(Subscript[y, n])[t], ϵ]