File:Ackerplot400.jpg: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Dmitrii Kouznetsov
({{Image_Details|user |description = Explicit plot of 5 first ackermanns to base e: addition of e, multiplication by e, exponnt, tetration and pentation. |author = ~~~ |date-created = 2014 |pub-country = Japan, Germany |notes = This is figure 19.6 from the Russian book Суперфункции<ref> https://www.morebooks.de/store/ru/book/Суперфункции/isbn/978-3-659-56202-0 <br> http://www.ils.uec.ac.jp/~dima/BOOK/202.pdf <br> http://mizugadro.mydns.jp/BOOK/202.pdf Д.Кузнецов. Суперфу...)
 
imported>Dmitrii Kouznetsov
(generators)
Line 14: Line 14:
== Licensing ==
== Licensing ==
{{CC|by|3.0}}
{{CC|by|3.0}}
==[[C++]] generator of curves==
Files [[fsexp.cin]] and [[fslog.cin]] should be loaded in order to compile the code below.
<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.)
void ado(FILE *O, int X, int Y)
{ fprintf(O,"%c!PS-Adobe-2.0 EPSF-2.0\n",'%');
        fprintf(O,"%c%cBoundingBox: 0 0 %d %d\n",'%','%',X,Y);
        fprintf(O,"/M {moveto} bind def\n");
        fprintf(O,"/L {lineto} bind def\n");
        fprintf(O,"/S {stroke} bind def\n");
        fprintf(O,"/s {show newpath} bind def\n");
        fprintf(O,"/C {closepath} bind def\n");
        fprintf(O,"/F {fill} bind def\n");
        fprintf(O,"/o {.01 0 360 arc C F} bind def\n");
        fprintf(O,"/times-Roman findfont 20 scalefont setfont\n");
        fprintf(O,"/W {setlinewidth} bind def\n");
        fprintf(O,"/RGB {setrgbcolor} bind def\n");}
/* end of routine */
#include "fsexp.cin"
#include "fslog.cin"
z_type pen0(z_type z){ DB Lp=-1.8503545290271812; DB k,a,b;
        k=1.86573322821; a=-.6263241; b=0.4827;
        z_type e=exp(k*z); return Lp + e*(1.+e*(a+b*e)); }
z_type pen7(z_type z){ DB x; int m,n; z=pen0(z+(2.24817451898-7.));
DO(n,7) { if(Re(z)>8.) return 999.; z=FSEXP(z); if(abs(z)<40) goto L1; return 999.; L1: ;}
return z; }
z_type pen(z_type z){ DB x; int m,n;
x=Re(z); if(x<= -4.) return pen0(z);
m=int(x+5.);
z-=DB(m);
z=pen0(z);
DO(n,m) z=FSEXP(z);
return z;
}
int main(){ int j,k,m,n; DB x,y, p,q, t; z_type z,c,d, cu,cd;
FILE *o;o=fopen("ackerplo.eps","w"); ado(o,608,808);
fprintf(o,"304 204 translate\n 100 100 scale\n");
#define M(x,y) fprintf(o,"%8.4f %8.4f M\n",0.+x,0.+y);
#define L(x,y) fprintf(o,"%8.4f %8.4f L\n",0.+x,0.+y);
#define o(x,y) fprintf(o,"%8.4f %8.4f o\n",0.+x,0.+y);
for(m=-3;m<4;m++) {M(m,-2)L(m,6)}
for(n=-2;n<9;n++) {M( -3,n)L(3,n)} fprintf(o,"2 setlinecap 1 setlinejoin .004 W 0 0 0 RGB S\n");
M(-3.02,-3.02+M_E)L(3.02,3.02+M_E) fprintf(o,".007 W .3 0 .3 RGB S\n");
M(-1., -M_E)L(3.02,3.02*M_E) fprintf(o,".007 W 0 .5 0 RGB S\n");
fprintf(o,"1 0 0 RGB\n");
DO(n,306){x=-3.02+.02*(n-.5);y=exp(x); o(x,y); if(y>6.)break;} fprintf(o,".02 W 0 .8 0 RGB S\n");
DO(n,202){y=-3+.05*(n-.6);x=Re(FSLOG(y));
if(n/2*2==n) M(x,y)else L(x,y); if(y>6.)break;} fprintf(o,"0 setlinecap .016 W 0 0 1 RGB S\n");
DO(n,150){x=-3.03+.04*n;y=Re(pen7(x)); if(n==0) M(x,y)else L(x,y); if(y>6.)break;} fprintf(o,".01 W 0 0 0 RGB S\n");
DB L=-1.8503545290271812;
DB K=1.86573322821;
DB a=-.6263241;
DB b=0.4827;
M(-3,L)L(0,L)
M(0,M_E) L(1,M_E) fprintf(o,".002 W 0 0 0 RGB S\n");
DB t2=M_PI/1.86573322821;
DB tx=-2.32;
fprintf(o,"showpage\n%c%cTrailer",'%','%'); fclose(o);
printf("pen7(-1)=%18.14f\n", Re(pen7(-1.)));
printf("Pi/1.86573322821=%18.14f %18.14f\n", M_PI/1.86573322821, 2*M_PI/1.86573322821);
        system("epstopdf ackerplo.eps");
        system( "open ackerplo.pdf");
}
</nowiki>
==[[Latex]] generator of curves==
<nowiki>
\documentclass[12pt]{article}
\paperwidth 604px
\paperheight 806px
\textwidth 1394px
\textheight 1300px
\topmargin -104px
\oddsidemargin -92px
\usepackage{graphics}
\usepackage{rotating}
\newcommand \sx {\scalebox}
\newcommand \rot {\begin{rotate}}
\newcommand \ero {\end{rotate}}
\newcommand \ing {\includegraphics}
\newcommand \rmi {\mathrm{i}}
\begin{document}
{\begin{picture}(608,806) %\put(12,0){\ing{penma}}
\put(0,0){\ing{ackerplo}}
\put(277,788){\sx{3.}{$y$}}
\put(277,695){\sx{3.}{$5$}}
\put(277,594){\sx{3.}{$4$}}
\put(277,494){\sx{3.}{$3$}}
\put(278,468){\sx{3.}{$\mathrm e$}}
\put(277,394){\sx{3.}{$2$}}
\put(277,294){\sx{3.}{$1$}}
\put(277,194){\sx{3.}{$0$}}
\put(258, 93){\sx{3.}{$-1$}}
\put( 80,174){\sx{3.}{$-2$}}
\put(180,174){\sx{3.}{$-1$}}
\put(296,174){\sx{3.}{$0$}}
\put(396,174){\sx{3.}{$1$}}
\put(496,174){\sx{3.}{$2$}}
\put(586,174){\sx{3.}{$x$}}
\put(438,714){\sx{1.8}{\rot{85}$y\!=\!\mathrm{pen}(x)$\ero}}
\put(460,716){\sx{1.8}{\rot{82}$y\!=\!\mathrm{tet}(x)$\ero}}
\put(478,712){\sx{1.8}{\rot{77}$y\!=\!\mathrm{exp}(x)$\ero}}
\put(504,712){\sx{1.8}{\rot{70}$y\!=\!\mathrm{e}x$\ero}}
\put(538,718){\sx{1.96}{\rot{44}$y\!=\!\mathrm{e}\!+\!x$\ero}}
\put(86,222){\sx{1.9}{\rot{11}$y\!=\!\mathrm{exp}(x)$\ero}}
\put(20,30){\sx{1.9}{\rot{30}$y\!=\!\mathrm{pen}(x)$\ero}}
\put(138,22){\sx{1.9}{\rot{74}$y\!=\!\mathrm{tet}(x)$\ero}}
\put(252,22){\sx{1.9}{\rot{70}$y\!=\!\mathrm{e} x$\ero}}
\put(308, 13){\sx{2.2}{$y\!=\!L_{\mathrm e,4,0}$}}
\end{picture}
\end{document}
</nowiki>
==References==
<references/>
[[Category:Ackermann]]
[[Category:Tetration]]
[[Category:Pentation]]
[[Category:Explicit plot]]
[[Category:C++]]
[[Category:Latex]]
[[Category:TORI]]

Revision as of 10:27, 4 September 2014

Summary

Title / Description


Explicit plot of 5 first ackermanns to base e: addition of e, multiplication by e, exponnt, tetration and pentation.
Citizendium author
& Copyright holder


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


2014
Country of first publication


Japan, Germany
Notes


This is figure 19.6 from the Russian book Суперфункции[1].
Other versions


http://mizugadro.mydns.jp/t/index.php/File:Ackerplot400.jpg
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|Ackerplot400.jpg|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, Ackerplot400.jpg, 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 fsexp.cin and fslog.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.) void ado(FILE *O, int X, int Y) { fprintf(O,"%c!PS-Adobe-2.0 EPSF-2.0\n",'%'); fprintf(O,"%c%cBoundingBox: 0 0 %d %d\n",'%','%',X,Y); fprintf(O,"/M {moveto} bind def\n"); fprintf(O,"/L {lineto} bind def\n"); fprintf(O,"/S {stroke} bind def\n"); fprintf(O,"/s {show newpath} bind def\n"); fprintf(O,"/C {closepath} bind def\n"); fprintf(O,"/F {fill} bind def\n"); fprintf(O,"/o {.01 0 360 arc C F} bind def\n"); fprintf(O,"/times-Roman findfont 20 scalefont setfont\n"); fprintf(O,"/W {setlinewidth} bind def\n"); fprintf(O,"/RGB {setrgbcolor} bind def\n");} /* end of routine */ #include "fsexp.cin" #include "fslog.cin" z_type pen0(z_type z){ DB Lp=-1.8503545290271812; DB k,a,b; k=1.86573322821; a=-.6263241; b=0.4827; z_type e=exp(k*z); return Lp + e*(1.+e*(a+b*e)); } z_type pen7(z_type z){ DB x; int m,n; z=pen0(z+(2.24817451898-7.)); DO(n,7) { if(Re(z)>8.) return 999.; z=FSEXP(z); if(abs(z)<40) goto L1; return 999.; L1: ;} return z; } z_type pen(z_type z){ DB x; int m,n; x=Re(z); if(x<= -4.) return pen0(z); m=int(x+5.); z-=DB(m); z=pen0(z); DO(n,m) z=FSEXP(z); return z; } int main(){ int j,k,m,n; DB x,y, p,q, t; z_type z,c,d, cu,cd; FILE *o;o=fopen("ackerplo.eps","w"); ado(o,608,808); fprintf(o,"304 204 translate\n 100 100 scale\n"); #define M(x,y) fprintf(o,"%8.4f %8.4f M\n",0.+x,0.+y); #define L(x,y) fprintf(o,"%8.4f %8.4f L\n",0.+x,0.+y); #define o(x,y) fprintf(o,"%8.4f %8.4f o\n",0.+x,0.+y); for(m=-3;m<4;m++) {M(m,-2)L(m,6)} for(n=-2;n<9;n++) {M( -3,n)L(3,n)} fprintf(o,"2 setlinecap 1 setlinejoin .004 W 0 0 0 RGB S\n"); M(-3.02,-3.02+M_E)L(3.02,3.02+M_E) fprintf(o,".007 W .3 0 .3 RGB S\n"); M(-1., -M_E)L(3.02,3.02*M_E) fprintf(o,".007 W 0 .5 0 RGB S\n"); fprintf(o,"1 0 0 RGB\n"); DO(n,306){x=-3.02+.02*(n-.5);y=exp(x); o(x,y); if(y>6.)break;} fprintf(o,".02 W 0 .8 0 RGB S\n"); DO(n,202){y=-3+.05*(n-.6);x=Re(FSLOG(y)); if(n/2*2==n) M(x,y)else L(x,y); if(y>6.)break;} fprintf(o,"0 setlinecap .016 W 0 0 1 RGB S\n"); DO(n,150){x=-3.03+.04*n;y=Re(pen7(x)); if(n==0) M(x,y)else L(x,y); if(y>6.)break;} fprintf(o,".01 W 0 0 0 RGB S\n"); DB L=-1.8503545290271812; DB K=1.86573322821; DB a=-.6263241; DB b=0.4827; M(-3,L)L(0,L) M(0,M_E) L(1,M_E) fprintf(o,".002 W 0 0 0 RGB S\n"); DB t2=M_PI/1.86573322821; DB tx=-2.32; fprintf(o,"showpage\n%c%cTrailer",'%','%'); fclose(o); printf("pen7(-1)=%18.14f\n", Re(pen7(-1.))); printf("Pi/1.86573322821=%18.14f %18.14f\n", M_PI/1.86573322821, 2*M_PI/1.86573322821); system("epstopdf ackerplo.eps"); system( "open ackerplo.pdf"); }

Latex generator of curves

\documentclass[12pt]{article} \paperwidth 604px \paperheight 806px \textwidth 1394px \textheight 1300px \topmargin -104px \oddsidemargin -92px \usepackage{graphics} \usepackage{rotating} \newcommand \sx {\scalebox} \newcommand \rot {\begin{rotate}} \newcommand \ero {\end{rotate}} \newcommand \ing {\includegraphics} \newcommand \rmi {\mathrm{i}} \begin{document} {\begin{picture}(608,806) %\put(12,0){\ing{penma}} \put(0,0){\ing{ackerplo}} \put(277,788){\sx{3.}{$y$}} \put(277,695){\sx{3.}{$5$}} \put(277,594){\sx{3.}{$4$}} \put(277,494){\sx{3.}{$3$}} \put(278,468){\sx{3.}{$\mathrm e$}} \put(277,394){\sx{3.}{$2$}} \put(277,294){\sx{3.}{$1$}} \put(277,194){\sx{3.}{$0$}} \put(258, 93){\sx{3.}{$-1$}} \put( 80,174){\sx{3.}{$-2$}} \put(180,174){\sx{3.}{$-1$}} \put(296,174){\sx{3.}{$0$}} \put(396,174){\sx{3.}{$1$}} \put(496,174){\sx{3.}{$2$}} \put(586,174){\sx{3.}{$x$}} \put(438,714){\sx{1.8}{\rot{85}$y\!=\!\mathrm{pen}(x)$\ero}} \put(460,716){\sx{1.8}{\rot{82}$y\!=\!\mathrm{tet}(x)$\ero}} \put(478,712){\sx{1.8}{\rot{77}$y\!=\!\mathrm{exp}(x)$\ero}} \put(504,712){\sx{1.8}{\rot{70}$y\!=\!\mathrm{e}x$\ero}} \put(538,718){\sx{1.96}{\rot{44}$y\!=\!\mathrm{e}\!+\!x$\ero}} \put(86,222){\sx{1.9}{\rot{11}$y\!=\!\mathrm{exp}(x)$\ero}} \put(20,30){\sx{1.9}{\rot{30}$y\!=\!\mathrm{pen}(x)$\ero}} \put(138,22){\sx{1.9}{\rot{74}$y\!=\!\mathrm{tet}(x)$\ero}} \put(252,22){\sx{1.9}{\rot{70}$y\!=\!\mathrm{e} x$\ero}} \put(308, 13){\sx{2.2}{$y\!=\!L_{\mathrm e,4,0}$}} \end{picture} \end{document}

References

  1. https://www.morebooks.de/store/ru/book/Суперфункции/isbn/978-3-659-56202-0
    http://www.ils.uec.ac.jp/~dima/BOOK/202.pdf
    http://mizugadro.mydns.jp/BOOK/202.pdf Д.Кузнецов. Суперфункции. Lambert Academic Press, 2014, in Russian; page 273, figure 19.6.

File history

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

Date/TimeThumbnailDimensionsUserComment
current18:55, 11 March 2022Thumbnail for version as of 18:55, 11 March 20223,355 × 4,477 (805 KB)Maintenance script (talk | contribs)== Summary == Importing file

The following page uses this file:

Metadata