I am working with the control equations of a Sadowsky ribbon, where the basic equations eqs
and boundary conditions bc0
and bc1
are derived from the Kirchhoff rod theory, and have been validated. These equations are relatively straightforward, but the Sadowsky ribbon has a nonlinear constitutive relation, which is given in the eqsadd
set, and the corresponding boundary conditions given in the bc0add
set.
\[Theta] = 0; init = {9, 0, 0, 0, 0, -50, 9, 0};
eqs = {x'[s] == d3x[s], y'[s] == d3y[s], z'[s] == d3z[s], n1'[s] == n2[s]*k3[s], n2'[s] == n3[s]*k1[s] - n1[s]*k3[s], n3'[s] == -n2[s]*k1[s], d3x'[s] == -k1[s]*d2x[s], d3y'[s] == -k1[s]*d2y[s], d3z'[s] == -k1[s]*d2z[s], M1'[s] == M2[s]*k3[s] + n2[s], M2'[s] == M3[s]*k1[s] - M1[s]*k3[s] - n1[s], M3'[s] == -M2[s]*k1[s],d1x'[s] == k3[s]*d2x[s], d2x'[s] == k1[s]*d3x[s] - k3[s]*d1x[s], d1y'[s] == k3[s]*d2y[s], d2y'[s] == k1[s]*d3y[s] - k3[s]*d1y[s], d1z'[s] == k3[s]*d2z[s], d2z'[s] == k1[s]*d3z[s] - k3[s]*d1z[s]};
bc0 = {x[0] == 0, y[0] == 0, z[0] == 0, d1x[0] == 0, d1y[0] == 0, d1z[0] == 1, d2x[0] == 0, d2y[0] == -1, d2z[0] == 0, d3x[0] == 1, d3y[0] == 0, d3z[0] == 0};
bc1 = {x[1] == 0.5, y[1] == 0, z[1] == 0, Cos[\[Theta]] d1y[1] + d1z[1] Sin[\[Theta]] == 0, d2x[1] == 0, Cos[\[Theta]] d3z[1] - d3y[1] Sin[\[Theta]] == 0};
var = {x, y, z, d1x, d1y, d1z, d2x, d2y, d2z, d3x, d3y, d3z, M1, M2, M3, n1, n2, n3, k1, k3};
eqsadd = {k1'[s] == (k1[s]^4 (M2[s] k3[s] (k1[s]^2 + k3[s]^2) + n2[s] (k1[s]^2 + 3 k3[s]^2)))/(((k1[s]^2 + k3[s]^2)^3)), k3'[s] == (k1[s]^3 (4 n2[s] k3[s]^3 + M2[s] (-k1[s]^4 + k3[s]^4)))/((2 (k1[s]^2 + k3[s]^2)^3))};
bc0add = {M1[0]*k1[0]^3 == k1[0]^4 - k3[0]^4, M3[0]*k1[0]^2 == 2 (k1[0]^2 +k3[0]^2)*k3[0]};
sol = NDSolve[Join[eqs, bc0, bc1, eqsadd, bc0add], var, {s, 0, 1}, Method -> {"Shooting", "StartingInitialConditions" -> {M1[0] == init[[1]], M2[0] == init[[2]], M3[0] == init[[3]], n1[0] == init[[4]], n2[0] == init[[5]], n3[0] == init[[6]], k1[0] == init[[7]], k3[0] == init[[8]]}, MaxIterations -> 10000}]
I have also supplied the init
set, which serves as the initial guess when applying the shooting method. The results appear quite good. However, the issue arises when I attempt to solve the system with θ ≠ 0 (where θ represents an angle parameter). Even if θ is small, Mathematica fails to achieve a convergent solution. I have experimented with multiple solvers, but the problem still persists.
Is there a specific reason why Mathematica has difficulty converging in this situation? Are there any techniques or strategies I can use to help resolve this issue and obtain a solution?
Any insights would be greatly appreciated. Thank you!
MaxIterations -> 10000
. $\endgroup$\[Theta] = 0
. Do you mean that we should make parametric research with $\theta$? Could you suggest what value $\theta$ we can use? $\endgroup$\[Theta] = Pi/3
, or any value at range(0,Pi/2]
$\endgroup$Cos[\[Theta]] d1y[1] + d1z[1] Sin[\[Theta]] == 0
? $\endgroup$