File:SimudoyaTb.png

Recovery of superfunction of the transfer function $T=\,$Doya$_1$ by the Regular iteration method.

$T$ can be expressed also through the LambertW function:
 * $T(z)=\mathrm{Doya}_1(z)=\mathrm{LambertW}\Big( z~ \mathrm{e}^{z+1} \Big)$

$T$ can be interpreted as a transfer function of the idealized laser amplifier; its superfunction $F$ describes the evolution of the normalized intensity along the direction of amplification.

Brown curve and the red curve represent the primary approximation of $F$ with one term and with two terms of the asymptotic expansion, respectively.

Green, cyan, blue and magenta represent the First, Second, Third and Fourth iteration of the approximation with 2 terms; the curves of corresponding dark colors represent the regular iterations of the primary approximation with single term.

For this example of the transfer function, the analytic representation of the superfunction $F~$ through the Tania function exist:
 * $F(x)=\mathrm{Tania}(x\!-\!1)=\mathrm{LambertW}(\exp(x))$

This superfunction is plotted with black curve.

The primary approximations show good agreement while argument $x\!<\!-2$; for larger values of x, transfer function $T$ should be iterated, roughtly, $n=x\!+\!2$ times, misplacing the argument for $n$; id est,
 * $F(x)\approx T^n( \tilde F (x\!-\!n))$

where $\tilde F$ is one of the primary approximations.

C++ generator of curves
// FIles ado.cin and doya.cin should be loaded to the current directory in order to compile the C++ code below:

using namespace std; typedef complex z_type; DB ArcTania(DB x){ return x+log(x)-1.;} main{ int j,k,m,n; DB x,y,t,e, a; z_type z; FILE *o;o=fopen("simudoya.eps","w");ado(o,808,408); fprintf(o,"404 4 translate\n 100 100 scale\n"); for(m=-4;m<5;m++){ M(m,0)L(m,4)} for(n=0;n<5;n++){ M(-4,n)L(4,n)} fprintf(o,"2 setlinecap\n"); fprintf(o,".006 W 0 0 0 RGB S\n"); fprintf(o,"1 setlinejoin 1 setlinecap\n"); // for(n=0;n<380;n++){y=.02+.01*n; x=ArcTania(y); if(n==0)M(x,y) else L(x,y)} fprintf(o,".03 W 0 1 0 RGB S\n"); for(n=0;n<82;n++){x=-4.05+.1*n;z=x;y=Re(Tania(z)); if(n==0)M(x,y) else L(x,y)} fprintf(o,".01 W 0 0 0 RGB S\n"); // for(n=0;n<45;n++){x=-4+.1*n;e=exp(x+1.); y=e;                      ; if(n==0)M(x,y) else L(x,y)} fprintf(o,".01 W .4 0 0 RGB S\n"); for(n=0;n<70;n++){x=-4+.04*n;e=exp(x+1.); y=e*(1.-e);               ; if(n==0)M(x,y) else L(x,y)} fprintf(o,".01 W 1 0 0 RGB S\n"); // for(n=0;n<53;n++){x=-4+.1*n;e=exp(x+0.); y=e      ; y=Re(Doya(1.,y));if(n==0)M(x,y) else L(x,y)} fprintf(o,".01 W 0 .4 0 RGB S\n"); for(n=0;n<190;n++){x=-4+.02*n;e=exp(x+0.); y=e*(1.-e); y=Re(Doya(1.,y));if(n==0)M(x,y) else L(x,y)} fprintf(o,".01 W 0 1 0 RGB S\n"); // for(n=0;n<61;n++){x=-4+.1*n;e=exp(x-1.); y=e      ;DO(m,2)y=Re(Doya(1.,y));if(n==0)M(x,y) else L(x,y)} fprintf(o,".01 W 0 .4 0.4 RGB S\n"); for(n=0;n<240;n++){x=-4+.02*n;e=exp(x-1.); y=e*(1.-e);DO(m,2)y=Re(Doya(1.,y));if(n==0)M(x,y) else L(x,y)} fprintf(o,".01 W 0 1 1 RGB S\n"); // for(n=0;n<67;n++){x=-4+.1*n;e=exp(x-2.); y=e      ;DO(m,3)y=Re(Doya(1.,y));if(n==0)M(x,y) else L(x,y)} fprintf(o,".01 W 0 0 0.4 RGB S\n"); for(n=0;n<288;n++){x=-4+.02*n;e=exp(x-2.); y=e*(1.-e);DO(m,3)y=Re(Doya(1.,y));if(n==0)M(x,y) else L(x,y)} fprintf(o,".01 W 0 0 1 RGB S\n"); // for(n=0;n<73;n++){x=-4+.1*n;e=exp(x-3.); y=e      ;DO(m,4)y=Re(Doya(1.,y));if(n==0)M(x,y) else L(x,y)} fprintf(o,".01 W .4 0 0.4 RGB S\n"); for(n=0;n<340;n++){x=-4+.02*n;e=exp(x-3.); y=e*(1.-e);DO(m,4)y=Re(Doya(1.,y));if(n==0)M(x,y) else L(x,y)} fprintf(o,".01 W 1 0 1 RGB S\n"); // fprintf(o,"showpage\n%cTrailer",'%'); fclose(o); system("epstopdf simudoya.eps"); system(   "open simudoya.pdf"); //these 2 commands may be specific for macintosh getchar; system("killall Preview");// if run at another operational sysetm, may need to modify }
 * 1) include 
 * 2) include 
 * 3) include 
 * 4) define DB double
 * 5) define DO(x,y) for(x=0;x<y;x++)
 * 1) include
 * 1) define Re(x) x.real
 * 2) define Im(x) x.imag
 * 3) define I z_type(0.,1.)
 * 1) include "ado.cin"
 * 2) include "doya.cin"
 * 3) define M(x,y) fprintf(o,"%6.4f %6.4f M\n",0.+x,0.+y);
 * 4) define L(x,y) fprintf(o,"%6.4f %6.4f L\n",0.+x,0.+y);

Latex generator of labels
FIle simudoya.pdf should be generated with the code above in order to compile the Latex document below.

% \documentclass[12pt]{article} % \usepackage{geometry} % \usepackage{graphicx} % \usepackage{hyperref} % \usepackage{rotating} % \paperwidth 1632pt % \paperheight 840pt % \topmargin -102pt % \oddsidemargin -58pt % \textwidth 1825pt % \textheight 1470pt % \newcommand \sx {\scalebox} % \newcommand \ing {\includegraphics} % \newcommand \tet {\mathrm{tet}} % \newcommand \pen {\mathrm{pen}} % \newcommand \bC {\mathbb C} % \newcommand \fac {\mathrm {Factorial}} % \newcommand \rme {\mathrm e} % \newcommand \rmi {\mathrm i} % \newcommand \ds {\displaystyle} % \newcommand \rot {\begin{rotate}} % \newcommand \ero {\end{rotate}} % \pagestyle{empty} % \begin{document} % \parindent 0pt % \sx{2}{\begin{picture}(600,404) % \put(0,0){\ing{simudoya}} % \put(-7,300){\sx{1.7}{$3$}} % \put(-7,200){\sx{1.7}{$2$}} % \put(-7,100){\sx{1.7}{$1$}} % \put(90,-11){\sx{1.7}{$-2$}} % \put(190,-11){\sx{1.7}{$-1$}} % \put(301,-11){\sx{1.7}{$0$}} % \put(401,-11){\sx{1.7}{$1$}} % \put(501,-11){\sx{1.7}{$2$}} % \put(601,-11){\sx{1.7}{$3$}} % \put(701,-11){\sx{1.7}{$4$}} % \put(798,-11){\sx{1.7}{$x$}} % \put(366,206){\rot{65}\sx{2}{$\exp(x)$}\ero} % \put(436,206){\rot{66}\sx{2}{$T(\exp(x\!-\!1))$}\ero} % \put(530,266){\rot{66}\sx{2}{$T^2(\exp(x\!-\!2))$}\ero} % \put(580,266){\rot{60}\sx{2}{$T^3(\exp(x\!-\!3))$}\ero} % \put(620,266){\rot{55}\sx{2}{$T^4(\exp(x\!-\!4))$}\ero} % \put(733,322){\rot{41}\sx{2.1}{$F(x)$}\ero} % \put(548,170){\sx{1.7}{$T^4(\exp(x\!-\!4)\!-\!\exp(2(x\!-\!4)))$}} % \put(508,116){\sx{1.7}{$T^3(\exp(x\!-\!3)-\exp(2(x\!-\!3)))$}} % \put(418,64){\sx{1.7}{$T^2(\exp(x\!-\!2)-\exp(2(x\!-\!2)))$}} % \put(280,35){\sx{1.7}{$T(\exp(x-1)-\exp(2(x\!-\!1)))$}} % \put(160,11){\sx{1.7}{$\exp(x)-\exp(2x))$}} % \end{picture}} % \end{document} % % %