
Я хочу нарисовать двумерное броуновское движение или, в более общем смысле,Эйлер-МаруямаДискретизированное решение двумерного стохастического дифференциального уравнения (СДУ)внутрикруг.
Если я правильно понял, это должно быть возможно с использованием pgfplots
и tikz
. Вэта почта, по крайней мере показано, как можно нарисовать броуновское движение. Теперь мне "просто" нужно обобщить это до простого решателя SDE (что для меня сложно, так как на данный момент код pgfplots/tikz для меня довольно непонятен, и у меня нет времени вникать в это)ивыяснить, как рисунок может быть помещен внутрь круга. График должен масштабироваться с радиусом круга. И мне нужно будет поместить несколько кругов с различными решениями SDE внутри одного рисунка, если это важно.
Надеюсь, решение будет простым. Я могу предоставить больше информации, если необходимо. Ссылка на руководство, где показано, о чем я спрашиваю, уже была бы очень полезна.
решение1
\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\newcommand{\Emmett}[5]{% points, advance, rand factor, options, end label
\draw[#4] (0,0)
\foreach \x in {1,...,#1}
{ -- ++(#2, rand*#3)
}
node[right] {#5};
}
\foreach \r [count=\i] in {2.2,2.1,...,0.6}{
\begin{scope}[shift={(50*\i:{4*sin(70*\i)})}]
\pgfmathparse{0.9*rnd+0.3}
\definecolor{MyColor}{rgb}{\pgfmathresult,\pgfmathresult,\pgfmathresult}
\filldraw[fill=MyColor] (\r,0) circle[radius=\r];
\clip (\r,0) circle[radius=\r];
\Emmett{int(300*\i)}{0.04}{0.02*\i}{red}{}
\end{scope}
}
\end{tikzpicture}
\end{document}
Редактировать:
\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}[line join=bevel]
\foreach \r [count=\i] in {1,1.4,...,2.2}{
\begin{scope}[shift={(5*\i,0)}]
\filldraw[blue, fill=black!20] (0,0) circle[radius=\r];
\clip (0,0) circle[radius=\r];
\draw[red, scale=\r] (0,0) coordinate(start) \foreach \x in {1,...,1000} { -- ++(0.05*rand, 0.05*rand)} coordinate(end);
\fill (start) circle[radius=2pt] node[above]{$X_0$};
\fill (end) circle[radius=2pt] node[above]{$X_t$};
\end{scope}
}
\end{tikzpicture}
\end{document}
rand
каждый раз является новым псевдослучайным числом. -- ++(dx,dy)
означает провести линию до новой координаты, которая dx
больше по x и dy
больше по y. - и, наконец, использовать эту новую координату в качестве начала, например, дальнейших линий.