Как нарисовать броуновское движение внутри круга?

Как нарисовать броуновское движение внутри круга?

Я хочу нарисовать двумерное броуновское движение или, в более общем смысле,Эйлер-МаруямаДискретизированное решение двумерного стохастического дифференциального уравнения (СДУ)внутрикруг.

Если я правильно понял, это должно быть возможно с использованием 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. - и, наконец, использовать эту новую координату в качестве начала, например, дальнейших линий.

Связанный контент