function [H_new zero range eigvec u]=update_hyperstate(H_old,zero, range, eigvec, u,n_grid,sigma,H_full) next_u=zeros(1,size(H_old,2)); step=[1 n_grid n_grid^2]; rozsah_min=[1;0;0]; rozsah_max=[n_grid; n_grid-1; n_grid-1]; stav1=zeros(3,1); H_new=generate_trajectories(H_old,u,sigma); for i=2:size(H_new,1) pom(:,:)=H_new(i,:,:); [H_new(i,:,:) next_zero next_range next_eigvec]=make_box3(pom,n_grid); %rovnomerne rozmisti body v zasazenem regionu if (H_full) %kopirovani stareho u* do H_new for j=1:size(H_new,2) stav(1)=H_new(i,j,1)-zero(i,1); stav(2)=H_new(i,j,2)-zero(i,2); stav(3)=H_new(i,j,3)-zero(i,3); for p=1:3 stav1(p)=(stav(1)*eigvec(i,1,p)+stav(2)*eigvec(i,2,p)+stav(3)*eigvec(i,3,p))*range(i,p); end index=step*max(min(round(stav1*(n_grid-1))+rozsah_min,rozsah_max),rozsah_min); next_u(j)=u(i,index); end for j=1:size(H_new,2) u(i,j)= next_u(j); end end zero(i,:)=next_zero; range(i,:)=next_range; eigvec(i,:,:)=next_eigvec; end end