File:Hermiten.jpg

From TORI
Revision as of 08:37, 1 December 2018 by Maintenance script (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Original file(1,257 × 1,473 pixels, file size: 227 KB, MIME type: image/jpeg)

Normalized Hermite polynomials,

$y=h_n(x)$

for $n=2,3,4,5,6$.

Normalized Hermite

The original Hermite polynomials gave huge values in the interval from $-3$ to $3$. In other to avoid anisotropic scaling of axes, the normalised hermites are plotted instead of hermites. Normalised hermites $h$ are related with the Hermite polynomials HermiteH as follows:

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

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

Implementation of normalised henmites

// One letter in the name HermiteH is omitted in the routine name to indicate that it is implemented only for very limited number of Hermites, namely, vrom zero to 13, in order to reserve name hermiteh for more general procedure, which is not yet in use and therefore is not yet loaded.


//hermiten.cin (Hermite Normalized)

DB HermiteNo[14]={1, 2, 8, 48, 384, 3840, 46080, 645120, 10321920, 185794560,
3715891200, 81749606400, 1961990553600, 51011754393600};

DB HermitH0[7][7]= // COEFFICIENTS OF EVEN HERMITEH
{{1, 0, 0, 0, 0, 0, 0},
{-2, 4, 0, 0, 0, 0, 0},
{12, -48, 16, 0, 0, 0, 0},
{-120, 720, -480, 64, 0, 0, 0},
{1680, -13440, 13440, -3584, 256, 0, 0},
{-30240, 302400, -403200, 161280, -23040, 1024, 0},
{665280, -7983360, 13305600, -7096320, 1520640, -135168, 4096}};

DB HermitH1[7][7]= // COEFFICIENTS OF ODD HERMITEH
{{2, 0, 0, 0, 0, 0, 0},
{-12, 8, 0, 0, 0, 0, 0},
{120, -160, 32, 0, 0, 0, 0},
{-1680, 3360, -1344, 128, 0, 0, 0},
{30240, -80640, 48384, -9216, 512, 0, 0},
{-665280, 2217600, -1774080, 506880, -56320, 2048, 0},
{17297280, -69189120, 69189120, -26357760,4392960, -319488, 8192}};

DB HermitH(int n,DB x){ int m,M; DB s, xx;
if(n==0) return 1.;
if(n==1) return x+x;
if(n>13) {printf("hermite number %2d is not yet implemented (max. is 13)\n consider to stop..",n); getchar(); return 0;}
xx=x*x; //printf("Hernith 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+=HermitH0[M][m]; s*=xx;}
                                       return (HermitH0[M][0]+s);}
  else{ M=(n-1)/2; s=0.; for(m=M;m>0;m--) {s+=HermitH1[M][m]; s*=xx;}
                                      return (HermitH1[M][0]+s)*x; }
}

C++ generator of curves


#include<math.h>
#include<stdio.h>
#include<stdlib.h>
//#include<limits.h>
#define DB double
#define DO(x,y) for(x=0;x<y;x++)

//#include"her13.cin"
//#include"hermiten.cin"

DB HermiteNo[14]={1, 2, 8, 48, 384, 3840, 46080, 645120, 10321920, 185794560,
3715891200, 81749606400, 1961990553600, 51011754393600};

DB HermitH0[7][7]= // COEFFICIENTS OF EVEN HERMITEH
{{1, 0, 0, 0, 0, 0, 0},
{-2, 4, 0, 0, 0, 0, 0},
{12, -48, 16, 0, 0, 0, 0},
{-120, 720, -480, 64, 0, 0, 0},
{1680, -13440, 13440, -3584, 256, 0, 0},
{-30240, 302400, -403200, 161280, -23040, 1024, 0},
{665280, -7983360, 13305600, -7096320, 1520640, -135168, 4096}};

DB HermitH1[7][7]= // COEFFICIENTS OF ODD HERMITEH
{{2, 0, 0, 0, 0, 0, 0},
{-12, 8, 0, 0, 0, 0, 0},
{120, -160, 32, 0, 0, 0, 0},
{-1680, 3360, -1344, 128, 0, 0, 0},
{30240, -80640, 48384, -9216, 512, 0, 0},
{-665280, 2217600, -1774080, 506880, -56320, 2048, 0},
{17297280, -69189120, 69189120, -26357760,4392960, -319488, 8192}};

DB HermitH(int n,DB x){ int m,M; DB s, xx;
if(n==0) return 1.;
if(n==1) return x+x;
if(n>13) {printf("hermite number %2d is not yet implemented (max. is 13)\n consider to stop..",n); getchar(); return 0;}
xx=x*x; //printf("Hernith 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+=HermitH0[M][m]; s*=xx;}
                                       return (HermitH0[M][0]+s);}
  else{ M=(n-1)/2; s=0.; for(m=M;m>0;m--) {s+=HermitH1[M][m]; s*=xx;}
                                      return (HermitH1[M][0]+s)*x; }
}

DB hermiten(int n,DB x){ if(n>13) {printf("hermite number %2d is not yet implemented (max. is 13)\n consider to stop..",n); getchar(); return 0;}
return HermitH(n,x)/sqrt(sqrt(M_PI)*HermiteNo[n]);
}

#include"ado.cin"

int main(){ // printf("%16d %16d\n",INT_MIN,INT_MAX);
int M,m,n; DB x,xx,y,z,s;
FILE *o; o=fopen("46.eps", "w");
ado(o,604,804);
fprintf(o,"302 402 translate 100 100 scale 2 setlinecap 1 setlinejoin\n");
#define M(x,y) fprintf(o,"%6.4lf %6.4lf M\n",x+0., y+0.);
#define L(x,y) fprintf(o,"%6.4lf %6.4lf L\n",x+0., y+0.);

for(m=-3; m<4; m++) {M(m,-3)L(m,3)}
for(n=-3; n<4; n++) {M(-3,n)L(3,n)}
fprintf(o,".01 W 0 0 0 RGB S\n");

DO(n,101){x=.041*(n-50); y= hermiten(2,x); if(n==0)M(x,y) else L(x,y) } fprintf(o,"0 0 0 RGB .016 W S\n ");
DO(n,101){x=.039*(n-50); y= hermiten(3,x); if(n==0)M(x,y) else L(x,y) } fprintf(o,"1 0 0 RGB .016 W S\n ");
DO(n,101){x=.041*(n-50); y= hermiten(4,x); if(n==0)M(x,y) else L(x,y) } fprintf(o,"0 .7 0 RGB .016 W S\n ");
DO(n,101){x=.045*(n-50); y= hermiten(5,x); if(n==0)M(x,y) else L(x,y) } fprintf(o,"0 0 1 RGB .016 W S\n ");
DO(n,201){x=.0248*(n-100); y= hermiten(6,x); if(n==0)M(x,y) else L(x,y) } fprintf(o,".8 0 .9 RGB .016 W S\n ");

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

}

Latex generator of labels


\documentclass[12pt]{article}
\usepackage{geometry}
\paperwidth 606pt
\paperheight 710pt
\topmargin -104pt
\oddsidemargin -72pt
\pagestyle{empty}
\usepackage{graphicx}
\parindent 0pt
\textwidth 700px
\textheight 900px
\newcommand \sx {\scalebox}
\begin{document}
\begin{picture}(600,750)
\put(0,0){\includegraphics{46}}
\put(286,744){\sx{2}{$y$}}
\put(286,696){\sx{2}{$3$}}
\put(286,596){\sx{2}{$2$}}
\put(286,495){\sx{2}{$1$}}
\put(270,294){\sx{2}{$-1$}}
\put(270,194){\sx{2}{$-2$}}
\put(86,80){\sx{2}{$-2$}}
\put(186,80){\sx{2}{$-1$}}
\put(298,80){\sx{2}{$0$}}
\put(398,80){\sx{2}{$1$}}
\put(498,80){\sx{2}{$2$}}
\put(591,80){\sx{2}{$x$}}
\end{picture}
\end{document}

References

http://mathworld.wolfram.com/HermitePolynomial.html Weisstein, Eric W. "Hermite Polynomial." From MathWorld--A Wolfram Web Resource.

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,257 × 1,473 (227 KB)Maintenance script (talk | contribs)Importing image file

The following page uses this file:

Metadata