Cómo trazar un sistema no lineal de 3 ecuaciones con 3 variables simbólicas en MATLAB?

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

  •  06-09-2019
  •  | 
  •  

Pregunta

No tengo mucha experiencia con Matlab. Sé que puede trazar ecuaciones con 2 variables como este:

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

¿Cómo trazar tres ecuaciones con ?

Un sistema de ejemplo sería:

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

Sería ideal si había una manera de trazar cualquier sistema de 3 ecuaciones.

¿Fue útil?

Solución

ezsurf se acerca a lo que desea. Primero tendría para resolver cada ecuación para z, a continuación, hacer una función para dicha ecuación y trazar con ezsurf. He aquí cómo hacerlo con su primera ecuación de arriba:

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

Esto debería mostrar la mitad superior de una esfera.

Para visualizar las tres ecuaciones en conjunto, puede hacer lo siguiente:

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

y la trama resultante tendrá el siguiente aspecto:

introducir descripción de la imagen aquí

Al girar la trama, se dará cuenta de que parece que hay dos puntos en los que las tres superficies se cruzan, que le da dos soluciones para el sistema de ecuaciones.

Otros consejos

"aferrarse" sólo dice que no borra las líneas y los marcadores existentes en el eje actual. sólo debe ser capaz de hacer

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

Nunca he usado ezplot por lo que no se puede ayudar con eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top