Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

program of two variable df/dna/df/dx vs da value

1 vue (au cours des 30 derniers jours)
shiv gaur
shiv gaur le 7 Jan 2022
Clôturé : Cris LaPierre le 29 Jan 2022
function shiv8
clear all
close all
na=1.432;
n=linspace(1.43,1.50,10)
D1= linspace(1e-9,3e-7,15);
for j=1:numel(D1)
for k=1: numel(n)
da = D1(j);
na=n(k);
p0 = 1;
p1 = 1.5;
p2 = 2;
TOL = 10^-8;
N0 = 100; format long
h1 = p1 - p0;
h2 = p2 - p1;
DELTA1 = (f(p1,na,da) - f(p0,na,da ))/h1;
DELTA2 = (f(p2,na,da ) - f(p1,na,da ))/h2;
d = (DELTA2 - DELTA1)/(h2 + h1);
i=3;
while i <= N0
b = DELTA2 + h2*d;
D = (b^2 - 4*f(p2,na,da )*d)^(1/2);
if abs(b-D) < abs(b+D)
E = b + D;
else
E = b - D;
end
h = -2*f(p2,na,da)/E;
p = p2 + h;
if abs(h) < TOL
disp(p)
break
end
p0 = p1;
p1 = p2;
p2 = p;
h1 = p1 - p0;
h2 = p2 - p1;
DELTA1 = (f(p1,na,da ) - f(p0,na,da ))/h1;
DELTA2 = (f(p2,na,da ) - f(p1,na,da ))/h2;
d = (DELTA2 - DELTA1)/(h2 + h1);
i=i+1;
end
end
%pv(j)=p;
P(j)=real(p();
%R(j)=real(r);
end
plot(D1,P)
end
function y=f(x,na,da)
l=6330*(10)^(-10);
k0=2*pi/l;
nc=1.33;
ec=nc^2;
%na=1.43;
ea=na.^2;
nf=1.59;
ef=nf^2;
nm=0.064+1i*4;
em=nm^2;
ns=1.495;
es=ns^2;
df=0.5e-6;
dm=0.03e-6;
%kx=(2*pi/l)*np*sin(a);
kc=k0*sqrt(x^2-ec);
ka=k0*sqrt(ea-x^2);
kf=k0*sqrt(ef-x^2);
km=k0*sqrt(em-x^2);
ks=k0*sqrt(x^2-es);
rfm=(kf-km)/(kf+km);
rms=(km-ks)/(ks+km);
rfa=(kf-ka)/(kf+ka);
rac=(ka-kc)/(ka+kc);
a=(1-rfm)/(1+rfm);
b=(1-rms*exp(2*1i*dm*km))/(1+rms*exp(2*1i*dm*km));
c=(1-rfa)/(1+rfa);
f=(1-rac*exp(2*1i*da*ka))/(1+rac*exp(2*1i*da*ka));
pfms=2*atan(1i*a*b);
pfac=2*atan(1i*c*f);
y=2*kf*df-pfms-pfac;
end
pl plot df/dna/df/dx vs da

Réponses (0)

Cette question est clôturée.

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