单模光纤的特征方程以及MATLAB求解

这篇具有很好参考价值的文章主要介绍了单模光纤的特征方程以及MATLAB求解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在之前的文章中,我们写出了单模光纤的特征方程以及对应的导波模式

这里我们在MATLAB中求解特征方程并表示出几个归一化参数的变化曲线

用到的公式是单模光纤导波模式的特征方程:

clear
close all
tic
Vmax = 10;
N =100;

for j =1:N
    V(j) = j/N*Vmax;
    Vtemp = V(j);

    Utemp = NaN;
    i = 0;

    while (isnan(Utemp) && i<N+1)
        init =Vtemp*(i+1)/N-1e-16;
        try
            Utemp = fzero(@(Utemp) ...
                besselj(0,Utemp)/(Utemp*besselj(1,Utemp)) - ...
                besselk(0,sqrt(Vtemp^2-Utemp^2))/ ...
                (sqrt(Vtemp^2-Utemp^2)*besselk(1,sqrt(Vtemp^2-Utemp^2))),init);
        catch
        end
        i = i+1;
    end
    U(j) = abs(Utemp);
end

W = sqrt(V.^2-U.^2);
Ymax = ceil(max([U,W]));

figure
subplot(1,2,1)
plot(V,U,'r');
axis equal
axis([0 Vmax 0 Ymax])
xlabel('v')
ylabel('u')
title('Lp_{01}  v-u')

subplot(1,2,2)
plot(V,W,'r');
axis equal
axis([0 Vmax 0 Ymax])
xlabel('v')
ylabel('w')
title('Lp_{01}  v-w')

toc

fzero函数能求解fun(x) = 0 的点 x。

使用方式:

x = fzero(fun,x0)

其中x0表示初始值

我们从0-10之间选取了N(100)个点,对于每一个点都有一个Vtemp与之对应

对于每一个确定的Vtemp,特征方程都有一个Utemp与之对应

结果如下:

单模光纤的特征方程以及MATLAB求解

 try catch语句在java中常见于抛出错误

在预见到会产生错误的前提下,把可能引发异常的语句封装在 try 语句块中,用以捕获可能发生的异常。

catch 语句会依据所拋出异常对象的类型进行捕获,并处理。

处理之后,程序会跳过 try 语句块中剩余的语句,转到 catch 语句块后面的第一条语句开始执行。

如果 try 语句块中没有异常发生,那么 try 块正常结束,后面的 catch 语句块被跳过,程序将从 catch 语句块后的第一条语句开始执行。

ceil函数是取整函数,将输入参数的每个元素四舍五入到大于或等于该元素的最接近整数。这里用来规划坐标轴的范围

代码的输出结果就是单模光纤UVW三个元素之间的关系,我们可以在命令行窗口看到具体的数值结果:

[V' U' W']

截取前一段来观察:

单模光纤的特征方程以及MATLAB求解

在V很小时,U和W没有数值解,也就是不存在合适的U和W形成导波模式

在曲线的起始端,对应的数值分别为Vc和Uc

随着V不断增加,U和W都增大,但是,W的增加近似于线性(在V较大的情况下),U的增加趋近于一个有限值

我们可以用多项式拟合得到近似的直线,并和通过特征方程求解的结果作对比:

NN = 15:24
x = V(NN);
y = W(NN);
p = polyfit(x,y,1);
f = polyval(p,x);
maxerr = max(y-f)
figure
plot(x,y,'o',x,f,'-')
xlabel('v')
ylabel('w')

polyfit函数用于拟合函数,返回次数为 n 的多项式 p(x) 的系数,该阶数是 y 中数据的最佳拟合(基于最小二乘指标)。p 中的系数按降幂排列,p 的长度为 n+1

这里我们设置阶数为1,也就是直线拟合

结果如下:

单模光纤的特征方程以及MATLAB求解

polyval函数计算多项式 p 在 x 的每个点处的值。参数 p 是长度为 n+1 的向量,其元素是 n 次多项式的系数(降幂排序)

通过这两个函数组合,我们得到了拟合直线的表达式以及拟合直线的在对应点的结果

在命令行窗口读出最大的误差,可以看到最大的误差是数量级。

参考《高等光学仿真——光波导、激光》文章来源地址https://www.toymoban.com/news/detail-453181.html

到了这里,关于单模光纤的特征方程以及MATLAB求解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数值分析·学习 | 解线性方程组的直接方法(高斯消去法以及LU求解)matlab实现

    目录 一、前言: 二、算法描述: 三、实现代码: 1、高斯消去法: 2、高斯消去法-列主元消去法: 3、LU分解: 4、求逆矩阵: 四、总结: 个人学习内容分享 1、高斯消去法:         设有线性方程组         或写为矩阵形式

    2024年02月05日
    浏览(80)
  • MATLAB中对方阵行列式的求解、矩阵的累加和与累乘积进行求解、矩阵的排序、矩阵的秩和迹、以及矩阵的特征值和特征向量的求解

    目录 1、方阵的行列式计算 2、累加和与累乘积 (1)累加和 (2)累乘积 3、对于数据进行排序 4、求矩阵的秩 5、矩阵的迹 6、计算矩阵的特征值和特征向量 在线性代数中,对于一个方阵进行求值运算需要先将其转换为行列式,MATLAB中提供过了det函数用于对于方阵的行列式进

    2023年04月22日
    浏览(66)
  • Softing FiberXpert 700光纤测试套件助力一级多模和单模光纤认证

    FiberXpert 700 是用于多模和单模的四路波长测试套件,不仅可以对光纤链路进行直观、灵活和快速地认证,而且可以导出数据报告。 测试网络安装以确保其符合指定标准的过程称为认证,并且这通常需要纸质文件作为符合标准的证明。而 FiberXpert 700光纤测试套件(FiberXpert 700

    2023年04月26日
    浏览(35)
  • matlab求解方程和多元函数方程组

    核心函数solve 一般形式 S=solve(eqns,vars,Name,Value) ,其中: eqns是需要求解的方程组; vars是需要求解的变量; Name-Value对用于指定求解的属性(一般用不到); S是结果,对应于vars中变量; 单个方程求解 方程:sin(x)=1 代码: 结果: 说明: MATLAB定义方程用的是 == 符号,就是这样

    2024年02月08日
    浏览(44)
  • MATLAB-常微分方程求解

    MATLAB中可以用来求解常微分方程(组)的函数有ode23、 ode23s、 ode23t、 ode23tb 、ode45、ode15s和odel13等,见下表。它们的具体调用方法类似,为了方便后面的描述, 在后面的介绍中将使用solver统一代替它们。 函数的具体调用方法如下。 [T,Y] =solver( odefun, tspan,y0) [T,Y] = solver( odefun,

    2024年02月02日
    浏览(50)
  • MATLAB-线性方程组求解

    线性方程组是线性代数中的重要内容之一,其理论发展的最为完善。MATLAB中包含多种处理线性方程组的命令,下面进行详细介绍。 对于形如AX=B的方程组来说,假设其系数矩阵A是m×n的矩阵,根据其维数可以将方程组分以下3种情况。 1)若m=n,则为恰定方程组,即方程数等于未知

    2023年04月16日
    浏览(45)
  • MATLAB:方程组的求解

    综合实例应用:方程组的求解 无论工程应用问题,还是数学计算问题,方程组都是解决问题转化的重要途径之一,将复杂问题转化为简单的方程组矩阵求解问题。 利用矩阵分解来求解线性方程组,是工程计算中最常用的计算。 LU分解法是先将系数矩阵A进行LU分解,得到LU=P

    2024年01月19日
    浏览(38)
  • MATLAB 之 非线性方程数值求解、最优化问题求解和常微分方程初值问题的数值求解

    非线性方程的求根方法很多,常用的有牛顿迭代法,但该方法需要求原方程的导数,而在实际运算中这一条件有时 是不能满足的,所以又出现了弦截法、二分法等其他方法。 在 MATLAB 中,非线性方程的求解和最优化问题往往需要调用最优化工具箱来解决。优化工具箱提供了一

    2024年02月08日
    浏览(57)
  • 矩阵方程的计算求解:使用 MATLAB

    矩阵方程的计算求解:使用 MATLAB 矩阵方程是数学中一类重要的方程,它以矩阵的形式表示,并涉及到矩阵的乘法、加法和逆运算等。在 MATLAB 中,我们可以使用多种方法来求解矩阵方程,包括直接求解、迭代法和数值方法等。本文将介绍几种常见的方法,并给出相应的 MATL

    2024年02月08日
    浏览(54)
  • MATLAB 之 线性方程组求解

    在 MATLAB 中,关于线性方程组的解法一般分为两类:一类是直接法,就是在没有舍入误差的情况下,通过有限步的矩阵初等运算来求得方程组的解;另一类是迭代法,就是先给定一个解的初始值,然后按照一定的迭代算法进行逐步逼近,求出更精确的近似解。 线性方程组的直

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包