在 LaTeX 上绘制迹行列式图

在 LaTeX 上绘制迹行列式图

TikZ我想知道如果我们可以使用或 LaTeX 上的任何其他包 来绘制迹行列式图,那将会多么美丽。在此处输入图片描述 图片来源


編輯:这是我的 MWE:

\documentclass[10pt]{article}
    \usepackage{pgf,tikz}
        \usetikzlibrary{arrows}
    \usepackage{mathrsfs}
    \usepackage{amssymb,fancyhdr,txfonts,pxfonts}
    \pagestyle{empty}
\begin{document}
    \begin{tikzpicture}[%
        line cap=round,
        line join=round,
        >=triangle 45,
        x=1.0cm,
        y=1.0cm%
    ]

        \clip(-5.8,-3.58) rectangle (5.56,5.64);
        \draw [line width=1.2pt] (0.,4.68)-- (0.,-0.74);
        \draw [line width=1.2pt] (-4.,0.)-- (4.3,0.);
        \draw [thick, domain=-2:2] plot (\x, {\x*\x}); 
        \draw (3.62,-0.12) node[anchor=north west] {$\mbox{tr}$};
        \draw (0.18,4.78) node[anchor=north west] {$\Delta$};
        \draw(0.,2.88) circle (0.3255764119219941cm);
        \draw(0.,2.88) circle (0.4833218389437828cm);
        \draw(0.,2.88) circle (0.6403124237432849cm);
        \draw (1.,-1.)-- (-1.,-3.);
        \draw (-1.,-1.)-- (1.,-3.);
        \draw [dash pattern=on 2pt off 2pt] (-1.,-2.)-- (1.,-2.);
        \draw [dash pattern=on 2pt off 2pt] (0.,-1.)-- (0.,-3.);
    \end{tikzpicture}
\end{document}

在此处输入图片描述

答案1

在此处输入图片描述

% Poincaré Diagram: Classification of Phase Portaits in the (det A,Tr A)-plane
% Author: Gernot Salzer
% Based on a drawing by Douglas R. Hundley, people.whitman.edu/~hundledr/courses/M244/Poincare.pdf
\documentclass[border=1mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings,arrows}

\tikzset
  {every pin/.style={pin edge={<-}}
  ,>=stealth
  ,flow/.style=
    {decoration=
      {markings
      ,mark=at position #1 with {\arrow{>}}
      }
    ,postaction={decorate}
    }
  ,flow/.default=0.5
  }
\newcommand\inlayscale{}
\newcommand\inlaycaption[1]{{\sffamily\scriptsize#1}}
\newcommand\newinlay[4][0.18]%
  {\renewcommand\inlayscale{#1}%
   \newsavebox#2%
   \savebox#2%
     {\begin{tabular}{@{}c@{}}
        #4\\[-1ex]
        \inlaycaption{#3}\\[-1ex]
      \end{tabular}%
     }%
  }
\newcommand\inlay[1]{\usebox{#1}}
\newcommand\Tr{\mathop{\mathrm{Tr}}}

\newinlay\saddle{saddle}%
  {\begin{tikzpicture}[scale=\inlayscale]
     \foreach \sx in {+,-}
      {\draw[flow] (\sx4,0) -- (0,0);
       \draw[flow] (0,0) -- (0,\sx4);
       \foreach \sy in {+,-}
         \foreach \a/\b/\c/\d in {2.8/0.3/0.7/0.6,3.9/0.4/1.3/1.1}
           \draw[flow] (\sx\a,\sy\b)
              .. controls (\sx\c,\sy\d) and (\sx\d,\sy\c)
              .. (\sx\b,\sy\a);
      }
   \end{tikzpicture}%
  }

\newinlay\sink{sink}%
  {\begin{tikzpicture}[scale=\inlayscale]
    \foreach \sx in {+,-}
     {\draw[flow] (\sx4,0) -- (0,0);
      \draw[flow] (0,\sx4) -- (0,0);
      \foreach \sy in {+,-}
         \foreach \a/\b in {2/1,3/0.44}
          \draw[flow,domain=\sx\a:0] plot (\x, {\sy\b*\x*\x});
     }
   \end{tikzpicture}%
  }

\newinlay\source{source}%
  {\begin{tikzpicture}[scale=\inlayscale]
     \foreach \sx in {+,-}
      {\draw[flow] (0,0) -- (\sx4,0);
       \draw[flow] (0,0) -- (0,\sx4);
       \foreach \sy in {+,-}
         \foreach \a/\b in {2/1,3/0.44}
           \draw[flow,domain=0:\sx\a] plot (\x, {\sy\b*\x*\x});
      }
   \end{tikzpicture}%
  }

\newinlay\stablefp{line of stable fixed points}%
  {\begin{tikzpicture}[scale=\inlayscale]
    \draw (-4,0) -- (4,0);
    \foreach \s in {+,-}
     {\draw[flow] (0,\s4) -- (0,0);
      \foreach \x in {-3,-2,-1,1,2,3}
        \draw[flow] (\x,\s3) -- (\x,0);
     }
   \end{tikzpicture}%
  }

\newinlay\unstablefp{line of unstable fixed points}%
  {\begin{tikzpicture}[scale=\inlayscale]
     \draw (-4,0) -- (4,0);
     \foreach \s in {+,-}
      {\draw[flow] (0,0) -- (0,\s4);
       \foreach \x in {-3,-2,-1,1,2,3}
         \draw[flow] (\x,0) -- (\x,\s3);
      }
   \end{tikzpicture}%
  }

\newinlay\spiralsink{spiral sink}%
  {\begin{tikzpicture}[scale=\inlayscale]
     \draw (-4,0) -- (4,0);
     \draw (0,-4) -- (0,4);
     \draw[samples=100,smooth,domain=27:7] plot ({\x r}: {0.005*\x*\x});
     \draw[->] ({26 r}: {0.005*26*26}) -- +(0.01,-0.01);
   \end{tikzpicture}%
  }

\newinlay\spiralsource{spiral source}%
  {\begin{tikzpicture}[scale=\inlayscale]
     \draw (-4,0) -- (4,0);
     \draw (0,-4) -- (0,4);
     \draw [samples=100,smooth,domain=10:28] plot ({-\x r}: {0.005*\x*\x});
     \draw[<-] ({-27.5 r}: {0.005*27.5*27.5}) -- +(0.01,-0.008);
   \end{tikzpicture}%
  }

\newinlay[0.15]\centre{center}%
  {\begin{tikzpicture}[scale=\inlayscale]
     \draw (-4,0) -- (4,0);
     \draw (0,-4) -- (0,4);
     \foreach \r in {1,2,3} \draw[flow=0.63] (\r,0) arc (0:-360:\r cm);
   \end{tikzpicture}%
  }

\newinlay\degensink{degenerate sink}%
  {\begin{tikzpicture}[scale=\inlayscale]
     \draw (0,-4) -- (0,4);
     \draw[flow] (-4,0) -- (0,0);
     \draw[flow] (4,0) -- (0,0);
     \draw[flow] (-3.5,3.5) .. controls (4,1.5) and (4,1).. (0,0);
     \draw[flow] (3.5,-3.5) .. controls (-4,-1.5) and (-4,-1) .. (0,0);
     \draw[flow] (-3.5,2.5) .. controls (2,1) and (2,0.8).. (0,0);
     \draw[flow] (3.5,-2.5) .. controls (-2,-1) and (-2,-0.8) .. (0,0);
   \end{tikzpicture}%
  }

\newinlay\degensource{degenerate source}%
  {\begin{tikzpicture}[scale=\inlayscale]
     \draw (0,-4) -- (0,4);
     \draw[flow] (0,0) -- (-4,0);
     \draw[flow] (0,0) -- (4,0);
     \draw[flow] (0,0) .. controls (4,1.5) and (4,1).. (-3.5,3.5);
     \draw[flow] (0,0) .. controls (-4,-1.5) and (-4,-1) .. (3.5,-3.5);
     \draw[flow] (0,0) .. controls (2,1) and (2,0.8).. (-3.5,2.5);
     \draw[flow] (0,0) .. controls (-2,-1) and (-2,-0.8) .. (3.5,-2.5);
   \end{tikzpicture}%
  }

\begin{document}
\begin{tikzpicture}[line cap=round,line join=round]
  % Main diagram
  \draw[line width=1pt,->] (0,-0.3) -- (0, 4.7) coordinate (+y);
  \draw[line width=1pt,->] (-5,0) -- ( 5,0) coordinate (+x);
  \draw[line width=1pt, domain=-4:4] plot (\x, {0.25*\x*\x});
  \node at (+y) [label={[above,yshift=0.8cm]%
    {\sffamily\large Poincar\'e Diagram: Classification of Phase Portaits
     in the $(\det A,\Tr A)$-plane}}] {};
  \node at (+x) [label={[right,yshift=-0.5ex]$\scriptstyle\Tr A$}] {}; 
  \node at (+y) [label={[above]$\scriptstyle\det A$}] {};
  \node at (-4,4) [pin={[above]$\scriptstyle\Delta=0$}] {};
  \node at ( 4,4) [pin={[above,align=left]{%
    $\scriptstyle\Delta=0$:\\
    $\scriptstyle\det A=\frac{1}{4}(\Tr A)^2$}}] {};
  % inlays
  \node at (0,-1.4) {\inlay\saddle};
  \node at (0,1.2)
    [pin={[draw,right,xshift=0.3cm]\inlay\centre}] {};
  \node at (0,0)
    [pin={[draw,above left,align=center,xshift=-0.3cm]%
    \inlaycaption{uniform}\\[-1ex]\inlaycaption{motion}}] {};
  \node at (-4,1) {\inlay\sink};
  \node at ( 4,1) {\inlay\source}; 
  \node at (-3,0) [pin={[draw,below,yshift=-1cm]\inlay\stablefp}] {};
  \node at  (3,0) [pin={[draw,below,yshift=-1cm]\inlay\unstablefp}] {};
  \node at (-1.8,3.7) {\inlay\spiralsink};
  \node at ( 1.8,3.7) {\inlay\spiralsource};
  \node at (-3.5,{0.25*3.5*3.5})
    [pin={[draw,left,xshift=-1.15cm,yshift=-0.3cm]\inlay\degensink}] {};
  \node at ( 3.5,{0.25*3.5*3.5})
    [pin={[draw,right,xshift=0.9cm,yshift=-0.3cm]\inlay\degensource}] {};
\end{tikzpicture}
\end{document}

答案2

在发布最终获胜答案之前,gernot 已经发布了多个答案,每个答案都代表最终图片的一个图形组件。发布最终答案后,他删除了组件答案。

为了回答这个问题,我从 gernot 的 [现已删除] 组件和 OP 的问题中提取了这些部分,以证明一旦拥有所有组件,就可以用\stackinset它们叠加在基础图上。

他的部件包括tikz以下 MWE 中标识的部分\spiralA,即\spiralB、、、、、和 、\degensink\degensource\nondegensink\nondegensource

\documentclass[10pt]{article}
    \usepackage{pgf,tikz}
        \usetikzlibrary{arrows}
    \usepackage{mathrsfs}
    \usepackage{amssymb,fancyhdr,txfonts,pxfonts}
    \pagestyle{empty}
    \usetikzlibrary{decorations.markings}
\usepackage{stackengine}
\renewcommand\stacktype{L}
\setstackgap{L}{8pt}
\begin{document}
\savestack\mygraph{%
    \begin{tikzpicture}[%
        line cap=round,
        line join=round,
        >=triangle 45,
        x=1.0cm,
        y=1.0cm%
    ]
%
        \clip(-5.8,-3.58) rectangle (5.56,5.64);
        \draw [line width=1.2pt] (0.,4.68)-- (0.,-0.74);
        \draw [line width=1.2pt] (-4.,0.)-- (4.3,0.);
        \draw [thick, domain=-2:2] plot (\x, {\x*\x}); 
        \draw (3.62,-0.12) node[anchor=north west] {$\mathrm{Tr}\,A$};
        \draw (-.4,5.1) node[anchor=north west] {$\scriptstyle\det A$};
        \draw (-2.35,4.7) node[anchor=north west] {%
          \stackunder{$\scriptstyle\Delta=0$}{$\downarrow$}};
        \draw (1.08,5.1) node[anchor=north west] {\ensurestackMath{\stackunder[11pt]{%
          \Longstack[l]{\scriptstyle\Delta=0: \scriptstyle\det A=\frac{1}{4}(%
            \mathrm{Tr}A)^2}}{\downarrow}}};
        \draw (1.,-1.)-- (-1.,-3.);
        \draw (-1.,-1.)-- (1.,-3.);
        \draw [dash pattern=on 2pt off 2pt] (-1.,-2.)-- (1.,-2.);
        \draw [dash pattern=on 2pt off 2pt] (0.,-1.)-- (0.,-3.);
    \end{tikzpicture}%
}
\savestack\spiralA{%
\begin{tikzpicture}
   [decoration=
      {markings,
       mark=at position 0.1 with {\arrow{stealth}}
      }
   ,scale=0.5
   ]
   \draw (-4,0) -- (4,0);
   \draw (0,-4) -- (0,4);
   \draw[postaction={decorate},domain=27:7,variable=\t,smooth,samples=100]
       plot ({\t r}: {0.005*\t*\t});
\end{tikzpicture}%
}
\savestack\spiralB{%
\begin{tikzpicture}
   [decoration=
      {markings,
       mark=at position 0.99 with {\arrow{stealth}}
      }
   ,scale=0.5
   ]
   \draw (-4,0) -- (4,0);
   \draw (0,-4) -- (0,4);
   \draw[postaction={decorate},domain=10:28.5,variable=\t,smooth,samples=100]
       plot ({-\t r}: {0.005*\t*\t});
\end{tikzpicture}
}
\savestack\degensink{%
\begin{tikzpicture}
   [decoration=
      {markings,
       mark=at position 0.5 with {\arrow{stealth}}
      }
   ,scale=0.5
   ]
   \draw (0,-4) -- (0,4);
   \draw[postaction={decorate}] (-4,0) -- (0,0);
   \draw[postaction={decorate}] (4,0) -- (0,0);
   \draw[postaction={decorate}] (-3.5,3.5) .. controls (4,1.5) and (4,1).. (0,0);
   \draw[postaction={decorate}] (3.5,-3.5) .. controls (-4,-1.5) and (-4,-1) .. (0,0);
   \draw[postaction={decorate}] (-3.5,2.5) .. controls (2,1) and (2,0.8).. (0,0);
   \draw[postaction={decorate}] (3.5,-2.5) .. controls (-2,-1) and (-2,-0.8) .. (0,0);
\end{tikzpicture}%
}
\savestack\degensource{%
\begin{tikzpicture}
   [decoration=
      {markings,
       mark=at position 0.5 with {\arrow{stealth}}
      }
   ,scale=0.5
   ]
   \draw (0,-4) -- (0,4);
   \draw[postaction={decorate}] (0,0) -- (-4,0);
   \draw[postaction={decorate}] (0,0) -- (4,0);
   \draw[postaction={decorate}] (0,0) .. controls (4,1.5) and (4,1).. (-3.5,3.5);
   \draw[postaction={decorate}] (0,0) .. controls (-4,-1.5) and (-4,-1) .. (3.5,-3.5);
   \draw[postaction={decorate}] (0,0) .. controls (2,1) and (2,0.8).. (-3.5,2.5);
   \draw[postaction={decorate}] (0,0) .. controls (-2,-1) and (-2,-0.8) .. (3.5,-2.5);
\end{tikzpicture}%
}
\savestack\nondegensink{%
\begin{tikzpicture}
   [decoration=
      {markings,
       mark=at position 0.5 with {\arrow{stealth}}
      }
   ,scale=0.5
   ,plotsettings/.style={postaction={decorate}}
   ]
   \draw[postaction={decorate}] (0,-4) -- (0,0);
   \draw[postaction={decorate}] (0,4) -- (0,0);
   \draw[postaction={decorate}] (-4,0) -- (0,0);
   \draw[postaction={decorate}] (4,0) -- (0,0);
   \draw [plotsettings,domain=-2:0] plot (\x, {\x*\x}); 
   \draw [plotsettings,domain= 0:2] plot (\x, {\x*\x}); 
   \draw [plotsettings,domain=-2:0] plot (\x, {-\x*\x}); 
   \draw [plotsettings,domain= 0:2] plot (\x, {-\x*\x}); 
   \draw [plotsettings,domain=-3:0] plot (\x, {0.44*\x*\x}); 
   \draw [plotsettings,domain= 0:3] plot (\x, {0.44*\x*\x}); 
   \draw [plotsettings,domain=-3:0] plot (\x, {-0.44*\x*\x}); 
   \draw [plotsettings,domain= 0:3] plot (\x, {-0.44*\x*\x}); 
\end{tikzpicture}%
}
\savestack\nondegensource{%
\begin{tikzpicture}
   [decoration=
      {markings,
       mark=at position 0.5 with {\arrow{stealth}}
      }
   ,scale=0.5
   ,plotsettings/.style={postaction={decorate}}
   ]
   \draw[postaction={decorate}] (0,0) -- (-4,0);
   \draw[postaction={decorate}] (0,0) -- (4,0);
   \draw[postaction={decorate}] (0,0) -- (0,-4);
   \draw[postaction={decorate}] (0,0) -- (0,4);
   \draw [plotsettings,domain=0:-2] plot (\x, {\x*\x}); 
   \draw [plotsettings,domain=2: 0] plot (\x, {\x*\x}); 
   \draw [plotsettings,domain=0:-2] plot (\x, {-\x*\x}); 
   \draw [plotsettings,domain=2: 0] plot (\x, {-\x*\x}); 
   \draw [plotsettings,domain=0:-3] plot (\x, {0.44*\x*\x}); 
   \draw [plotsettings,domain=3: 0] plot (\x, {0.44*\x*\x}); 
   \draw [plotsettings,domain=0:-3] plot (\x, {-0.44*\x*\x}); 
   \draw [plotsettings,domain=3: 0] plot (\x, {-0.44*\x*\x}); 
\end{tikzpicture}%
}
\stackinset{c}{-55pt}{c}{2pt}{\stackunder[24pt]{$\vcenter{\hbox{\scalebox{.3}{%
  \nondegensink}}}$}{\scriptsize\Longunderstack[l]{sink}}%
  }{%
\stackinset{c}{60pt}{c}{2pt}{\stackunder[24pt]{$\vcenter{\hbox{\scalebox{.3}{%
  \nondegensource}}}$}{\scriptsize\Longunderstack[l]{source}}%
  }{%
\stackinset{c}{-71pt}{c}{56pt}{\stackunder[24pt]{$\vcenter{\hbox{\scalebox{.3}{%
  \fbox{\degensink}}}}$}{\scriptsize\Longunderstack[l]{degenerate sink}}%
  $\!\rightarrow$}{%
\stackinset{c}{78pt}{c}{56pt}{$\leftarrow\!$%
  \stackunder[24pt]{$\vcenter{\hbox{\scalebox{.3}{%
  \fbox{\degensink}}}}$}{\scriptsize\Longunderstack[r]{degenerate source}}%
  }{%
\stackinset{c}{-20pt}{c}{62pt}{\stackunder{\scalebox{.35}{\spiralA}}{%
  \scriptsize spiral sink}}{%
\stackinset{c}{27pt}{c}{62pt}{\stackunder{\scalebox{.35}{\spiralB}}{%
  \scriptsize spiral source}}{%
  \mygraph%
}}}}}}
\end{document}

在此处输入图片描述

相关内容