I am trying to solve a non-linear boundary value problem where the differential equation is a convoluted function of the variable I am trying to solve for. The equation below presents the final form of the differential equation (without simplifications) that needs to be solved.
$$ \frac{\partial\Phi}{\partial l} -\frac{\mathrm d}{\mathrm d s}\frac{\partial\Phi}{\partial l'} +\frac{\mathrm d^2}{\mathrm d s^2}\frac{\partial\Phi}{\partial l''} =0 $$
Here's how I'm trying to define the differential equation I would like to solve:
f[{l_, s_}] := (Rv = 50;
hst = 0.75;
w = Rv/hst;
kb = 5;
psist = 14.3;
V0 = 17/(4*Pi*50*50);
S0 = 3*10^6/(4*Pi*5000*5000);
nu0 = V0*Rv*Rv;
sigma = S0/V0;
h = w*(Sqrt[s*s + (l - 1/w - 1)^2] - 1);
psi = psist*(h^(-12) - h^(-6));
K = Exp[-psi];
fact = nu0*(1 + sigma) + 1/K;
chi = 0.5*(fact - Sqrt[fact^2 - 4*nu0*nu0*sigma]);
curv =
D[l, s]/(s*(Sqrt[1 + (D[l, s])^2])) +
D[l, s]/Sqrt[(1 + (D[D[l, s], s])^2)^3];
fun = (0.5*kb*curv^2 - chi*psi)*s*Sqrt[1 + (D[l, s])^2]);
soln = First[
NDSolve[{D[f[{l[s], s}], l[s]] - Dt[D[f[{l[s], s}], l'[s]], s] +
Dt[Dt[D[f[{l[s], s}], l''[s]], s], s] == 0, l[0] == 0,
l'[0] == 0, l'[10] == 0, l''[10] == 0}, l, {s, 0, 10},
Method -> {"Shooting"}]]
funin the pure functionf(l,s)gives the expression for the functionalphiin the above equation.- Derivatives with respect to
s,l(s),l'(s),l''(s)are taken to get the final differential equation (the one shown above). - I would like to obtain the solution in terms of an interpolating function object
l(s).
The difficulty is that the BVP solver is running into singularities when I try to evaluate the solution. The error message displayed is:
Power::infy: Infinite expression 1/0. encountered. >>
Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered. >>
Power::infy: Infinite expression 1/0. encountered. >>
Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered. >>
Power::infy: Infinite expression 1/0. encountered. >>
General::stop:Further output of Power::infy will be suppressed during this calculation. >>
Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered. >>
General::stop: Further output of Infinity::indet will be suppressed during this calculation. >>
NDSolve::ndnum: Encountered non-numerical value for a derivative at s == 0.`. >>
And when I try to make the solver avoid these singularities by adding
SolverDelayed->True
in the NDSolve routine after specifying the method of solution, it says,
NDSolve::bvdae: Differential-algebraic equations must be given as initial value problems. >>
I am not sure whether I am proceeding in the right direction or even if this is the right way to solve this problem but so far I haven't found anything similar in the Documentation Center or the forum here. I will be grateful to anyone who can tell me where I am going wrong.
"StartingInitialConditions", but I failed to, and I'm afraid it won't be easy to, find a proper one for your equation. See here for an example. – xzczd Dec 08 '14 at 08:36FullSimplify, it couldn't spit out the result after a day (I quit the kernel then, so don't know if it could have done the job given more time). Thanks for trying anyway. – Sayani Majumdar Dec 13 '14 at 13:35