TDCC LABORATORY
TDCC 研究室


  HOME ENGLISH                                       

海岸に打ち寄せる波の簡単なシミュレーション

山本 信雄

   海岸に打ち寄せる波の形を流体力学的に解くことは、強い非線形性が働いているために非常に困難です。そこで、科学的正確さを欠くけれども、簡単化した仮定の上に、その形をシミュレートしてみました。
   沖の海面の波が正弦波であるとして、その波が海岸に近付くときに、浅くなる海底との摩擦の影響や返す波との相互作用などによって、波の高さの位置 y によって波の位相速度が変わってくるために波頭が現れて、やがて、重力で波頭が崩れます。このときの高さの位置 y に対する位相速度の相対的な"ずれ"を、以下の2通りの方法で仮定して、打ち寄せる波のシミュレーションを行うものです。この仮定そのものが観念的に設けたものなので、直にいえば非科学的です。が、視覚的に面白いので載せました。
   沖から海岸に向かうにつれて、上記摩擦などの影響で、位相速度が減じます。すなわち、波長が短くなります。位相速度に乗った系で、位相角に対する波形を表示しますので、その波長の変化は陽に現れないことに注意してください。
   また、重力による波頭の崩れを無視しています。

1.   方法1

   波の高さの位置 y に対する位相速度の相対的な"ずれ"が y に比例し、その大きさが時間的にも一定であると仮定します。この仮定の下に、波数で規格化した時刻 t に対する波形を表す方程式は次式のようになります。
            ,                    (1)
ただし、x は波の位相角を表し、c は摩擦などが位相速度の"ずれ"にどの程度の影響を及ぼすかの程度を示します。
   c=1 として、(1)式を各時刻 t (図中では time )毎に計算して図示しますと次のようになります。
   しかし、すぐ分かるように、実際に海岸に打ち寄せる波の形に似ていません。

図1 (1)式から得られる波形



   (1)式を計算して波の図形(図1)を得るための C++ プログラムはこちら 波の図形(図1)の計算プログラムです。画面表示のプログラムをマウスでドラッグしてコピーを取ると,自由にご利用できます。
   次に, C++ システム・ファイル上の「ファイル」の中の「新規作成」をクリックすると,編集画面が現れますが,この画面に上記コピーしたプログラムを貼り付けます。場合によっては編集も行います。そして,「ビルド」をクリックすると実行ファイルが作成されます。さらに,「実行」をクリックすることにより,「wave1.txt」という名のテキストファイルが作られて,計算されたデータ(波形の各 x-y 座標点の座標データ)が格納されます。
   次に,このテキストファイルに格納されたデータをエクセルファイルに移し変えます。それには,エクセルファイルの「外部データの取り込み」機能で行います。ただし,ここに紹介した計算プログラムの場合,テキストファイルに保存されるデータ間の仕切りはカンマ()で指定してありますので,「外部データの取り込み」にはこれを選択します。
   最後に,エクセルファイルに移された各列の x-y 座標データ全てをドラッグした後に,エクセル・ファイルにある「グラフィック・ ウィザード」をクリックして,その中の「散布図」を選び,スムーズなカーブになる絵図をクリックすると波形が描かれます。


2.   方法2

   波の高さの位置 y に対する位相速度の相対的な"ずれ"が、y の指数関数的であると仮定します。この仮定の下に、波数で規格化した時刻 t に対する波形を表す方程式は次式のようになります。
            ,                    (2)
ただし、x は波の位相角を表し、c, k は摩擦などが位相速度の"ずれ"にどの程度の影響を及ぼすかの程度を示します。
   c=k=1 として、(2)式を各時刻 t (図中では time )毎に計算して図示しますと次のようになります。
   これらは、実際に海岸に打ち寄せる波の形に似ています。

図2 (2)式から得られる波形



   (2)式を計算して波の図形(図2)を得るための C++ プログラムはこちら 波の図形(図2)の計算プログラムです。画面表示のプログラムをマウスでドラッグしてコピーを取ると,自由にご利用できます。
   次に, C++ システム・ファイル上の「ファイル」の中の「新規作成」をクリックすると,編集画面が現れますが,この画面に上記コピーしたプログラムを貼り付けます。場合によっては編集も行います。そして,「ビルド」をクリックすると実行ファイルが作成されます。さらに,「実行」をクリックすることにより,「wave2.txt」という名のテキストファイルが作られて,計算されたデータ(波形の各 x-y 座標点の座標データ)が格納されます。
   次に,このテキストファイルに格納されたデータをエクセルファイルに移し変えます。それには,エクセルファイルの「外部データの取り込み」機能で行います。ただし,ここに紹介した計算プログラムの場合,テキストファイルに保存されるデータ間の仕切りはカンマ()で指定してありますので,「外部データの取り込み」にはこれを選択します。
   最後に,エクセルファイルに移された各列の x-y 座標データ全てをドラッグした後に,エクセル・ファイルにある「グラフィック・ ウィザード」をクリックして,その中の「散布図」を選び,スムーズなカーブになる絵図をクリックすると波形が描かれます。

図3 図2を着色したもの

上図をアニメーションで示しますと次のようです。なお、画像の自動切り替え方法はこちら例1のソース(source)と例2を参考にしました。

図4 図3をアニメーションで示したもの



~ブラウザの「戻る」で 前に開いたページに戻ります~

~または、下のボタンを押して HOME に戻ります~



HOME


updated: 2009.02.03, edited by N. Yamamoto
Revised in Jul. 27, 2013, Feb. 04, 2014, Jun. 11, 2014 and Mar. 16, 2015.