Pergunta

por que quando eu uso ezplot, por exemplo, no intervalo [1 1,5], uma descontinuidade aparecerá em alguns trechos de linhas, mas quando eu uso um intervalo mais próximo como [1,3 1,5], a descontinuidade será aniquilada?

Foi útil?

Solução

EZPLOT é uma função de plotagem de uso geral que selecionará automaticamente um conjunto de pontos nos quais avaliar e plotar a função que você passa para ela.Na maioria das vezes, as coisas funcionam bem.Mas existem alguns casos especiais em que EZPLOT pode ter alguns problemas.Pode não funcionar bem perto de descontinuidades ou pontos onde há mudanças rápidas na função (o que pode ser confundido com uma descontinuidade).

Essa é a desvantagem de uma função projetada para ser geral o suficiente para aceitar qualquer função que você dá:é difícil torná-lo geral o suficiente para lidar tudo exatamente certo, então alguns casos extremos especiais parecem um pouco engraçados.Nesses casos, você deve evitar funções como EZPLOT (que fazem muitas escolhas para você) e trace você mesmo avaliando suas funções em pontos você escolher e traçar esses pontos usando o TRAMA função.Aqui está um link útil por esta.

Outras dicas

O problema é que ezplot() é útil, mas não tão robusto.

Uma opção melhor para traçar uma função sem pontos discretos é fplot().Confira a documentação para isso.

Aqui está um exemplo de como usá-lo em comparação com ezplot():

lowerBound = 0;
upperBound = 1;

%# The ezplot way:
ezplot('y=sin(1/x)',[lowerBound,upperBound,-1,1])

%# The fplot way:
fplot('sin(1/x)',[lowerBound,upperBound])

fplot() avaliará mais pontos onde a função muda mais rapidamente.Assim, as descontinuidades ainda causarão problemas no gráfico se você olhar de perto, mas será mais difícil plotá-las com precisão.

Traçar uma curva de nível de uma função com três variáveis ​​requer um pouco mais de digitação:

%# First create a grid where you want the function to be drawn
[x,y]=meshgrid(-2:.01:2);
     %# Remember that -2:.01:2 creates a vector with values from -2 to 2
     %# in steps of .01

%# Then define your function
z=-3*y./(x.^2+y.^2+1);

%# Now graph the level curve of the function.  I chose the level z=0.5:
contour(x,y,z,[0.5])
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top