First-Order Ordinary Differential Equations

Mathematica can solve the homogeneous linear ODE:

DSolve[y'[x]  +  p[x] y[x]  == 0, y[x], x]

The dummy integration variables are picked by Mathematica .

Mathematica can solve the heterogeneous linear ODE:

DSolve[y'[x]  +  p[x] y[x]  == r[x], y[x], x]

BernoulliEquation  =  y'[x]  +  p[x] y[x]  ==  
        r[x] (y[x])^(a)

yRep  =  u[x]^((1/(1 - a)))
DyRep  =  D[yRep, x]

step1  = 
      BernoulliEquation /. {y[x] -> yRep, y'[x]  ->  
            DyRep}

step2  = PowerExpand[step1]

step3  = Simplify[step2]

Solve[step3, u'[x]]

Numerical Solutions to ODEs

The following nonlinear ODE either does not have a solution, or takes too long to find.

DSolve[Sin[2 Pi y'[x]^2]  ==  y[x] x, y[x], x]

NDSolve is a numerical method for finding a solution, an initial condition and the range of solution are required.

solution  = 
      NDSolve[{Sin[2 Pi y'[x]^2]  ==  y[x] x, y[0] == 1}, 
        y, {x, 0, 3.5}]

The results look kind of strange, perhaps, but they are a set of rules that provide a function that interpolates between values.   
    Here is how to find the approximate solution at y(x=1)

y[1] /. solution

y[Pi] /. solution

Plot[Evaluate[Re[y[x] /. solution]], {x, 0, 3.5}, 
      PlotStyle -> {{Hue[1], Thickness[0.01]}, {Hue[0.6], 
            Thickness[0.01]}}]

Plot[Evaluate[Im[y[x] /. solution]], {x, 0, 3.5}, 
      PlotStyle -> {{Hue[1], Thickness[0.01]}, {Hue[0.6], 
            Thickness[0.01]}}]