File:AuZexMapT.jpg

From TORI
Jump to navigation Jump to search

Original file(4,367 × 4,326 pixels, file size: 1.53 MB, MIME type: image/jpeg)

Complex map of function AuZex, inverse function of SuZex and Abel function of function zex.

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

See the AuZex approximation for the details.

C++ generator of curves

// Files Tania.cin, SuZex.cin, LambertWoCoe.inc, LambertWeCoe.cin // should be loaded in the working directory in order to compile the core below.

#include <math.h>
#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 complex<double> z_type;
#define Re(x) x.real()
#define Im(x) x.imag()
#define I z_type(0.,1.)
#include "conto.cin"
#include "tania.cin"
#include "SuZex.cin"
// z_type zex(z_type z) { return z*exp(z) ; }
z_type LambertWo(z_type z){ int n,m=48; z_type d=-z;
#include "LambertWoCoe.inc"
z_type s=LambertWoCoe[m]*d; for(n=m-1;n>0;n--){ s+=LambertWoCoe[n]; s*=d;}
return z*(1.+s); }
z_type LambertWe(z_type z){ int n,m=100; z_type t=1./M_E+z; t*=2*M_E; t=sqrt(t); 
#include "LambertWeCoe.cin"
z_type s=LambertWeCoe[m]*t; for(n=m-1; n>0; n--) { s+=LambertWeCoe[n]; s*=t;} return -1.+s;}
z_type LambertW(z_type z){ 
if( abs(z)<.2 ) return LambertWo(z);
if( abs(1./M_E+z)<.2 ) return LambertWe(z);
return Tania(log(z)-1.);} // Except the negative part of the real axis, Tania does the LambertW well.
DB AuZexAsyCo[66]={
//     1.1259817765745026,
       1.1259817765744977,
-0.16666666666666667,0.0625,-0.035185185185185185,   0.020833333333333333,-0.0097619047619047619,
  0.00035686728395061728,0.0057788485764676241,    -0.0054935515873015873,-0.0025850528358244408,
  0.012198640046296296,-0.0064941110501851844,    -0.026451479667987191,0.047851552440450232,
  0.053758729874794383,-0.27073626193208126,    -0.0065521186641040204,1.6278812626136699,
  -1.6076876900940989,-10.838187174665133,    24.785092910583443,78.1860907900493,
  -340.82033939567854,-562.09669036948494,    4908.2972195975399,2830.3348202280227,
  -77032.682625139301,31753.861334668919,    1.3308075281671887e6,-1.9538825394585991e6,
  -2.5276072666444939e7,6.8487621133842322e7,    5.2387590408716527e8,-2.2452803031477711e9,
  -1.1695088667110365e10,7.5450114071773863e10,    2.7518770516521089e11,-2.679843770347832e12,
  -6.5513897892809159e12,1.0183199942874624e14,    1.4245100909222102e14,-4.1590749536758109e15,
  -1.7035860994968719e15,1.8277639374581802e17,    -1.0679787375232343e17,-8.6360007004109277e18,
  1.4065535508735497e19,4.3787928905903592e20,    -1.2109904910255305e21,-2.3763215966256672e22,
  9.6017875634223775e22,1.3758361324208134e24,    -7.5814699303356225e24,-8.4659910118430712e25,
  6.1398187270988087e26,5.5112074423601013e27,    -5.1693736994996277e28,-3.773953811181416e29,
  4.5556026027743353e30,2.6980978199281418e31,    -4.2167875664888744e32,-1.9922345654966198e33,
  4.1064414540582216e34,1.4932212480440397e35,    -4.2098201366546206e36 };
 z_type AuZexAsy(z_type z){ int m=15,n; z_type s;
 s=AuZexAsyCo[m]*z;   for(n=m-1;n>0;n--){s+=AuZexAsyCo[n]; s*=z;}
 return s + AuZexAsyCo[0] + .5*log(z)-1./z;}
 double AuZexCo[46]={0,
  1.4011764331478447,-1.2313176379841106,   1.1612567820116564,-1.123126930577658,
  1.0992876544297898,-1.0830479804216504,   1.0713113178859344,-1.0624516150969114,
  1.0555359459048546,-1.049992436340172,    1.0454519353364795,-1.0416660012642422,
  1.0384615628127265,-1.035714498198056,    1.0333335508961627,-1.0312501692201073,
  1.0294118808316126,-1.0277778512023086,   1.0263158327950879,-1.0250000237496548,
  1.0238095356162695,-1.0227272776768976,   1.0217391317101858,-1.0208333328204302,
  1.019999998732505,-1.019230767751615,     1.0185185170386828,-1.01785714143099,
  1.0172413778515972,-1.0166666648687321,   1.016131566418359,-1.015697093269014,
  1.0152, -1.148, 1.141, -1.14, 1.13, -1.12, 1.11,-1.10, 1.08, -1.06, 1.04, -1.02, 1.00 };
z_type AuZex01(z_type z){ int n, m=39; z_type s=AuZexCo[m];
for(n=m-1;n>0;n--) {s+= AuZexCo[n]; s*=z; }  return s;  }

z_type auzex(z_type z){ int n; 
 for(n=0;n<80;n++){ 
if(abs(z-1.)<.4) return AuZex01(z-1.)+(0.+n); 
if(abs(z)<.1) return AuZexAsy(z)+(0.+n);; 
z=LambertW(z); }
printf("z= %10.5f %10.5f n=%2d what to do?\n",Re(z), Im(z), n); getchar(); 
return 0.;}
main(){ int j,k,m,n; DB x,y, p,q, t; z_type z,c,d, cu,cd;
//DB x1=-1.1259817765745026; DO(n,8){ y=Re(suzex(x1)); x=y-1.; x1+=-1.2*x; printf("%18.16f %18.16f\n", x1,y);} getchar();
int M=1001,M1=M+1;
int N=1001,N1=N+1;
DB X[M1],Y[N1];
DB *g, *f, *w; // w is working array.
g=(DB *)malloc((size_t)((M1*N1)*sizeof(DB)));
f=(DB *)malloc((size_t)((M1*N1)*sizeof(DB)));
w=(DB *)malloc((size_t)((M1*N1)*sizeof(DB)));
char v[M1*N1]; // v is working array
FILE *o;o=fopen("AuZexMap2.eps","w");  ado(o,2002,2002);
fprintf(o,"1001 1001 translate\n 100 100 scale\n");
fprintf(o,"1 setlinejoin 2 setlinecap\n");
DO(m,M1) X[m]=-10+.02*(m-.5);
DO(n,N1) Y[n]=-10+.02*(n-.5); 
//for(n=0;n<N1;n++) { Y[n]=1.09*sinh((3./200.)*(n-200)); printf("%3d %9.6f\n",n,Y[n]); }
for(m=-10;m<11;m++){M(m,-10) L(m,10)  }
for(n=-10;n<11;n++){M(  -10,n) L(10,n)}
 fprintf(o,".006 W 0 0 0 RGB S\n");
DO(m,M1)DO(n,N1){      g[m*N1+n]=999;
                       f[m*N1+n]=999;}
DO(m,M1){x=X[m]; if(m/10*10==m) printf("x=%6.3f\n",x);
DO(n,N1){y=Y[n]; z=z_type(x,y); //if(abs(z+2.)>.019)
// c=AuZex01(z-1.);
// c=AuZexAsy(LambertW(z))+1.;
c=auzex(z);
//c=suzex(c);
// p=abs(c-z)/(abs(c)+abs(z)); p=-log(p)/log(10.); if(p>0 && p<17) g[m*N1+n]=p;
 p=Re(c); q=Im(c); if(p>-19 && p<19 && ( x<2. ||  fabs(q)>1.e-12 && fabs(p)>1.e-12) ){ g[m*N1+n]=p;f[m*N1+n]=q;}
       }}
fprintf(o,"1 setlinejoin 1 setlinecap\n");
 p=1.2;q=.4;
/*  p=9;q=.16;
 conto(o,g,w,v,X,Y,M,N,(15.3 ),-p,p); fprintf(o,".01 W .4 1 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N,(15.  ),-p,p); fprintf(o,".02 W 1 0 1 RGB S\n");
 conto(o,g,w,v,X,Y,M,N,(14.7 ),-p,p); fprintf(o,".01 W 1 .5 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N,(14.  ),-p,p); fprintf(o,".01 W .2 .2 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N,(13.  ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N,(12.  ),-p,p); fprintf(o,".03 W 0 0 1 RGB S\n");
 conto(o,g,w,v,X,Y,M,N,(11.  ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N,(10.  ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N, (9.  ),-p,p); fprintf(o,".03 W 0 1 1 RGB S\n");
 conto(o,g,w,v,X,Y,M,N, (8.  ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N, (7.  ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N, (6.  ),-p,p); fprintf(o,".04 W 0 .5 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N, (5.  ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N, (4.  ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N, (3.  ),-p,p); fprintf(o,".02 W 1 0 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N, (2.  ),-p,p); fprintf(o,".01 W 0 0 0 RGB S\n");
 conto(o,g,w,v,X,Y,M,N, (1.  ),-p,p); fprintf(o,".02 W .5 0 0 RGB S\n");
*/
for(m=-8;m<8;m++)for(n=2;n<10;n+=2)conto(o,f,w,v,X,Y,M,N,(m+.1*n),-q,q);fprintf(o,".007 W 0 .6 0 RGB S\n");
for(m=0;m<8;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N,-(m+.1*n),-q,q);fprintf(o,".007 W .9 0 0 RGB S\n");
for(m=0;m<8;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N, (m+.1*n),-q,q);fprintf(o,".007 W 0 0 .9 RGB S\n");
for(m= 1;m<17;m++) conto(o,f,w,v,X,Y,M,N, (0.-m),-p,p);fprintf(o,".02 W .8 0 0 RGB S\n");
for(m= 1;m<17;m++) conto(o,f,w,v,X,Y,M,N, (0.+m),-p,p);fprintf(o,".02 W 0 0 .8 RGB S\n");
               conto(o,f,w,v,X,Y,M,N, (0.  ),-2*p,2*p); fprintf(o,".02 W .5 0 .5 RGB S\n");
for(m=-16;m<17;m++)conto(o,g,w,v,X,Y,M,N,(0.+m),-p,p);fprintf(o,".02 W 0 0 0 RGB S\n");
fprintf(o,"0 setlinejoin 0 setlinecap\n");
M(-10,0)L(0,0) fprintf(o,"1 1 1 RGB .02 W S\n");
//#include "plofu.cin"
fprintf(o,"showpage\n");
fprintf(o,"%c%cTrailer\n",'%','%');
fclose(o);  free(f); free(g); free(w);
      system("epstopdf AuZexMap2.eps"); 
      system(    "open AuZexMap2.pdf"); //for macintosh
      getchar(); system("killall Preview"); // For macintosh
}

Latex generator of labels

%

 %<br>
\documentclass[12pt]{article} % <br>
\paperwidth 2096px % <br>
\paperheight 2076px % <br>
\textwidth 2394px % <br>
\textheight 2300px % <br>
\topmargin -101px % <br>
\oddsidemargin -78px % <br>
\usepackage{graphics} % <br>
\usepackage{rotating} % <br>
\newcommand \sx {\scalebox} % <br>
\newcommand \rot {\begin{rotate}} % <br>
\newcommand \ero {\end{rotate}} % <br>
\newcommand \ing {\includegraphics} % <br>
\newcommand \rmi {\mathrm{i}} % <br>
\parindent 0pt
\pagestyle{empty}
\begin{document} % <br>
\newcommand \zoomax { % <br>
\put(40,2048){\sx{8}{$y$}} % <br>
\put(40,1880){\sx{7}{$8$}} % <br>
\put(40,1680){\sx{7}{$6$}} % <br>
\put(40,1480){\sx{7}{$4$}} % <br>
\put(40,1280){\sx{7}{$2$}} % <br>
\put(40,1080){\sx{7}{$0$}} % <br>
\put(-12,880){\sx{7}{$-2$}} % <br>
\put(-12,680){\sx{7}{$-4$}} % <br>
\put(-12,480){\sx{7}{$-6$}} % <br>
\put(-12,280){\sx{7}{$-8$}} % <br>
\put(002, 28){\sx{7}{$-\!10$}} % <br>
\put(220, 28){\sx{7}{$-8$}} % <br>
\put(420, 28){\sx{7}{$-6$}} % <br>
\put(620, 28){\sx{7}{$-4$}} % <br>
\put(820, 28){\sx{7}{$-2$}} % <br>
\put(1088, 28){\sx{7}{$0$}} % <br>
\put(1288, 28){\sx{7}{$2$}} % <br>
\put(1488, 28){\sx{7}{$4$}} % <br>
\put(1688, 28){\sx{7}{$6$}} % <br>
\put(1888, 28){\sx{7}{$8$}} % <br>
\put(2058, 28){\sx{7}{$x$}} % <br>
%\put(2166, 28){\sx{7}{$x$}} % <br>
} % <br>
\parindent 0pt % <br>
\sx{1}{\begin{picture}(2102,2102) % <br>
%\put(40,20){\ing{b271tMap3}} % <br>
%\put(40,20){\ing{ExpMap}} % <br>
\put(100,100){\ing{AuZexMap2}} % <br>
\zoomax % <br>
\put(258,1088){\sx{8}{\bf cut}} % <br>
%
\put(500,1840){\sx{8}{\rot{0}$v\!=\!0.6$\ero}} % <br>
\put(500,0310){\sx{8}{\rot{0}$v\!=\!-0.6$\ero}} % <br>
\put(444,0510){\sx{8}{\rot{62}$u\!=\!2$\ero}} % <br>
%
\put(1610,1312){\sx{8}{\rot{42}$v\!=\!0.2$\ero}} % <br>
\put(1770,1082){\sx{8}{$v\!=\!0$}} % <br>
\put(1650,0912){\sx{8}{\rot{80}$u\!=\!1.4$\ero}} % <br>
\put(1950,0802){\sx{8}{\rot{70}$u\!=\!1.6$\ero}} % <br>
\put(1650,0808){\sx{8}{\rot{-48}$v\!=\!-0.2$\ero}} % <br>
%

\end{picture}} % <br>
\end{document} % <br>

File history

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

Date/TimeThumbnailDimensionsUserComment
current17:50, 20 June 2013Thumbnail for version as of 17:50, 20 June 20134,367 × 4,326 (1.53 MB)Maintenance script (talk | contribs)Importing image file

The following page uses this file:

Metadata