Disegnare superficie in matlab
buongiorno a tutti,
vorrei disegnare in matlab la superficie descritta dalla seguente equazione:
$( frac{M}{0.726})^{2}+( frac{V}{0.48} )^{2}-N^{2}( 1-frac{N}{3824})^{1.9}=0$
ho provato con il comando "surface" ma non ottengo il risultato sperato.
Grazie mille in anticipo.
vorrei disegnare in matlab la superficie descritta dalla seguente equazione:
$( frac{M}{0.726})^{2}+( frac{V}{0.48} )^{2}-N^{2}( 1-frac{N}{3824})^{1.9}=0$
ho provato con il comando "surface" ma non ottengo il risultato sperato.

Grazie mille in anticipo.
Risposte
"TeM":
[quote="mascalzone87"]Vorrei disegnare in MatLab la superficie descritta dalla seguente equazione:
$ ( frac{M}{0.726})^{2}+( frac{V}{0.48} )^{2}-N^{2}( 1-frac{N}{3824})^{1.9}=0 $
Nella Command Window copia-incolla il seguente codice:
[V,M,N] = ndgrid(linspace(-3,3,100),linspace(-3,3,100),linspace(-3,3,100)); f = (M/0.726).^2+(V/0.48).^2-N.^2.*(1-N/3824).^1.9; isosurface(M,V,N,f,.01); axis equal xlabel('M') ylabel('V') zlabel('N')
e clicca Invio; così facendo otterrai il plot desiderato.

intanto ti ringrazio davvero per la risposta!
mi proponi una strada sicuramente molto interessante. ho provato ed ottengo il seguente risultato (ho ridotto l'asse N a solo valori positivi perché non mi serve definire la superficie per valori negativi di N).

Purtroppo il risultato non è ancora quello sperato. Dovrei ottenere une superficie dove l'asse verticale è M, e quindi il piano "di base" è N-V.
Inoltre la superficie sembra cava nel plot invece dall'equazione io dovrei ottenere, per soli valori di N positivi, una sorta di ovoide centrato rispetto all'asse M. (ovvero metà per M positivi e metà per M negativi)
riesci a darmi qualche altra dritta?
Grazie ancora per l'aiuto che mi stai dando!
solo che ancora non riesco a capire
...ad esempio l'immagine che posto è presa da un articolo dove appunto, tra le altre cose, si plotta l'equazione che ho riportato sopra (solo con alcuni assi nominati diversamente H stampato= V della mia equazione, V stampato= N della mia equazione). Come è possibile che si ottengono risultati così diversi???
grazie,
cordiali saluti.
solo che ancora non riesco a capire

grazie,
cordiali saluti.

"TeM":
Per plottare in MatLab quanto riportato nella seguente figura:
supponendo \(H_x' = H_y'\), \(M_y' = M_x'\) è sufficiente copia-incollare nella Command Window il seguente codice:
[H,V,M] = ndgrid(linspace(-0.2,0.2,100),linspace(0,1,100),linspace(-0.2,0.3,100)); f = (7.40.*H.^2 + 16.33.*M.^2)./(V.*(1 - V)).^2 - 1; isosurface(V,H,M,f,.01); axis equal xlabel('V') ylabel('H') zlabel('M')
In Wolfram Mathematica 10 si ottiene questo. E' ciò che desideravi?
finalmente le cose iniziano ad essermi decisamente più chiare, ti ringrazio!

L'unica cosa mi piacerebbe vedere il plot in maniera un po' diversa, tipo quella che postavi tu o anche quella dell'articolo, ovvero con un effetto tipo mesh e soprattutto eleminando il piano verticale. mi puoi suggerire qualche opzione in matlab? il mio plot viene così:

"TeM":
[quote="mascalzone87"]L'unica cosa mi piacerebbe vedere il plot in maniera un po' diversa, tipo quella che postavi tu o anche
quella dell'articolo, ovvero con un effetto tipo mesh e soprattutto eliminando il piano verticale.
A parte il fatto che il codice di cui sopra mi porta a questo plot, ove non vi è alcun piano, per ottenere delle mesh come quelle di cui sopra, ti consiglio di parametrizzare tale superficie e lanciare nella Command Window il seguente codice:
[phi theta] = meshgrid(0:.1:2*pi,0:.1:2*pi); H = eval(vectorize('sin(2*phi)^2*cos(theta)/(4*sqrt(7.40))')); V = eval(vectorize('cos(phi)^2')); M = eval(vectorize('sin(2*phi)^2*sin(theta)/(4*sqrt(16.33))')); surf(V,H,M) xlabel('V') ylabel('H') zlabel('M')
Così facendo si ottiene un plot di questo tipo, come richiesto.

Scusami se intervengo solo ora! ...si è esattamente quanto mi serviva, grazie mille per il tuo aiuto!
