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

Sajid Afaque
Sajid Afaque 2022년 2월 16일
편집: Sajid Afaque 2022년 2월 16일
can u explain your problem in little detail
and i think equation in line number 18 needs to be cross checked
x_new =-(k2)*t2+atan(k1/%i*k2)+atan((k3/k2)*tan(atan(k4/%i*k2)-k3*t3))+m*pi;
Note : always update your code under code section
shiv gaur
shiv gaur 2022년 2월 16일
x_new =-(k2)*t2+atan(k1/%i*k2)+atan((k3/k2)*tan(atan(k4/1i*k2)-k3*t3))+m*pi; I have edit
code is correct so pl plot
KSSV
KSSV 2022년 2월 16일
@shiv gaur If code is correct why you are unable to plot?
shiv gaur
shiv gaur 2022년 2월 16일
why it is not ploting I am using this type
Jan
Jan 2022년 2월 16일
편집: Jan 2022년 2월 16일
You code does not conatin any command for plotting. Why do you expect, that there is a graphical output?
What is the purpose of:
t3=1e-9:1e-6
This is 1e-9, so t3 is a constant.
shiv gaur
shiv gaur 2022년 2월 16일
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
Walter Roberson
Walter Roberson 2022년 2월 16일
What do the % mean in your formula for x_new?
shiv gaur
shiv gaur 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;
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

댓글을 달려면 로그인하십시오.

 채택된 답변

Jan
Jan 2022년 2월 16일

0 개 추천

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

shiv gaur
shiv gaur 2022년 2월 16일
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 2022년 2월 16일
why this is not converging where x is the root of function x_new

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Programming에 대해 자세히 알아보기

제품

릴리스

R2021b

태그

질문:

2022년 2월 16일

댓글:

2022년 2월 16일

Community Treasure Hunt

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

Start Hunting!

Translated by