File:Korifit76plot.jpg

From TORI
Jump to: navigation, search
Original file(3,831 × 863 pixels, file size: 318 KB, MIME type: image/jpeg)

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


#include <stdio.h>
#include <stdlib.h>
#define DB double
#define DO(x,y) for(x=0;x<y;x++)
//using namespace std;
#include <complex>
typedef std::complex<double> z_type;
#define Re(x) x.real()
#define Im(x) x.imag()
#define I z_type(0.,1.)
#define M(x,y) fprintf(o,"%6.4lf %6.4lf M\n",0.+x,0.+y);
#define L(x,y) fprintf(o,"%6.4lf %6.4lf L\n",0.+x,0.+y);

#include "korifit76.cin"
#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}

References

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current06:12, 1 December 2018Thumbnail for version as of 06:12, 1 December 20183,831 × 863 (318 KB)Maintenance script (talk | contribs)Importing image file
  • You cannot overwrite this file.

The following page links to this file:

Metadata