2012-03-25 15 views
2

粒子の状態をシミュレートしたいとしましょう。これは、与えられたフレームで通常(0)または励起(1)にすることができます。粒子は時間の励起状態にある。パーティクルが励起状態にある場合、パーティクルは〜Lフレーム(ポアソン分布)で持続します。私は、N個の時点についてその状態をシミュレートしたいと思う。matlab:手振り状態シミュレーション

N = 1000; 
f = 0.3; 
L = 5; 

と結果は0.3

それを行う方法

に近い合計が

state(1:N) = [0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 ... and so on] 

のようなもの(状態)/ Nになりますので、入力には、例えばありますか? ありがとう!

+0

粒子が状態を反転する確率はいくらですか? –

+0

あなたはそれが何を意味するのか本当にわかりません。私が正確にやりたいことは、2つの異なる拡散係数を持つ粒子の拡散挙動をシミュレートし、より速い成分と遅い成分の定義された割合(f)と、1つの状態または別のものにおけるある種の寿命をシミュレートすることです。私は最初に状態をシミュレートしたい(この場合は2つ、おそらくより多く)、状態に応じて変位と座標をシミュレートする(速くするか遅いか...)。私はそれが最良の方法であるかどうかはわかりませんが、それは私の心の中で最初のものでした:) – Art

+0

@ NoamN.Kremen f = 0.3で、状態1の長さは5です。平均値は約17(5/0.3)でなければならないので、0から1へのフリップの変化は0.06です。編集:このステートメントが完全に真であるかどうかは分かりません。 – Bernhard

答えて

2
%% parameters 
f = 0.3; % probability of state 1 
L1 = 5; % average time in state 1 
N = 1e4; 
s0 = 1; % init. state 
%% run simulation 
L0 = L1 * (1/f - 1); % average time state 0 lasts 
p01 = 1/L0; % probability to switch from 0 to 1 
p10 = 1/L1; % probability to switch from 1 to 0 
p00 = 1 - p01; 
p11 = 1 - p10; 
sm = [p00, p01; p10, p11]; % build stochastic matrix (state machine) 
bins = [0, 1]; % possible states 
states = zeros(N, 1); 
assert(all(sum(sm, 2) == 1), 'not a stochastic matrix'); 
smc = cumsum(sm, 2); % cummulative matrix 
xi = find(bins == s0); 
for k = 1 : N 
    yi = find(smc(xi, :) > rand, 1, 'first'); 
    states(k) = bins(yi); 
    xi = yi; 
end 
%% check result 
ds = [states(1); diff(states)]; 
idx_begin = find(ds == 1 & states == 1); 
idx_end = find(ds == -1 & states == 0); 
if idx_end(end) < idx_begin(end) 
    idx_end = [idx_end; N + 1]; 
end 
df = idx_end - idx_begin; 
fprintf('prob(state = 1) = %g; avg. time(state = 1) = %g\n', sum(states)/N, mean(df)); 
+0

これは素晴らしいです、ありがとうSerg! – Art

2

励起状態の平均長さは5である。正常状態の平均長さは、したがって約12でなければならない。

このような戦略をとることができます。状態0で

  • スタート
  • aゼロ
  • た状態のアレイは、平均LでPoission分布から乱数bを描画塗りつぶし平均L*(1-f)/f
  • とポアソン分布から乱数aを描き
  • 状態配列witb bを記入してください。
  • 繰り返し

もう一つの選択肢は、0-> 1、1-> 0の確率が等しくない確率を、スイッチングの観点から考えることであろう。

関連する問題