• 大小: 2KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-01-09
  • 语言: Matlab
  • 标签: MATLAB  光纤光学  

资源简介

蒙特卡洛方法计算方程的数值解,得到本征值。在极坐标中画图(光纤截面),得到场分布。分别对LP01,LP11,LP21,LP02模式进行了计算。

资源截图

代码片段和文件信息

%%
%题目要求:
%计算SIOF的基模和高阶模的本征值和光场分布图
%计算TE TM EH HE等精确模式
format long;
clear;
clc;

%%
%Init
e0=8.8542e-10;
u0=4e-7*pi;
a = 5e-6;
n1 = 1.451;
n2 = 1.442;
lamda = 1.31e-6;
k0 = 2*pi/lamda;
Delta = (n1^2-n2^2)/2/(n1^2);%RI
U0 = 4*pi*10^-7;
E0 = 8.8542*10^-12;
p=0;
%%
%caculating V
for l=0:2
beta = linspace(k0*n2k0*n1100000);
U = a* sqrt(k0^2 * n1^2 - beta.^2);
W = a * sqrt(beta.^2 -k0^2 * n2^2);
V = k0 * a * sqrt(n1^2 - n2^2);
disp([‘V值是‘num2str(V)]);

%%
%蒙特卡洛方法计算微分方程的数值解

F = besselj(lU)./U./besselj(l+1U)-besselk(lW)./W./besselk(l+1W);
plus = F;
num = 0;
for i = 1:100000-1
    %判断过零点作为解
    isDownPassZero = (F(i)>0)&(F(i+1)<0);
    isUpPassZero = (F(i)<0)&(F(i+1)>0);
    isEqualZero = (F(i)==0);
    if(isDownPassZero || isUpPassZero || isEqualZe

评论

共有 条评论