LINE Solver
MATLAB API documentation
Loading...
Searching...
No Matches
kpcfit_ph_summary.m
1%% plot distance function
2dist_exact = [];
3ord_exact = [];
4mom_exact = [];
5best_exact = Inf;
6best_exact_pos = 0;
7dist_apxms = [];
8ord_apxms = [];
9mom_apxms = [];
10best_apxms = Inf;
11best_apxms_pos = 0;
12dist_apxps = [];
13ord_apxps = [];
14mom_apxps = [];
15best_apxps = Inf;
16best_apxps_pos = 0;
17for i=1:size(PH,1)
18 if strcmpi(PH{i,4},'exact')
19 ord_exact(end+1) = length(PH{i,1}{1});
20 dist_exact(end+1) = PH{i,2};
21 mom_exact(end+1,1:length(E)) = map_moment(PH{i,1},1:length(E));
22 if best_exact_pos == 0 || best_exact > dist_exact(end)
23 best_exact = dist_exact(end);
24 best_exact_pos = i;
25 best_exact_relpos = length(ord_exact);
26 end
27 elseif strcmpi(PH{i,4},'approx_param_space')
28 ord_apxps(end+1) = length(PH{i,1}{1});
29 dist_apxps(end+1) = PH{i,2};
30 mom_apxps(end+1,1:length(E)) = map_moment(PH{i,1},1:length(E));
31 if best_apxps_pos == 0 || best_apxps > dist_apxps(end)
32 best_apxps = dist_apxps(end);
33 best_apxps_pos = i;
34 best_apxps_relpos = length(ord_apxps);
35 end
36 elseif strcmpi(PH{i,4},'approx_moment_space')
37 ord_apxms(end+1) = length(PH{i,1}{1});
38 dist_apxms(end+1) = PH{i,2};
39 mom_apxms(end+1,1:length(E)) = map_moment(PH{i,1},1:length(E));
40 if best_apxms_pos == 0 || best_apxms > dist_apxms(end)
41 best_apxms = dist_apxms(end);
42 best_apxms_pos = i;
43 best_apxms_relpos = length(ord_apxms);
44 end
45 end
46end
47%%
48% loglog(ord_exact,dist_exact,'x-');
49% hold all;
50% loglog(ord_apxms,dist_apxms,'o-');
51% loglog(ord_apxps,dist_apxps,'*-');
52%
53% ylabel('moment set distance')
54% xlabel('number of states (PH order)')
55% xlim([min([ord_exact,ord_apxms,ord_apxps]/2),max([ord_exact,ord_apxms,ord_apxps]*2)])
56% legend(sprintf('best exact mom. match (idx=%d)',best_exact_pos), sprintf('best approx - mom. space (idx=%d)',best_apxps_pos), sprintf('best approx - param. space (idx=%d)',best_apxms_pos), 'Location', 'Best')
57% title(trace_name)
58%% moment values
59fprintf('Log10\tTRACE ',j)
60for j=1:length(ord_exact)
61 fprintf('\tEXMM (idx=%d) ',j)
62end
63for j=1:length(ord_apxms)
64 fprintf('\tAPXMS (idx=%d) ',length(ord_exact)+j)
65end
66for j=1:length(ord_apxps)
67 fprintf('\tAPXPS (idx=%d) ',length(ord_exact)+length(ord_apxms)+j)
68end
69for k=1:length(E)
70 if k==1
71 fprintf('\nE[X]')
72 else
73 fprintf('\nE[X^%d]',k)
74 end
75 fprintf('\t%13d',log10(E(k)))
76 for j=1:length(ord_exact)
77 fprintf('\t%13d',log10(mom_exact(j,k)))
78 end
79 for j=1:length(ord_apxms)
80 fprintf('\t%13d',log10(mom_apxms(j,k)+eps))
81 end
82 for j=1:length(ord_apxps)
83 fprintf('\t%13d',log10(mom_apxps(j,k)+eps))
84 end
85end
86fprintf('\n')
87%% best moment plot
88figure
89plot(1:length(E),log(E),'k-')
90hold on
91if exist('best_exact_relpos')
92plot(1:length(E),log(mom_exact(best_exact_relpos,1:length(E))),'x')
93end
94if exist('best_apxms_relpos')
95plot(1:length(E),log(mom_apxms(best_apxms_relpos,1:length(E))),'o')
96end
97if exist('best_apxps_relpos')
98plot(1:length(E),log(mom_apxps(best_apxps_relpos,1:length(E))),'d')
99end
100ylabel('log E[X^k]')
101xlabel('moment order k')
102legend('trace', sprintf('best exact mom. match (idx=%d)',best_exact_pos), sprintf('best approx - mom. space (idx=%d)',best_apxms_pos), sprintf('best approx - param. space (idx=%d)',best_apxps_pos), 'Location', 'Best')
103%title(trace_name)
104