                               

close all
clear all
clc


%function [z] = TestFce(x,y,prvni,krok)

% nastaveni oblasti

prvni = 10;
krok = 0.5;

x = -prvni:krok:prvni;
y = -prvni:krok:prvni;

delka_x = length(x);
delka_y = length(y);


%% vypocet hodnoty funkci

for i = 1:delka_x
    for j = 1:delka_y

  % z(i,j) = (x(i))^2+(y(j))^2; % prvni de jongova funkce - stale stejna 


  z(i,j) = 100.*(y(j)-(x(i))^2)^2+(1-x(i))^2; % Rossenbeckova funkce,
%    bananove udoli, druha de jong fce - uzke udoli


%    e = 2.71828
%   z(i,j) = 20+e-(20/(e^(0.2*(sqrt(((x(i))^2+(y(j))^2)./2)))))- e^(0.5*(cos(2*pi*x(i))+cos(2*pi*y(j))));   %Ackleyho funkce - rovina s hrotem


%   z(i,j) = 10*2+[x(i)^2-10.*cos(2*pi.*x(i))]+[y(j)^2-10*cos(2*pi.*y(j))]; % Rastriginova funkce podle zdroje z netu  



   

    end
end


plot(z);

m=min(min(z));
[sx sy]=find(z==m);       % nalezeni minima


[X,Y] = meshgrid(-prvni:krok:prvni, -prvni:krok:prvni); %vykreslení
figure
surf(X,Y,z)


xrange =-prvni:krok:prvni;                  %vykreslení vrstevnic
yrange = xrange;
[X,Y] = meshgrid(xrange,yrange);
Z = peaks(X,Y);
contour(X,Y,z)


hold on
plot(x(sx),y(sy),'xk','MarkerSize',12)        %vykresleni bodu




