反応モデル
- 多分子の結合解離のモデルのつづき
- ソースは "時間dt ごとに 1回衝突する" というルールを表すように書いた
- なので " 時間 k * dt ごとに k 回 衝突する" というルールも基本的には同じになるはず
- ただし
M<-min(floor(Nfree/2),Mmax) #衝突の回数
という部分では k に比例しない関係が導かれるので、この処理が行われる場合kについての線型性が失われるはず
N<-50 #分子数 tau<-1 #結合時間の半減期 T<-1000 #シミュレーション時間 X<-rep(0,N) #各分子が結合している時刻をおさめていく k<-4 dt<-0.1*k #シミュレーションの刻み幅 Mmax<-1*k #dtにおこる衝突の回数 Nt<-T/dt #シミュレーション回数 t<-0 v<-c() #結合している分子の数をおさめる for(nt in 1:Nt){ Nfree<-sum(X<=t) #遊離している分子の回数 M<-min(floor(Nfree/2),Mmax) #衝突の回数 if(M !=0){ for(m in 1:M){ select<-sample(which(X<=t),2,replace=FALSE) #2分子選ぶ duration<-rexp(1,rate=1/tau) #duration<-runif(1) X[select]<-duration+t }} t<-t+dt v[nt]<-sum(X>t) } par(mfrow=c(1,2)) plot(v,type="l",xlab="time",ylab="combined",col=4,ylim=c(0,N)) hist(v,breaks=N,col=3,xlab="Number of binding molecles",xlim=c(0,N))