0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 function [p,dp,infos]=funDejong(xx,dim)
0030
0031 coef=10;
0032
0033
0034
0035 dem=false;
0036 if nargin==0
0037 pas=50;
0038 borne=5.12;
0039 [x,y]=meshgrid(linspace(-borne,borne,pas));
0040 xx=zeros(pas,pas,2);
0041 xx(:,:,1)=x;xx(:,:,2)=y;
0042 dem=true;
0043 end
0044 if ~isempty(xx)
0045
0046 nbvar=size(xx,3);
0047
0048 if nbvar==1
0049 if size(xx,2)==2
0050 xxx=xx(:,1);yyy=xx(:,2);
0051 elseif size(xx,1)==2
0052 xxx=xx(:,2);yyy=xx(:,1);
0053 else
0054 error(['Wrong input variables ',mfilename]);
0055 end
0056 p=xxx.^2+yyy.^2;
0057 if nargout==2||dem
0058 dp(:,:,1)=2*xxx;
0059 dp(:,:,2)=2*yyy;
0060 end
0061 else
0062 cal=xx.^2;
0063 p=sum(cal,3);
0064 if nargout==2||dem
0065 dp=2*xx;
0066 end
0067 end
0068 else
0069 if nargin==2
0070 nbvar=dim;
0071 end
0072 p=[];
0073 dp=[];
0074 end
0075
0076 if nargout==3
0077 pts=zeros(1,nbvar);
0078 infos.min_glob.X=pts;
0079 infos.min_glob.Z=zeros(1,nbvar);
0080 infos.min_loc.Z=pts;
0081 infos.min_loc.X=zeros(1,nbvar);
0082 end
0083
0084
0085 if nargin==0
0086 figure
0087 subplot(1,3,1)
0088 surf(x,y,p);
0089 axis('tight','square')
0090 xlabel('x'), ylabel('y'), title('De Jong')
0091 subplot(1,3,2)
0092 surf(x,y,dp(:,:,1));
0093 axis('tight','square')
0094 xlabel('x'), ylabel('y'), title('Grad. X De Jong')
0095 subplot(1,3,3)
0096 surf(x,y,dp(:,:,2));
0097 axis('tight','square')
0098 xlabel('x'), ylabel('y'), title('Grad. Y De Jong')
0099 end
0100 end
0101