File:Koriasmap.jpg

Complex map of asymptotic approximation korias with 11 terms of function kori.

$u\!+\!\mathrm i v=\mathrm{korias}(x\!+\!\mathrm i y)$

Description
For $z\ne1$, funciton kori appears as

$\mathrm{kori}(z)=\displaystyle \frac{J_0\big( L \sqrt{z} \big)}{1-z}$

where $L$ is first zero of the Bessel function $J_0$. The corresponding limit for $z=1$ is assumed.

At large values of the argument, $|z|\gg 1$, the asymptotic approximation appears as korias defined with

$ \mathrm{korias}_m(x) = - \sqrt{\frac{2}{\pi L_1}} x^{-5/4} \,  G_m(x)\,  \cos\left( - \frac{\pi}{4} + L_1 \sqrt{x}\, F_m(x) \right) $

where $G_m(x) = \sum_{n=0}^{m} g_n x^{-n}$ $F_m(x) = \sum_{n=0}^{m} f_n x^{-n}$

Coefficients $f$ and $g$ are estimated from the asymptotic expansion of function besselJ0. Approximaitons of these coefficients can be extracted from the code below.

The map corresponds to $\,m\!=\!11\,$.

The approximation fails in vicinity of zero and at $|z|$ of order of unity.

The approximation is good for $|z|\gg 1$. In particular, for $\Re(z)>40$,

$|\mathrm{korias}(z) - \mathrm{kori}(z)| < 10^{-15}$

The approximation is designed for evaluation of integrand for the contour integral for function maga.

C++ generator of map
//using namespace std; typedef std::complex z_type; DB L=2.4048255576957727686;
 * 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.)
 * 1) include "conto.cin"
 * 2) include "besselj0.cin"
 * 3) include "korifit76.cin"

z_type korias(z_type z){ int k,m,n; z_type s,c,t,x; t=-sqrt(2./M_PI/L/sqrt(z))/z; x=1./z;

DB F[16]={1., -0.021614383628830615865, 0.0019465899152260872595, -0.0010834984344719114778, 0.001464410164512283719,-0.00362887639961599366, 0.01431760830195380729,-0.0824438982874790057, 0.652747801052423657,-6.8037683807062433, 90.3226589049537271,-1487.942880868968812, 29785.50901270392374,-712115.985305068771, 2.004198475357888791e7,-6.55899833559605085e8};

DB G[16]={1.,0.989192808185584692068, 0.99228788615079417081,  0.989481317221334367489, 0.994709980602617872387, 0.97818700495778240956,1.0575251177784290263, 0.5188843197279991625, 5.432808917007474985, -52.5640507009104629, 807.429675670594971, -14844.4023379433794, 328204.367306340176, -8.58451015184984386e6,2.622743364093940316e8,-9.2571344891765297e9};

//m=12; k=12; m=11; k=11; s=F[m]*x; for(n=m-1;n>0;n--) {s+=F[n]; s*=x;} c=G[k]*x; for(n=k-1;n>0;n--) {c+=G[n]; c*=x;}

//return t * (1.+G[1]/z) * cos( -M_PI/4. + L*sqrt(z) * (1.+F[1]/z) ); //return t * (1.+ x*(G[1]+x*G[2])) * cos( -M_PI/4. + L*sqrt(z) * (1.+x*(F[1]+x*F[2])) ); return t * (1.+ c) * cos( -M_PI/4. + L*sqrt(z)*(1.+s) );

}

int main{ int j,k,m,n; DB x,y, p,q, t; z_type z,c,d; int M=424,M1=M+1; int N=424,N1=N+1; DB X[M1],Y[N1], g[M1*N1],f[M1*N1], w[M1*N1]; // w is working array. char v[M1*N1]; // v is working array //FILE *o;o=fopen("korifit76ma.eps","w");ado(o,1506,1104); //FILE *o;o=fopen("80.eps","w");ado(o,606,604); FILE *o;o=fopen("korias11ma.eps","w");ado(o,606,604); fprintf(o,"102 102 translate\n 10 10 scale\n"); DO(m,M1)X[m]=-10.+.1*(m-.5)*(1+.001*m); DO(n,N1)Y[n]=-10+.1*(n-.5)*(1+.001*n);

for(m=-10;m<10;m++){if(m!=0){M(m,-10)L(m,10)}} for(n=-10;n<10;n++){    M(  -10,n)L(10,n)}

for(m=-10;m<60;m+=10){if(m!=0){M(m,-10)L(m,50)}} for(n=-10;n<60;n+=10){   M(  -10,n)L(50,n)} fprintf(o,".01 W 0 0 0 RGB S\n"); M(0,-10)L(0,50) fprintf(o,".03 W 0 .5 0 RGB S\n");

DO(m,M1)DO(n,N1){g[m*N1+n]=99999; f[m*N1+n]=99999;} DO(m,M1){x=X[m]; //printf("%5.2f\n",x); DO(n,N1){y=Y[n]; z=z_type(x,y); //c=BesselJ0(L*sqrt(z))/(1.-z); //     c=korifit76(z); c=korias(z); p=Re(c);   q=Im(c); if(p>-9999. && p<9999.  && q>-9999. && q<9999 ){g[m*N1+n]=p; f[m*N1+n]=q;} //p=-log( abs(c-d)/(abs(c)+abs(d)) )/log(10.); //p=-log( abs(c-d) )/log(10.); if(p>-10 && p<20) g[m*N1+n]=p; }} //#include "plodi.cin" /* q=1; conto(o,g,w,v,X,Y,M,N,15,-q, q); fprintf(o,".02 W 1 0 1 RGB S\n"); conto(o,g,w,v,X,Y,M,N,14,-q, q); fprintf(o,".002 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N,13,-q, q); fprintf(o,".002 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N,12,-q, q); fprintf(o,".02 W 0 0 1 RGB S\n"); conto(o,g,w,v,X,Y,M,N,11,-q, q); fprintf(o,".002 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N,10,-q, q); fprintf(o,".002 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, 9,-q, q); fprintf(o,".008 W 0 .8 1 RGB S\n"); conto(o,g,w,v,X,Y,M,N, 8,-q, q); fprintf(o,".002 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, 7,-q, q); fprintf(o,".002 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, 6,-q, q); fprintf(o,".2 W 0 .9 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, 5,-q, q); fprintf(o,".002 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, 4,-q, q); fprintf(o,".002 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, 3,-q, q); fprintf(o,".02 W 1 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, 2,-q, q); fprintf(o,".002 W 0 0 0 RGB S\n"); conto(o,g,w,v,X,Y,M,N, 1,-q, q); fprintf(o,".006 W .5 0 0 RGB S\n");

fprintf(o,"1 setlinejoin 1 setlinecap\n"); q=.05; for(n=1;n<10;n+=1)conto(o,f,w,v,X,Y,M,N,( .01*n),-q, q); fprintf(o,".002 W 0 .7 0 RGB S\n"); for(n=1;n<10;n+=1)conto(o,f,w,v,X,Y,M,N,(-.01*n),-q, q); fprintf(o,".002 W 0 .7 0 RGB S\n"); for(n=1;n<10;n+=1)conto(o,g,w,v,X,Y,M,N,( .01*n),-q, q); fprintf(o,".002 W 0 0 .8 RGB S\n"); for(n=1;n<10;n+=1)conto(o,g,w,v,X,Y,M,N,(-.01*n),-q, q); fprintf(o,".002 W .8 0 0 RGB S\n");

p=20;q=2; for(m=-4;m<4;m++)for(n=1;n<10;n+=1)conto(o,f,w,v,X,Y,M,N,(m+.1*n),-q, q); fprintf(o,".01 W 0 .8 0 RGB S\n"); for(m=0;m<4;m++) for(n=1;n<10;n+=1)conto(o,g,w,v,X,Y,M,N,-(m+.1*n),-q, q); fprintf(o,".01 W 1 0 0 RGB S\n"); for(m=0;m<4;m++) for(n=1;n<10;n+=1)conto(o,g,w,v,X,Y,M,N, (m+.1*n),-q, q); fprintf(o,".01 W 0 0 1 RGB S\n"); for(m=1;m<9;m++) conto(o,f,w,v,X,Y,M,N, (0.-m),-p,p); fprintf(o,".05 W 1 0 0 RGB S\n"); for(m=1;m<9;m++) conto(o,f,w,v,X,Y,M,N, (0.+m),-p,p); fprintf(o,".05 W 0 0 1 RGB S\n"); conto(o,f,w,v,X,Y,M,N, (0. ),-2*p,2*p); fprintf(o,".05 W .9 0 .9 RGB S\n"); for(m=-8;m<0;m++) conto(o,g,w,v,X,Y,M,N, (0.+m),-p,p); fprintf(o,".03 W 0 0 0 RGB S\n"); m=0;         conto(o,g,w,v,X,Y,M,N, (0.+m),-2*p,2*p); fprintf(o,".03 W 0 0 0 RGB S\n"); for(m=1;m<9;m++) conto(o,g,w,v,X,Y,M,N, (0.+m),-p,p); fprintf(o,".03 W 0 0 0 RGB S\n");

//#include "plofu.cin" fprintf(o,"showpage\n%c%cTrailer",'%','%'); fclose(o); system("epstopdf korias11ma.eps"); system(   "open korias11ma.pdf"); getchar; system("killall Preview");//for mac }

Latex generator of labels
\documentclass[12pt]{article} %\paperwidth 1566px %\paperheight 1152px \paperwidth 662px \paperheight 650px \textwidth 1504px \textheight 1420px \topmargin -100px \oddsidemargin -76px \usepackage{graphics} \usepackage{rotating} \usepackage{color} \newcommand \sx {\scalebox} \newcommand \rot {\begin{rotate}} \newcommand \ero {\end{rotate}} \newcommand \ing {\includegraphics} \newcommand \rmi {\mathrm{i}} \begin{document}\parindent 0pt \begin{picture}(1280,640) %\put(40,30){\sx{10}{\ing{besselj0map1}}} %\put(10,10){\ing{02}} %\put(10,10){\ing{03}} % \put(60,40){\ing{korias11ma}} %\put(60,40){\ing{korifit76ma}} % %\put(10,230){\sx{4}{$10$}} \put(30,624){\sx{4}{$y$}} %\put(10,1030){\sx{4}{$90$}} %\put(10,930){\sx{4}{$80$}} %\put(10,830){\sx{4}{$70$}} %\put(10,730){\sx{4}{$60$}} %\put(10,630){\sx{4}{$50$}} \put(10,530){\sx{4}{$40$}} \put(10,430){\sx{4}{$30$}} \put(10,330){\sx{4}{$20$}} \put(10,230){\sx{4}{$10$}} \put(30,180){\sx{4}{$5$}} \put(30,130){\sx{4}{$0$}} \put(-4, 78){\sx{4}{$-5$}} \put(0,0){\sx{4}{$-10$}} \put(160,0){\sx{4}{$0$}} \put(240,0){\sx{4}{$10$}} \put(340,0){\sx{4}{$20$}} \put(440,0){\sx{4}{$30$}} \put(540,0){\sx{4}{$40$}} %\put(640,0){\sx{4}{$50$}} %\put(740,0){\sx{4}{$60$}} %\put(840,0){\sx{4}{$70$}} %\put(940,0){\sx{4}{$80$}} %\put(1040,0){\sx{4}{$90$}} %\put(1134,0){\sx{4}{$100$}} %\put(1234,0){\sx{4}{$110$}} %\put(1334,0){\sx{4}{$120$}} %\put(1434,0){\sx{4}{$130$}} \put(644,0){\sx{4}{$x$}} % %\put(696,622){\sx{4}{\rot{-16}$v\!=\!1$\ero}} %\put(720,530){\sx{4}{\rot{-40}$v\!=\!0.1$\ero}} % %\put(752,820){\sx{4}{\rot{0}$u\!=\!8$\ero}} %\put(780,764){\sx{4}{\rot{0}$u\!=\!4$\ero}} %\put(810,720){\sx{4}{\rot{0}$u\!=\!2$\ero}} %\put(840,660){\sx{4}{\rot{0}$u\!=\!1$\ero}} %\put(874,548){\sx{4}{\rot{0}$u\!=\!0.2$\ero}} %\put(896,494){\sx{4}{\rot{0}$u\!=\!0.1$\ero}} %\put(940,316){\sx{4}{\rot{0}$u\!=\!0.01$\ero}} %\put(810,300){\sx{4}{\rot{0}$v\!=\!0.01$\ero}}

%\put(720,266){\sx{4}{\rot{0}$u\!=\!-0.01$\ero}} % \put(414,90){\sx{4}{\rot{90}$u\!=\!0$\ero}} \put(476,90){\sx{4}{\rot{90}$v\!=\!0$\ero}} \put(560,90){\sx{4}{\rot{90}$u\!=\!0$\ero}} \put(640,90){\sx{4}{\rot{90}$v\!=\!0$\ero}} %\put(740,90){\sx{4}{\rot{90}$u\!=\!0$\ero}} %\put(836,90){\sx{4}{\rot{90}$v\!=\!0$\ero}} %\put(954,90){\sx{4}{\rot{90}$u\!=\!0$\ero}} \end{picture} \end{document}