平行平面腔自再现模的matlab数值计算
平行平面腔自再现模的数值解法 石鹏(2010302749) 目前,平行平面腔在中等以上激光器中仍普遍应用,但是平行平面腔的自 再现模积分方程至今尚未得到精确的解析解。本文就条形腔和矩形对积分方程 做数值计算。计算的思想基于Fox-Li 数值迭代法,计算用matlab 软件实现, 结果可以很直观地用图形表示出来。 1.矩形腔的分离变量法 先来看谐振腔的自再现模。所谓自再现,就是指不管初始分布 的具体特征如何,只 1 u 要经过足够多次的往返渡越后,所生成的场分布都将明显带有衍射的痕迹,而且,具有这 种特点的场分布将不再受到衍射作用的影响,形成一种稳定的场分布。 设 为经过 次渡越后在某一镜面上的光场分布,根据菲涅耳—基尔霍夫衍射 , q u x y q 积分公式,可以得到光波再渡越一次腔长距离后的光场分布 与 之间的关系为: 1 q u q u(1) 1 , , 1 cos 4 ik q q ik e u x y u x y ds 按照自再现模的概念, 和 应满足关系: 。光场分布 的模长为振幅 1 q u q u 1 q q u u q u 分布,相角为相位分布。 对于矩形腔, 的计算公式为: 2 2 2 x x y y L 按幂级数展开近似为: 2 2 2 2 x x y y L L L 代入(1) ,可以得到积分方程的核为: 2 2 2 2 , , , x x y y ik L L ikL i K x y x y e e L 可以看出,方形镜平行平面腔的自再现模的积分方程对 、 两个坐标是对称的。令 x y , (2) , mn m n u x y u x u y mn m n 这样就可以对积分方程进行分离变量, 和 的方程具有相同的形式: x y(3) 2 2 x x a ik ikL L m m m a i u x e e u x dx L 这就是条形腔的积分方程,求解矩形腔的自再现模的关键就是解这个方程。2.积分方程的数值解法 积分方程(1) , (3)在数学上称为第二类弗里德霍姆方程。这儿使用Fox-Li 数值迭 代的方法来求解。方程(3)可以表示为以下形式:(4) 1 a q q a u x K x x u x dx (5) 2 2 x x ik ikL L i K x x e e L 其中 为积分的核函数。方程(4)的含义是场分布 经过一次传输以后 K x x q u x 得到新的场分布 。根据自再现模的性质,不管初始分布 具有什么样的形式, 1 q u x 1 u x 用方程(4 )经过足够多次迭代得到的光场分布都具有相同的形式。 现在任意给一个初始分布,来解方程(4) 。先将方程(4)离散化:(6) 1 1 2 n q i q i i a u x K x x u x n 再次迭代就要用到 ,把 代入上式,令 分别等于 1,2,3 ,计算 的前 1 q i u x i x i 1 q i u x 几项, ; ; 1 1 1 1 2 n q i q i i a u x K x x u x n 1 2 2 1 2 n q i q i i a u x K x x u x n ,可以发现(6)式具有矩阵的形式,把它写出来: 1 3 3 1 2 n q i q i i a u x K x x u x n (7) 1 1 1 1 1 1 2 1 1 2 2 2 1 2 2 2 1 n 1 2 2 q q n q q n q n q n n n n u x u x K x x K x x K x x u x u x K x x K x x K x x a n u x u x K x x K x x K x x … … … … … … … … … 把上式简化表示为 ,可以发现矩阵表示有特殊的含义:在(4)中, 1 q q U KU 是一个关于 和 的函数,而在(7 )中 是一个数值矩阵。传输一次就是给 K x x x x K 左乘一个 ,于是,初始分布经过 q 次传输以后就是给初始分布左乘一个 : q U K q K(8) 1 q q U K U 这就是积分方程(4)的数值方法的迭代公式。可以发现,用积分方程迭代的重点就是 计算核矩阵 。我把它做成了一个函数文件 kernel : K function K = kernel( Lambda , L , x ) %KERNEL 计算积分方程的核Kk = 2*pi/Lambda ; [ X , Y ] = meshgrid(x) ; K = sqrt( 1i/(Lambda*L) * exp(-1i*k*L) ) * exp(-1i*k * (Y-X).^2 / (2*L) ) ; end Kernel函数的输入参数为波长、腔长和一个把坐标轴离散化后的向量x 。 其中用到了一个生成网格数据的函数meshgrid,它可以得到一个横向向右递增 的矩阵X 和一个纵向向下递增的矩阵Y,用来计算矩阵 。这种算法的结果得到 K 了一个数值矩阵,并且把函数积分的N次迭代转化为对数值矩阵求N 次方。 matlab计算矩阵的速度比计算函数的速度要快,这就增加了程序的效率,优化 了算法。这儿得到的 中并没有步长2a/n ,因为n 是在函数外部定义的,所以在 K 函数外部调用比较方便。 3.条形腔的自再现模 方程(3)就是条形腔的自再现模的积分方程,经过前面的讨论,它的解法 就是利用公式(8 )来进行迭代。计算条形腔的振幅和相位分布的函数为bar1 , 下面给出bar1函数的一段代码: M = 500 ; T = 300 ; x = linspace(-a,a,M) ; x1 = ones( M , 1 ) ; K = kernel( Lambda , L , x ) ; y = (2*