problem in plot while loop
1 次查看(过去 30 天)
显示 更早的评论
k0=(2*pi/0.6328)*1e6;
t2=1.5e-6;
n1=1.512;n2=1.521;n3=4.1-1i*0.211;
n4=1;
m=0;
x=1.512;
t3=1e-9:1e-6;
k1=k0*sqrt(n1^2-x^2);
k2=k0*sqrt(n2^2-x^2);
k3=k0*sqrt(n3^2-x^2);
k4=k0*sqrt(n4^2-x^2);
tol = 1e-12;
n = 1;
while 1
x_new =-(k2)*t2+atan(k1/1i*k2)+atan((k3/k2)*tan(atan(k4/1i*k2)-k3*t3))+m*pi;
if abs(x_new-x) < tol, break; end
x =x_new;
k1=k0*sqrt(n1^2-x^2);
k2=k0*sqrt(n2^2-x^2);
k3=k0*sqrt(n3^2-x^2);
k4=k0*sqrt(n4^2-x^2);
n=n+1;
end
pl plot graph between t3 vs x_new
where x_new is the root of the equation
8 个评论
采纳的回答
Jan
2022-2-16
k0 = 2 * pi / 0.6328 * 1e6;
t2 = 1.5e-6;
n1 = 1.512;
n2 = 1.521;
n3 = 4.1-1i*0.211;
n4 = 1;
m = 0;
x = 1.512;
t3 = 1e-9; % ??? :1e-6;
tol = 1e-12;
n = 1;
while 1
k1 = k0 * sqrt(n1^2 - x^2);
k2 = k0 * sqrt(n2^2 - x^2);
k3 = k0 * sqrt(n3^2 - x^2);
k4 = k0 * sqrt(n4^2 - x^2);
x_new = -k2 * t2 + atan(k1/1i*k2) + ...
atan((k3/k2) * tan(atan(k4/1i*k2) - k3*t3)) + m*pi;
if abs(x_new-x) < tol || n > 1e4, break; end
x = x_new;
n = n + 1;
end
n
The formula does not converge.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Function Creation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!