۱۳۹۸/۱۰/۰۸, ۱۲:۳۷ ق.ظ
می خواهم معادله زیر را یا روش نیوتون رافسون حل کنم اما متلب خطای
Index exceeds the number of array elements را نشون میده. چرا؟؟؟؟ /
کد:
E=0.1;
D=15.*10^(-9);
d=35.*10^(-9);
L=0.8.*10^(-6);
landa=373.*10^(-9);
Snw=L.*d.*(((pi.*d)./landa).^2);
Sspot=(pi.*D.^2)./4;
E1=Snw./Sspot;
F=67;
tr=265*10^(-12);
A=F./tr;
Y=1./(9.2.*10^(-15));
B=0.5;
n0=10^17;
T=1.48;
tph=0.26*10^(-12);
pth=65*10^(6);
nth=E.*E1.*pth.*A;
g0=1./(T.*tph.*(nth-n0));
n00=10^(15);
N=1601;
error=0.01;
for p = 0:10000:1600*10^(6)
syms n;
f= (E.*E1.*p -(g0.*T.*A.*B.*n.*(n-n0))./(Y-T.*g0.*(n-n0)))./A;
dif=diff(f);
while i<=N
n1= n00-(f(n00)./dif(n00));
err=abs((n1-n00)./n1);
if err<error
printf('exciton density',double(n1))
return
end
i=i+1;
n00=n1;
end
end