I'm trying to solve numerically the following differential equation:
1/r[x]^5 + k/Sqrt[1 + r'[x]^2] - (k r[x]r''[x])/(1 + r'[x]^2)^(3/2) == 0
I can set boundary condition in x=x0 and x=xF with x0 and xF being the boundaries of the domain of the x variable, i.e., x=[x0,xF]. The particular values are not important, I can set what I want as long as xF>x0>0. I do not have constraint on the value of the first derivative at the boundaries.
This equation has a singularity for r''[x] in x=0. To avoid this problem, I have to use shooting method with appropriate boundary conditions.
sf = NDSolve[{1/r[x]^5 + k/Sqrt[1 + r'[x]^2] - (k r[x]r''[x])/(1 + r'[x]^2)^(3/2) == 0, r[0] == 1, r[1] == 10}, r, {x, 0.1, 100},
Method -> {"Shooting",
"StartingInitialConditions" -> {r[0] == 1, r'[0] == 0}},
MaxSteps -> 500]
If I do so, I obtain the following errors:
NDSolve::mxst: Maximum number of 200 steps reached at the point x == 0.48535728275604967`. >>
NDSolve::mxst: Maximum number of 200 steps reached at the point x == 0.9112853584099116`. >>
NDSolve::mxst: Maximum number of 200 steps reached at the point x == 0.9766603163139572`. >>
General::stop: Further output of NDSolve::mxst will be suppressed during this calculation. >>
FindRoot::sszero: The step size in the search has become less than the tolerance prescribed by the PrecisionGoal option, but the function value is still greater than the tolerance prescribed by the AccuracyGoal option. >>
NDSolve::berr: There are significant errors {0.0395308,-0.00050132} in the boundary value residuals. Returning the best solution found. >>
But anyway I obtain a solution sf in the form of an interpolating function:
{{r -> InterpolatingFunction[{{0.1, 0.920942}},<>]}}
It is this solution reliable?
I think that the the differential equation may be affected by stiffness issues, so I tried to add as a sub Method options to solve stiffness method as indicated in the help:
sf = NDSolve[{1/r[x]^5 + k/Sqrt[1 + r'[x]^2] - (k r[x]r''[x])/(1 + r'[x]^2)^(3/2) == 0, r[0] == 1, r[1] == 10}, r, {x, 0.1, 100},
Method -> {"Shooting",
"StartingInitialConditions" -> {r[0] == 1, r'[0] == 0},Method -> {"StiffnessSwitching", "NonstiffTest" -> False}},
MaxSteps -> 500]
The problem is that I obtain several errors, and a discontinuous solution that it's clearly wrong.
I will really appreciate any help.
Samir

kparameter you have in there. A numerical solution is not possible for parametric equations. – tchronis Dec 15 '13 at 16:50