如何在圆内画布朗运动?

如何在圆内画布朗运动?

我想画一个二维布朗运动,或者更一般地说,欧拉一丸山二维随机微分方程 (SDE) 的离散解里面一个圆圈。

如果我没记错的话,这应该可以使用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 和dyy 上都更大的新坐标。——最后以这个新坐标作为其他线的起点。

相关内容