Comment tracer un système non linéaire de 3 équations à 3 variables symboliques dans Matlab?

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

  •  06-09-2019
  •  | 
  •  

Question

Je n'ai pas beaucoup d'expérience avec Matlab. Je sais que vous pouvez tracer des équations avec 2 variables comme ceci:

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

Comment qualifieriez-vous tracer trois équations avec trois variables symboliques

Un exemple de système serait:

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

Il serait idéal s'il y avait un moyen de tracer un système de 3 équations.

Était-ce utile?

La solution

Je crois que ezsurf se rapproche de ce que vous voulez. Vous faudrait d'abord résoudre chaque équation pour z, puis faire une fonction pour cette équation et tracer avec ezsurf. Voici comment le faire avec votre première équation de ci-dessus:

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

Ceci devrait afficher la moitié supérieure d'une sphère.

Pour afficher les trois équations ensemble, vous pouvez faire ce qui suit:

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]);

et l'intrigue résultant ressemblera à ceci:

En faisant tourner l'intrigue, vous remarquerez qu'il semble y avoir deux points où les trois surfaces se croisent, vous donnant deux solutions pour le système d'équations.

Autres conseils

« tenir » dit juste pour ne pas effacer des lignes et des marqueurs existants sur l'axe actuel. vous devriez juste être capable de faire

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

Je ne l'ai jamais utilisé ezplot ne peut donc pas vous aider avec celui-là.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top