拡散と波

  • 様子
    • 拡散は、濃度勾配に比例して物が移動する
    • 波動方程式では、形が移動する
    • 拡散は速度が空間の勾配であって、それは、空間中の点を中心にすると、周囲からの「低さ」
    • 波は速度の時間微分が空間の勾配の変化の程度
    • 拡散
      • \lim_{dt \to 0} (u(x,t+dt)-u(x,t)) =\frac{du}{dt}
      • =C \frac{1}{2}(\lim_{dx\to 0}(u(x+dx,t)-u(x,t)) + \lim_{-dx \to 0} (u(x,t)-u(x-dx,t))
      • = C \frac{1}{2}(\lim_{dx \to 0 } (u(x+dx,t)+u(x-dx,t)-2u(x,t))
# hoge は波
# hoge2 は拡散
nv<-3
M<-M2<-matrix(0,nv,nv)
for(i in 1:(nv-1)){
	M[i,i+1]<-1
	M2[i,i+1]<-1
	M[i+1,i]<--1
	M2[i+1,i]<-1
}
M[nv,1]<-1
M2[nv,1]<-1
M[1,nv]<--1
M2[1,nv]<-1
library(MCMCpack)
nt<-10000
x<-matrix(0,nt,nv)
x[1,]<-rdirichlet(1,rep(1,nv))
x2<-x
r<-0.01
for(i in 2:nt){
	x[i,]<-x[i-1,]
	x2[i,]<-x2[i-1,]
	for(j in 1:nv){
		for(k in 1:nv){
			#x[i,k]<-x[i,k]+r*M[j,k]*x[i-1,j]*x[i-1,k]
			#x[i,j]<-x[i,j]-r*M[j,k]*x[i-1,j]*x[i-1,k]
			x[i,k]<-x[i,k]+r*M[j,k]*x[i-1,j]
			x[i,j]<-x[i,j]-r*M[j,k]*x[i-1,j]
			x2[i,k]<-x2[i,k]+r*M2[j,k]*x2[i-1,j]
			x2[i,j]<-x2[i,j]-r*M2[j,k]*x2[i-1,j]
		}
	}
}

matplot(x,type="l")
matplot(x2,type="l")
plot3d(x[,1],x[,2],x[,3])
plot3d(x2[,1],x2[,2],x2[,3])