File:Korifit76plot.jpg

Comparison of function mori implemented through the definition

$y_1=\mathrm{mori}(x)=J_0(L_1\,x)/(1\!-\!x^2)$

to the approximation with

$\mathrm{kori76fit}= \prod_{n=2}^7\! \left(1-\frac{L_1^2}{L_n^2}x\right)~ \frac{1+\sum_{n=1}^6 a_n x^n}{1+\sum_{n=1}^6 b_n x^n} $

where $L_n=\mathrm{BesselJZero}[0,n]$ and coefficients $a$ and $b$ are:

$a_1=-0.04844698269548584 $ $a_2= 0.0010028289633265202 $ $a_3= -0.000011428855401098336$ $a_4= 7.61813379974462\times 10^{-8}$ $a_5= -2.8376606186641804\times 10^{-10}$ $a_6= 4.651275051439759\times 10^{-13}$

$b_1= 0.03223483760044156$ $b_2= 0.0004974915308429358$ $b_3= 4.7768603073237505\times 10^{-6}$ $b_4= 3.071615607112112\times 10^{-8}$ $b_5= 1.292095753771865\times 10^{-10}$ $b_6= 2.925186494186955\times 10^{-13}$

Approximation is the following:

$\displaystyle \mathrm{mori}(z) \approx \mathrm{korifit76}(z^2)$

Let $y_2=\mathrm{kori76fit}(x^2)$

the upper blue curve shows the agreement

$\mathrm{agreeA}(x)= - \log_{10}(|y_1\!-\!y_2|)$

scaled with factor 0.1; id est, $y=\frac{1}{10}\mathrm{agreeA}(x)$

the black intermediate curve shows the agreement

$\displaystyle \mathrm{agreeB}(x)= - \log_{10}\left(\frac{|y_1-y_2|}{|y_1| +| y_2|}\right)$

scaled with factor 0.1; id est, $y=\frac{1}{10}\mathrm{agreeAB}(x)$.

For example, agreement 10 (level $y=1$ in the graphic) indicates, that of order of 10 significant figures can be achieved with such a fit.

The lower red curve shows the approximated function

$y=\mathrm{mori}(x)$

However, the deviation of the fit from the approximated function is not seen in this curve.

C++ generator of curves
//using namespace std; typedef std::complex z_type;
 * 1) include 
 * 2) include 
 * 3) define DB double
 * 4) define DO(x,y) for(x=0;x<y;x++)
 * 1) include
 * 1) define Re(x) x.real
 * 2) define Im(x) x.imag
 * 3) define I z_type(0.,1.)
 * 4) define M(x,y) fprintf(o,"%6.4lf %6.4lf M\n",0.+x,0.+y);
 * 5) define L(x,y) fprintf(o,"%6.4lf %6.4lf L\n",0.+x,0.+y);


 * 1) include "korifit76.cin"
 * 2) include "ado.cin"

DB L1=2.404825557695773; DB L2=5.5200781102863115; DB L3=8.653727912911013; DB L4=11.791534439014281; DB L5=14.930917708487787; DB L6=18.071063967910924; DB L7=21.21163662987926; DB L8=24.352471530749302;

DB LN[9]={ 0.,     2.404825557695773, 5.5200781102863115, 8.653727912911013,11.791534439014281,14.930917708487787, 18.071063967910924,21.21163662987926, 24.352471530749302};

int main{int m,n,i; double x,y,z,t,u; FILE *o;

//o=fopen("23.eps","w"); o=fopen("korifit76plo.eps","w"); ado(o,920,220); fprintf(o,"10 10 translate 100 100 scale 2 setlinecap 1 setlinejoin\n");

for(m=0;m<10;m++) {M(m,0       )L(m,1.5)} for(n=0;n<16;n+=5){M(0,.1*n)L(9,.1*n)} fprintf(o,"0.01 W S\n");

for(m=2;m<8;m++) { M(LN[m]/L1,0) L(LN[m]/L1,1.5)} fprintf(o,"0.005 W S\n");

M(0,1.66); for(n=1;n<4600;n++){x=.002*n; y=j0(L1*x)/(1.-x*x); z=Re(korifit76(x*x)); t=z-y; u=fabs(t)/(fabs(y)+fabs(z));u=-log(u)/log(10); printf("%5.2lf %19.16lf %19.16lf %19.16lf %5.2lf\n",x,y,z,t,u); if(u>0. && u<20.){ L(x,.1*u) } } fprintf(o,"0 0 0 RGB .02 W S\n");

M(0,1.66); for(n=1;n<4600;n++){x=.002*n; y=j0(L1*x)/(1.-x*x); z=Re(korifit76(x*x)); t=z-y; u=fabs(t); u=-log(u)/log(10); if(u>0. && u<30.){ L(x,.1*u) } } fprintf(o,"0 0 1 RGB .02 W S\n");

DO(n,92){x=.1*n; y=j0(L1*x)/(1.-x*x); //z=Re(korifit76(x*x)); if(y>-99 && y<99){ if(n==0) M(x,y) else L(x,y) } } fprintf(o,"1 0 0 RGB .02 W S\n");

fprintf(o,"showpage\n%c%cTrailer\n",'%','%'); fclose(o); system("epstopdf korifit76plo.eps"); system( "open korifit76plo.pdf"); return 0;}

Latex generator of labels
\documentclass[12pt]{article} \usepackage{geometry} \usepackage{graphics} \usepackage{rotating} \paperwidth 923pt \paperheight 208pt \textwidth 420pt \textheight 300pt \topmargin -108pt \oddsidemargin -73pt \newcommand \ds {\displaystyle} \newcommand \sx {\scalebox} \newcommand \rme {\mathrm{e}} \newcommand \rot {\begin{rotate}} \newcommand \ero {\end{rotate}} \newcommand \ing {\includegraphics} \pagestyle{empty} \parindent 0pt \begin{document} \begin{picture}(614,197) \put(0,0){\ing{korifit76plo}} \put(1,190){\sx{1.25}{$y$}} \put(.6,156){\sx{1.4}{$\frac{3}{2}$}} \put(.6,105){\sx{1.3}{$1$}} \put(.6,56){\sx{1.4}{$\frac{1}{2}$}} \put(.6, 5){\sx{1.3}{$0$}} \put(107,-2){\sx{1.3}{$1$}} \put(207,-2){\sx{1.3}{$2$}} \put(233,-3){\sx{1.2}{$\frac{L_2}{L_1}$}} \put(308,-2){\sx{1.3}{$3$}} \put(364,-3){\sx{1.2}{$\frac{L_3}{L_1}$}} \put(408,-2){\sx{1.3}{$4$}} \put(494,-3){\sx{1.2}{$\frac{L_4}{L_1}$}} \put(509,-2){\sx{1.3}{$5$}} \put(609,-2){\sx{1.3}{$6$}} \put(627,-3){\sx{1.2}{$\frac{L_5}{L_1}$}} \put(709,-2){\sx{1.3}{$7$}} \put(759,-3){\sx{1.2}{$\frac{L_6}{L_1}$}} \put(810,-2){\sx{1.3}{$8$}} \put(889.6,-3){\sx{1.2}{$\frac{L_7}{L_1}$}} \put(914,-1.6){\sx{1.3}{$x$}} \put(112,58){\rot{-33}\sx{1.4}{$y\!=\! \mathrm{mori}(x)$}\ero} \put(778,103){\rot{-16}\sx{1.3}{$y\!=\! \frac{1}{10}\mathrm{agreeA}(x)$}\ero} \put(766,60){\rot{-16}\sx{1.3}{$y\!=\! \frac{1}{10}\mathrm{agreeB}(x)$}\ero} \end{picture}\end{document}