// $Id: bd_smart.txt 581 2007-02-23 22:38:21Z asminer $ /* Birth-death CTMC. User-specified number of states, rate lambda, rate mu. */ ctmc birthdeath(int N, real lambda, real mu) := { for (int n in {0..N}) { state s[n]; real probstate[n] := prob_ss(in_state(s[n])); } // don't need initial distribution for (int n in {1..N}) { arcs( s[n-1] : s[n] : lambda, s[n] : s[n-1] : mu ); } }; int n := read_int("number of states"); real l := read_real("lambda"); real u := read_real("mu"); compute(n); // force evaluation of n compute(l); compute(u); print("Solving ", n, " state birth-death CTMC\n"); #Verbose true compute(birthdeath(n, l, u).probstate[0]); // force computation of measures #Verbose false for (int i in {0..n}) { print("Probability for state ", i, " is ", birthdeath(n, l, u).probstate[i], "\n"); }