solDiff[l_, phi0_, dphi0_, tmax_, dt_] := Module[{phi = phi0, dphi = dphi0, ddphi = 0, finalList, list = ConstantArray[0, Floor[tmax/dt] + 1], t0, tFall = -1}, finalList = Transpose[{list, list, list, list}]; For[t0 = 0, t0 <= tmax, t0 += dt, finalList[[t0/dt + 1, 4]] = ddphi; finalList[[t0/dt + 1, 3]] = dphi; finalList[[t0/dt + 1, 2]] = phi; finalList[[t0/dt + 1, 1]] = t0; If[phi >= Pi/2, If[tFall == -1, tFall = t0]; phi = Pi/2; dphi = 0;ddphi = 0;, ddphi = Sin[phi]/((2*l)/(3*9.81)); dphi += dt*ddphi; phi += dt*dphi;] ]; {finalList, tFall} ] solphi[l_, phi0_, dphi0_, tmax_, dt_] := Transpose[{solDiff[l, phi0, dphi0, tmax, dt][[1, All, 1]], solDiff[l, phi0, dphi0, tmax, dt][[1, All, 2]]}] soldphi[l_, phi0_, dphi0_, tmax_, dt_] := Transpose[{solDiff[l, phi0, dphi0, tmax, dt][[1, All, 1]], solDiff[l, phi0, dphi0, tmax, dt][[1, All, 3]]}] solddphi[l_, phi0_, dphi0_, tmax_, dt_] := Transpose[{solDiff[l, phi0, dphi0, tmax, dt][[1, All, 1]], solDiff[l, phi0, dphi0, tmax, dt][[1, All, 4]]}]