From 3a7e2cef27bd78a96b20751db2a53f7291fcd2a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Fri, 24 Jun 2022 20:18:48 +0200 Subject: add grid to images --- buch/chapters/110-elliptisch/dglsol.tex | 16 +++++------ buch/chapters/110-elliptisch/images/Makefile | 7 ++++- buch/chapters/110-elliptisch/images/ellpolnul.pdf | Bin 19647 -> 86072 bytes buch/chapters/110-elliptisch/images/ellpolnul.tex | 9 ++++++ .../110-elliptisch/images/ellselection.pdf | Bin 20323 -> 76094 bytes .../110-elliptisch/images/ellselection.tex | 15 ++++++++-- .../chapters/110-elliptisch/images/jacobiplots.pdf | Bin 56975 -> 56975 bytes buch/chapters/110-elliptisch/images/kegelpara.pdf | Bin 202828 -> 202828 bytes buch/chapters/110-elliptisch/images/rechteck.cpp | 31 +++++++++++++++------ buch/chapters/110-elliptisch/images/rechteck.pdf | Bin 91639 -> 94300 bytes buch/chapters/110-elliptisch/images/rechteck.tex | 2 ++ .../110-elliptisch/images/torusschnitt.pdf | Bin 312677 -> 312677 bytes 12 files changed, 60 insertions(+), 20 deletions(-) (limited to 'buch/chapters') diff --git a/buch/chapters/110-elliptisch/dglsol.tex b/buch/chapters/110-elliptisch/dglsol.tex index 74f2f8c..3303aee 100644 --- a/buch/chapters/110-elliptisch/dglsol.tex +++ b/buch/chapters/110-elliptisch/dglsol.tex @@ -403,27 +403,27 @@ abgelesen werden: \begin{equation} \begin{aligned} \operatorname{sn}(0,k)&=0 -& +&&\qquad& \operatorname{cn}(0,k)&=1 -& +&&\qquad& \operatorname{dn}(0,k)&=1 \\ \operatorname{sn}(iK',k)&=\infty -& +&&\qquad& \operatorname{cn}(iK',k)&=\infty -& +&&\qquad& \operatorname{dn}(iK',k)&=\infty \\ \operatorname{sn}(K,k)&=1 -& +&&\qquad& \operatorname{cn}(K,k)&=0 -& +&&\qquad& \operatorname{dn}(K,k)&=k' \\ \operatorname{sn}(K+iK',k)&=\frac{1}{k} -& +&&\qquad& \operatorname{cn}(K+iK',k)&=\frac{k'}{ik} -& +&&\qquad& \operatorname{dn}(K+iK',k)&=0 \end{aligned} \label{buch:elliptische:eqn:eckwerte} diff --git a/buch/chapters/110-elliptisch/images/Makefile b/buch/chapters/110-elliptisch/images/Makefile index 43ca35e..7636e65 100644 --- a/buch/chapters/110-elliptisch/images/Makefile +++ b/buch/chapters/110-elliptisch/images/Makefile @@ -120,6 +120,11 @@ ellpolnul.pdf: ellpolnul.tex ellcommon.tex ellall.pdf: ellall.tex ellcommon.tex pdflatex ellall.tex -ellselection.pdf: ellselection.tex +rechteckpfade2.tex: rechteck Makefile + ./rechteck --outfile rechteckpfade2.tex --k 0.87 --vsteps=1 +ellselection.pdf: ellselection.tex rechteckpfade2.tex pdflatex ellselection.tex +rechteckpfade3.tex: rechteck + ./rechteck --outfile rechteckpfade3.tex --k 0.70710678118654752440 \ + --vsteps=4 diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.pdf b/buch/chapters/110-elliptisch/images/ellpolnul.pdf index 9143d2d..a60a51b 100644 Binary files a/buch/chapters/110-elliptisch/images/ellpolnul.pdf and b/buch/chapters/110-elliptisch/images/ellpolnul.pdf differ diff --git a/buch/chapters/110-elliptisch/images/ellpolnul.tex b/buch/chapters/110-elliptisch/images/ellpolnul.tex index 16730f9..fe1d235 100644 --- a/buch/chapters/110-elliptisch/images/ellpolnul.tex +++ b/buch/chapters/110-elliptisch/images/ellpolnul.tex @@ -15,6 +15,15 @@ \def\skala{1} \begin{tikzpicture}[>=latex,thick,scale=\skala] +\input rechteckpfade3.tex + +\pgfmathparse{1/\xmax} +\xdef\dx{\pgfmathresult} +\xdef\dy{\dx} + +\netz{0.1pt} +\draw[line width=0.1pt] (-1,0) -- (1,0); +\fill[color=white,opacity=0.5] (-1,-1) rectangle (1,1); \draw (-1,-1) rectangle (1,1); \node at (-1,-1) [below left] {$0$}; \node at (1,-1) [below right] {$K$}; diff --git a/buch/chapters/110-elliptisch/images/ellselection.pdf b/buch/chapters/110-elliptisch/images/ellselection.pdf index bc9af35..bad342c 100644 Binary files a/buch/chapters/110-elliptisch/images/ellselection.pdf and b/buch/chapters/110-elliptisch/images/ellselection.pdf differ diff --git a/buch/chapters/110-elliptisch/images/ellselection.tex b/buch/chapters/110-elliptisch/images/ellselection.tex index 9e822ec..0dd1e04 100644 --- a/buch/chapters/110-elliptisch/images/ellselection.tex +++ b/buch/chapters/110-elliptisch/images/ellselection.tex @@ -14,15 +14,22 @@ \def\skala{1} \begin{tikzpicture}[>=latex,thick,scale=\skala] +\input{rechteckpfade2.tex} + \def\l{0.45} \pgfmathparse{\l*72/2.54} \xdef\L{\pgfmathresult} +\pgfmathparse{4.1/\xmax} +\xdef\dx{\pgfmathresult} +\xdef\dy{\dx} + \def\sx{4.1} \pgfmathparse{\sx*72/2.54} \xdef\Sx{\pgfmathresult} -\def\sy{3.2} +\pgfmathparse{\dx*\ymax} +\xdef\sy{\pgfmathresult} \pgfmathparse{\sy*72/2.54} \xdef\Sy{\pgfmathresult} @@ -36,8 +43,10 @@ \pgfmathparse{\sy/2} \xdef\rechtsy{\pgfmathresult} -\fill[color=red!20] ({-\sx},0) rectangle (\sx,\sy); -\fill[color=blue!20] ({-\sx},{-\sy}) rectangle (\sx,0); +\hintergrund +\netz{0.7pt} +\fill[color=red!14,opacity=0.7] ({-\sx},0) rectangle (\sx,\sy); +\fill[color=blue!14,opacity=0.7] ({-\sx},{-\sy}) rectangle (\sx,0); \fill[color=yellow!40,opacity=0.5] (0,0) rectangle (\sx,\sy); \draw (-\sx,-\sy) rectangle (\sx,\sy); diff --git a/buch/chapters/110-elliptisch/images/jacobiplots.pdf b/buch/chapters/110-elliptisch/images/jacobiplots.pdf index 59aea81..3ac9fe5 100644 Binary files a/buch/chapters/110-elliptisch/images/jacobiplots.pdf and b/buch/chapters/110-elliptisch/images/jacobiplots.pdf differ diff --git a/buch/chapters/110-elliptisch/images/kegelpara.pdf b/buch/chapters/110-elliptisch/images/kegelpara.pdf index 59f9f50..0d6f63d 100644 Binary files a/buch/chapters/110-elliptisch/images/kegelpara.pdf and b/buch/chapters/110-elliptisch/images/kegelpara.pdf differ diff --git a/buch/chapters/110-elliptisch/images/rechteck.cpp b/buch/chapters/110-elliptisch/images/rechteck.cpp index c65ae0f..b5ad0ec 100644 --- a/buch/chapters/110-elliptisch/images/rechteck.cpp +++ b/buch/chapters/110-elliptisch/images/rechteck.cpp @@ -163,7 +163,7 @@ curvetracer::curve_t curvetracer::trace(const std::complex& startz, } catch (const toomanyiterations& x) { std::cerr << "iterations exceeded after "; std::cerr << result.size(); - std::cerr << " points"; + std::cerr << " points" << std::endl; maxsteps = 0; } } @@ -230,7 +230,7 @@ void curvedrawer::operator()(const curvetracer::curve_t& curve) { double first = true; for (auto z : curve) { if (first) { - *_out << "\\draw[color=" << _color << "] "; + *_out << "\\draw[color=" << _color << ",line width=#1] "; first = false; } else { *_out << std::endl << " -- "; @@ -244,6 +244,7 @@ static struct option longopts[] = { { "outfile", required_argument, NULL, 'o' }, { "k", required_argument, NULL, 'k' }, { "deltax", required_argument, NULL, 'd' }, +{ "vsteps", required_argument, NULL, 'v' }, { NULL, 0, NULL, 0 } }; @@ -252,7 +253,8 @@ static struct option longopts[] = { */ int main(int argc, char *argv[]) { double k = 0.625; - double deltax = 0.2; + double Deltax = 0.2; + int vsteps = 4; int c; int longindex; @@ -261,7 +263,7 @@ int main(int argc, char *argv[]) { &longindex))) switch (c) { case 'd': - deltax = std::stod(optarg); + Deltax = std::stod(optarg); break; case 'o': outfilename = std::string(optarg); @@ -269,6 +271,9 @@ int main(int argc, char *argv[]) { case 'k': k = std::stod(optarg); break; + case 'v': + vsteps = std::stoi(optarg); + break; } double kprime = integrand::kprime(k); @@ -293,15 +298,21 @@ int main(int argc, char *argv[]) { curvetracer ct(f); // fill + (*cdp->out()) << "\\def\\hintergrund{" << std::endl; (*cdp->out()) << "\\fill[color=red!10] ({" << (-xmax) << "*\\dx},0) " << "rectangle ({" << xmax << "*\\dx},{" << ymax << "*\\dy});" << std::endl; (*cdp->out()) << "\\fill[color=blue!10] ({" << (-xmax) << "*\\dx},{" << (-ymax) << "*\\dy}) rectangle ({" << xmax << "*\\dx},0);" << std::endl; + (*cdp->out()) << "}" << std::endl; + + // macro for grid + (*cdp->out()) << "\\def\\netz#1{" << std::endl; // "circles" std::complex dir(0.01, 0); + double deltax = Deltax; for (double im = deltax; im < 3; im += deltax) { std::complex startz(0, im); std::complex startw = ct.startpoint(startz); @@ -316,9 +327,9 @@ int main(int argc, char *argv[]) { } // imaginary axis - (*cdp->out()) << "\\draw[color=red] (0,0) -- (0,{" << ymax + (*cdp->out()) << "\\draw[color=red,line width=#1] (0,0) -- (0,{" << ymax << "*\\dy});" << std::endl; - (*cdp->out()) << "\\draw[color=blue] (0,0) -- (0,{" << (-ymax) + (*cdp->out()) << "\\draw[color=blue,line width=#1] (0,0) -- (0,{" << (-ymax) << "*\\dy});" << std::endl; // arguments between 0 and 1 @@ -353,7 +364,8 @@ int main(int argc, char *argv[]) { // arguments between 1 and 1/k { - for (double x0 = 1 + deltax; x0 < 1/k; x0 += deltax) { + deltax = (1/k - 1) / vsteps; + for (double x0 = 1 + deltax; x0 < 1/k + 0.00001; x0 += deltax) { double y0 = sqrt(1-1/(x0*x0))/kprime; //std::cout << "y0 = " << y0 << std::endl; double y = gsl_sf_ellint_F(asin(y0), kprime, @@ -389,8 +401,9 @@ int main(int argc, char *argv[]) { // arguments larger than 1/k { + deltax = Deltax; dir = std::complex(0, 0.01); - double x0 = 1; + double x0 = 1/k; while (x0 <= 1/k + 0.0001) { x0 += deltax; } for (; x0 < 4; x0 += deltax) { std::complex startz(x0); @@ -407,6 +420,8 @@ int main(int argc, char *argv[]) { } } + (*cdp->out()) << "}" << std::endl; + // border (*cdp->out()) << "\\def\\xmax{" << xmax << "}" << std::endl; (*cdp->out()) << "\\def\\ymax{" << ymax << "}" << std::endl; diff --git a/buch/chapters/110-elliptisch/images/rechteck.pdf b/buch/chapters/110-elliptisch/images/rechteck.pdf index 6209897..46f2376 100644 Binary files a/buch/chapters/110-elliptisch/images/rechteck.pdf and b/buch/chapters/110-elliptisch/images/rechteck.pdf differ diff --git a/buch/chapters/110-elliptisch/images/rechteck.tex b/buch/chapters/110-elliptisch/images/rechteck.tex index 622a9e9..12535ba 100644 --- a/buch/chapters/110-elliptisch/images/rechteck.tex +++ b/buch/chapters/110-elliptisch/images/rechteck.tex @@ -18,6 +18,8 @@ \def\dy{3} \input{rechteckpfade.tex} +\hintergrund +\netz{0.7pt} \begin{scope} \clip ({-\xmax*\dx},{-\ymax*\dy}) rectangle ({\xmax*\dx},{\ymax*\dy}); diff --git a/buch/chapters/110-elliptisch/images/torusschnitt.pdf b/buch/chapters/110-elliptisch/images/torusschnitt.pdf index 61293f3..2948e76 100644 Binary files a/buch/chapters/110-elliptisch/images/torusschnitt.pdf and b/buch/chapters/110-elliptisch/images/torusschnitt.pdf differ -- cgit v1.2.1