# Differential equation, Inverse Functions being used and a way to bypass it.

I have the following differential equation

DSolve[(Sin[c1]^2 Sin[c2] Sin[
q[z]]^2 (3 Cos[q[z]] (1 + z^2 Derivative[q][z]^2) +
z Sin[q[z]] (3 Derivative[q][z] +
4 z^2 Derivative[q][z]^3 - z (q^\[Prime]\[Prime])[z])))/(
z^5 (1 + z^2 Derivative[q][z]^2)^(3/2)) == 0, q[z], z]


And I would like Mathematica to solve it for me.

I know that the solution to the above is $ArcCos(m z)$.

To make it explicit.

In:= (
Sin[c1]^2 Sin[c2] Sin[
q[z]]^2 (3 Cos[q[z]] (1 + z^2 Derivative[q][z]^2) +
z Sin[q[z]] (3 Derivative[q][z] +
4 z^2 Derivative[q][z]^3 - z (q^\[Prime]\[Prime])[z])))/(
z^5 (1 + z^2 Derivative[q][z]^2)^(3/2)) == 0 /.
q -> (ArcCos[m #] &) // Factor

Out= True


I understand that DSolve has difficulties when I input that particular D.E, so I was wondering if there is any way to go about it.

The message that I am getting is

Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information.

But I don't understand how I could help Mathematica using the Reduce function. The DSolve command

DSolve[(Sin[c1]^2 Sin[c2] Sin[
q[z]]^2 (3 Cos[q[z]] (1 + z^2 Derivative[q][z]^2) +
z Sin[q[z]] (3 Derivative[q][z] +
4 z^2 Derivative[q][z]^3 - z (q^\[Prime]\[Prime])[z])))/(
z^5 (1 + z^2 Derivative[q][z]^2)^(3/2)) == 0, q[z], z]


and the result

During evaluation of In:= Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information.

During evaluation of In:= Solve::ifun: Inverse functions are being used by Solve, so some solutions may not be found; use Reduce for complete solution information.

Out= DSolve[(
Sin[c1]^2 Sin[c2] Sin[
q[z]]^2 (3 Cos[q[z]] (1 + z^2 Derivative[q][z]^2) +
z Sin[q[z]] (3 Derivative[q][z] +
4 z^2 Derivative[q][z]^3 - z (q^\[Prime]\[Prime])[z])))/(
z^5 (1 + z^2 Derivative[q][z]^2)^(3/2)) == 0, q[z], z]