2
$\begingroup$

I am looking for a closed-form formula for the approximation of an inverse Sinc as $$y=\frac{\pi x}{sin(\pi x)}$$ for x between -0.85 and 0.85, with 1% accuracy.

My first inclination is to do a polynomial curve-fit but wanted to check if anyone already had the solution or a better approach?

I am ultimately using this to approximate X as a function of Y for: $$K Sinc(X)=Sinc(Y)$$

$\endgroup$
3
  • $\begingroup$ If you are ready to work with cubic equations in $x^2$, I can produce a still better Padé approximant (maximum error being $4\times 10^{-7}$) $\endgroup$ Mar 7, 2017 at 9:40
  • $\begingroup$ Well, $10^{-5}$ is wonderful but of course would be interesting to see if you have it... do you get the maximum error by checking your result or is there some other method that tells you that before you derive the result? What approach do you use to compute the Padé approximant? Thank you for this! $\endgroup$ Mar 7, 2017 at 9:50
  • $\begingroup$ The construction of Padé approximant is quite "simple" ("almost" similar to Taylor series). For the error, I just checked the plot of the difference between the function and the approximation. $\endgroup$ Mar 7, 2017 at 9:59

4 Answers 4

3
$\begingroup$

As JeanMarie suggested in his answer, Pade approximants are probably the most interesting approach.

A simple and rather accurate one would be $$\dfrac{\pi x}{\sin(\pi x)}=\frac{1+\frac{13 \pi ^2 }{396}x^2+\frac{5 \pi ^4 }{11088}x^4} { 1-\frac{53 \pi ^2 }{396}x^2+\frac{551 \pi ^4}{166320} x^4}$$ which shows a maximum error at the upper bound $0.85$ (the approximated value being $\approx 5.87170$ for an exact value $\approx 5.88196$.

Using it, if you need sot solve for $x$ equation $$K \text{sinc}(x)=\text{sinc}(y)$$ you will need to solve $$K \frac{ 1-\frac{53 }{396}x^2+\frac{551 }{166320} x^4}{1+\frac{13 }{396}x^2+\frac{5 }{11088}x^4} =\text{sinc}(y)$$ which is just a quadratic equation in $x^2$.

Defining $a=\frac{\text{sinc}(y)} K$, the solutions will then be $$x^2=\frac{6 \left(\pm\sqrt{35} \sqrt{-3985 a^2+130862 a+25583}-455 a-1855\right)}{75 a-551}$$

For illustration purposes, let us use $y=\frac 12$ and $K=3$. This will give as possible positive solutions $x=2.31087$ and $x=6.34097$ while the exact solution would be $x=2.31069$.

Edit

You may be intested by comparing Taylor expansions $$\text{sinc}(x)=1-\frac{x^2}{6}+\frac{x^4}{120}-\frac{x^6}{5040}+\frac{x^8}{362880}-\frac{x^{10}}{3 9916800}+O\left(x^{12}\right)$$ $$\frac{ 1-\frac{53 }{396}x^2+\frac{551 }{166320} x^4}{1+\frac{13 }{396}x^2+\frac{5 }{11088}x^4}=1-\frac{x^2}{6}+\frac{x^4}{120}-\frac{x^6}{5040}+\frac{x^8}{362880}-\frac{x^{10}}{1 005903360}+O\left(x^{12}\right)$$

If you are concerned by the range $0 \leq x \leq 0.85 \pi$, a curve fit would give $$\text{sinc}(x)=\frac{ 1-0.132083 x^2+0.00311873 x^4}{1+0.0345805 x^2+0.000554186 x^4}$$ for a maximum error lower than $10^{-5}$ everywhere.

$\endgroup$
2
  • $\begingroup$ [+1] Bonjour Claude. Very enlighting answer, with a surprisingly small error for the approximant of 1/sinc(x) (thank you Padé!); of course, the error with the approximant you give for sinc(x) is much smaller, as awaited. $\endgroup$
    – Jean Marie
    Mar 7, 2017 at 9:16
  • $\begingroup$ @JeanMarie. Nice to see you here ! I must confess a very intense passion for Taylor and Padé expansions. What I really enjoy is to see that, built at $x=0$, the approximation is really nice even close to $x=\pi$. Cheers :-) $\endgroup$ Mar 7, 2017 at 9:31
2
$\begingroup$

IMHO, you should not use $f(x):=\dfrac{\pi x}{\sin(\pi x)}$, especially when you are close to the first pole $x=1$ (for example when $x=0.85$, $f(x)=5.88$ : it is deemed to failure: you will not be able to manage a small error in the vicinity of $0$ and in the vicinity of $0.85$.

You should try to work with the much "nicer" function $sinc(x):=\dfrac{\sin(\pi x)}{\pi x}$.

You could use for example the following approximation of cardinal sine under the form:

$$h(x):=\dfrac{\sin(x)}{x}\approx\dfrac{1-0.035 x^2}{1+0.15x^2-0.018x^4}$$

(I obtained it by adapting a so-called "continuous fraction". See also "Padé approximants".)

with an error less than $2.5 \times 10^{-3}$ on the interval $[-0.8,0.8]$ which becomes the narrower interval $[0.8/\pi,0.8/\pi]$ for $sinc(x)=f(x/\pi).$

$\endgroup$
1
$\begingroup$

From $\sin(z) =z-z^3/6+O(z^5)$, $sinc(x) =\sin(\pi x)/(\pi x) = 1-\pi^2x^2/6+O(x^4) $.

Therefore, for small $x$, $sinc^{-1}(y) \approx\frac1{\pi}\sqrt{6(1-y)} \approx\frac1{\pi}\sqrt{6}(1-y/2) $.

If you just want a polynomial approximation, use a fitting routine.


Also, doing a Google search for "inverse sinc function" turned up this:

https://www.dsprelated.com/showthread/comp.dsp/13099-1.php

An extract:

"The sine cardinal function,

       (  1          if x = 0

sinc(x) = ( ( sin(x)/x otherwise,


With $$f(x) =2 x+\frac{3 x^3}{10}+\frac{321 x^5}{2800}+\frac{3197 x^7}{56000}+\frac{445617 x^9}{13798400}+\frac{1766784699 x^{11}}{89689600000}+\frac{317184685563 x^{13}}{25113088000000}+\frac{14328608561991 x^{15}}{1707689984000000}+\frac{6670995251837391 x^{17}}{1165411287040000000}+\frac{910588298588385889 x^{19}}{228420612259840000000}+O\left(x^{21}\right) $$

it can be shown that the desired inverse, abbreviated as $\text{Asinc}$ here, is given by

$$\text{Asinc}(x) = \sqrt{ \frac 32} \, f(\sqrt{1 - x})$$

$\endgroup$
1
  • $\begingroup$ Thanks, this helped. I had to extend to (pi x)^6/5040 to match sufficiently over the range I gave- but followed the approach you suggested; certainly simpler than the google reference. $\endgroup$ Mar 7, 2017 at 1:28
1
$\begingroup$

For $sinc(x) = \large{\sin(\pi x) \over \pi x} = \normalsize 1-y, \quad$ and small y

$sinc_1^{-1}(1-y) ≈ \large{1 \over \pi} \sqrt{6y \over \sqrt{1 - 0.6y}} $

From Acton Forman's book, Numerical Method that work (Chapter 2, railroad track expansion problem), I discovered an indirect way to estimate sinc inverse.

Let $z = {3\over8} ÷ ({1 \over y} - 1) $
Let $p = \large{112 \over 280 - 27y}$

$sinc_2^{-1}(1-y) ≈ {2 \over \pi} \tan^{-1}\left(p \sqrt{z} + (2-p) \sqrt{z+z^2} \right)$

Example, trying both inverse-sinc versions:

$\begin{matrix} x & sinc_1^{-1}(sinc(x)) & sinc_2^{-1}(sinc(x))\cr 0.05 & 0.0499999991 & 0.0500000000 \cr 0.10 & 0.0999999699 & 0.1000000002 \cr 0.15 & 0.1499997612 & 0.1500000027 \cr 0.20 & 0.1999989313 & 0.2000000188 \cr 0.25 & 0.2499964890 & 0.2500000822 \cr \end{matrix}$


Just derived a nice arc-sinc formula, $0 ≤ y ≤ 1$, relative error $≤ 0.0075\%$
see https://www.hpmuseum.org/forum/thread-11011-post-121587.html#pid121587

$sinc_3^{-1}(1-y) ≈ \Large{1 \over \pi} \sqrt{12y \over 1 - 0.20409y + \sqrt{1 - 0.792y - 0.0318y^2}} $

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .