I want to solve a differential equation like:
NDSolve[{F w[x]/EI == w''[x]/(1 + w'[x]^2)^(3/2), w'[0] == 0, w[0.01/2] == 0} /. {EI -> 0.00012, F -> 0.01}, w, {x, 0, 0.01/2}, Method -> {"Shooting", "StartingInitialConditions" -> {w[0] == 0.08}}]
However, it just returns a copy of itself without any error information.
I have tried some other initial points:
Map[First[NDSolve[{F w[x]/EI == w''[x]/(1 + w'[x]^2)^(3/2), w'[0] == 0, w[0.01/2] == 0} /. {EI -> 0.00012, F -> 0.01}, w, {x, 0, 0.01/2}, Method -> {"Shooting", "StartingInitialConditions" -> {w[0] == #}}]] &, Range[0, 0.1, 0.01]]
A few of them work well.
Please help~
Following @bmf suggestion.
The equation describes the bending deformation of a slender beam. The
bending moment equals F w[x]
where w[x]
is the deflection of the beam. w''[x]/(1 + w'[x]^2)^(3/2)
is the curvature of the beam, and EI
is the bending stiffness. As we compress a slender beam, w[x]==0
is definitely a solution, but when the beam bends a little, I think there is another equilibrium state.
It's a buckling problem. Detail: https://en.wikipedia.org/wiki/Euler%27s_critical_load
When I changed the curvature expression as @Ulrich suggested, everything just worked!
But still, I don't understand why NDSolve
would return an unevaluated result without any error information in some conditions.
w[x] = 0
, and I do not believe that there are any others for the boundary conditions specified. Perhaps, this is why the "Shooting"Method
is causing problems. $\endgroup$w''[x]/(1 + w'[x]^2)^(3/2)
I think $\endgroup$