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, May 05, 2021 and Apr. 01, 2022.