1% This example shows the computation of the generator
5envModel = Env(
'MyEnv');
6envName = {
'Stage1',
'Stage2',
'Stage3'};
7envType = {
'UP',
'DOWN',
'FAST'};
9rate = ones(M,E); rate(M,1:E)=(1:E); rate(1,1:E)=(E:-1:1);
11qn1 = renv_genqn(rate(:,1),N);
12qn2 = renv_genqn(rate(:,2),N);
13qn3 = renv_genqn(rate(:,3),N);
15envSubModel = {qn1,qn2,qn3};
17 envModel.addStage(envName{e}, envType{e}, envSubModel{e});
24 envModel.addTransition(envName{e}, envName{h}, Erlang.fitMeanAndOrder(1/envRates(e,h),e+h));
30fprintf(1,
'The metasolver considers an environment with 3 stages and a queueing network with 2 stations.\n')
31fprintf(1,'This example illustrates the computation of the infinitesimal generator of the system.\n')
35options = Solver.defaultOptions;
36options.timespan = [0,Inf];
37options.iter_max = 100;
38options.iter_tol = 0.05;
39options.method = 'default';
41soptions = CTMC.defaultOptions;
42soptions.timespan = [0,Inf];
44soptions.stiff = false;
45envSolver = BLN(envModel, @(model) CTMC(model, soptions), options);
46[infGen,stageInfGen] = envSolver.getGenerator()