PDA

View Full Version : aiuto matlab


antpicc
16-05-2005, 20:08
Devo visualizzare l'equazione di una superficie del tipo
z = 2x + 2y
e le curve di livello delle superfici, cioè quelle curve che si ottengono intersecando la superficie con piani ortogonali all'asse z e proiettandole sul piano (x,y),cioè indicano i punti a cui corrisponde la stessa quota.
Come si fa con matlab?
Grazie

xwang
16-05-2005, 20:25
Cerca nell'help di matlab il comando plot3d (mi sembra vado un po' a memoria). Tra le opzioni ci dovrebbe essere anche quella delle curve di isolivello.
Xwang

checcot
16-05-2005, 21:07
[X,Y] = meshgrid(-10:10,-10:10);
Z = 2*X+2*Y;
plot3(X,Y,Z)
contour(Z)

antpicc
17-05-2005, 19:27
[X,Y] = meshgrid(-10:10,-10:10);
Z = 2*X+2*Y;
plot3(X,Y,Z)
contour(Z)


se al posto della curva Z = 2*X+2*Y, inserisco Z = 2*X+2*Y+2*X*Y+5 ottengo come output tutte rette parallele, non è possibile xchè non è l'equazione di un piano.
Cosa si deve aggiungere al codice x ottenere la visualizazione corretta della curva?

checcot
17-05-2005, 19:56
Z = 2*X+2*Y+2*X.*Y;

Ci vuole il punto, poiche X.*Y è un prodotto elemento per elemento.

Ciao

antpicc
17-05-2005, 22:03
adesso la superficie viene visualizzata correttamente così anche le curve di livello.
Adesso avrei bisogno del comando per calcolare max e minimo relativi.
Riporto le righe di programma che mi hai detto.

[X,Y] = meshgrid(-100:100,-100:100);
Z = 2*X+2*Y+2*X.*Y+100;
plot3(X,Y,Z)
contour(Z)

qual'è il comando?
(è l'ultima cosa che mi manca)