This is a question about the fluid mechanics equation, which is solved by a similarity solution ($f(t)$, here).
I'm trying to solve the following boundary value problem with shooting method (taken from $(2)(3)(4)$ of this paper):
$f(t)-t f^{\prime}(t)+a\left(f(t)^{3} f^{\prime \prime \prime}(t)\right)^{\prime}=0$
$f(0)=1, f^{\prime}(0)=f^{\prime \prime \prime}(0)=0, f^{\prime \prime}(\infty)=0, f^{\prime}(\infty)=1$
Five boundary conditions are given, in order to determine the unknown parameter $a$.
I choose the ParametricNDSolveValue
with the first four boundary conditions, the fifth condition is used conducting the shooting method. Infinity is replaced by t==100000
, but there are some errors with the results:
pfun = ParametricNDSolveValue[{f[t] == t f'[t] - a D[f[t]^3 f'''[t], t],
f[0] == 1, f'[0] == f'''[0] == 0, f''[100000] == 0},
f'[100000], {t, 0, 100000}, {a}]
FindRoot[pfun[a] - 1, {a, 2}]
Unfortunately, Mathematica gives something like these:
Power::infy: Infinite expression 1/0.^3 encountered.
Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered.
General::stop: Further output of Power::infy will be suppressed during this calculation.
To sum up, my questions are: how can I figure out this ODE to check whether the boundary condition at infinity (in my shooting algorithm I take infinity as t = 100 000
) is satisfied? Is my setting wrong?
Thanks!
Update:
When I set the xi as x=10, it still doesn't work. There is a singular at t=0. Errors are shown as:
Power::infy: Infinite expression 1/0.^3 encountered.
Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered.
General::stop: Further output of Power::infy will be suppressed during this calculation.
Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered.
ParametricNDSolveValue::ndnum: Encountered non-numerical value for a derivative at t$3391 == 0.`.
However, when I change 'a' to '-a', it seems to get a strange answer, which is beyond my expectation. In fact, the value of 'a' should be around 1.22, as stated in an article.
Update2:
The final purpose is to fix this equation:
$f-x f^{\prime}+a \left(f^{R+2}\left|f^{\prime \prime \prime}\right|^{R-1} f^{\prime \prime \prime}\right)^{\prime}=0$ $f(0)=1, f^{\prime}(0)=f^{\prime \prime \prime}(0)=0, f^{\prime \prime}(\infty)=0, f^{\prime}(\infty)=1$
Find 'a' for a specific value of 'R', the prior question is under the condition R=1. I have tried as:
R = 2;
{fsol, asol} =
NDSolveValue[{f[t] ==
t f'[t] -
a[t] D[f[t]^(R + 2) (Abs [f'''[t]])^(R - 1)*f'''[t], t],
a'[t] == 0, f[0] == 1, f'[0] == f'''[0] == 0, f''[10] == 0,
f'[10] == 1}, {f, a}, {t, 0, 10}];
Plot[{fsol[t], asol[t]}, {t, 0, 10}]
y1 = asol[1]
if R=1, y1 = 1.3417, which is corresponding to answer of @xzczd;
When R takes other values, errors appear:
Power::infy: Infinite expression 1/0. encountered.
NDSolveValue::ndnum: Encountered non-numerical value for a derivative at t == 0.`.
So this problem may be difficult to solve,owing to the singular at t==0.
f[t]==
rather thanf[t]=
. Also, you may want to read this post to learn how to format the code properly. $\endgroup$