global dimension                 
global popsize                   
dimension=30;
popsize=100;              
run_times=20;
max_length=1500;
sample_point=75;

w=1.0; %参数赋值
c1=2.0;
c2=2.0;
vmax=500.0;
xmin=-500.0;
xmax=500.0;
disp=100.0;

current_position=zeros(dimension,popsize);  
current_v=zeros(dimension,popsize);
pbest=zeros(dimension,popsize);
gbest=zeros(dimension,1);
gbest_fitness=zeros(1,popsize);
current_fitness=zeros(1,popsize);
gbest1=zeros(dimension,popsize);
gfitness_sampoint=zeros(run_times,fix(max_length/sample_point));
total_best=zeros(1,run_times);
gfitness_ave=zeros(1,fix(max_length/sample_point));


for i=1:run_times  
    i
    current_position=(xmax-xmin)*rand(dimension,popsize)+xmin; 
    current_v=vmax*rand(dimension,popsize);
    pbest=current_position;
    pbest_fitness=F1_FITNESS(current_position-disp);  
    gbest_fitness=min(pbest_fitness);
    locate=minfitness_locate(pbest_fitness,gbest_fitness);  
    gbest=pbest(:,locate);
    gbest1=repmat(gbest,1,popsize);
    w=0.9;
    for j=1:max_length  
        w=0.9-(j-1)*0.5/(max_length-1);
        current_v=w*current_v+c1*rand(dimension,popsize).*(pbest-current_position)+c2*rand

(dimension,popsize).*(gbest1-current_position);   
        current_v=modify1_v(current_v,vmax); 
        current_position=current_v+current_position;
        current_position=modify_position(current_position,xmax,xmin);  
        current_fitness=F1_FITNESS(current_position-disp);  
        [pbest_fitness,pbest]=modify_fitness

(pbest_fitness,current_fitness,pbest,current_position);  
        gbest_fitness=min(pbest_fitness);  
        
        locate=minfitness_locate(pbest_fitness,gbest_fitness);  
        gbest=pbest(:,locate); 
        gbest1=repmat(gbest,1,popsize);
        if mod(j,sample_point)==0  
            a=j/sample_point;
            gfitness_sampoint(i,a)=gbest_fitness;
        end
    end
    total_best(1,i)=gbest_fitness;  
    gbest_fitness
end
best_fitness=min(total_best); 
worst_fitness=max(total_best); 
mean_fitness=mean(total_best); 
std_fitness=std(total_best); 
gfitness_ave=sum(gfitness_sampoint)/run_times; 

format long e
mean_fitness 
std_fitness
best_fitness  
worst_fitness
gfitness_ave
total_best

懂语言的朋友帮个忙 看看这个程序是做什么的 
最好能解释下  先谢谢了