problem in plot while loop

1 view (last 30 days)
shiv gaur
shiv gaur on 16 Feb 2022
Commented: shiv gaur on 16 Feb 2022
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 Comments
Walter Roberson
Walter Roberson on 16 Feb 2022
What do the % mean in your formula for x_new?
shiv gaur
shiv gaur on 16 Feb 2022
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
% is nothing that is edited code not able to plot help using while loop x is the root of the equation xnew is the transedental equation

Sign in to comment.

Accepted Answer

Jan
Jan on 16 Feb 2022
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.
  2 Comments
shiv gaur
shiv gaur on 16 Feb 2022
k0=(2*pi/0.6328)*1e6;
t2=1.5e-6;
n1=1.512;n2=1.521;n3=4.1-%i*0.211;
n4=1;
m=0;
x=1;
t3=linspace(1e-9,1e-6,20);
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 = 0;
while (n<=20)
x_new =-(k2).*t2+atan(k1./%i*k2)+atan((k3./k2).*tan(atan(k4./%i*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
plot(t3,x_new)
this is the program pl plot the graph
shiv gaur
shiv gaur on 16 Feb 2022
why this is not converging where x is the root of function x_new

Sign in to comment.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!