MatLab zeigt verschiedene Diagramme auf unterschiedlichen Zoomstufen

MatLab zeigt verschiedene Diagramme auf unterschiedlichen Zoomstufen

Ich habe diesen Code auf MatLab ausgeführt:

function main
fimplicit (@(x,y)f(x,y),[2 5])
end
function fun = f(x,y)
nc=1.45;    %cladding
nf=1.5;
ns=1.4;    %substrate
h=5;  %width of waveguide
kappa=sqrt(x^2*nf^2-y.^2);
gammas=sqrt(y^2-x^2*ns^2);
gammac=sqrt(y^2-x^2*nc^2);
z=sin(h.*kappa);
%TE mode
fun=z.*(kappa.^2-gammas.*gammac)-cos(h.*kappa).*(gammac+gammas).*kappa;
end

Und bekam diese Handlung: Bildbeschreibung hier eingeben

Beim Heranzoomen auf (2,5,3,5):

Bildbeschreibung hier eingeben

Herauszoomen und dann an derselben Stelle hineinzoomen Bildbeschreibung hier eingeben

Wie weiß ich nun, welche dieser drei Angaben richtig ist, und gibt es eine Möglichkeit, solche fehlerhaften Darstellungen zu beseitigen?

Ähnlich in Desmos

Antwort1

Matlabimplizitist eine hervorragende Funktion, um eine Vorstellung davon zu bekommen, wie sich eine implizit in Bezug auf ihre Variablen angegebene Funktion verhält. Wenn Ihre Funktion jedoch nicht „gut“ ist, kann sie je nach dem Bereich, den Sie darstellen, einige Details verbergen oder offenbaren. Gemäß der Matlab-Dokumentation:

Tipps

  • Wenn Sie in das Diagramm hineinzoomen, berechnet fimplicit die Daten neu, wodurch verborgene Details sichtbar werden können.

Die Matlab-Funktion wertet die Funktion numerisch aus, um die (x,y)zu plottenden Paare zu finden, und wählt automatisch einige Punkte aus, sodass kleine Details verloren gehen können, wenn die Achsengrenzen zu groß sind (geringe Anzahl von Punkten zum Plotten der Kurven). Sie können versuchen, die MeshDensity-Eigenschaft zu erhöhen, um Ihren Kurven weitere Punkte hinzuzufügen und zu prüfen, welcher Punkt richtig ist:

fimplicit(f,'MeshDensity',500)  % 151 is the default. Increase this number to add more evaluation points per direction

verwandte Informationen