Question: How to odeplot when cannot evaluate the solution past the initial point, problem may be complex

k := 1:
alpha := vector([x*cos(theta), x*sin(theta), k*x]);

e1 := map(diff, alpha, theta);
e2 := map(diff, alpha, x);

G := matrix([[simplify(e1[1]^2 + e1[2]^2 + e1[3]^2), 0],[0, simplify(e2[1]^2 + e2[2]^2 + e2[3]^2)]]);

inv_e1 := evalm(1/G[1,1]*e1);
inv_e2 := evalm(1/G[2,2]*e2);

e11 := map(diff, e1, theta);
e12 := map(diff, e1, x);
e22 := map(diff, e2, x);

gamma_1_11 := simplify(evalm(e11&*inv_e1));
gamma_1_12 := simplify(evalm(e12&*inv_e1));
gamma_1_22 := simplify(evalm(e22&*inv_e1));

gamma_2_11 := simplify(evalm(e11&*inv_e2));
gamma_2_12 := simplify(evalm(e12&*inv_e2));
gamma_2_22 := simplify(evalm(e22&*inv_e2));

m := 1;
g := 10;
F := vector([0,0,-m*g]);

manual rewrite for ambiguous input:
gamma_1_12 := 1/x(t);
gamma_2_11 := -x(t)/(k^2+1);

ex1 := {
diff(theta(t), t$2)
+   gamma_1_11*diff(theta(t), t)^2
+ 2*gamma_1_12*diff(theta(t), t)*diff(x(t), t)
+   gamma_1_22*diff(x(t), t)^2
= F[3]*inv_e1[3]
,
diff(x(t), t$2)
+   gamma_2_11*diff(x(t), t)^2
+ 2*gamma_2_12*diff(theta(t), t)*diff(x(t), t)
+   gamma_2_22*diff(x(t), t)^2
= F[3]*inv_e2[3]
};

dsolve(ex1);

ic := {theta(0)=0, x(0)=0,  D(theta)(0)=0, D(x)(0)=0};
dsol := dsolve(ex1 union ic, numeric, range=-1..1);
odeplot(dsol);

cannot evaluate the solution past the initial point, problem may be complex´╗┐

Please Wait...
´╗┐