MatLab 在不同的缩放级别上显示不同的图

MatLab 在不同的缩放级别上显示不同的图

我在 MatLab 上运行了此代码:

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

并得到这个情节: 在此处输入图片描述

放大至(2.5,3.5)附近时:

在此处输入图片描述

缩小然后在同一位置放大 在此处输入图片描述

现在我怎么知道这三个中哪一个是正确的,有什么办法可以摆脱这些错误的情节?

Desmos 也类似

答案1

矩阵隐含的是一个很好的函数,可以了解一个函数在变量方面如何隐式地给出行为。但是,如果你的函数不是“好”,它可能会隐藏或显示一些细节,具体取决于你绘制的范围。按照 Matlab 文档,

尖端

  • 当放大图表时,fimplicit 会重新计算数据,从而可以揭示隐藏的细节。

Matlab 函数将对函数进行数值评估,以便找到(x,y)要绘制的对,并会自动选择一些点,因此当轴限制太大(绘制曲线的点数较少)时,小细节可能会消失。您可以尝试增加 MeshDensity 属性,在曲线中添加更多点来检查哪一个是正确的:

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

相关内容