エクセルのRAND関数を使っていい感じの乱数波を生成する方法について説明する
乱数波の定義
今回はこんな感じの乱数波を生成した
\begin{align}
y=\sin{x}+a\sum_{i=1}^{10}\left(c_{i}\sin{\left(2^{i-1}d_{i}x+2\pi b_{i}\right)}\right) \qquad
\left\{\begin{array}{l}
0<a,b_{i},c_{i}<1\\
1<d_{i}
\end{array}\right.
\end{align}
\(b_{i}\),\(c_{i}\),\(d_{i}\)はRAND関数による乱数である
\(a\),\(2^{i-1}\)の係数も含めていろいろな組み合わせを試すとこんな感じになる
RAND関数を使って乱数波を生成する
↓エクセルファイルのダウンロードはこちらから
Random Wave Generator.xlsx
1 ファイル 425.23 KB
乱数波はSIN関数,SUM関数,PI関数を使って以下のように入力する
=SIN($A9)+$K$2*SUM($K$4:$T$4*SIN($A9*$K$5:$T$5*$K$6:$T$6+2*PI()*$K$3:$T$3))
SIN関数は配列も引数に受け取れることは知らなかった
K3セルからT4セルまでの\(b_{i}\),\(c_{i}\),およびK5セルからT5セルまでの\(d_{i}\)はそれぞれRAND関数によって生成する
=RAND()
=1/RAND()
RAND関数はエクセルの再計算ごとに新たに生成されるので,どこかのセルを編集したり上書き保存したりすると再生成される
お気に入りの乱数波が得られるまでひたすら「Ctrl+S」を連打すればいい
おわりに
エクセルのRAND関数を使っていい感じの乱数波を生成する方法について説明した
コメント