3
$\begingroup$

A calculation yields the following result:

$\text{kh}\to \frac{2 \sqrt{3} \sqrt{\nu +n-1} \sqrt{\text{R}^2 n^3+3 \nu +12 \nu n+15 n-3}+6 \nu -6 (2 \nu +1) n-6}{\text{R} (\nu +1) n^2}$

Knowing that $n \gg 1$, I can approximate this solution (by hand) to:

$\text{kh}\to \frac{2 \left(\sqrt{3 \left(\text{R}^2 \text{n}^2+12 \nu +15\right)}-3 (2 \nu +1)\right)}{\text{R} (\nu +1) \text{n}}$

A log-log plot of the exact solution and the approximate solution looks like: enter image description here

How do I generate this approximate solution with Mathematica?

It is clear from this graph, that the the curve has a minimum at $n\gg1$ but $n \ll \infty$. Also, it's known that $n \gg 1$, $R \ll 1$, and $0\leq\nu\leq1/2$. My initial attempts to approximate the exact solution include doing a Taylor series expansion around $n=\infty$, as well all as expansions around both $n=\infty$ and $R=0$, but even considering many terms in the expansion (e.g. 9), still does not come very close to my hand-calculated approximate solution.

Here is the Mathematica code to get the original solution (the plots above were generated using: $R\to0.008, \nu\to1/2$):

 eqk1=-((1 + ν) + (1 + ν)/12 R kh n) Cn + (n - (1 - ν)) Dn == 0;
 eqk2 = (R^2/12 n^2 + (1 + ν)/12 R kh n + 2 (1 + ν)) Cn - ((1 + ν) (n + 1/12 R kh n^2)) Dn == 0;  
 matkh = Normal@CoefficientArrays[{eqk1, eqk2}, {Dn, Cn}];
 khnAll = Solve[Det[matkh[[2]]] == 0, kh][[1]][[1]] // FullSimplify

The closest I've come to generating the approximate solution is by squaring the exact solution, expanding n around infinity and R around zero, and then taking a square root. If I expand R first, I capture the solution for small n, whereas if I expand about n first, I capture the solution for large n:

 R1st = FullSimplify[Sqrt[Normal[Series[Expand[(kh /. khnAll)^2], {R, 0, 1}, {n, \[Infinity], 2}]]]];
 n1st = FullSimplify[Sqrt[Normal[Series[Expand[(kh /. khnAll)^2], {n, \[Infinity], 2}, {R, 0, 1}]]]];
 LogLogPlot[{kh /. khnAll /. {\[Nu] -> 1/2, R -> 0.008, nx -> n}, R1st /. {R -> 0.008, \[Nu] -> 1/2}, n1st /. {R -> 0.008, \[Nu] -> 1/2}}, {n, 10, 10000}, AxesLabel -> {"n", "kh"}]

This leads to a graph that looks like:

enter image description here

Any help would be greatly appreciated.

Update: To provide some motivation and clarity to the problem, here is a similar example:

 eqp1 = (n^2 - (1 - \[Nu]) n) Dn + (1 + \[Nu]) n Cn == 0;`
 eqp2 = (1 + \[Nu]) n Dn + (R^2/12 n^2 - (1 - \[Nu]^2) pE n + 2 (1 + \[Nu])) Cn == 0;`
 mat = Normal@CoefficientArrays[{eqp1, eqp2}, {Dn, Cn}];
 pEnAll = Solve[Det[mat[[2]]] == 0, pE][[1]][[1]] // FullSimplify

This results in the following exact solution:

$pE\to \frac{\text{R}^2 n}{12-12 \nu ^2}+\frac{n-2}{n (\nu +n-1)}$

Knowing the same limits from the initial problem apply to this one, i.e. $n \gg 1$, $R \ll 1$, and $0\leq\nu\leq1/2$, I can approximate the exact solution by:

 pEn = FullSimplify[Normal[Series[pE /. pEnAll, {n, \[Infinity], 1}]]]

Which gives the following approximate solution:

$pE \to \frac{\text{R}^2 n}{12-12 \nu ^2}+\frac{1}{n}$

And a comparison between the plots of these functions looks like:

enter image description here

In this example, a simple Taylor series around n=\[Infinity] works, whereas it does not in the initial question.

$\endgroup$
  • $\begingroup$ It is still not clear what you seek: The minimum of the function? An approximation to the original function? $\endgroup$ – Henrik Schumacher Jan 22 '18 at 18:24
  • $\begingroup$ What's wrong with NMinimize[{kh, n>10} /. {R->.008, ν->1/2}, n]? $\endgroup$ – Carl Woll Jan 22 '18 at 18:25
  • $\begingroup$ @HenrikSchumacher Yes - I'd like to arrive at my approximate function through Mathematica (rather than doing it by hand). $\endgroup$ – dpholmes Jan 22 '18 at 18:28
  • $\begingroup$ @CarlWoll I'm not concerned with finding the minimum at this point. I'd like to be able to approximate my exact solution using commands within Mathematica (rather than by hand). $\endgroup$ – dpholmes Jan 22 '18 at 18:30
  • 4
    $\begingroup$ "much smaller than infinity"... whew! Well that sure limits the value! $\endgroup$ – David G. Stork Jan 22 '18 at 19:48
3
$\begingroup$

The solution you derived "by hand" can be easily obtained as follows:

The main idea is the assumption that O[n]~1/eps and O[R]=eps

Collect[Simplify[Normal[Series[ kh /. khnAll /. {n -> n/eps, R -> eps R},{eps, 0, 0}] ], {eps > 0,n>0}], eps, Simplify]
(* (2 (-3 - 6 \[Nu] + Sqrt[45 + 3 n^2 R^2 + 36 \[Nu]]))/(n R (1 + \[Nu])) *)

enter image description here

You can refine the approximation using higher order in the series expansion!

$\endgroup$
  • $\begingroup$ Is there an errorin this command? I get Indeterminate as a response (after adding the missing ] bracket). $\endgroup$ – dpholmes Jan 23 '18 at 13:07
  • 1
    $\begingroup$ @dpholmes : My answer is edited and verified. $\endgroup$ – Ulrich Neumann Jan 23 '18 at 13:42
  • $\begingroup$ Very interesting this workaround ! Voting up ... $\endgroup$ – José Antonio Díaz Navas Jan 23 '18 at 13:45
  • 1
    $\begingroup$ @José Antonio Díaz Navas: Not a workaround, if you know the asymptotival behavior of your variables. Thank you. $\endgroup$ – Ulrich Neumann Jan 23 '18 at 15:10
  • $\begingroup$ @UlrichNeumann This was exactly what I was looking for. Thank you. $\endgroup$ – dpholmes Jan 23 '18 at 16:18
5
$\begingroup$

You could use PadeApproximant instead:$\nu$

approx = PadeApproximant[kh /. {R->.008, ν->1/2}, {n, 500, 4}]

(1.50899 + 0.00722348 (-500 + n) + 0.0000148043 (-500 + n)^2 + 1.46027*10^-8 (-500 + n)^3 + 5.96796*10^-12 (-500 + n)^4)/(1.000000000000000000 + 0.00477125 (-500 + n) + 8.63123*10^-6 (-500 + n)^2 + 7.45524*10^-9 (-500 + n)^3 + 2.57999*10^-12 (-500 + n)^4)

Visualization:

LogLogPlot[Evaluate[{approx, kh} /. {R->.008, ν->1/2}], {n, 25, 10^4}]

enter image description here

Addendum

The OP said in a comment that he needed the approximate solution in order to obtain the minimum, since Mathematica had a hard time minimizing the exact solution. For this particular example, though, the exact minimum can be obtain by using Solve instead of Minimize as follows:

min = n /. Normal @ First @ Solve[D[kh, n]==0 && n>10 && R<1/100 && 0<ν<=1/2, n]

Root[(-576 + 1152 ν - 1152 ν^3 + 576 ν^4) #1 + (3744 - 1440 ν - 6048 ν^2 + 1440 ν^3 + 2304 ν^4) #1^2 + (-3744 + 24 R^2 - 2016 ν - 72 R^2 ν + 4320 ν^2 + 72 R^2 ν^2 + 2016 ν^3 - 24 R^2 ν^3 - 576 ν^4) #1^3 + (720 + 108 R^2 + 576 ν - 48 R^2 ν - 720 ν^2 - 228 R^2 ν^2 - 576 ν^3 + 168 R^2 ν^3) #1^4 + (-96 R^2 + 144 R^2 ν^2 - 48 R^2 ν^3) #1^5 + (-12 R^2 + R^4 - 48 R^2 ν - 2 R^4 ν - 48 R^2 ν^2 + R^4 ν^2) #1^6 &, 6]

Check:

m0 = N[min /. {R->8/1000, ν->1/2}]

493.09

Visualization:

Block[{R=8/1000, ν=1/2},
    LogLogPlot[
        kh,
        {n, 25, 800},
        Epilog->{Red,PointSize[Large],Point[Log@{m0, kh /. n->m0}]}
    ]
]

enter image description here

Addendum 2

Another idea is to treat $R$ as a function of $n$ in order to use both the $R\ll1$ and $n\gg1$ limits:

approx[n_, r_] = ReplaceAll[
    Normal @ Series[kh /. R->R0/n, {n, Infinity, 1}, Assumptions->n>0],
    R0->n r
];
approx[n, R] //TeXForm

$\frac{-12 \nu +2 \sqrt{3} \sqrt{12 \nu +n^2 R^2+15}-6}{(\nu +1) n R}+\frac{6 \nu +\frac{\sqrt{3} (\nu -1) \left(12 \nu +n^2 R^2+18\right)}{\sqrt{12 \nu +n^2 R^2+15}}-6}{(\nu +1) n^2 R}$

Visualization:

Block[{ν=1/2, R=.008},
    LogLogPlot[{approx[n, .008], kh}, {n, 1, 10000}]
]

enter image description here

$\endgroup$
  • $\begingroup$ Thanks - I was unfamiliar with PadeApproximant, this is really interesting approach. $\endgroup$ – dpholmes Jan 23 '18 at 16:19
3
$\begingroup$

I dont think there is any avoiding hand work here:

Break out the radical part of expression:

nonr = khnAll   /. Power[_, Rational[1, 2]] -> 0
rad = khnAll  - nonr // Simplify

enter image description here

enter image description here

then this gets close to what you have:

Simplify[Normal@Series[nonr, {n, Infinity, 1}] +
  Sqrt[Normal@Series[ (n rad)^2, {n, Infinity, 0}]]/n  ,
 Assumptions -> {R > 0, n > 0, \[Nu] > 0}]

enter image description here

Now you want to make some argument that R is small so you drop the n R^2 term. I don't see a mathematically rigorous way to get there.

I suppose this..

  Limit[% /. n -> nr/R, R -> 0] /. nr -> n R

enter image description here

$\endgroup$
  • 1
    $\begingroup$ I agree. The OP approximates the expression by dropping manually those terms he consider small. MMA cannot consider that (thus far !). Therefore, some handwork must be done... $\endgroup$ – José Antonio Díaz Navas Jan 22 '18 at 22:18
  • $\begingroup$ Thank you, this is really helpful! I didn't know how to split out the radical part of the equation. It's also helpful to see what are the limits of approximating a function with Mathematica are. $\endgroup$ – dpholmes Jan 23 '18 at 0:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.