function H=sidp_transformace(sidp_parameters, rsss_parameters,system,apriori) %transformace eps=10^-3; system.dim=2; apriori.eta_tilda0=eps; apriori.eta_tilda0_range=apriori.y0_range/(system.sigma+apriori.y0_range); apriori.beta_tilda0=eps; apriori.beta_tilda0_range=apriori.b0_range^2/(apriori.P0+apriori.b0_range^2); %pomocne promenne a konstanty step=[1 sidp_parameters.n_grid]; zero=zeros(sidp_parameters.horizont,2); %zero(1,:) nema smysl, ale takhle je to pekne range=zeros(sidp_parameters.horizont,2); eigvec=zeros(sidp_parameters.horizont,2,2); [H,mi]=init_hyperstate(sidp_parameters,apriori); %vytvori H a mi, nastavi H0 a mi* for i=1:sidp_parameters.n_pass for j=1:sidp_parameters.n_iter [i j] search_region=sidp_parameters.gama^(j-1)*sidp_parameters.lambda^(i-1)*sidp_parameters.search_region_init; [H zero range eigvec mi]=update_hyperstate(H,zero, range, eigvec,mi,sidp_parameters.n_grid,1+(i+j>2)); %vygeneruje trajektorie, v zasazenem regionu rovnomerne rozmisti body a prekopiruje nalezena mi* %>1 for k=sidp_parameters.horizont:-1:1 %pozor na meze level=sidp_parameters.horizont+1-k; k for l=1:size(H,2) %if mod(l,1000)==0 % l %end candidates=H(k,l,2)/H(k,l,1)*generate_candidates(H(k,l,1)/H(k,l,2)*mi(k,l), search_region, sidp_parameters.num_of_candidates,sidp_parameters.generate_candidates_mode); %_H(k,l,2)/H(k,l,1) %compare candidates %simple comparing realization1=zeros(size(candidates,1),rsss_parameters.n0); state(1,:)=H(k,l,:); for m=1:sidp_parameters.num_of_candidates best_control=candidates(m); for n=1:rsss_parameters.n0 %generate realization for o=1:level eta_0=state(1)/(1+eps-state(1)); beta_0=sqrt(state(2)/(1+eps-state(2))); best_control=-best_control *eta_0/beta_0; s=randn; pom=sqrt(1+best_control^2); eta_1=abs(eta_0+beta_0*best_control+pom*s); next_state(1)=eta_1/(1+eta_1); realization1(m,n)=realization1(m,n)+(eta_1)^2; if o