🖱️ クリック — 波源を追加
🖱️ ドラッグ — 連続波紋を生成
📱 タップ/スワイプ — タッチ操作も対応
💡 プリセットで干渉縞を観察しよう
クリックで池に石を投げ入れよう。2次元波動方程式をリアルタイムで解き、波の干渉・回折・減衰を美しく可視化します。
🖱️ クリック — 波源を追加
🖱️ ドラッグ — 連続波紋を生成
📱 タップ/スワイプ — タッチ操作も対応
💡 プリセットで干渉縞を観察しよう
$u(x,y,t)$ は水面変位、$c$ は波速 [m/s]。有限差分法(陽解法)で離散化すると:
各ステップ後に $u \leftarrow u \times d$($d$ は減衰係数)を掛けてエネルギー損失を再現します。
ホイヘンスの原理:波面上の各点は新たな球面波(2Dでは円形波)の波源とみなせる。
2つの波源 $S_1, S_2$ からの波の重ね合わせ:
2波源プリセットを実行すると、双曲線状の明暗縞(干渉縞)が美しく現れます。
同じ波動方程式が以下のCAE分野に登場します:
クーラン数(Courant number)が安定性を決定します:
このシミュレーターでは $\text{CFL}= 0.5$ で固定し、常に安定解が得られるよう設計しています。波速スライダーを変えると $\Delta t$ が自動調整されます。
このシミュレーターの核心は、2次元の波動方程式です。これは、ある点での変位(例えば水面の高さ)の時間変化と、周囲との空間的な変化の関係を表します。
$$\frac{\partial^2 u}{\partial t^2}= c^2 \left( \frac{\partial^2 u}{\partial x^2}+ \frac{\partial^2 u}{\partial y^2}\right)$$ここで、$u(x,y,t)$は位置$(x,y)$、時刻$t$における変位(波の高さ)、$c$は波の伝播速度です。左辺は変位の時間的な加速度(波の揺れ戻る勢い)、右辺は隣接点との変位の差(隣を引っ張る力)を表しており、これが波の伝播を生み出します。
シミュレーターでは、現実のエネルギー損失を考慮するため、減衰項を加えた次のような離散化された式を計算しています(有限差分法・陽解法)。
$$u^{new}= (2 - d)u^{current}- (1 - d)u^{old}+ (c \cdot \Delta t / \Delta x)^2 \cdot \nabla^2 u^{current}$$$d$は減衰係数(Damping)、$\nabla^2 u$は現在の変位のラプラシアン(周囲4点との差の合計)です。この計算を全ての格子点で繰り返すことで、波紋がリアルタイムで伝わっていく様子を再現しています。
室内音響・騒音解析:コンサートホールやスタジオの設計では、壁や天井での音波の反射・干渉をシミュレーションし、音の響きや雑音の伝わり方を予測します。このツールで見る干渉縞は、音の「うなり」や「定在波」の2次元版と考えられます。
マイクロフォンやスピーカーのアレイ設計:複数のマイクやスピーカーを配置したとき、特定の方向からの音を強調したり、逆にノイズを打ち消したりする技術(ビームフォーミング)の基礎原理は、波の干渉です。シミュレーターで波源を複数置く操作はその基礎体験です。
地震波伝播解析:地盤中を伝わる地震波(表面波)のシミュレーションにも同様の波動方程式が用いられます。地盤の不均質性(波速cの違い)が波の伝わり方にどう影響するかを調べ、建物の耐震設計に役立てます。
流体表面波のシミュレーション:船舶が作る波や、沿岸域での波浪の伝播を予測する際にも応用されます。より複雑な方程式の基礎となるため、このようなシンプルな2Dシミュレーターで原理を理解することは重要です。
このシミュレーターを使い始めるとき、いくつか勘違いしやすいポイントがあるよ。まず、「波速c」を大きくしすぎるとシミュレーションが発散(数値が爆発)してしまうことがある。これは、CFL条件という制約を破ってしまうからだ。ざっくり言うと、波が1ステップで進む距離が、計算格子の間隔を超えないようにしないと、物理的に不自然な結果になるんだ。例えば、格子間隔が1で波速cを100にもすると、たちまち計算が破綻する。実務のCAEソフトも内部でこの条件をチェックしているけど、このツールでは自分で調整する必要があることを覚えておこう。
次に、「減衰」の設定。これをゼロに近づけると波が永遠に揺れ続ける理想的な系になるが、現実のほとんどの現象、例えば建築物の振動や音響では、必ず何らかの減衰(制振)が存在する。減衰を無視した設計は共振による破壊を招くリスクがある。逆に、減衰を大きくしすぎると現象の本質である干渉パターンが観察しにくくなる。バランスが大事だね。
最後に、このシミュレーションは「線形」の波動方程式が基礎だ。つまり、波の高さが大きくなっても波速が変わらないし、波同士がぶつかってもそのまま素通りする(非線形効果がない)。実際の大きな波(例えば津波)や、ある種の光学現象では非線形性が重要になるけど、まずはこの線形モデルで基本を押さえることが全てのスタート地点だ。
この波紋プールで体験している計算は、実に様々な工学分野の根底を流れる「共通言語」なんだ。まず挙げるのは構造力学・振動解析だ。薄板(例えばスマートフォンの筐体や航空機の翼皮)の振動は、2次元の波動方程式そのものでモデル化できる。クリックで加える点振動は、衝撃を与えた箇所に相当し、板の中を伝わる「たわみ波」として観察できる。
もう一つは電磁気学・無線通信分野。電波(電磁波)の伝搬も波動方程式に従う。このシミュレーターのプールが無限に広がる空間だとすれば、アンテナから放射された電波がどう広がるかのイメージがつく。特に、複数のアンテナ素子を配置するフェーズドアレイレーダーやMIMO通信の原理は、まさに「2波源」で見た干渉パターンを能動的に制御して、ビームを形成したりする技術だ。
さらに地球物理学では、地震波の伝播シミュレーションにこの手法が応用される。地下の様々な地層(速度cが異なる領域)を通過する地震波の伝わり方を解析することで、地下構造を探査できる。シミュレーターの「波速c」を場所によって変えられれば、それに近いことが再現できるね。
このツールに慣れてきたら、次のステップに進んでみよう。まずは数値解法の理解だ。解説に出てきた有限差分法の陽解法は直感的だが、条件が厳しい。次の学習トピックとしては、より安定な陰解法や、複雑な形状に対応できる有限要素法(FEM)を学ぶと良い。FEMはCAEソフトのほぼ標準的な解法だから、必須の知識だ。
数学的には、波動方程式の解を理解するためにフーリエ変換の概念が強力な武器になる。どんな複雑な波形も、単純な正弦波(Sin波)の重ね合わせで表現できるという考え方だ。これが分かると、振動や音響の「周波数解析」の意味が深く理解できるようになる。例えば、減衰の設定を変えた時に、波の形(波形)だけでなく、含まれる周波数成分がどう変わるかを考えてみるのは良い練習だ。
実践的な次の一歩としては、プログラミング環境(PythonのNumPyやMATLABなど)を使って、自分でこのシミュレーターと同じ計算をコーディングしてみることを強くお勧めする。パラメータを自由に変え、境界条件(例えば、壁で完全に反射する、あるいは吸収する)を実装してみると、数値シミュレーションの本質が手に取るようにわかるようになるよ。