rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
scm_infsup_lb.m
Go to the documentation of this file.
1 function alpha_LB = scm_infsup_lb(mu,model,operator,SCM_data)
2 %alpha_LB = scm_infsup_lb(mu,model,model_data)
3 % computation of the lowerbound of the coercive constant
4 % equal to the coercive constant computet via SCM
5 %
6 % mu : parameter which lower bound value is desired
7 % model : standart model
8 % model_data : standart model data
9 % SCM_data : precomputed offline SCM data (e.g. via scm_coercive_greedy)
10 
11 % David Kreplin 01.12 2014
12 
13 
14 if isfield(SCM_data,'C') == 0
15  error('SCM Greedy computation is required first')
16 end
17 
18 ind =@ (i,j,q) j + (i-1)*q - i*(i-1)/2;
19 [~,Ind_PMa] = scm_get_neighbours(SCM_data.params.Ma, mu, SCM_data.C.Set);
20 [PMp,Ind_PMp] = scm_get_neighbours(SCM_data.params.Mp, mu, SCM_data.params.ParameterSet);
21 Ma = length(Ind_PMa);
22 Mp = length(Ind_PMp);
23 b_lp= zeros(Ma+Mp,1);
24 A_lp= zeros(Ma+Mp,(SCM_data.params.Q)*(SCM_data.params.Q+1)/2);
25 
26 b_lp(1:Ma) = -1*SCM_data.C.infsup(Ind_PMa(1:Ma));
27 A_lp(1:Ma,:) = SCM_data.C.ParameterVector(Ind_PMa(:,1:Ma),:);
28 
29 for n = 1:Mp
30  model = set_mu(model,PMp(:,n));
31  model.decomp_mode=2;
32  [A,~] = operator(model);
33 
34  for i=1:SCM_data.params.Q
35  for j=i:SCM_data.params.Q
36  A_lp(n+Ma,ind(i,j,model.SCM_data.Q)) = -(2-(i==j))*(A(i)*A(j));
37  end
38  end
39 end
40 
41 model = set_mu(model,mu);
42 model.decomp_mode=2;
43 [A,~] = operator(model);
44 f_lp = zeros(1,(SCM_data.params.Q)*(SCM_data.params.Q+1)/2);
45 for i=1:SCM_data.params.Q
46  for j=i:SCM_data.params.Q
47  f_lp(ind(i,j,SCM_data.params.Q)) = (2-(i==j))*(A(i)*A(j));
48  end
49 end
50 
51 Options = optimset('Display','off');
52 %keyboard;
53 [~,alpha_LB]=linprog(f_lp,A_lp,b_lp,[],[],SCM_data.lower_bound_infsup,...
54  SCM_data.upper_bound_infsup,SCM_data.upper_bound_infsup,Options);
55 %keyboard;
56 end
function alpha_LB = scm_infsup_lb(mu, model, operator, SCM_data)
alpha_LB = scm_infsup_lb(mu,model,model_data) computation of the lowerbound of the coercive constant ...
Definition: scm_infsup_lb.m:17
function SCM_data = scm_coercive_greedy(model, params, operator, innerproduct_matrix)
model=scm_greedy(model, model_data)
function [ P_M , ind ] = scm_get_neighbours(M, mu, C)
[P_M, ind] = scm_get_neighbours(M, mu, C)