
Un (brutto) grafico tridimensionale
Mi riferisco alla funzione mesh. E non voglio in alcun modo essere esaustivo; per una documentazione esaustiva, quella di Matlab lo è di sicuro.
Ammettiamo di voler fare il grafico della funzione
. La prima cosa da fare è generare la griglia. Come nel plot bidimensionale, in cui la griglia è unidimensionale ed è quindi un semplice vettore contenete le componenti delle ascisse in cui il grafico viene mostrato, nel caso tridimensionale avremo non un solo vettore, ma due matrici: ogni componente di ciascuna matrice rappresenta un punto del piano di base (piano xy) in cui il grafico viene calcolato e la prima matrice rappresenta il valore della x in quel punto, mentre la seconda rappresenta il valore della y. Si veda pertanto il seguente esempio per comprendere il significato di questa coppia di matrici.

Con queste matrici si ottiene una griglia che contiene i seguenti punti:
- (1, 4): primo elemento della prima riga di ogni matrice
- (2, 4): secondo elemento della prima riga
- (1, 5): primo elemento della seconda riga
- (2, 5): secondo elemento della seconda riga
Fatto ciò, si deve solo definire una matrice Z, della stessa dimensione delle matrici X e Y, che contenga i valori della funzione nei punti definiti tramite X e Y. Nel nostro esempio, il la matrice Z dovrà contenere:
- 2 nel primo elemento della prima riga (
)
- 8 nel secondo elemento della prima riga
nel primo elemento della seconda riga
nel secondo elemento della seconda riga
Ora basterà richiamare la funzione mesh di Matlab per avere un meraviglioso grafico della nostra funzione. Per la precisione, la funzione va richiamata così: mesh(X, Y, Z), dove X, Y, Z sono le tre matrici che abbiamo definito.
Ora, per fare un grafico, ovviamente, sono necessari più di quattro punti per la griglia. La funzione meshgrid può venirci in aiuto: dati i vettori di x e di y (nel nostro caso i vettori erano (1, 2) per x e (4, 5) per y), la funzione meshgrid(x, y) restituisce le due matrici X e Y che costruiscono la griglia. Si veda il seguente esempio:
x = -4:0.1:4;
y = 0:0.1:5;
[X, Y] = meshgrid(x, y);
Z = X.^2 .* sqrt(Y);
mesh(X, Y, Z);
Ovviamente il grafico deve ancora essere corredato di un titolo (funzione title), di etichette per gli assi (funzioni xlabel, ylabel e zlabel) ed eventualmente di altri accorgimenti. L’importante è notare la semplicità di usare funzioni e operatori component-wise per generare la matrice Z: in una sola e semplice riga di codice si ottengono tutti i (molti) valori necessari.