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 on Jul. 27, 2013, Feb. 04, 2014, Jun. 11, 2014, Mar. 16, 2015, May 05, 2020, Feb. 03, 2021 and May 05, 2021.