I can't get to work this code to solve a nonlinear second order boundary value problem.
ClearAll["Global`*"];
a = 1;
b = 2;
q1[t_] := {Sin[2*Pi*t], Cos[2*Pi*t]}
q2[t_] := {a*Sin[2*Pi*t], b*Cos[2*Pi*t]}
f[x_, y_] := x . y
eqn = 0.5*Derivative[2][y][t]*f[q2[y[t]], q1[t]] -
3*Derivative[1][y][t]^2*
f[Derivative[1][q2][y[t]], q1[t]] +
Derivative[1][y][t]*f[q2[y[t]], Derivative[1][q1][t]] +
4*Derivative[1][y][t]^2*Sqrt[Derivative[1][y][t]]*
f[q2[y[t]], q2[y[t]]] == 0;
bc = {y[0] == 0, y[1] == 1};
sol = NDSolve[{eqn, bc}, y, {t, 0, 1},
Method -> "StiffnessSwitching"]
Plot[Evaluate[y[x] /. sol], {x, 0, 1}, PlotRange -> All]
I get immediately the error message
(1) "NDSolve::ndsz: At t == 0.2499999999990644`, step size is effectively zero; singularity or stiff system suspected."
When I add "AccuracyGoal -> 18, PrecisionGoal -> 18" to this code, I get the message
(2) "NDSolve::mxst: Maximum number of 79973 steps reached at the point t == 0.2499927591408232`."
When I reduce to "AccuracyGoal -> 8, PrecisionGoal -> 8", I get message (1).
One difficulty in solving this ODE may be the square root in the equation. So, I converted it into a nonlinear system of first order equations without the square root using the transformation $u=\sqrt{y'}$. Then, $u^2 = y'$ and $2uu'=y''$. Also, let $v=y$, then $v'=u^2$. The 1st order system is: $\{u'-u^3f_1(t,v)+uf_2(t,v)+u^4f_3(t,v)=0,v'=u^2\}$, where $f_1(t,v)=q_2'(y).q_2(t)/q_2(y).q_1(t)$, $f_2(t,v)=q_2(y).q_1'(t)/q_2(y).q_1(t)$, $f_3(t,v)=q_2'(y).q_2(t)/q_2(y).q_1(t)$
The code is:
s = NDSolve[{Derivative[1][u][t] -
u[t]^3*(3*(f[Derivative[1][q2][v[t]], q1[t]]/
f[q2[v[t]], q1[t]])) +
u[t]*(f[q2[v[t]], Derivative[1][q1][t]]/
f[q2[v[t]], q1[t]]) + u[t]^4*
(4*(f[Derivative[1][q2][v[t]], q2[v[t]]]/
f[q2[v[t]], q1[t]])) == 0,
Derivative[1][v][t] - u[t]^2 == 0, v[0] == 0, v[1] == 1},
{u, v}, {t, 0, 1}, Method -> "StiffnessSwitching",
AccuracyGoal -> 18, PrecisionGoal -> 18]
Plot[Evaluate[{v[t], u[t]}], {t, 0, 1}, PlotRange -> All]
I get the message, "The scaled boundary value residual error of 4.714045207910324`*^7 indicates that the boundary values are not satisfied to specified tolerances. Returning the best solution found." It returns constant solutions.