Tracer une trajectoire aléatoire
Sep 01 2020
J'essaie de recréer un tracé de trajectoire pour démontrer la stabilité. L'image que j'ai à l'esprit est quelque chose de similaire à la figure suivante:
Le problème est que je ne sais pas vraiment comment générer la trajectoire de la ligne, car je n'ai pas de données numériques sur lesquelles me fier. La forme de la trajectoire n'a pas d'importance tant qu'elle présente un comportement asymptotique. De préférence, il doit ressembler à celui de la figure. Je vais attacher ma progression actuelle dans le code suivant:
\documentclass[tikz]{standalone}
\usepackage{geometry}
\usepackage{pgfplots}
\usepackage{bm}
\usetikzlibrary{3d,calc}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}%[show grid=all]
% background
\path[name path=C] (-1.5,1.75) -- (1.5,3.25);
\path[name path=D] (-1.5,-1.5) -- (1.5,0.5);
\tikzfillbetween[of=C and D]{top color=gray!10!white, bottom color=white, opacity=0.02};
% axis
\draw[gray!50!white,->,very thick,>=latex] (0,-0.5) -- (0,2.5);
\draw[gray!50!white,->,very thick,>=latex] (1.5,1.75) -- (-1.5,0.25);
\draw[gray!50!white,->,very thick,>=latex] (0,1) -- (7,1);
\filldraw[black] (0,1) circle (1.2pt);
\filldraw[black] (6,1) circle (1.2pt);
\draw[blue!50!white,dashed,very thick] (0,0) arc (-90:90:0.6cm and 1cm);
\draw[blue!50!white,thick] (0,0) arc (-90:90:-0.6cm and 1cm);
\draw[blue!50!white,thick] (6,0.5) arc (-90:90:-0.4cm and 0.5cm);
\draw[blue!50!white,thick] (6,0.5) arc (-90:90:0.4cm and 0.5cm);
\draw[blue!50!white,thick,name path = A] (0,2) to[in=180,out=-12] (6,1.5);
\draw[blue!50!white,thick,name path = B] (0,0) to[in=180,out=12] (6,0.5);
\tikzfillbetween[of=A and B]{blue!50!white, opacity=0.2};
\shade[left color=blue!50!white,right color=blue!50!white,opacity=0.2] (0,0) arc (-90:90:-0.6cm and 1cm);
\shade[left color=blue!50!white,right color=blue!50!white,opacity=0.2] (6,0.5) arc (-90:90:0.4cm and 0.5cm);
% axis labels
\node at (0,2.9) {$\varphi_{1}(t)$};
\node at (-2,0.21) {$\varphi_{2}(t)$};
\node at (7.15,1) {$t$};
\draw[thick,->,>=latex] (0,1) -- (0,2) node [midway,scale=0.9,right]{$\delta$};
\draw[thick,->,>=latex] (6,1) -- (6,1.5) node [midway,scale=0.9,right]{$\varepsilon$};
\draw[dashed,blue] (-0.3,1.35) -- (-2,2.5) node [pos=1.2,text=black,scale=0.9]{$\bm{\varphi}(0)$};
% trajectory
\filldraw[blue!90!white] (-0.3,1.35) circle (1.2pt);
% border adjustment (standalone crop problems)
\node at (0,-2.3) {$$}; \node at (8,0) {$$};
\end{tikzpicture}
\end{document}
Réponses
7 Bakr Sep 01 2020 at 17:49
J'ai pu utiliser la réponse de Tracer des boucles: trajectoires et directions pour tracer la trajectoire suivante:
Voici le code:
\documentclass[tikz]{standalone}
\usepackage{geometry}
\usepackage{pgfplots}
\usepackage{bm}
\usetikzlibrary{3d,calc}
\usepgfplotslibrary{fillbetween}
\usetikzlibrary{arrows.meta,hobby}
\begin{document}
\begin{tikzpicture}[use Hobby shortcut]%[show grid=all]
\tikzset{axisArrow/.style={gray!50!white,very thick,>=stealth,arrows={->[fill=black]}}}
% background
\path[name path=C] (-1.5,1.75) -- (1.5,3.25);
\path[name path=D] (-1.5,-1.5) -- (1.5,0.5);
\tikzfillbetween[of=C and D]{top color=gray!10!white, bottom color=white, opacity=0.02};
% axis
\draw[axisArrow] (0,-0.5) -- (0,2.5);
\draw[axisArrow] (1.5,1.75) -- (-1.5,0.25);
\draw[axisArrow] (0,1) -- (7,1);
\filldraw[black] (0,1) circle (1.2pt);
\filldraw[black] (6,1) circle (1.2pt);
\draw[blue!50!white,dashed, thick] (0,0) arc (-90:90:0.6cm and 1cm);
\draw[blue!50!white,thick] (0,0) arc (-90:90:-0.6cm and 1cm);
\draw[blue!50!white,thick] (6,0.5) arc (-90:90:-0.4cm and 0.5cm);
\draw[blue!50!white,thick] (6,0.5) arc (-90:90:0.4cm and 0.5cm);
\draw[blue!50!white,thick,name path = A] (0,2) to[in=180,out=-12] (6,1.5);
\draw[blue!50!white,thick,name path = B] (0,0) to[in=180,out=12] (6,0.5);
\tikzfillbetween[of=A and B]{blue!50!white, opacity=0.2};
\shade[left color=blue!50!white,right color=blue!50!white,opacity=0.2] (0,0) arc (-90:90:-0.6cm and 1cm);
\shade[left color=blue!50!white,right color=blue!50!white,opacity=0.2] (6,0.5) arc (-90:90:0.4cm and 0.5cm);
% axis labels
\node at (0,2.9) {$\varphi_{1}(t)$};
\node at (-2,0.21) {$\varphi_{2}(t)$};
\node at (7.15,1) {$t$};
\node[scale=0.7] at (5,1.65) {$t\rightarrow \infty$};
\draw[thick,->,>=stealth] (0,1) -- (0,2) node [midway,scale=0.9,right]{$\delta$};
\draw[thick,->,>=stealth] (6,1) -- (6,1.5) node [midway,scale=0.9,right]{$\varepsilon$};
\draw[dashed,blue] (-0.3,1.35) -- (-2,2.5) node [pos=1.2,text=black,scale=0.9]{$\bm{\varphi}(0)$};
% trajectory
\filldraw[blue!90!white] (-0.3,1.35) circle (1.2pt);
\draw[-stealth,blue!90!white,thick] (-0.3,1.35) .. (1,0.5) .. (1.75,1.4) .. (1.5,1.2) .. (2,1.2) .. (2.5,1.1) .. (3,0.9) .. (3,1) .. (4,1) .. (4.3,1) .. (4.8,1) -- (5.55,1);
% border adjustment (standalone crop problems)
\node at (0,-2.3) {$$}; \node at (8,0) {$$};
\end{tikzpicture}
\end{document}