neff_co.m
来自「光纤中纤芯基模的有效折射率计算程序,二分法求解!」· M 代码 · 共 40 行
M
40 行
Neffco=zeros(10); % 初始化
for j=1:100
lamda=(1450+j)*10^(-9);
x1=1.450001;
x2=1.460001;
xacc=1e-8;
f=func(lamda,x1);
%%%%%%%%%%%%%%%%以下调用二分法求解func函数的零点,即求解纤芯基模的有效折射率
fmid=func(lamda,x2);
if (f<0)
rtb=x1;
dx=x2-x1;
else
rtb=x2;
dx=x1-x2;
end
for i=1:40
dx=dx*0.5;
xmid=rtb+dx;
fmid=func(lamda,xmid);
if(fmid<=0.0)
rtb=xmid;
end
if (abs(dx)<xacc||fmid==0.0)
break;
end
Neffco(j)=rtb; % matla 中的数组显示时是列优先的。即a[2]是第一列的第二个元素。
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
plot(lamda,Neffco(j));
hold on;
grid on;
end
hold off
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?