# Simplifying with a Taylor series when $n$ is large, but much smaller than infinity

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:

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:

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:

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

• It is still not clear what you seek: The minimum of the function? An approximation to the original function? – Henrik Schumacher Jan 22 '18 at 18:24
• What's wrong with NMinimize[{kh, n>10} /. {R->.008, ν->1/2}, n]? – Carl Woll Jan 22 '18 at 18:25
• @HenrikSchumacher Yes - I'd like to arrive at my approximate function through Mathematica (rather than doing it by hand). – dpholmes Jan 22 '18 at 18:28
• @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). – dpholmes Jan 22 '18 at 18:30
• "much smaller than infinity"... whew! Well that sure limits the value! – David G. Stork Jan 22 '18 at 19:48

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])) *)


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

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

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}]


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}]}
]
]


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}]
]


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

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


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}]


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


• 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... – José Antonio Díaz Navas Jan 22 '18 at 22:18
• 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. – dpholmes Jan 23 '18 at 0:58