[已解决] 如何求解定积分中的未知量。最后目的是求出S的值,除了S和x,其他的值都已知

[复制链接]
mat小小白 发表于 2021-5-18 10:20:52
我不会写,查百度大概弄成这样子,一直不对。求大神帮助
vp=3e8/(1907e-9);%泵浦光频率
ws=160e-6;%激光束腰半径160微米
wp=130e-6;%泵浦光束腰半径130微米
R1=0.998;%前腔镜对激光的反射率
T=0.1;%输出耦合镜透过率
R2=1-T;%输出耦合镜对激光的反射率
cigema=-log10(R1*R2);%腔内往返损耗,考虑腔镜损耗
citae=13.2e-24;%受激发射截面13.2e-20cm2
fd=0.0172;%激光下能级玻尔兹曼常数
fu=0.0993;%激光上能级玻尔兹曼常数
Ntot=1.386e26;%增益介质总粒子数1.3811e20/cm3
l=0.08;%晶体长度1mm到100mm
np=1;%泵浦量子效率  
f=fu+fd;
tao=8e-3;%激光上能级寿命8ms
Pin=8;
citap=10.4e-24;%吸收截面10.4e-20cm2
fp=0.1545;%泵浦下能级的玻尔兹曼常数
a=citap*fp*Ntot;%介质对泵浦光的吸收效率
na=1-exp(-a.*l);
a1=wp/ws;
y=1;
r=0:0.01:0.04;
%x=2*r.^2/wp^2;
B=2*citae*fd*Ntot*l/cigema;
F=4*citae*tao*np*Pin*na/(pi*h*vp*ws^2*cigema);
fun=((f*F.*exp(-x)-a1^2*B).*exp(-a1^2.*x))/(1+f*a.*exp(-a1^2.*x));
func=@(a,x)quad(fun,0,inf);
%func=quad(fun,0,inf);
[a,r]=nlinfit(x,y,func,0);

最佳答案


WarnerChang 发表于 2021-5-18 12:23:05

我就随便定义h一个值,自己记得修改:
同时,参数好好定义,别混了,比如原先代码中的a

vp=3e8/(1907e-9);%泵浦光频率
ws=160e-6;%激光束腰半径160微米
wp=130e-6;%泵浦光束腰半径130微米
R1=0.998;%前腔镜对激光的反射率
T=0.1;%输出耦合镜透过率
R2=1-T;%输出耦合镜对激光的反射率
cigema=-log10(R1*R2);%腔内往返损耗,考虑腔镜损耗
citae=13.2e-24;%受激发射截面13.2e-20cm2
fd=0.0172;%激光下能级玻尔兹曼常数
fu=0.0993;%激光上能级玻尔兹曼常数
Ntot=1.386e26;%增益介质总粒子数1.3811e20/cm3
l=0.08;%晶体长度1mm到100mm
np=1;%泵浦量子效率  
f=fu+fd;
tao=8e-3;%激光上能级寿命8ms
Pin=8;
citap=10.4e-24;%吸收截面10.4e-20cm2
fp=0.1545;%泵浦下能级的玻尔兹曼常数
a=citap*fp*Ntot;%介质对泵浦光的吸收效率
na=1-exp(-a.*l);
a1=wp/ws;
y=1;
r=0:0.01:0.04;
%x=2*r.^2/wp^2;
B=2*citae*fd*Ntot*l/cigema;
h = 0.5;
F=4*citae*tao*np*Pin*na/(pi*h*vp*ws^2*cigema);
fun=@(S,x)((f*F.*exp(-x)-a1^2*B).*exp(-a1^2.*x))./(1+f.*S.*exp(-a1^2.*x));
func=@(S)(integral(@(x)fun(S,x),0,inf)-1);
%func=quad(fun,0,inf);
% [a,r]=nlinfit(x,y,func,0);
S=fzero(func,0.5)

6 条回复


mat小小白 发表于 2021-5-18 10:24:49
S就是系数a,f*S就是分母中的这一项

WarnerChang 发表于 2021-5-18 10:31:02
mat小小白 发表于 2021-5-18 10:24
S就是系数a,f*S就是分母中的这一项

你直接把方程也放上来吧

mat小小白 发表于 2021-5-18 10:36:02
WarnerChang 发表于 2021-5-18 10:31
你直接把方程也放上来吧

公式如图

公式如图

公式如图

WarnerChang 发表于 2021-5-18 11:46:40

你代码中:
F=4*citae*tao*np*Pin*na/(pi*h*vp*ws^2*cigema);
的h没有定义

WarnerChang 发表于 2021-5-18 12:23:05

我就随便定义h一个值,自己记得修改:
同时,参数好好定义,别混了,比如原先代码中的a

vp=3e8/(1907e-9);%泵浦光频率
ws=160e-6;%激光束腰半径160微米
wp=130e-6;%泵浦光束腰半径130微米
R1=0.998;%前腔镜对激光的反射率
T=0.1;%输出耦合镜透过率
R2=1-T;%输出耦合镜对激光的反射率
cigema=-log10(R1*R2);%腔内往返损耗,考虑腔镜损耗
citae=13.2e-24;%受激发射截面13.2e-20cm2
fd=0.0172;%激光下能级玻尔兹曼常数
fu=0.0993;%激光上能级玻尔兹曼常数
Ntot=1.386e26;%增益介质总粒子数1.3811e20/cm3
l=0.08;%晶体长度1mm到100mm
np=1;%泵浦量子效率  
f=fu+fd;
tao=8e-3;%激光上能级寿命8ms
Pin=8;
citap=10.4e-24;%吸收截面10.4e-20cm2
fp=0.1545;%泵浦下能级的玻尔兹曼常数
a=citap*fp*Ntot;%介质对泵浦光的吸收效率
na=1-exp(-a.*l);
a1=wp/ws;
y=1;
r=0:0.01:0.04;
%x=2*r.^2/wp^2;
B=2*citae*fd*Ntot*l/cigema;
h = 0.5;
F=4*citae*tao*np*Pin*na/(pi*h*vp*ws^2*cigema);
fun=@(S,x)((f*F.*exp(-x)-a1^2*B).*exp(-a1^2.*x))./(1+f.*S.*exp(-a1^2.*x));
func=@(S)(integral(@(x)fun(S,x),0,inf)-1);
%func=quad(fun,0,inf);
% [a,r]=nlinfit(x,y,func,0);
S=fzero(func,0.5)
回复此楼

mat小小白 发表于 2021-5-18 14:40:57
WarnerChang 发表于 2021-5-18 12:23
我就随便定义h一个值,自己记得修改:
同时,参数好好定义,别混了,比如原先代码中的a

好的,谢谢。h复制时忘了。现在S是一个负数,我应该可以调整参数,把S弄对。谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表