Como desenhar um sistema não linear de 3 equações com 3 variáveis ??simbólicas em MATLAB?

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

  •  06-09-2019
  •  | 
  •  

Pergunta

Eu não tenho muita experiência com Matlab. Eu sei que você pode traçar equações com 2 variáveis ??como este:

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

Como você traçar três equações com três variáveis ??simbólicas?

Um sistema de exemplo seria:

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

Seria ideal se houvesse uma maneira de traçar qualquer sistema de 3 equações.

Foi útil?

Solução

Eu acredito ezsurf chega perto do que você quer. Você primeiro tem que resolver cada equação para z, em seguida, fazer uma função para que a equação e traçar-lo com ezsurf. Aqui está como fazê-lo com a sua primeira equação de cima:

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

Isso deve exibir a metade superior de uma esfera.

Para exibir todas as três equações juntos, você pode fazer o seguinte:

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 a trama resultante será parecido com este:

enter descrição da imagem aqui

Ao girar a trama, você vai notar que parece haver dois pontos onde todas as três superfícies cruzam, dando-lhe duas soluções para o sistema de equações.

Outras dicas

"hold on" apenas diz para não apagar linhas e marcadores existentes no eixo atual. você deve apenas ser capaz de fazer

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

Eu nunca usei ezplot por isso não pode ajudá-lo com isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top