Difference between revisions of "File:SimudoyaTb.png"
(Importing image file) |
|||
Line 1: | Line 1: | ||
+ | Recovery of [[superfunction]] of the [[transfer function]] $T=\,$[[Doya function|Doya]]$_1$ by the [[Regular iteration]] method. |
||
− | Importing image file |
||
+ | |||
+ | $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: |
||
+ | |||
+ | #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.) |
||
+ | DB ArcTania(DB x){ return x+log(x)-1.;} |
||
+ | #include "ado.cin" |
||
+ | #include "doya.cin" |
||
+ | #define M(x,y) fprintf(o,"%6.4f %6.4f M\n",0.+x,0.+y); |
||
+ | #define L(x,y) fprintf(o,"%6.4f %6.4f L\n",0.+x,0.+y); |
||
+ | 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 |
||
+ | } |
||
+ | |||
+ | ==Latex generator of labels== |
||
+ | FIle [[simudoya.pdf]] should be generated with the code above in order to compile the [[Latex]] document below. |
||
+ | |||
+ | % <nowiki> <br> |
||
+ | \documentclass[12pt]{article} %<br> |
||
+ | \usepackage{geometry} %<br> |
||
+ | \usepackage{graphicx} %<br> |
||
+ | \usepackage{hyperref} %<br> |
||
+ | \usepackage{rotating} %<br> |
||
+ | \paperwidth 1632pt %<br> |
||
+ | \paperheight 840pt %<br> |
||
+ | \topmargin -102pt %<br> |
||
+ | \oddsidemargin -58pt %<br> |
||
+ | \textwidth 1825pt %<br> |
||
+ | \textheight 1470pt %<br> |
||
+ | \newcommand \sx {\scalebox} %<br> |
||
+ | \newcommand \ing {\includegraphics} %<br> |
||
+ | \newcommand \tet {\mathrm{tet}} %<br> |
||
+ | \newcommand \pen {\mathrm{pen}} %<br> |
||
+ | \newcommand \bC {\mathbb C} %<br> |
||
+ | \newcommand \fac {\mathrm {Factorial}} %<br> |
||
+ | \newcommand \rme {\mathrm e} %<br> |
||
+ | \newcommand \rmi {\mathrm i} %<br> |
||
+ | \newcommand \ds {\displaystyle} %<br> |
||
+ | \newcommand \rot {\begin{rotate}} %<br> |
||
+ | \newcommand \ero {\end{rotate}} %<br> |
||
+ | \pagestyle{empty} %<br> |
||
+ | \begin{document} %<br> |
||
+ | \parindent 0pt %<br> |
||
+ | \sx{2}{\begin{picture}(600,404) %<br> |
||
+ | \put(0,0){\ing{simudoya}} %<br> |
||
+ | \put(-7,300){\sx{1.7}{$3$}} %<br> |
||
+ | \put(-7,200){\sx{1.7}{$2$}} %<br> |
||
+ | \put(-7,100){\sx{1.7}{$1$}} %<br> |
||
+ | \put(90,-11){\sx{1.7}{$-2$}} %<br> |
||
+ | \put(190,-11){\sx{1.7}{$-1$}} %<br> |
||
+ | \put(301,-11){\sx{1.7}{$0$}} %<br> |
||
+ | \put(401,-11){\sx{1.7}{$1$}} %<br> |
||
+ | \put(501,-11){\sx{1.7}{$2$}} %<br> |
||
+ | \put(601,-11){\sx{1.7}{$3$}} %<br> |
||
+ | \put(701,-11){\sx{1.7}{$4$}} %<br> |
||
+ | \put(798,-11){\sx{1.7}{$x$}} %<br> |
||
+ | \put(366,206){\rot{65}\sx{2}{$\exp(x)$}\ero} %<br> |
||
+ | \put(436,206){\rot{66}\sx{2}{$T(\exp(x\!-\!1))$}\ero} %<br> |
||
+ | \put(530,266){\rot{66}\sx{2}{$T^2(\exp(x\!-\!2))$}\ero} %<br> |
||
+ | \put(580,266){\rot{60}\sx{2}{$T^3(\exp(x\!-\!3))$}\ero} %<br> |
||
+ | \put(620,266){\rot{55}\sx{2}{$T^4(\exp(x\!-\!4))$}\ero} %<br> |
||
+ | \put(733,322){\rot{41}\sx{2.1}{$F(x)$}\ero} %<br> |
||
+ | \put(548,170){\sx{1.7}{$T^4(\exp(x\!-\!4)\!-\!\exp(2(x\!-\!4)))$}} %<br> |
||
+ | \put(508,116){\sx{1.7}{$T^3(\exp(x\!-\!3)-\exp(2(x\!-\!3)))$}} %<br> |
||
+ | \put(418,64){\sx{1.7}{$T^2(\exp(x\!-\!2)-\exp(2(x\!-\!2)))$}} %<br> |
||
+ | \put(280,35){\sx{1.7}{$T(\exp(x-1)-\exp(2(x\!-\!1)))$}} %<br> |
||
+ | \put(160,11){\sx{1.7}{$\exp(x)-\exp(2x))$}} %<br> |
||
+ | \end{picture}} %<br> |
||
+ | \end{document} %<br> |
||
+ | % </nowiki> %<br> |
||
+ | |||
+ | [[Category:Regular iteration]] |
||
+ | [[Category:Explicit plot]] |
||
+ | [[Category:Transfer function]] |
||
+ | [[Category:Superfunction]] |
||
+ | [[Category:Doya function]] |
||
+ | [[Category:Tania function]] |
Revision as of 09:43, 21 June 2013
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:
#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.) DB ArcTania(DB x){ return x+log(x)-1.;} #include "ado.cin" #include "doya.cin" #define M(x,y) fprintf(o,"%6.4f %6.4f M\n",0.+x,0.+y); #define L(x,y) fprintf(o,"%6.4f %6.4f L\n",0.+x,0.+y); 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 }
Latex generator of labels
FIle simudoya.pdf should be generated with the code above in order to compile the Latex document below.
% <br>
\documentclass[12pt]{article} %<br>
\usepackage{geometry} %<br>
\usepackage{graphicx} %<br>
\usepackage{hyperref} %<br>
\usepackage{rotating} %<br>
\paperwidth 1632pt %<br>
\paperheight 840pt %<br>
\topmargin -102pt %<br>
\oddsidemargin -58pt %<br>
\textwidth 1825pt %<br>
\textheight 1470pt %<br>
\newcommand \sx {\scalebox} %<br>
\newcommand \ing {\includegraphics} %<br>
\newcommand \tet {\mathrm{tet}} %<br>
\newcommand \pen {\mathrm{pen}} %<br>
\newcommand \bC {\mathbb C} %<br>
\newcommand \fac {\mathrm {Factorial}} %<br>
\newcommand \rme {\mathrm e} %<br>
\newcommand \rmi {\mathrm i} %<br>
\newcommand \ds {\displaystyle} %<br>
\newcommand \rot {\begin{rotate}} %<br>
\newcommand \ero {\end{rotate}} %<br>
\pagestyle{empty} %<br>
\begin{document} %<br>
\parindent 0pt %<br>
\sx{2}{\begin{picture}(600,404) %<br>
\put(0,0){\ing{simudoya}} %<br>
\put(-7,300){\sx{1.7}{$3$}} %<br>
\put(-7,200){\sx{1.7}{$2$}} %<br>
\put(-7,100){\sx{1.7}{$1$}} %<br>
\put(90,-11){\sx{1.7}{$-2$}} %<br>
\put(190,-11){\sx{1.7}{$-1$}} %<br>
\put(301,-11){\sx{1.7}{$0$}} %<br>
\put(401,-11){\sx{1.7}{$1$}} %<br>
\put(501,-11){\sx{1.7}{$2$}} %<br>
\put(601,-11){\sx{1.7}{$3$}} %<br>
\put(701,-11){\sx{1.7}{$4$}} %<br>
\put(798,-11){\sx{1.7}{$x$}} %<br>
\put(366,206){\rot{65}\sx{2}{$\exp(x)$}\ero} %<br>
\put(436,206){\rot{66}\sx{2}{$T(\exp(x\!-\!1))$}\ero} %<br>
\put(530,266){\rot{66}\sx{2}{$T^2(\exp(x\!-\!2))$}\ero} %<br>
\put(580,266){\rot{60}\sx{2}{$T^3(\exp(x\!-\!3))$}\ero} %<br>
\put(620,266){\rot{55}\sx{2}{$T^4(\exp(x\!-\!4))$}\ero} %<br>
\put(733,322){\rot{41}\sx{2.1}{$F(x)$}\ero} %<br>
\put(548,170){\sx{1.7}{$T^4(\exp(x\!-\!4)\!-\!\exp(2(x\!-\!4)))$}} %<br>
\put(508,116){\sx{1.7}{$T^3(\exp(x\!-\!3)-\exp(2(x\!-\!3)))$}} %<br>
\put(418,64){\sx{1.7}{$T^2(\exp(x\!-\!2)-\exp(2(x\!-\!2)))$}} %<br>
\put(280,35){\sx{1.7}{$T(\exp(x-1)-\exp(2(x\!-\!1)))$}} %<br>
\put(160,11){\sx{1.7}{$\exp(x)-\exp(2x))$}} %<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 | 3,388 × 1,744 (537 KB) | Maintenance script (talk | contribs) | Importing image file |
You cannot overwrite this file.
File usage
The following page uses this file: