MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB基础] 请帮忙看看下面程序出错在哪里 (https://www.labfans.com/bbs/showthread.php?t=7915)

北斗 2009-04-25 17:24

请帮忙看看下面程序出错在哪里
 
function [zeta,s,U]=diffraction(m,n)
dzeta=1/m;
ds=6/n;
ta=dzeta/(ds*ds);
zeta=zeros(m+1,1);
s=zeros(n-1,1);
U=zeros(m+1,n-1);
b=zeros(n-1,1);
ll=zeros(n-1,1);
ul=zeros(n-1,1);
zeta=[0:dzeta:1];
s=[-(n-2)/2*ds:ds:(n-2)/2*ds]';
%r=3;
%thet0=4.5*10^-3;
f=inline('sqrt(0.1/sqrt(pi)/(4*10^-3)*exp(-(2*10^-3).^2/(4*10^-3).^2))*exp(-s.^2/(0.69*0.69))','s');
for j=1:n-1
U(1,j)=f(s(j));
end;
ne=2.3;
lambda0=0.5*10^-6;
ke=2*pi/lambda0*ne;
thet=-2*10^-3;
x0=18.265*10^-6;
alpha=thet*ke*x0;
g0=alpha/2*ds*ta;
g1=1/4*sqrt(-1)*ta;
for k=1:n-2
A(k,k+1)=g0-g1;
A(k+1,k)=-g1;
A(k,k)=-g0+1+2*g1;
end
A(1,1)=A(1,1)-g1;
A(n-1,n-1)=1+g1;
% 分解矩阵A
ul=A(1,1);
for l=2:n-1;
ll(l)=A(l,l-1)/ul(l-1);
ul(l)=A(l,l)-A(l-1,l)*ll(l);
end
for k=1:m;
b(1)=(1+g0-g1)*U(k,1)+(-g0+g1)*U(k,2);
for j=2:n-2;
b(j)=g1*U(k,j-1)+(1+g0-2*g1)*U(k,j)+(-g0+g1)*U(k,j+1);
end
b(n-1)=g1*U(k,n-2)+(1-g1)*U(k,n-1);
%用追赶法求解线性方程组AU=b
y(1)=b(1);
for l=2:n-1
y(l)=b(l)-ll(l)*y(l-1);
end;
U(k+1,n-1)=y(n-1)/ul(n-1);
for l=n-2:(-1):1
U(k+1,l)=(y(l)+(-g0+g1)*U(k+1,l+1))/ul(l);
end;
end
mesh(s,zeta,abs(U).^2)
xlabel('s')
ylabel('\xi')
zlabel('|U|.^2')

mathjiang 2009-04-27 19:02

回复: 请帮忙看看下面程序出错在哪里
 
首先,你应该贴出错误提示;
然后,看别人写的程序比较头痛。你先设置断点,自己找出问题所在的地方,在调试。


所有时间均为北京时间。现在的时间是 14:42

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.