root/applications/dual/SIDP/bakalarka/SIDPS/matlab/jednoduchy system/sidp3.asv @ 1351

Revision 1351, 2.8 kB (checked in by zimamiro, 13 years ago)
Line 
1function [w x]=sidp3(sidp_parameters, compare_parameters,system,apriori)
2kresli=1;
3eps=10^-4;
4mode=0;
5q=0;
6col(1)='b';col(2)='r' ;col(3)='c' ;col(4)='m' ;col(5)='y';
7kresli=1;a=0; b=0;
8compare_parameters.student=quantile(trnd((sidp_parameters.num_of_candidates-1)*ones(1,100000)),(1-compare_parameters.alpha)^(1/(sidp_parameters.num_of_candidates-1)));
9compare_parameters.rinott=4;
10
11apriori.eta0=abs(apriori.y0)/system.sigma;
12%apriori.eta0=0;
13
14apriori.beta0=abs(apriori.b0)/sqrt(apriori.P0);
15apriori.beta0_range=2*apriori.P0/sqrt(apriori.P0);   
16if apriori.beta0-apriori.beta0_range<eps
17    apriori.beta0=(abs(apriori.b0)+2*apriori.P0)/2/sqrt(apriori.P0);
18    apriori.beta0_range=apriori.beta0-eps;
19end
20
21[H C]=init_hyperstate(sidp_parameters.n_grid,apriori,mode);  %vytvori H a mi, nastavi H0 a mi*
22
23min_distance_C=0.5*sidp_parameters.search_region_init;
24min_distance_H=(H(1,end)-H(1,1))/50;
25
26if (kresli); [los1 los2]=mc_study(system,apriori,1000); q=q+1; w(q)=los1(1)/los1(3); x(q)=los2(1)/los2(3); end
27
28
29
30    for j=1:sidp_parameters.n_iter
31        j
32        %search_region=sidp_parameters.gama^(j-1)*sidp_parameters.lambda^(i-1)*sidp_parameters.search_region_init;     
33        search_region=sidp_parameters.gama^(j-1)*sidp_parameters.search_region_init;     
34        %prolez mrizku a iteruj rizeni
35        for k=1:sidp_parameters.n_grid
36            candidates=generate_candidates(C(k), search_region, sidp_parameters.num_of_candidates);
37            [C(k) mean_values]=choose_best_control(H,C,k,apriori,sidp_parameters.horizont,candidates,compare_parameters);
38        end
39       
40if (kresli); [los1 los2]=mc_study(system,apriori,1000); q=q+1; w(q)=los1(2)/los1(3); x(q)=los2(2)/los2(3); end
41       
42        vypis=H;
43        save 'Beta.txt' vypis -ASCII;
44        save 'C.txt' C -ASCII;
45       
46        %pokud je mrizka prilis hruba, zjemni ji tamkde je treba
47        for k=1:sidp_parameters.n_grid-1
48            if (abs(C(k)-C(k+1))>min_distance_C && sidp_parameters.n_grid<sidp_parameters.n_grid_max && H(k+1)-H(k)>min_distance_H)
49        %       [H C]=update(H,C,k); sidp_parameters.n_grid=sidp_parameters.n_grid+1;
50            end
51        end
52       
53        if (kresli); subplot(2,1,1); plot(H,C,['',col(j)]); hold on; a=max(a,max(C(:))); b=min(b,min(C(:)));end
54    end
55   
56    if (kresli);
57        xlabel('\fontsize{18} \beta'); ylabel('\fontsize{18} \nu^{ (2)}_0');
58        set(gca,'ylim',[b a]);
59        set(gca,'xlim',[0 H(end)]);
60        legend('\pi_1','\pi_2','\pi_3','\pi_4');
61        subplot(2,1,2);
62        plot(0:sidp_parameters.n_iter,[w' x' ones(size(x,2),1)]); xlabel('\fontsize{18} iterace'); ylabel('\fontsize{18} relativn�tr�'); legend('mean','median');set(gca,'ylim',[0.99 max(w(1),x(1))]); set(gca,'xtick',0:sidp_parameters.n_iter); set( get(gcf, 'Children'), 'FontSize', 18);
63    end
64        %[w;x]
65end
Note: See TracBrowser for help on using the browser.