234
$\begingroup$

The approximation $$\sin(x) \simeq \frac{16 (\pi -x) x}{5 \pi ^2-4 (\pi -x) x}\qquad (0\leq x\leq\pi)$$ was proposed by Mahabhaskariya of Bhaskara I, a seventh-century Indian mathematician.

I wondered how much this could be improved using our computers and so I tried (very immodestly) to see if we could do better using $$\sin(x) \simeq \frac{a (\pi -x) x}{5 \pi ^2-b (\pi -x) x}$$ I so computed $$\Phi(a,b)=\int_0^{\pi} \left(\sin (x)-\frac{a (\pi -x) x}{5 \pi ^2-b (\pi -x)x}\right)^2 dx$$ the analytical expression of which not being added to the post. Settings the derivatives equal to $0$ and solving for $a$ and $b$, I arrived to $a=15.9815,b=4.03344$ so close to the original approximation !

What is interesting is to compare the values of $\Phi$ : $2.98 \times 10^{-6}$ only decreased to $2.17 \times 10^{-6}$. Then, no improvement and loss of attractive coefficients.

Now, since this is a matter of etiquette on this site, I ask a simple question:

with all the tools and machines we have in our hands, could any of our community propose something as simple (or almost) for basic trigonometric functions ?

In the discussions, I mentioned one I made (it is probable that I reinvented the wheel) in the same spirit $$\cos(x) \simeq\frac{\pi ^2-4x^2}{\pi ^2+x^2}\qquad (-\frac \pi 2 \leq x\leq\frac \pi 2)$$ which is amazing too !

$\endgroup$
28
  • 38
    $\begingroup$ Am I the only one who's more interested in the analytical solution of the integral? $\endgroup$
    – UserX
    Oct 16 '14 at 11:38
  • 19
    $\begingroup$ How about replacing $5$ as well? $\endgroup$
    – lhf
    Oct 16 '14 at 11:40
  • 17
    $\begingroup$ Yeah, Indians cooked up some pretty good pi back in that era. $\endgroup$ Oct 16 '14 at 17:33
  • 24
    $\begingroup$ Hm, it's very pity that this is not really a question. Couldn't you just add some question to your post so that this beautiful thing does not get closed and deleted for formal reasons? $\endgroup$ Oct 16 '14 at 18:15
  • 7
    $\begingroup$ @HagenvonEitzen. Thanks for pushing me ! I added. Feel free to add in the post. $\endgroup$ Oct 16 '14 at 18:23
129
$\begingroup$

One simple way to derive this is to come up with a parabola approximation. Just getting the roots correct we have

$$f(x)=x(\pi-x)$$

Then, we need to scale it (to get the heights correct). And we are gonna do that by dividing by another parabola $p(x)$

$$f(x)=\frac{x(\pi-x)}{p(x)}$$

Let's fix this at three points (thus defining a parabola). Easy rational points would be when $\sin$ is $1/2$ or $1$. So we fix it at $x=\pi/6,\pi/2,5\pi/6$.

We want $$f(\pi/6)=f(5\pi/6)=1/2=\frac{5\pi^2/36}{p(\pi/6)}=\frac{5\pi^2/36}{p(5\pi/6)}$$ And we conclude that $p(\pi/6)=p(5\pi/6)=5\pi^2/18$

We do the same at $x=\pi/2$ to conclude that $p(\pi/2)=\pi^2/4$.

The only parabola through those points is

$$p(x)=\frac{1}{16}(5\pi^2-4x(\pi-x))$$

And thus we have the original approximation.

In the spirit of answering the question: This method could be applied for most trig functions on some small symmetric bound.

$\endgroup$
12
  • 13
    $\begingroup$ That was wonderful $\endgroup$ Oct 17 '14 at 6:44
  • 1
    $\begingroup$ @BeaumontTaz. Inspired by your answer, I selected three points at $x=\alpha,\frac{\pi}{2},\pi-\alpha$ from which the coefficients can be computed as functions of $\alpha$. I set $\alpha=\frac{n\pi}{8!}$ to maintain rationality and I searched for $n$ such that the integral in the post be minimum. I found $n=7017$ instead of $n=6720$ (corresponding to $\frac{\pi}{6}$). The value of the integral changed from $2.97776\times 10^{-6}$ to $2.94776\times 10^{-6}$ which is just ridiculous. One more proof of how clever is the choice of $\frac{\pi}{6}$ ! $\endgroup$ Oct 18 '14 at 5:10
  • 1
    $\begingroup$ @BeaumontTaz. I did not want to have an irrational value for the optimum $\alpha$. That's it ! Cheers :-) $\endgroup$ Oct 18 '14 at 11:15
  • 2
    $\begingroup$ @BeaumontTaz amazing answer. What is the intuition behind scaling of $x(\pi-x)$ by dividing with $p(x)$, and not by some multiplicative function ? $\endgroup$
    – kaka
    Oct 22 '14 at 19:58
  • 2
    $\begingroup$ @kaka. My intuition behind dividing by $p(x)$ was that it was the already established form of the approximation. It was using the knowledge that we know what we're going for. Kinda cheating. However, I did just spend some time solving for a $q(x)$ such that $g(x) = q(x)x(\pi-x)$ and it doesn't turn out nearly as appealing, not to mention the fact that it's a fourth order polynomial, now. However, I will mention that it is a more accurate approximation having $\Phi = 1.118\times10^{-6}$. I will post the both $q(x)$ and $g(x)$ in a proceeding comment. $\endgroup$ Oct 22 '14 at 20:57
48
$\begingroup$

This might be more explicable if you observe that it is the same thing as

$$ \csc(x) \approx -\frac{1}{4} + \frac{5 \pi}{16} \left( \frac{1}{x} + \frac{1}{\pi - x} \right) $$

The two summands in the parentheses are obvious if you want to get the poles of $\csc$ correct. If you wanted a good approximation of $\csc$ near the poles, then the coefficient out front should be $1$. But since we're approximating $\sin$, it's okay to get that wrong because anything near zero is near zero.

The extreme point is at $\csc(\pi/2) = 1$; in the approximation, this would become

$$ -\frac{1}{4} + \frac{5 \pi}{16} \left( \frac{2}{\pi} + \frac{2}{\pi} \right) = -\frac{1}{4} + \frac{5}{4} = 1$$

and so we see the appearance of the remaining copy of $\pi$ is to cancel out the other two $\pi$'s. All that's left is to tune the factor $\frac{5}{16}$ to something appropriate, and adjust the $-\frac{1}{4}$ to compensate. I'm not sure where the choice of $\frac{5}{16}$ comes from, although it's quite plausible it ought to be near $\frac{1}{\pi}$; maybe it was chosen just to be a small fraction whose denominator was divisible by $4$, so as to cancel the $4$ in $\frac{4}{\pi}$.


As a bit of an aside, my comment about the poles suggests an infinite sum for $\csc(x)$ that I hadn't seen before:

$$ \csc(x) = \sum_{n=-\infty}^{+\infty} (-1)^n \frac{1}{x - \pi n} $$

$\endgroup$
7
  • 4
    $\begingroup$ Very interesting ! Thanks & cheers :-) $\endgroup$ Oct 16 '14 at 12:16
  • $\begingroup$ This last sum is just fascinating too ! Thank you so much. This opens new windows in my mind !! $\endgroup$ Oct 16 '14 at 13:58
  • $\begingroup$ Maybe $ \frac{5}{16} = 0.3125 \approx \frac{\pi}{10} $ ? $ \frac{1}{\pi} \approx 0.3183 $. $\endgroup$
    – jpmc26
    Oct 17 '14 at 0:17
  • 1
    $\begingroup$ @jpmc26, the fractions arise naturally from trying to fit a parabola $p(x)$ to the points $\left(\frac{\pi}{6},\frac{5\pi^2}{18}\right), \left(\frac{\pi}{2},\frac{\pi^2}{4}\right), \left(\frac{5\pi}{6},\frac{5\pi^2}{18}\right)$ which would make $$f(x)=\frac{x(\pi-x)}{p(x)}=\sin{(x)}$$ at $x=\frac{\pi}{6},\frac{\pi}{2},\frac{5\pi}{6}$. I flushed it out a little more in my answer. Also, this wiki page and this answer might help. $\endgroup$ Oct 17 '14 at 6:32
  • $\begingroup$ @jpmc26 Also, the slope of our approximation at $x=0$ is $\frac{16}{5\pi}$ and the slope of $\sin$ at $x=0$ is $1$. So basically $\frac{16}{5\pi}\approx 1$ which means that $\frac{16}{5}\approx \pi$ You seem to be right or at least it's a coincidence that $\frac{5}{16}\approx \frac{1}{\pi}$. $\endgroup$ Oct 17 '14 at 6:40
41
$\begingroup$

While you're at it, try also $\cos\bigg(\dfrac\pi2x\bigg)\simeq\Big(1-x^2\Big)^\tfrac65$ and $\cos\bigg(\dfrac\pi2x\bigg)\simeq\Big(1-x^2\Big)^\tfrac76$.

But since the numerical evaluation of fractional powers is significantly more time-

consuming in terms of CPU, we can substantially improve this by using the binomial

series
for $\Big(1-x^2\Big)^\tfrac15$, and experimentally adjusting the coefficient, finally arriving at

$\color{seagreen}{\cos\bigg(\dfrac\pi2x\bigg)\simeq\Big(1-x^2\Big)\bigg(1-\dfrac{x^2}{4.5}\bigg)}$, which yields an absolute error of about $\pm1$

$\endgroup$
8
  • 5
    $\begingroup$ Let me give one : $\cos(x) \approx \frac{5 \pi ^2}{x^2+\pi ^2}-4$. I don't know if it is new or not (I built it in the same spirit as the one for the sine). Is that any good ? ($0\leq x\leq \pi/2$). $\endgroup$ Oct 16 '14 at 15:02
  • $\begingroup$ @ClaudeLeibovici: It's brilliant! Far simpler and more accurate! :-$)$ $\endgroup$
    – Lucian
    Oct 16 '14 at 15:07
  • 2
    $\begingroup$ @ClaudeLeibovici: Probably based on the fact that $\dfrac1{1+x^2}\approx1-x^2$, since $x^4\approx0$. $\endgroup$
    – Lucian
    Oct 16 '14 at 15:10
  • $\begingroup$ Except that that formula requires performing fractional exponents, so arguably not simpler. $\endgroup$ Oct 16 '14 at 17:35
  • 1
    $\begingroup$ @Lucian. Just use $\cos(x) \approx \frac{5 \pi ^2}{x^2+\pi ^2}-4$ and make $x=\frac{\pi y}{2}$ to get $\cos\bigg(\dfrac\pi2 y\bigg)\simeq \frac{4 \left(1-y^2\right)}{y^2+4}$ $\endgroup$ Oct 17 '14 at 7:19
0
$\begingroup$

I would like to add an addendum to @BeaumontTaz's wonderful derivation of the approximation, because I think I have a very simple answer to user @kaka's comment "What is the intuition behind scaling of $x(\pi−x)$ by dividing with $p(x)$, and not by some multiplicative function ?". The key prerequisite to this approximation is I think the knowledge of the five nicest/simplest values of the sine function on $[0,\pi]$, namely $\sin(0) = 0, \sin(\frac \pi 6) = \frac 12, \sin(\frac \pi 2) = 1, \sin (\frac{5\pi}6) = \frac 12, \sin (\pi) = 0$. It is no surprise that these values were known to Bhaskara I in the 7th century, as all the values are rational (none of that square-rooty business that apocryphally got someone killed), and can be easily derived through the 30-60-90 triangle.

Anyways, as BeaumontTaz did, the first order of business is to approximate using the zeroes, so $f(x)= x (\pi-x)$. Then obviously, we want $f(\frac \pi 2) = \sin (\frac \pi 2) = 1$, so the easiest thing we could do is scale by $\frac 1{f(\pi/2)}$ and get the approximation $$a_1(x) = \frac{x(\pi-x)}{f(\pi/2)}.$$ This is not too good of an approximation, so we hope to do better. Lucky for us, we still have two pieces of information left! We want our approximation to agree with $\sin x$ at $x = \frac \pi6, \frac{5\pi}6$ as well. So at $x=\frac \pi6$, we would need to scale by $\frac{\sin(\pi/6)}{f(\pi/6)} = \frac{1}{2f(\pi/6)}$, and similarly at $x= \frac{5\pi}6$ we would scale by $\frac{\sin(5\pi/6)}{f(5\pi/6)} = \frac{1}{2f(5\pi/6)}$. In summary, at $x = \frac \pi6, \frac \pi2, \frac{5\pi}6$ respectively, we would like to divide by $2f(\pi/6), f(\pi/2), 2f(5\pi/6)$ respectively, i.e. we have a "scaling function" $s(x)$ that we divide by that we have pinned down at three values, and an approximation $a(x) = \frac{f(x)}{s(x)}$. What's the easiest way to extend a function defined at three points? Well, there is exactly one parabola passing through those three points, and parabolas are very easy to deal with, so let us simply take $s(x)$ to be the parabola passing those three points.

So we see that the reason it is "more natural" to divide by the scaling instead of multiplying like @kaka suggested was because in this problem the first idea we had of scaling was in the form of a division ("priming our mind for division"), and all the scaling factors looked like $\frac{1}{\text{something}}$, and it is easier to deal with/look at interpolation at points $(\frac \pi 6, 2f(\frac \pi 6)), (\frac \pi 2, f(\frac \pi2)), (\frac{5\pi}6, 2f(\frac{5\pi}6))$ than interpolation at points $(\frac \pi 6, \frac{1}{2f(\frac \pi 6)}), (\frac \pi 2, \frac{1}{f(\frac \pi2)}), (\frac{5\pi}6, \frac1{2f(\frac{5\pi}6)})$. Said another way, when we want to "renormalize" $f(\frac \pi 6)$ to $\frac 12$, I think people naturally think "divide by $f(\frac \pi 6)$ to normalize to 1, and then divide by 2/multiply by $\frac 12$ to get to $\frac 12$", i.e. the idea of "normalization to 1" is "more naturally" thought of as a division rather than a multiplication by reciprocal.

I do think aesthetics/simplicity play some role in formulas like these (they were written out in verses in Sanskrit), and the formula for the parabola passing through $(\frac \pi 6, 2f(\frac \pi 6)), (\frac \pi 2, f(\frac \pi2)), (\frac{5\pi}6, 2f(\frac{5\pi}6))$ is much nicer (especially if we write things in terms of degrees instead of radians) than the formula for the parabola passing through $(\frac \pi 6, \frac{1}{2f(\frac \pi 6)}), (\frac \pi 2, \frac{1}{f(\frac \pi2)}), (\frac{5\pi}6, \frac1{2f(\frac{5\pi}6)})$ (taking reciprocals in the latter case messes up things quite a lot). Indeed explicitly writing out the interpolation w.r.t. the first and second set of points in degrees, we have $s_1(x) = \frac{1}{4}x^{2}-45x+10125$ and $s_2(x)=-\frac{1}{291600000}x^{2}+\frac{1}{1620000}x+\frac{31}{324000}$; you can visualize them here: https://www.desmos.com/calculator/aiqcjbbcn2.

I hope this answer gave a little bit more details to the "naturality" of dividing by scaling factors (and the "naturality" of the entire construction/approximation --- basically I argue that the formula in Claude's question is the simplest and most reasonable approximation given exactly the five "trivial" values of $\sin x$), and didn't just repeat what people already knew.

$\endgroup$
1
  • $\begingroup$ Thank you, D.R. for your elaboration. I will get back to it soon. Cheers $\endgroup$
    – kaka
    Aug 28 at 16:55

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.