problem in plot while loop

1 vue (au cours des 30 derniers jours)
shiv gaur
shiv gaur le 16 Fév 2022
Commenté : shiv gaur le 16 Fév 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 commentaires
Walter Roberson
Walter Roberson le 16 Fév 2022
What do the % mean in your formula for x_new?
shiv gaur
shiv gaur le 16 Fév 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

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 16 Fév 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 commentaires
shiv gaur
shiv gaur le 16 Fév 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 le 16 Fév 2022
why this is not converging where x is the root of function x_new

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Function Creation dans Help Center et File Exchange

Tags

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by