matlab画图问题,已知光场分布函数作出3光强模拟图,求详细代码

matlab画图问题,已知光场分布函数作出3光强模拟图,求详细代码,第1张

对你的代码做了点修改,主要是把

r=linspace(0,R,10000)

M=besselj(0,(k.*r.*yp)./zp).*exp(i*k*r.*r./(2*zp)-i*k*(n-1)*gama*r).*r L=trapz(r,M)

改成

L=quadl(@(r)besselj(0,(k.*r.*yp)./zp).*exp(i*k*r.*r./(2*zp)-i*k*(n-1)*gama*r).*r,0,R)

直接用积分函数quadl而不是用梯形法trapz,可以在保证精度的猜腊升基础上大幅提高效率(根据我这里测试,应该至少能提局滑高15倍以上)。

至于结果是否正确,我不敢保证穗老。至少,我看到的程序和你贴出的公式不一样(比如,积分式子前面的从E0开始的那部分在哪里?)

%入射光在X-Z平面内传播的两束光平面数慧前光波薯清干涉。Z轴为传播方向。

clear all

close all

%参数设置

Lamda=532*10e-6

KK=2*pi/Lamda

AngleOneX=2 %与碧蚂Z方向夹角

AngleTwoX=-2

AngleOneY=90 %与Y方向夹角

AngleTwoY=-90

AngleOneX=pi/180*AngleOneX AngleOneY=pi/180*AngleOneY

AngleTwoX=pi/180*AngleTwoX AngleTwoY=pi/180*AngleTwoY

ViewUp=100*Lamda

ViewDown=-100*Lamda

Space=0.1*Lamda %N=1000

[ViewX,ViewY]=meshgrid(ViewDown:Space:ViewUp)

%两束光的光场分布

FieldOne1=exp(1i*(KK*sin(AngleOneX).*ViewX+KK*cos(AngleOneY).*ViewY))

FieldTwo1=exp(1i*(KK*sin(AngleTwoX).*ViewX+KK*cos(AngleTwoY).*ViewY))

Intensity1=(FieldOne1+FieldTwo1).*conj(FieldOne1+FieldTwo1)

figure

subplot(2,2,1)

imshow(Intensity1,[])

XPM, Cross-phase Modulation ,交叉相位调渗咐制 。 当两个或两个以上的信道使用不同的频率同时在光纤中传播时答伍而由光场自身引起的非线性光学效应。 XPM图片格式 XPM(XPixMap)图形格式在X11中是一个标准格式,它把图形保存成ASCII文本,一个XPM的定义不仅仅是ASCII形式,它的格式还可以是 C源代码形式的,可以直接将清喊或它编辑到自己的应用程序中去。XBM作为XPM的一个特例,也可以保存为ASCII和 C源码的形式,通常用作鼠标键盘指针。 GRUB下可支持的背景图片格式!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12566947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存