Comment tracer un système non linéaire de 3 équations à 3 variables symboliques dans Matlab?
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.
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à.