⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 init.asv

📁 无约束优化中的共轭梯度算法程序
💻 ASV
字号:
% init 
% ----- 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% function [nprob,n,m,x0]=initf(nprob)
% This function sets n,m, and the standard starting    
% point based on the nprob and returns it to initpt     
% function.                                             
%                                                       
% Created on 10/30/94 by Madhu Lamba                   
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


function [nprob,n,m,x0] = init(NO)
global FIRSTIME;

% ROSE 
if NO==1
        nprob=1
        n=2;
        m=2;
        x0=[-1.2,1]';

% FROTH
elseif NO==2
        nprob=2
        n=2;
        m=2;
        x0=[0.5,-2]';

% BADSCP
elseif NO==3
        nprob=3
        n=2;
        m=2;
        x0=[0,1]';

% BADSCB
elseif  NO==4
        nprob=4
        n=2;
        m=3;
        x0=[1,1]';

% BEALE
elseif NO==5
        nprob=5
        n=2;
        m=3;
        x0=[1,1]';

% JENSAM
elseif  NO==6
        nprob=6
        n=2;
        m=2;
        x0=[0.3,0.4]';
   
% HELIX
elseif  NO==7
        nprob=7
        n=3;
        m=3;
        x0=[-1,0,0]';
   
% BARD
elseif  NO==8
        nprob=8
        n=3;
        m=15;
        x0=[1,1,1]';
   
% GAUSS
elseif  NO==9;
        nprob=9
        n=3;
        m=15;
        x0=[0.4,1,0]';
   
% MEYER
elseif nprob == 10
        n=3;
       m=16;
       x0=[0.02,4000,250]';
 
% GULF
elseif  NO==11
        nprob=11
        n=3;
        m=10;
        x0=[5,2.5,0.15]';
   
% BOX
elseif  NO==12
        nprob=12
        n=3;
        m=10;
        x0=[0,10,20]';
    
% SING
elseif  NO==13
        nprob=13
        n=4;
        m=4;
        x0=[3,-1,0,1]';
   
% WOOD
elseif  NO==14
        nprob= 14
        n=4;
        m=6;
        x0=[-3,-1,-3,-1]';
   
% KOWOSB
elseif  NO==15
        nprob= 15
        n=4;
        m=11;
        x0=[0.25,0.39,0.415,0.39]';
  
% BD   
elseif  NO==16
        nprob= 16
        n=4;
        m=20;
        x0=[25,5,-5,-1]';
   
% OSB1
elseif  NO==17
        nprob= 17
        n=5;
        m=33;
	FIRSTIME=1;
        x0=[0.5,1.5,-1,0.01,0.02]';
  
% BIGGS
elseif  NO==18
        nprob= 18
        n=6;
        m=13;
        x0=[1,2,1,1,1,1]';
  
% OSB2
elseif NO==19
        nprob= 19
        n=11;
        m=65;
	FIRSTIME=1;
        x0=[1.3,0.65,0.65,0.7,0.6,3,5,7,2,4.5,5.5]';
  
% WATSON
elseif  NO==20
        nprob= 20
	    n=20;
        m=31;
        x0=zeros(n,1);

% ROSEX
elseif  NO==21
        nprob=21
        n=8;
        m=n; 
        for j=1:n/2
            x0(2*j-1)=-1.2;
            x0(2*j)=1;
        end;
	x0=x0';
% ROSEX
elseif  NO==22
        nprob=21
        n=50;
        m=n; 
        for j=1:n/2
            x0(2*j-1)=-1.2;
            x0(2*j)=1;
        end;
	x0=x0';
elseif  NO==23
        nprob=21
        n=100;
        m=n; 
        for j=1:n/2
            x0(2*j-1)=-1.2;
            x0(2*j)=1;
        end;
	x0=x0';
% SINGX
elseif  NO==24
        nprob=22
        n=4;
        m=n;
        for j=1:n/4
            x0(4*j-3)=3;
            x0(4*j-2)=-1;
            x0(4*j-1)=0;
            x0(4*j)=1;
        end;
        x0=x0';

% PEN1
elseif NO==25
        nprob=23
        n=2;
        m=n;
        for j=1:n
            x0(j)=j;
        end;
        x0=x0';

% PEN2
elseif  NO==26
        nprob=24
        n=4;
        m=2*n;
        x0=(1/2)*(ones(n,1));

% PEN2
elseif  NO==27
        nprob=24
        n=50;
        m=2*n;
        x0=(1/2)*(ones(n,1));

% VARDIM
elseif  NO==28
        nprob=25
        n=2;
        m=n+2;
        for j=1:n
            x0(j)=1-(j/n);
        end;
        x0=x0';
% VARDIM
elseif  NO==29
        nprob=25
        n=50;
        m=n+2;
        for j=1:n
            x0(j)=1-(j/n);
        end;
        x0=x0';


% TRIG
elseif  NO==30
        nprob=26
        n=3;
        m=n;
        x0=(1/n)*(ones(n,1));

% TRIG
elseif  NO==31
        nprob=26
        n=50;
        m=n;
        x0=(1/n)*(ones(n,1));

% TRIG
elseif  NO==32
        nprob=26
        n=100;
        m=n;
        x0=(1/n)*(ones(n,1));

% ALMOST
%elseif  nprob==27
%        n=input('Enter a number for n ?')
%        m=n;
%        x0=(1/2)*(ones(n,1));

% BV
elseif  NO==33
        nprob=28
        n=3;
        m=n;
        h=1/(n+1);
        for j=1:n
            t(j)=j*h;
            x0(j)=t(j)*(t(j)-1);
        end;
        x0=x0'; 
% BV
elseif  NO==34
        nprob=28
        n=10;
        m=n;
        h=1/(n+1);
        for j=1:n
            t(j)=j*h;
            x0(j)=t(j)*(t(j)-1);
        end;
        x0=x0'; 

% IE
elseif  NO==35
        nprob=29
        n=3;
        m=n;
        h=1/(n+1);
        for j=1:n
            t(j)=j*h;
            x0(j)=t(j)*(t(j)-1);
        end;
        x0=x0';

% IE
elseif  NO==36
        nprob=29
        n=50;
        m=n;
        h=1/(n+1);
        for j=1:n
            t(j)=j*h;
            x0(j)=t(j)*(t(j)-1);
        end;
        x0=x0';
           
  % IE
elseif  NO==37
        nprob=29
        n=100;
        m=n;
        h=1/(n+1);
        for j=1:n
            t(j)=j*h;
            x0(j)=t(j)*(t(j)-1);
        end;
        x0=x0';   
   % IE
elseif  NO==38
        nprob=29
        n=200;
        m=n;
        h=1/(n+1);
        for j=1:n
            t(j)=j*h;
            x0(j)=t(j)*(t(j)-1);
        end;
        x0=x0';   
            
  % IE
elseif  NO==39
        nprob=29
        n=500;
        m=n;
        h=1/(n+1);
        for j=1:n
            t(j)=j*h;
            x0(j)=t(j)*(t(j)-1);
        end;
        x0=x0';   
       
% TRID
elseif  NO==40
        nprob=30
        n=3;
        m=n;
        x0=(-1)*(ones(n,1));

        
% TRID
elseif  NO==41
        nprob=30
        n=50;
        m=n;
        x0=(-1)*(ones(n,1));
       
        
% TRID
elseif  NO==42
        nprob=30
        n=100;
        m=n;
        x0=(-1)*(ones(n,1));
     
        
% TRID
elseif  NO==43
        nprob=30
        n=200;
        m=n;
        x0=(-1)*(ones(n,1));
       
% BAND   
elseif  NO==44
        nprob=31
        n=3;
        m=n;
        x0=(-1)*(ones(n,1));
% BAND   
elseif  NO==45
        nprob=31
        n=50;
        m=n;
        x0=(-1)*(ones(n,1));
% BAND   
elseif  NO==46
        nprob=31
        n=100;
        m=n;
        x0=(-1)*(ones(n,1));
% BAND   
elseif  NO==47
        nprob=31
        n=200;
        m=n;
        x0=(-1)*(ones(n,1));

% LIN   
elseif  NO==48
        nprob= 32
        n=2;
        m=3;
        x0=ones(n,1);

% LIN   
elseif  NO==49
        nprob=32
        n=50;
        m=100;
        x0=ones(n,1);

% LIN   
elseif  NO==49
        nprob= 32
        n=500;
        m=1000;
        x0=ones(n,1);

% LIN   
elseif  NO==50
        nprob= 32
        n=1000;
        m=1001;
        x0=ones(n,1);

% LIN1   
elseif NO==51
       nprob=33
	   n=2;
       m=3;
       x0=ones(n,1);

% LIN1   
elseif NO==52
       nprob=33
	   n=10;
       m=11;
       x0=ones(n,1);

% LIN0   
elseif  NO==53
        nprob=34
	    n=4;
        m=5;
        x0=ones(n,1);

end

%


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -