以下に、周期境界条件を使用して 1D で確率的熱方程式を解くコードの一部を示します。確率項はガウス ホワイト ノイズです。
私の質問は、ノイズを正しく実装していますか?
ガウス ノイズは、平均ゼロと 2 番目のモーメントを持つものとして定義されます。これは、時間の任意のペアの値が同じように分布し、統計的に独立していることを示します。
!I first define arrays for the uniform and gaussian random numbers
real, dimension (-1:n) :: u,v,x1,x2,y1,y2
real :: k=0.005,h=0.1,R !time and position step, respectively
R=k/h**2.
!generate Uniform, then Gaussian Random numbers for White Gaussian Noise
call random_seed
call random_number(x1)
call random_number(x2)
y1=sqrt(-2*log(x1))*cos(2*pi*x2)
y2=sqrt(-2*log(x1))*sin(2*pi*x2)
y1=y1*sigma+mu
y2=y2*sigma+mu
do i=0,n-1
v(0)=v(n)
v(-1)=v(n-1)
v(i) = (1-2.0*R)*u(i)+R*(u(i+1)+u(i-1))+k*y1(i) !discretized stochastic heat eqn
end do
これはガウス ノイズをコードに追加する適切な方法ですか? ガウス乱数 y1 のみを使用します。y2 は必要ありません。これは正しいです?ありがとう!