Come tracciare un sistema non lineare di 3 equazioni con 3 variabili simboliche in MATLAB?

StackOverflow https://stackoverflow.com/questions/925555

  •  06-09-2019
  •  | 
  •  

Domanda

Non ho molta esperienza con Matlab. So che è possibile tracciare equazioni con 2 variabili come questo:

ezplot(f1)
hold on
ezplot(f2)
hold off;

Come vi tracciare tre equazioni con tre variabili simboliche?

Un sistema di esempio potrebbe essere:

x^2+y^2+z^2-1=0
2*x^2+y^2-4*z=0
3*x^2-4y+z^2=0

Sarebbe ideale se ci fosse un modo per tracciare qualsiasi sistema di 3 equazioni.

È stato utile?

Soluzione

ezsurf si avvicina a ciò che si desidera. Si dovrebbe prima risolvere ogni equazione per z, poi fare una funzione per questa equazione e tracciare con ezsurf. Ecco come farlo con la vostra prima equazione dall'alto:

func1 = @(x, y) sqrt(1-x.^2-y.^2);
ezsurf(func1);

Questo dovrebbe visualizzare la metà superiore di una sfera.

Per visualizzare tutte e tre le equazioni insieme, è possibile effettuare le seguenti operazioni:

func1 = @(x, y) sqrt(1-x.^2-y.^2);
func2 = @(x, y) 0.5.*x.^2+0.25.*y.^2;
func3 = @(x, y) sqrt(4.*y-3.*x.^2);
ezsurf(func1, [-1 1 -1 1]);
hold on;
ezsurf(func2, [-1 1 -1 1]);
ezsurf(func3, [-1 1 -1 1]);
axis([-1 1 -1 1 0 1]);

e la trama risultante sarà simile a questa:

entrare descrizione dell'immagine qui

Ruotando la trama, si noterà che non ci sembrano essere due punti in cui tutte e tre le superfici si intersecano, dando due soluzioni per il sistema di equazioni.

Altri suggerimenti

"hold on" dice solo di non cancellare le linee e marcatori esistenti sull'asse corrente. si dovrebbe solo essere in grado di fare

ezplot(f1);
hold on;
ezplot(f2);
ezplot(f3);
hold off;

Non ho mai usato EZplot così non si può aiutare con quello.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top