下の記事をまだ読んでいない場合は、一度目を通してくださいね!
波の重ね合わせ
2つの波が重ね合わさったときに現れる波の形は、それぞれの波の変位を足し合わせたものとなります。これを波の重ね合わせの原理といいます。波が重ね合わさってできた波を合成波と言います。
合成波の変位yは、波1による変位y1と、波2による変位y2の単純な和となります。
$$y=y_1+y_2$$
ということです。
定常波とは
波長、振幅、周期の等しい2つの正弦波が、お互いに逆向きに進むとき、その2つの波が重なり合ったときの合成波を定常波とよびます。
ここで、発生させる2つの正弦波に対する仮定を示します
時刻\(t=0\)に、位置\(x=x_{01}\)から生じる右向きに進む波
この正弦波1による位置\(x\)での変位\(y_1\)は
$$y_1=\sin 2 \pi f\left( t-\frac{x-x_{01}}{v} \right)$$と表すことができます。
時刻\(t=0\)に、位置\(x=x_{02}\)から生じる左向きに進む波
この正弦波2による位置\(x\)での変位\(y_2\)は
$$y_2=\sin 2 \pi f\left( t+\frac{x-x_{02}}{v} \right)$$と表すことができます。
ですので、この2つの波の重ね合わせによってできる合成波(定常波)の変位yは
$$y=\sin 2 \pi f\left( t-\frac{x-x_{01}}{v} \right)+\sin 2 \pi f\left( t+\frac{x-x_{02}}{v} \right)$$となります!
再生する
このように、重なり合う2つの波は、まるで進むことなく、その場に留まったような振る舞いをします。だから、定常波とよばれるんですね。
定常波の特徴としての、腹と節も観察することができます。
定常波のC#スクリプト
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class StandingWave : MonoBehaviour
{
public float amp = 4.0f;
public float fre = 0.25f;
public float spd = 5.0f;
public float x_01 = 0.0f; //正弦波1の波源の位置
public float x_02 = 25.0f;//正弦波2の波源の位置
private float PI = Mathf.PI ;
Transform myTransform;
void Awake()
{
myTransform = this.transform;
}
void FixedUpdate()
{
float x = myTransform.position.x;
float z = myTransform.position.z;
float Dis1 = x - x_01;
float Dis2 = x - x_02;
float height1;
float height2;
//--------------はじめに媒質を静止させておき、波が到達したら動き出すようにする----------
if (Dis1 <= spd * Time.time)
{
height1 = amp * Mathf.Sin(2.0f * PI * fre * (Time.time - (Dis1 / spd)));
}
else
{
height1 = 0.0f ;
}
if (Dis2 >= -1.0f*spd * Time.time)
{
height2 = amp * Mathf.Sin(2.0f * PI * fre * (Time.time + (Dis2 / spd)));
}
else
{
height2 = 0.0f ;
}
//----------------------------------------------------------------------------
//--------------------波の重ね合わせ---------------------
float height = height1+ height2;
//-----------------------------------------------------
myTransform.position = new Vector3(x, height, z);
}
}
以上です!ありがとうございました。
また、3次元の波にも挑戦してみます。
勉強させてもらってます!楽しい!
コメント