File:AuZexMapT.jpg
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/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 17:50, 20 June 2013 | 4,367 × 4,326 (1.53 MB) | Maintenance script (talk | contribs) | Importing image file |
You cannot overwrite this file.
File usage
The following page uses this file: