Difference between revisions of "File:Hermiten6map.jpg"

From TORI
Jump to navigation Jump to search
(Importing image file)
 
 
Line 1: Line 1:
  +
[[Complex map]] of the normalised [[Hermite polynomial]] number 6:
Importing image file
 
  +
  +
$u\!+\!\mathrm i v= h_6(x\!+\!\mathrm i y)$
  +
  +
in the $x$, $y$ plane;
  +
  +
$\displaystyle
  +
h_n(z)=
  +
\frac{ H_n(z)}
  +
{\sqrt{N_n}}=
  +
\frac{ \mathrm{HermiteH}[n,z]}
  +
{\sqrt{N_n}}$
  +
  +
$\displaystyle
  +
N_n=\int_{-\infty}^{\infty} H_n(x)^2 \exp(-x^2)\, \mathrm dx = 2^n\, n! \, \sqrt{\pi}$
  +
  +
==[[C++]] generator of curves==
  +
Files
  +
[[hermiteneve.txt]],
  +
[[hermitenodd.txt]],
  +
[[ado.cin]],
  +
[[conto.cin]] should be loaded in order to compile the code below
  +
<poem><nomathjax><nowiki>
  +
#include <math.h>
  +
#include <stdio.h>
  +
#include <stdlib.h>
  +
#define DB double
  +
#define DO(x,y) for(x=0;x<y;x++)
  +
#include <complex>
  +
typedef std::complex<double> z_type;
  +
#define Re(x) x.real()
  +
#define Im(x) x.imag()
  +
#define I z_type(0.,1.)
  +
#include "conto.cin"
  +
  +
DB HermiteH0[41][41]= // COEFFICIENTS OF EVEN normalized HERMITEH
  +
#include"hermiteneve.txt"
  +
;
  +
DB HermiteH1[41][41]= // COEFFICIENTS OF ODD normalized HERMITEH
  +
#include"hermitenodd.txt"
  +
;
  +
  +
z_type hermiten(int n, z_type x){ int m,M; z_type s, xx;
  +
if(n==0) return 1.; if(n==1) return x+x;
  +
if(n>81) {printf("hermite number %2d is not yet implemented (max. is 81)\n consider to stop..",n); getchar(); return 0;}
  +
xx=x*x; //printf("Herniten called with n=%3d x=%8.2lf\n",n,x);
  +
if(n/2*2==n){M=n/2; s=0.;for(m=M;m>0;m--) {s+=HermiteH0[M][m]; s*=xx;}
  +
return (HermiteH0[M][0]+s);}
  +
else{ M=(n-1)/2; s=0.; for(m=M;m>0;m--) {s+=HermiteH1[M][m]; s*=xx;}
  +
return (HermiteH1[M][0]+s)*x;}
  +
}
  +
  +
int main(){ int j,k,m,n; DB x,y, p,q, t,r; z_type z,c,d;
  +
int M=301,M1=M+1;
  +
int N=201,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("hermiten6ma.eps","w");ado(o,604,404);
  +
fprintf(o,"302 202 translate\n 100 100 scale 2 setlinecap\n");
  +
DO(m,M1) {X[m]=-3.+.02*(m-.5);}
  +
DO(n,N1) {Y[n]=-2.+.02*(n-.5);}
  +
for(m=-3;m<4;m++){M(m,-2)L(m,2)}
  +
for(n=-2;n<3;n++){M( -3,n)L(3,n)}
  +
fprintf(o,".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=hermiten(6,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;}
  +
}}
  +
fprintf(o,"1 setlinejoin 2 setlinecap\n"); p=300.;q=3.;
  +
for(m=-4;m<4;m++)for(n=2;n<10;n+=2)conto(o,f,w,v,X,Y,M,N,(m+.1*n),-q, q); fprintf(o,".005 W 0 .6 0 RGB S\n");
  +
for(m=0;m<4;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N,-(m+.1*n),-q, q); fprintf(o,".005 W .9 0 0 RGB S\n");
  +
for(m=0;m<4;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N, (m+.1*n),-q, q); fprintf(o,".005 W 0 0 .9 RGB S\n");
  +
for(m=1;m<9;m++) conto(o,f,w,v,X,Y,M,N, (0.-m),-p,p); fprintf(o,".012 W .9 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,".012 W 0 0 .9 RGB S\n");
  +
conto(o,f,w,v,X,Y,M,N, (0. ),-p,p); fprintf(o,".012 W .6 0 .6 RGB S\n");
  +
for(m=-8;m<9;m++) conto(o,g,w,v,X,Y,M,N, (0.+m),-p,p); fprintf(o,".012 W 0 0 0 RGB S\n");
  +
  +
fprintf(o,"showpage\n%c%cTrailer",'%','%'); fclose(o);
  +
system("epstopdf hermiten6ma.eps");
  +
system( "open hermiten6ma.pdf");
  +
}
  +
</nowiki></nomathjax></poem>
  +
  +
==[[Latex]] generator of labels==
  +
  +
<poem><nomathjax><nowiki>
  +
\documentclass[12pt]{article}
  +
\usepackage{geometry}
  +
\paperwidth 630pt
  +
\paperheight 424pt
  +
\topmargin -104pt
  +
\oddsidemargin -68pt
  +
\pagestyle{empty}
  +
\usepackage{graphicx}
  +
\usepackage{rotating}
  +
\parindent 0pt
  +
\textwidth 700px
  +
\textheight 900px
  +
\newcommand \sx {\scalebox}
  +
\newcommand \rot {\begin{rotate}}
  +
\newcommand \ero {\end{rotate}}
  +
\begin{document}
  +
\begin{picture}(614,410)
  +
\put(20,10){\includegraphics{hermiten6ma}}
  +
%\put(20,10){\includegraphics{hermiten6draft}}
  +
\put(4,404){\sx{2}{$y$}}
  +
\put(4,305){\sx{2}{$1$}}
  +
\put(4,205){\sx{2}{$0$}}
  +
\put(-10,105){\sx{2}{$-1$}}
  +
\put(-11,6){\sx{2}{$-2$}}
  +
\put( 0,-8){\sx{2}{$-3$}}
  +
\put(100,-8){\sx{2}{$-2$}}
  +
\put(200,-8){\sx{2}{$-1$}}
  +
\put(318,-8){\sx{2}{$0$}}
  +
\put(418,-8){\sx{2}{$1$}}
  +
\put(518,-8){\sx{2}{$2$}}
  +
\put(612,-8){\sx{2}{$x$}}
  +
  +
\put(231,192){\sx{1.5}{\rot{90}$v\!=\!0$\ero}}
  +
\put(284,190){\sx{1.5}{\rot{90}$u\!=\!0$\ero}}
  +
\put(328,218){\sx{1.5}{\rot{90}$v\!=\!0$\ero}}
  +
\put(310,208){\sx{1.5}{\rot{0}$v\!=\!0$\ero}}
  +
\put(372,190){\sx{1.5}{\rot{90}$u\!=\!0$\ero}}
  +
\put(394,186){\sx{1.5}{\rot{89}$u\!=\!0.4$\ero}}
  +
\put(425,194){\sx{1.5}{\rot{90}$v\!=\!0$\ero}}
  +
\put(463,194){\sx{1.5}{\rot{90}$u\!=\!0$\ero}}
  +
%
  +
\put(394,146){\sx{1.5}{\rot{59}$u\!=\!1$\ero}}
  +
\put(400,134){\sx{1.5}{\rot{40}$u\!=\!2$\ero}}
  +
  +
\put(238,154){\sx{1.5}{\rot{24}$v\!=\!1$\ero}}%
  +
\put(238,136){\sx{1.5}{\rot{19}$v\!=\!2$\ero}}
  +
\put(238,124){\sx{1.5}{\rot{14}$v\!=\!3$\ero}}%
  +
  +
\put(284,138){\sx{1.5}{\rot{37}$u\!=\!-1$\ero}}%%
  +
\put(284,122){\sx{1.5}{\rot{25}$u\!=\!-2$\ero}}
  +
\put(286,112){\sx{1.5}{\rot{20}$u\!=\!-3$\ero}}%%
  +
%
  +
\put(337,138){\sx{1.5}{\rot{39}$v\!=\!-1$\ero}}
  +
\put(346,126){\sx{1.5}{\rot{30}$v\!=\!-2$\ero}}
  +
\put(346,112){\sx{1.5}{\rot{26}$v\!=\!-3$\ero}}
  +
  +
\put(580,316){\sx{1.5}{\rot{34}$v\!=\!-8$\ero}}
  +
\put(595,301){\sx{1.5}{\rot{37}$v\!=\!8$\ero}}
  +
%
  +
\put(580,258){\sx{1.5}{\rot{18}$u\!=\!-8$\ero}}
  +
\put(598,229){\sx{1.5}{\rot{35}$u\!=\!8$\ero}}
  +
  +
\end{picture}
  +
\end{document}
  +
</nowiki></nomathjax></poem>
  +
  +
==References==
  +
<references/>
  +
  +
[[Category:Complex map]]
  +
[[Category:Hermite polynomial]]
  +
[[Category:Hermite Gauss mode]]

Latest revision as of 08:37, 1 December 2018

Complex map of the normalised Hermite polynomial number 6:

$u\!+\!\mathrm i v= h_6(x\!+\!\mathrm i y)$

in the $x$, $y$ plane;

$\displaystyle h_n(z)= \frac{ H_n(z)} {\sqrt{N_n}}= \frac{ \mathrm{HermiteH}[n,z]} {\sqrt{N_n}}$

$\displaystyle N_n=\int_{-\infty}^{\infty} H_n(x)^2 \exp(-x^2)\, \mathrm dx = 2^n\, n! \, \sqrt{\pi}$

C++ generator of curves

Files hermiteneve.txt, hermitenodd.txt, ado.cin, conto.cin should be loaded in order to compile 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++)
#include <complex>
typedef std::complex<double> z_type;
#define Re(x) x.real()
#define Im(x) x.imag()
#define I z_type(0.,1.)
#include "conto.cin"

DB HermiteH0[41][41]= // COEFFICIENTS OF EVEN normalized HERMITEH
#include"hermiteneve.txt"
;
DB HermiteH1[41][41]= // COEFFICIENTS OF ODD normalized HERMITEH
#include"hermitenodd.txt"
;

z_type hermiten(int n, z_type x){ int m,M; z_type s, xx;
if(n==0) return 1.; if(n==1) return x+x;
if(n>81) {printf("hermite number %2d is not yet implemented (max. is 81)\n consider to stop..",n); getchar(); return 0;}
xx=x*x; //printf("Herniten called with n=%3d x=%8.2lf\n",n,x);
if(n/2*2==n){M=n/2; s=0.;for(m=M;m>0;m--) {s+=HermiteH0[M][m]; s*=xx;}
                                      return (HermiteH0[M][0]+s);}
  else{ M=(n-1)/2; s=0.; for(m=M;m>0;m--) {s+=HermiteH1[M][m]; s*=xx;}
                                      return (HermiteH1[M][0]+s)*x;}
}

int main(){ int j,k,m,n; DB x,y, p,q, t,r; z_type z,c,d;
int M=301,M1=M+1;
int N=201,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("hermiten6ma.eps","w");ado(o,604,404);
fprintf(o,"302 202 translate\n 100 100 scale 2 setlinecap\n");
DO(m,M1) {X[m]=-3.+.02*(m-.5);}
DO(n,N1) {Y[n]=-2.+.02*(n-.5);}
for(m=-3;m<4;m++){M(m,-2)L(m,2)}
for(n=-2;n<3;n++){M( -3,n)L(3,n)}
fprintf(o,".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=hermiten(6,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;}
       }}
fprintf(o,"1 setlinejoin 2 setlinecap\n"); p=300.;q=3.;
for(m=-4;m<4;m++)for(n=2;n<10;n+=2)conto(o,f,w,v,X,Y,M,N,(m+.1*n),-q, q); fprintf(o,".005 W 0 .6 0 RGB S\n");
for(m=0;m<4;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N,-(m+.1*n),-q, q); fprintf(o,".005 W .9 0 0 RGB S\n");
for(m=0;m<4;m++) for(n=2;n<10;n+=2)conto(o,g,w,v,X,Y,M,N, (m+.1*n),-q, q); fprintf(o,".005 W 0 0 .9 RGB S\n");
for(m=1;m<9;m++) conto(o,f,w,v,X,Y,M,N, (0.-m),-p,p); fprintf(o,".012 W .9 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,".012 W 0 0 .9 RGB S\n");
                  conto(o,f,w,v,X,Y,M,N, (0. ),-p,p); fprintf(o,".012 W .6 0 .6 RGB S\n");
for(m=-8;m<9;m++) conto(o,g,w,v,X,Y,M,N, (0.+m),-p,p); fprintf(o,".012 W 0 0 0 RGB S\n");

fprintf(o,"showpage\n%c%cTrailer",'%','%'); fclose(o);
      system("epstopdf hermiten6ma.eps");
      system( "open hermiten6ma.pdf");
}

Latex generator of labels


\documentclass[12pt]{article}
\usepackage{geometry}
\paperwidth 630pt
\paperheight 424pt
\topmargin -104pt
\oddsidemargin -68pt
\pagestyle{empty}
\usepackage{graphicx}
\usepackage{rotating}
\parindent 0pt
\textwidth 700px
\textheight 900px
\newcommand \sx {\scalebox}
\newcommand \rot {\begin{rotate}}
\newcommand \ero {\end{rotate}}
\begin{document}
\begin{picture}(614,410)
\put(20,10){\includegraphics{hermiten6ma}}
%\put(20,10){\includegraphics{hermiten6draft}}
\put(4,404){\sx{2}{$y$}}
\put(4,305){\sx{2}{$1$}}
\put(4,205){\sx{2}{$0$}}
\put(-10,105){\sx{2}{$-1$}}
\put(-11,6){\sx{2}{$-2$}}
\put( 0,-8){\sx{2}{$-3$}}
\put(100,-8){\sx{2}{$-2$}}
\put(200,-8){\sx{2}{$-1$}}
\put(318,-8){\sx{2}{$0$}}
\put(418,-8){\sx{2}{$1$}}
\put(518,-8){\sx{2}{$2$}}
\put(612,-8){\sx{2}{$x$}}

\put(231,192){\sx{1.5}{\rot{90}$v\!=\!0$\ero}}
\put(284,190){\sx{1.5}{\rot{90}$u\!=\!0$\ero}}
\put(328,218){\sx{1.5}{\rot{90}$v\!=\!0$\ero}}
\put(310,208){\sx{1.5}{\rot{0}$v\!=\!0$\ero}}
\put(372,190){\sx{1.5}{\rot{90}$u\!=\!0$\ero}}
\put(394,186){\sx{1.5}{\rot{89}$u\!=\!0.4$\ero}}
\put(425,194){\sx{1.5}{\rot{90}$v\!=\!0$\ero}}
\put(463,194){\sx{1.5}{\rot{90}$u\!=\!0$\ero}}
%
\put(394,146){\sx{1.5}{\rot{59}$u\!=\!1$\ero}}
\put(400,134){\sx{1.5}{\rot{40}$u\!=\!2$\ero}}

\put(238,154){\sx{1.5}{\rot{24}$v\!=\!1$\ero}}%
\put(238,136){\sx{1.5}{\rot{19}$v\!=\!2$\ero}}
\put(238,124){\sx{1.5}{\rot{14}$v\!=\!3$\ero}}%

\put(284,138){\sx{1.5}{\rot{37}$u\!=\!-1$\ero}}%%
\put(284,122){\sx{1.5}{\rot{25}$u\!=\!-2$\ero}}
\put(286,112){\sx{1.5}{\rot{20}$u\!=\!-3$\ero}}%%
%
\put(337,138){\sx{1.5}{\rot{39}$v\!=\!-1$\ero}}
\put(346,126){\sx{1.5}{\rot{30}$v\!=\!-2$\ero}}
\put(346,112){\sx{1.5}{\rot{26}$v\!=\!-3$\ero}}

\put(580,316){\sx{1.5}{\rot{34}$v\!=\!-8$\ero}}
\put(595,301){\sx{1.5}{\rot{37}$v\!=\!8$\ero}}
%
\put(580,258){\sx{1.5}{\rot{18}$u\!=\!-8$\ero}}
\put(598,229){\sx{1.5}{\rot{35}$u\!=\!8$\ero}}

\end{picture}
\end{document}

References

File history

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

Date/TimeThumbnailDimensionsUserComment
current06:12, 1 December 2018Thumbnail for version as of 06:12, 1 December 20181,307 × 880 (630 KB)Maintenance script (talk | contribs)Importing image file

The following page uses this file:

Metadata