matlab2010改语言,matlab程序修改解决办法

当前位置:我的异常网» 其他开发语言 » matlab程序修改解决办法

matlab程序修改解决办法

www.myexceptions.net  网友分享于:2013-10-15  浏览:4次

matlab程序修改

function f=fxxx(z,x)

global Vz l w0 wy k h H T d Is P I0 p0 M y

l=425.55e-9; %波长;

w0=195e-6; %束腰半径;

k=2*pi/l; %波矢;

h=6.62e-34; %普朗克常量;

H=h/(2*pi);

T=200*10^6*2*pi; %失谐量;

d=5e6*2*pi; %自然线宽;

Is=85; %饱和光强;

%P=2.9e-3; %激光功率;

I0=1.98e5;%8*P/(pi*w0^2); %激光强度;

p0=(I0/Is)*(d^2/(d^2+4*T^2)); %饱和参量常数项;

%p=p0*exp(-2*(y^2+z^2)/w0^2)*sin((2*pi/l*x))^2 %饱和参量;

%U=H*T/2*log(1+p); %光势阱;

M=1.993*10^(-26)*51.991/12; %单个原子的质量/kg;

Vz=926;

E0=M*Vz^2/2;

f(2)=(1+x(2)^2)/(2*(E0-H*T/2*log(1+p0.*exp(-2*(z.^2/w0^2+y.^2/w0^2))*(sin(k*x(1)))^2)))...

*((x(2)*H*T*p0*(sin(k*x(1)))^2.*exp(-2*(z.^2/w0^2+y.^2/w0^2)).*(-4.*z/w0^2))/(2*(1+p0.*exp(-2*(z.^2/w0^2+y.^2/w0^2))*(sin(k*x(1)))^2))...

-H*T*p0.*exp(-2*(z.^2/w0^2+y.^2/w0^2))*sin(2*k*x(1))*k/(2*(1+p0.*exp(-2.*(z.^2/w0^2+y.^2/w0^2))*(sin(k*x(1)))^2)));

f(1)=x(2);

f=f';

return

%球差对沉积的影响。

%close ;

clear;

clc;

global Vz l w0 k h H T d Is I0 p0 M y

l=425.55e-9; %波长;

w0=195e-6; %束腰半径;

k=2*pi/l; %波矢;

h=6.62e-34; %普朗克常量;

H=h/(2*pi);

T=200*10^6*2*pi; %失谐量;

d=5e6*2*pi; %自然线宽;

Is=85; %饱和光强;

%P=2.9e-3; %激光功率;

I0=1.98e5;%8*P/(pi*w0^2); %激光强度;

p0=(I0/Is)*(d^2/(d^2+4*T^2)); %饱和参量常数项;

%p=p0*exp(-2*(y^2+z^2)/w0^2)*sin((2*pi/l*x))^2 %饱和参量;

%U=H*T/2*log(1+p); %光势阱;

M=1.993*10^(-26)*51.991/12; %单个原子的质量/kg;

Vz=926;

E0=M*Vz^2/2;

z0=[-w0,w0];

x0=-l/4:l/200:l/4;

a=p0*k^2*w0^2*H*T/(2*E0);

options=odeset('abstol',1e-30,'reltol',1e-10);

for n=1:length(x0)

[z,x]=ode45('fxxx',z0,[x0(n),0],options);

%计算一个原子在z=0平面上的落点。

%c=length(z);

%re(n)=x(c,1)/0.249e-9;

%ret(n)=x(1,1);

%zp(n)=x0(n)/re(n)

%if abs(re(n))<0.249e-9

%re(n)=0;

%end

%figure(1);

plot(z/w0,x(:,1)/l);

hold on

end

ylabel('纵向位置[w0]','Fontsize',14);

xlabel('入射位置[波长]','Fontsize',14);

编译程序出现错误:

??? Error using ==> mrdivide

Matrix dimensions must agree.

Error in ==> fxxx at 19

f(2)=(1+x(2)^2)/(2*(E0-H*T/2*log(1+p0.*exp(-2*(z.^2/w0^2+y.^2/w0^2))*(sin(k*x(1)))^2)))...

Error in ==> odearguments at 110

f0 = feval(ode,t0,y0,args{:}); %

ODE15I sets args{1} to yp0.

Error in ==> ode45 at 173

[neq, tspan, ntspan, next, t0, tfinal,

tdir, y0, f0, odeArgs, odeFcn, ...

Error in ==> qiucha at 28

[z,x]=ode45('fxxx',z0,[x0(n),0],options);

------解决方案--------------------

不知道是否已经解决,好像就是个矩阵维数不对应的问题,应该不难!

文章评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值