角速度が変化する正弦波を再現!Excelで学ぶ数理モデル化の基礎
前回の記事では、時間とともに角速度が変化するときの正弦波を、次のような基本式で表しました。
$${Y_{(t)} = A\sin\theta_{(t)}}$$
$${\theta_{(t)} = \int \omega_{(t)}\,dt + \phi}$$
・$${A}$$: 振幅 (-)
・$${\theta_{(t)}}$$: 角度 (rad)
・$${\omega_{(t)}}$$: 角速度 (rad/s)
・$${t}$$: 時間 (s)
・$${\phi}$$: 位相 (rad)
この基本式にある積分は、Excelを使えば簡単に計算することができます。マクロは使いません。セルだけで、近似的に求められます。
角速度が変わると正弦波はどう変わるのか。
理屈で終わらせず、その答えをグラフで描いてみませんか?この過程には、数理モデル化の基礎が詰まっています。
そこで、今回のテーマは…
この 正弦波の基本式を、Excelで再現して可視化する ことです!
✔︎ 全体の設計図
Excelで正弦波を作り始める前に、まずやっておきたいのが 全体の設計図を描くこと です。
ここでいう設計図とは、
何を入出力とするのか
どのような順番で計算するのか
どういった要素に分けるのか
どのように求めるのか
を整理したものです。
分かりやすければ、どんな描き方をしても大丈夫です。
ここで扱う正弦波モデルの場合、私なら次のように設計図を作成します。

この設計図について、順を追って確認してみましょう。
▶ 何を入出力とするのか
入力: 角速度 $${\omega_{(t)}}$$
※ 任意に変えられること出力: 正弦波 $${Y_{(t)}}$$
これにより、角速度 $${\omega_{(t)}}$$ が時間とともに変化するときの正弦波 $${Y_{(t)}}$$ を可視化できます。
▶ どのような順番で計算するのか
角速度 $${\omega_{(t)}}$$ を入力する。
入力した $${\omega_{(t)}}$$ を時間積分し、角度 $${\theta_{(t)}}$$ を求める。
求めた角度 $${\theta_{(t)}}$$ から、正弦波 $${Y(t)}$$ を計算して出力する。
▶ どういった要素に分けるのか
他でも使いまわせるように、汎用性を考えて次の3つの要素に分けることにしました。
シート[ω(t) →]
角速度 $${\omega_{(t)}}$$ の値を入力する。シート[θ(t)=∫ω(t)dt+φ →]
角速度 $${\omega_{(t)}}$$ を参照して、角度 $${\theta_{(t)}}$$ を求める。シート[Y(t)=Asinθ(t)]
角度 $${\theta_{(t)}}$$ を参照して、正弦波 $${Y_{(t)}}$$ を求める。
▶ どのように求めるのか
今回は、入力値と各設定値を次のようにしました。
角速度: $${\omega_{(t)}=t\,(rad/s)}$$
時間刻み: $${dt=0.001\,(s)}$$
位相: $${\phi=0\,(rad)}$$
振幅: $${A=1\,(-)}$$
また角度 $${\theta_{(t)}}$$ は、角速度 $${\omega_{(t)}}$$ を時間積分して求めます。具体的には、下図のように時間刻み $${dt}$$ ごとに台形近似して面積を計算し、その総和を求めます。この総和が、角度 $${\theta_{(t)}}$$ に相当します。

最後に、求めた角度 $${\theta_{(t)}}$$ を使って、正弦波 $${Y_{(t)}}$$ を出力します。
あらかじめ設計図を描いておくことには、次のようなメリットがあります。
全体を俯瞰して見ることができる。
どこで何を計算しているのかがすぐに分かる。
数式ミスやセル参照の混乱を防げる。
他の人に構造を説明しやすくなる。
他の人でも間違いに気づける。 など
Excelはあくまで計算ツールであり、この設計図こそが主役です。
✔︎ Excelで再現して可視化
先ほどの設計図をもとにして、正弦波をExcelで再現しました。
※マクロは使っていません。
▶ シート[ω(t) →]
角速度 $${\omega_{(t)}}$$ を時間の関数として入力するシートです。

A列には、時間 $${t}$$ の値を時間刻み $${dt}$$ で入力してあります。
B列には、その時間に対応する角速度 $${\omega_{(t)}}$$ を入力します。
任意の角速度を入力できますが、
$${\frac{2\pi}{\omega_{(t)}} \gg dt\times2}$$
となるようにしてください。
角速度 $${\omega_{(t)}}$$ を変えたら正弦波 $${Y(t)=A\sin\theta(t)}$$ がどのように変わるのかを確認できるように、グラフを添付してあります。
グラフの変化を見ながら、角速度をいろいろ変えてみると理解が深まります。
▶ シート[θ(t)=∫ω(t)dt+φ →]
角速度 $${\omega_{(t)}}$$ を時間積分して角度 $${\theta_{(t)}}$$ を求めるシートです。

A列は、先ほどのシート[ω(t) →]の時間 $${t}$$ を参照しています。
B列は、先ほどのシート[ω(t) →]の角速度 $${\omega_{(t)}}$$ を参照して時間積分し、角度 $${\theta_{(t)}}$$ を求めています。
時間積分した値は、次の台形近似の式をB列に入力し、1行ごとに積み上げ計算することで求めています。
$$
\theta_{t} = \theta_{t-dt} + \frac{(\omega_{t} + \omega_{t-dt})\times dt}{2}\\
$$
ただし、$${\theta_{t=0}=\phi=0}$$
▶ シート[Y(t)=Asinθ(t)]
角度 $${\theta_{(t)}}$$ をもとに正弦波 $${Y(t)}$$ を求めるシートです。

A列は、先ほどのシート[θ(t)=∫ω(t)dt+φ →]の時間 $${t}$$ を参照しています。
B列は、先ほどのシート[θ(t)=∫ω(t)dt+φ →]の角度 $${\theta_{(t)}}$$ を参照して、正弦波 $${Y(t)=A\sin\theta(t)}$$ を求めています。(ただし、$${A=1}$$)
角速度を変えれば、波の周期や形状も変化します。
こんなの、何に使うの?って思いましたか?
たとえば、この正弦波モデルを使えば『ド〜レ〜ミ〜ファ〜ソ〜』といった波形の主成分を再現できます。そのため、楽器の共鳴現象をシミュレーションするときの入力波として利用できます。
このように、シミュレーションの世界では『入力波』としてよく使われています。
✔︎ おわりに
今回のテーマはExcelで正弦波を再現することでしたが、本当の主役は『設計図』でした。設計図を描くことで、Excelで正弦波を再現するときの『入力→処理→出力』の構造が明確になったはずです。
計算ツールを立ち上げる前に、まず『設計図』を描く。
それだけで、思考が整理され、ミスが減り、信頼性が増します。
たとえAIが代わりにプログラミングしてくれる時代になっても、設計図を描く力、すなわち構造をつくる力は、これからの時代も必要になるはずです!
🔗 続けて読みたい記事
小学校で競うように覚えた円周率 3.14・・・
もし、自分で求められる としたら、やってみたいですよね?
少しでも参考になったと思ったら、
スキやフォローしていただけると、
次の記事を作成する励みになります!
いいなと思ったら応援しよう!
もし具体的に何かのお役に立てたなら、チップで応援していただけると励みになります!
いただいたチップは、今後の活動に使わせていただきます😊