File:ArcSinMapT.png: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Dmitrii Kouznetsov
({{Image_Details|user |description = Complex map of <i>u+iv</i>=ArcSin(<i>x+iy</i>) |author = ~~~ |date-created = 2012 March 22 |pub-country = Japan |notes = |versions = http://tori.ils.uec.ac.jp/TORI/index.php/File:AsimapT.png }})
 
imported>Dmitrii Kouznetsov
(add generators)
Line 10: Line 10:
== Licensing ==
== Licensing ==
{{CC|by|3.0}}
{{CC|by|3.0}}
==C++ Generator of curves==
// Files [[ado.cin]] and [[conto.cin]] should be loaded to the working directory for the compilation of the code 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"
z_type acos(z_type z){
if(Im(z)<0){if(Re(z)>=0){return I*log( z + sqrt(z*z-1.) );}
                    else{return I*log( z - sqrt(z*z-1.) );}}
            if(Re(z)>=0){return -I*log( z + sqrt(z*z-1.) );}
                  else {return -I*log( z - sqrt(z*z-1.) );} }
z_type asin(z_type z){
if(Im(z)<0){if(Re(z)>=0){return M_PI/2.-I*log( z + sqrt(z*z-1.) );}
                    else {return M_PI/2.-I*log( z - sqrt(z*z-1.) );}}
            if(Re(z)>=0){return M_PI/2.+I*log( z + sqrt(z*z-1.) );}
                  else {return M_PI/2.+I*log( z - sqrt(z*z-1.) );} }
main(){ int j,k,m,n; DB x,y, p,q, t; z_type z,c,d;
int M=401,M1=M+1;
int N=401,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("asimap.eps","w");ado(o,82,82);
fprintf(o,"41 41 translate\n 10 10 scale\n");
//DO(m,M1) X[m]=-4.+.02*(m-.5);
DO(n,200)Y[n]=-4.+.02*n;
      Y[200]=-.002;
      Y[201]= .002;
for(n=202;n<N1;n++) Y[n]=-4.+.02*(n-1.);
DO(m,M1)X[m]=Y[m];
for(m=-4;m<5;m++){if(m==0){M(m,-4.1)L(m,4.1)} else{M(m,-4)L(m,4)}}
for(n=-4;n<5;n++){    M(  -4,n)L(4,n)}
fprintf(o,"2 setlinecap .008 W 0 0 0 RGB S\n");
DO(m,M1)DO(n,N1){g[m*N1+n]=9999; f[m*N1+n]=9999;}
DO(m,M1){x=X[m]; //printf("%5.2f\n",x);
DO(n,N1){y=Y[n]; z=z_type(x,y);
      c=asin(z);
      p=Re(c);
      q=Im(c);       
      if(p>-99. && p<99.  &&  q>-99. && q<99 )
{ g[m*N1+n]=p;
  f[m*N1+n]=q;
  }
                      }}
// #include "plofu.cin"
fprintf(o,"1 setlinejoin 1 setlinecap\n"); p=1.8;q=.7;
for(m=-11;m<11;m++)for(n=2;n<10;n+=2)conto(o,f,w,v,X,Y,M,N,(m+.1*n),-q, q); fprintf(o,".01 W 0 .6 0 RGB S\n");
for(m=0;m<10;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N,-(m+.1*n),-q, q); fprintf(o,".01 W .9 0 0 RGB S\n");
for(m=0;m<10;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N, (m+.1*n),-q, q); fprintf(o,".01 W 0 0 .9 RGB S\n");
for(m=1;m<11;m++)  conto(o,f,w,v,X,Y,M,N, (0.-m),-p,p); fprintf(o,".03 W .9 0 0 RGB S\n");
for(m=1;m<11;m++)  conto(o,f,w,v,X,Y,M,N, (0.+m),-p,p); fprintf(o,".03 W 0 0 .9 RGB S\n");
                conto(o,f,w,v,X,Y,M,N, (0.  ),-p,p); fprintf(o,".03 W .6 0 .6 RGB S\n");
for(m=-9;m<10;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(-4.02,0)L(-1,0)
M(1,0)L(4.02,0)
fprintf(o,"0 setlinecap .028 W .9 1 .9 RGB S\n");
DO(m,31){x=-1.-.1*m; M(x,0) L(x-.05,0)}
DO(n,31){x= 1.+.1*n; M(x,0) L(x+.05,0)}
fprintf(o,".032 W 0 0 0 RGB S\n");
fprintf(o,"showpage\n%c%cTrailer",'%','%'); fclose(o);
      system("epstopdf asimap.eps");
      system(    "open asimap.pdf");           
      getchar(); system("killall Preview");//for mac
}
==Latex generator of labels==
%The including file [[asinmap.pdf]] is supposed to be already generated with the code above; then the [[Latex]] document below can be compiled.
\documentclass[12pt]{article} % <br>
\paperheight 838px % <br>
\paperwidth 844px % <br>
\textwidth 1294px % <br>
\textheight 1200px % <br>
\topmargin -80px % <br>
\oddsidemargin -80px % <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>
\begin{document} % <br>
\newcommand \zoomax { % <br>
\put(16,820){\sx{4.4}{$y$}} % <br>
\put(16,630){\sx{4}{$2$}} % <br>
\put(16,430){\sx{4}{$0$}} % <br>
\put(-4, 230){\sx{4}{$-\!2$}} % <br>
\put(220, 5){\sx{4}{$-\!2$}} % <br>
\put(443, 5){\sx{4}{$0$}} % <br>
\put(643, 5){\sx{4}{$2$}} % <br>
\put(831,6){\sx{4}{$x$}} % <br>
} % <br>
\parindent 0pt % <br>
\begin{picture}(816,816) % <br>
\put(40,30){\sx{10}{\ing{asimap}}} % <br>
\zoomax % <br>
\put(100,559){\sx{4}{\rot{-23}$u\!=\!-1.2$\ero}} % <br>
\put(92,488){\sx{4}{\rot{-11}$u\!=\!-1.4$\ero}} % <br>
\put(90,373){\sx{4}{\rot{10}$u\!=\!-1.4$\ero}} % <br>
\put(104,300){\sx{4}{\rot{22}$u\!=\!-1.2$\ero}} % <br>
\put(200,194){\sx{4}{\rot{46}$u\!=\!-0.8$\ero}} % <br>
\put(322,120){\sx{4}{\rot{68}$u\!=\!-0.4$\ero}} % <br>
% <br>
\put(546,620){\sx{4}{\rot{66}$u\!=\!0.4$\ero}} % <br>
\put(628,586){\sx{4}{\rot{48}$u\!=\!0.8$\ero}} % <br>
\put(660,504){\sx{4}{\rot{22}$u\!=\!1.2$\ero}} % <br>
\put(670,462){\sx{4}{\rot{10}$u\!=\!1.4$\ero}} % <br>
% <br>
\put(90,432){\sx{4}{\bf cut}} % <br>
\put(690,432){\sx{4}{\bf cut}} % <br>
\put(396,795){\sx{4.1}{$v\!=\!2$}} % <br>
\put(394,548){\sx{4}{$v\!=\!1$}} % <br>
\put(402,430){\sx{3.8}{$v\!=\!0$}} % <br>
\put(400,313){\sx{4}{$v\!=\!-1$}} % <br>
\put(400, 66){\sx{4}{$v\!=\!-2$}} % <br>
\end{picture} % <br>
\end{document} %
==Keywords==
[[Complex map]],
[[ArcSin]],
[[Inverse function]],
[[Elementary functions]]

Revision as of 02:49, 2 April 2012

Summary

Title / Description


Complex map of u+iv=ArcSin(x+iy)
Citizendium author
& Copyright holder


Copyright © Dmitrii Kouznetsov.
See below for licence/re-use information.
Date created


2012 March 22
Country of first publication


Japan
Notes


You can edit this page and add notes here which may be useful to people who wish to re-use this media.
Other versions


http://tori.ils.uec.ac.jp/TORI/index.php/File:AsimapT.png
Using this image on CZ


Please click here to add the credit line, then copy the code below to add this image to a Citizendium article, changing the size, alignment, and caption as necessary.

{{Image|ArcSinMapT.png|right|350px|Add image caption here.}}

Image issue? Contact us via the email below.

Please send email to manager A T citizendium.org .

Licensing

This media, ArcSinMapT.png, is licenced under the Creative Commons Attribution 3.0 Unported License

You are free: To Share — To copy, distribute and transmit the work; To Remix — To adapt the work.
Under the following conditions: Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
For any reuse or distribution, you must make clear to others the licence terms of this work (the best way to do this is with a link to this licence's web page). Any of the above conditions can be waived if you get permission from the copyright holder. Nothing in this licence impairs or restricts the author's moral rights.
Read the full licence.


C++ Generator of curves

// Files ado.cin and conto.cin should be loaded to the working directory for the compilation of the code 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"
z_type acos(z_type z){
if(Im(z)<0){if(Re(z)>=0){return I*log( z + sqrt(z*z-1.) );} 
                   else{return I*log( z - sqrt(z*z-1.) );}}
           if(Re(z)>=0){return -I*log( z + sqrt(z*z-1.) );} 
                  else {return -I*log( z - sqrt(z*z-1.) );} }
z_type asin(z_type z){
if(Im(z)<0){if(Re(z)>=0){return M_PI/2.-I*log( z + sqrt(z*z-1.) );} 
                   else {return M_PI/2.-I*log( z - sqrt(z*z-1.) );}}
           if(Re(z)>=0){return M_PI/2.+I*log( z + sqrt(z*z-1.) );} 
                  else {return M_PI/2.+I*log( z - sqrt(z*z-1.) );} }
main(){ int j,k,m,n; DB x,y, p,q, t; z_type z,c,d;
int M=401,M1=M+1;
int N=401,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("asimap.eps","w");ado(o,82,82);
fprintf(o,"41 41 translate\n 10 10 scale\n");
//DO(m,M1) X[m]=-4.+.02*(m-.5);
DO(n,200)Y[n]=-4.+.02*n;
     Y[200]=-.002;
     Y[201]= .002;
for(n=202;n<N1;n++) Y[n]=-4.+.02*(n-1.);
DO(m,M1)X[m]=Y[m];
for(m=-4;m<5;m++){if(m==0){M(m,-4.1)L(m,4.1)} else{M(m,-4)L(m,4)}}
for(n=-4;n<5;n++){     M(  -4,n)L(4,n)}
fprintf(o,"2 setlinecap .008 W 0 0 0 RGB S\n");
DO(m,M1)DO(n,N1){g[m*N1+n]=9999; f[m*N1+n]=9999;}
DO(m,M1){x=X[m]; //printf("%5.2f\n",x);
DO(n,N1){y=Y[n]; z=z_type(x,y);
     c=asin(z);
     p=Re(c);
     q=Im(c);        
     if(p>-99. && p<99.  &&  q>-99. && q<99 )
{ g[m*N1+n]=p; 
  f[m*N1+n]=q;
 }
                     }}
// #include "plofu.cin"
fprintf(o,"1 setlinejoin 1 setlinecap\n"); p=1.8;q=.7;
for(m=-11;m<11;m++)for(n=2;n<10;n+=2)conto(o,f,w,v,X,Y,M,N,(m+.1*n),-q, q); fprintf(o,".01 W 0 .6 0 RGB S\n");
for(m=0;m<10;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N,-(m+.1*n),-q, q); fprintf(o,".01 W .9 0 0 RGB S\n");
for(m=0;m<10;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N, (m+.1*n),-q, q); fprintf(o,".01 W 0 0 .9 RGB S\n");
for(m=1;m<11;m++)  conto(o,f,w,v,X,Y,M,N, (0.-m),-p,p); fprintf(o,".03 W .9 0 0 RGB S\n");
for(m=1;m<11;m++)  conto(o,f,w,v,X,Y,M,N, (0.+m),-p,p); fprintf(o,".03 W 0 0 .9 RGB S\n");
               conto(o,f,w,v,X,Y,M,N, (0.  ),-p,p); fprintf(o,".03 W .6 0 .6 RGB S\n");
for(m=-9;m<10;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(-4.02,0)L(-1,0)
M(1,0)L(4.02,0)
fprintf(o,"0 setlinecap .028 W .9 1 .9 RGB S\n");
DO(m,31){x=-1.-.1*m; M(x,0) L(x-.05,0)}
DO(n,31){x= 1.+.1*n; M(x,0) L(x+.05,0)}
fprintf(o,".032 W 0 0 0 RGB S\n");
fprintf(o,"showpage\n%c%cTrailer",'%','%'); fclose(o);
     system("epstopdf asimap.eps");
     system(    "open asimap.pdf");            
     getchar(); system("killall Preview");//for mac
}

Latex generator of labels

%The including file asinmap.pdf is supposed to be already generated with the code above; then the Latex document below can be compiled.

\documentclass[12pt]{article} %
\paperheight 838px %
\paperwidth 844px %
\textwidth 1294px %
\textheight 1200px %
\topmargin -80px %
\oddsidemargin -80px %
\usepackage{graphics} %
\usepackage{rotating} %
\newcommand \sx {\scalebox} %
\newcommand \rot {\begin{rotate}} %
\newcommand \ero {\end{rotate}} %
\newcommand \ing {\includegraphics} %
\newcommand \rmi {\mathrm{i}} %
\begin{document} %
\newcommand \zoomax { %
\put(16,820){\sx{4.4}{$y$}} %
\put(16,630){\sx{4}{$2$}} %
\put(16,430){\sx{4}{$0$}} %
\put(-4, 230){\sx{4}{$-\!2$}} %
\put(220, 5){\sx{4}{$-\!2$}} %
\put(443, 5){\sx{4}{$0$}} %
\put(643, 5){\sx{4}{$2$}} %
\put(831,6){\sx{4}{$x$}} %
} %
\parindent 0pt %
\begin{picture}(816,816) %
\put(40,30){\sx{10}{\ing{asimap}}} %
\zoomax %
\put(100,559){\sx{4}{\rot{-23}$u\!=\!-1.2$\ero}} %
\put(92,488){\sx{4}{\rot{-11}$u\!=\!-1.4$\ero}} %
\put(90,373){\sx{4}{\rot{10}$u\!=\!-1.4$\ero}} %
\put(104,300){\sx{4}{\rot{22}$u\!=\!-1.2$\ero}} %
\put(200,194){\sx{4}{\rot{46}$u\!=\!-0.8$\ero}} %
\put(322,120){\sx{4}{\rot{68}$u\!=\!-0.4$\ero}} %
%
\put(546,620){\sx{4}{\rot{66}$u\!=\!0.4$\ero}} %
\put(628,586){\sx{4}{\rot{48}$u\!=\!0.8$\ero}} %
\put(660,504){\sx{4}{\rot{22}$u\!=\!1.2$\ero}} %
\put(670,462){\sx{4}{\rot{10}$u\!=\!1.4$\ero}} %
%
\put(90,432){\sx{4}{\bf cut}} %
\put(690,432){\sx{4}{\bf cut}} %
\put(396,795){\sx{4.1}{$v\!=\!2$}} %
\put(394,548){\sx{4}{$v\!=\!1$}} %
\put(402,430){\sx{3.8}{$v\!=\!0$}} %
\put(400,313){\sx{4}{$v\!=\!-1$}} %
\put(400, 66){\sx{4}{$v\!=\!-2$}} %
\end{picture} %
\end{document} %

Keywords

Complex map, ArcSin, Inverse function, Elementary functions

File history

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

Date/TimeThumbnailDimensionsUserComment
current19:51, 11 March 2022Thumbnail for version as of 19:51, 11 March 20221,759 × 1,746 (746 KB)Maintenance script (talk | contribs)== Summary == Importing file

The following page uses this file:

Metadata