# MATLAB: How to find max and min of fuction of 2 independent variables

MATLABmatlab function

My question is how can I find minimum and maximum of this function, and then tag them with 'o' in function graph? This is my code so far:
   function funkcija(intervalpox,intervalpoy,korak,crtanje)    x=0:korak:intervalpox;    y=0:korak:intervalpoy;     [X,Y] = meshgrid(x,y);    Z = (sin(sqrt(X.^2 + Y.^2)) ./ (sqrt(X.^2 + Y.^2)));        mesh(X,Y,Z)        grid on        xlabel('.x.')        ylabel('.y.')        zlabel('.z.')        title('mesh')

#### Best Answer

• You could use a similar formulation as found here.
What it boils down to is using imregionalmax on your Z matrix to find the local maximums.
MaxVals = find(imregionalmax(Z));plot3(X(MaxVals),Y(MaxVals),Z(MaxVals),'ro','MarkerSize',30)
Now this will find you your local maximums but to find the minimums you could just flip Z upside down and then run imregionalmax again.
Zupsidedown=-Z;MinVals = find(imregionalmax(Zupsidedown));plot3(X(MinVals),Y(MinVals),Z(MinVals),'go','MarkerSize',30)
This will allow you to find the local max and mins across the entire surface.
clear;clc;close allkorak=.1;intervalpox=10;intervalpoy=10;x=korak:korak:intervalpox;y=korak:korak:intervalpoy;[X,Y] = meshgrid(x,y);Z = (sin(sqrt(X.^2 + Y.^2)) ./ (sqrt(X.^2 + Y.^2)));Zupsidedown=-Z;MaxVals = find(imregionalmax(Z));MinVals = find(imregionalmax(Zupsidedown));plot3(X(MaxVals),Y(MaxVals),Z(MaxVals),'r.','MarkerSize',30)hold onplot3(X(MinVals),Y(MinVals),Z(MinVals),'g.','MarkerSize',30)mesh(X,Y,Z)grid onxlabel('.x.')ylabel('.y.')zlabel('.z.')title('mesh') 