Although Jim Baldwin's solution is entirely satisfactory (+1), it is possible to obtain the desired expression without the additional assumptions. Begin by solving the ODE *without* the boundary condition. s = FC[h] /. Flatten@DSolve[{a (FC[h])^2 - 2 b FC[h] + c - D[FC[h], h] == 0}, FC[h], h, Assumptions -> b^2 - a c > 0] (* (b - Sqrt[b^2 - a c] Tanh[Sqrt[b^2 - a c] h + Sqrt[b^2 - a c] C[1]])/a *) Now, obtaining`C[1]` by `Solve[0 == s /. h -> 0, C[1]]` gives the same ugly expressions that `DSolve` with the boundary condition gives. Flatten@Solve[0 == s /. h -> 0, C[1]] (* {C[1] -> -(ArcCosh[-(Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c]))]/Sqrt[b^2 - a c]), C[1] -> ArcCosh[-(Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c]))]/Sqrt[b^2 - a c], C[1] -> -(ArcCosh[Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c])]/Sqrt[b^2 - a c]), C[1] -> ArcCosh[Sqrt[-b^2 + a c]/(Sqrt[a] Sqrt[c])]/Sqrt[b^2 - a c]} *) Instead, simply observe that `C[1]` is C[1] -> ArcTanh[b/Sqrt[b^2 - a c]]/Sqrt[b^2 - a c] Then, s /. C[1] -> ArcTanh[b/Sqrt[b^2 - a c]]/Sqrt[b^2 - a c] (* (b - Sqrt[b^2 - a c] Tanh[Sqrt[b^2 - a c] h + ArcTanh[b/Sqrt[b^2 - a c]]])/a *) Simplify[TrigToExp[%]] /. Sqrt[b^2 - a c] -> q (* (c (-1 + E^(2 h q)))/(b (-1 + E^(2 h q)) + (1 + E^(2 h q)) q) *) and Simplify[% == (c (1 - E^(-2 q (h))))/(q + b + (q - b) E^(-2 q (h)))] (* True *) It may be that the additional assumptions are needed when working with the `DSolve` solution with boundary condition, because it introduces factors of `Sqrt[a]` and `Sqrt[c]` that eventually drop out of the simplification but appear to require that `a > 0` and `c > 0` during intermediate steps.