File:Koriasmap.jpg
Original file (1,379 × 1,354 pixels, file size: 941 KB, MIME type: image/jpeg)
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
#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.)
DB L=2.4048255576957727686;
#include "conto.cin"
#include "besselj0.cin"
#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}
References
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 06:12, 1 December 2018 | 1,379 × 1,354 (941 KB) | Maintenance script (talk | contribs) | Importing image file |
You cannot overwrite this file.