% -- mexicanhat.m
%
%
% Costruisce e mostra una superficie definita
% dal prodotto di una gaussiana moltiplicato
% per una funzione trigonometrica
% 
% exp(-(x^2+y^2)/d)*cos(2*pi*omega*(x^2+y^2))

% creiamo i vettori con le coordinate x e y dei
% punti della griglia sul piano X-Y per cui 
% caloleremo i valori sull'asse Z

x = y = linspace(-1,1,100);

% meshgrid ritorna le matrici con le coordinate
% x e y

[xx,yy] = meshgrid(x,y);

% la funzione dipende solo dalla soma dei quadrati delle
% coordinate, quindi la calcoliamo separatamente

z = (xx.*xx + yy.*yy);

d = 0.5;
omega = 3;

%%

f = exp(-z/d).*cos(2*pi*omega*z);

%%

mesh(xx,yy,f)

