# 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[]] == 0, kh][][] // 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[]] == 0, pE][][] // 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? Jan 22, 2018 at 18:24
• What's wrong with NMinimize[{kh, n>10} /. {R->.008, ν->1/2}, n]? Jan 22, 2018 at 18:25
• @HenrikSchumacher Yes - I'd like to arrive at my approximate function through Mathematica (rather than doing it by hand). Jan 22, 2018 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). Jan 22, 2018 at 18:30
• "much smaller than infinity"... whew! Well that sure limits the value! Jan 22, 2018 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). Jan 23, 2018 at 13:07
• @dpholmes : My answer is edited and verified. Jan 23, 2018 at 13:42
• Very interesting this workaround ! Voting up ... Jan 23, 2018 at 13:45
• @José Antonio Díaz Navas: Not a workaround, if you know the asymptotival behavior of your variables. Thank you. Jan 23, 2018 at 15:10
• @UlrichNeumann This was exactly what I was looking for. Thank you. Jan 23, 2018 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. Jan 23, 2018 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... Jan 22, 2018 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. Jan 23, 2018 at 0:58