Alfanso 发表于 2006-8-13 19:25

请教一个编程的问题

刚开始学matlab,很多命令不是很熟悉,前段时间编了个程序求解积分的,但一直都调试不出来了,希望大侠给与指点
function b=p_c(x1,x2)            
lamda=10.6*10^(-6);
k=2*pi/lamda;
L=3;
gamma=pi/4;
rho=((x1-x2)^2+(L-x2*tan(gamma))^2)^(1/2);
b=exp(-i*k*rho)*(1/(rho)^(1/2));

以上为子程序,x1和x2为积分式中的变量

clear;
N=51;                     
lamda=10.6*10.^(-6);
k=2*pi/lamda;
L=3;                     
a=25*10^(-3);
g1=zeros(N);
temp=ones(N,1);
x3=linspace(-a,a,N);
x4=linspace(-a,a,N);
for n=1:1:N-1
    x33(n)=(x3(n)+x3(n+1))/2;
    x44(n)=(x4(n)+x4(n+1))/2;
end                     
for n=1:1:N-1
    u(n)=1;
end

for m=1:1:(N-1)
    for n=1:1:(N-1)
      y=x44(m);
      g11(m,n)=(lamda)^(-1/2)*exp(i*pi/4)*quadl('p_c',x3(n),x3(n+1));
    end

采用了有限元的方法进行处理.其中p_c为要求积分的方程
希望各位给看看,是哪里出现了问题

[ 本帖最后由 yejet 于 2006-8-13 19:35 编辑 ]

yejet 发表于 2006-8-14 22:02

子程序中的x2从哪里来?

happy 发表于 2006-8-15 09:21

quadl只能有一个积分变量
仔细看一下quadl的相关帮助
页: [1]
查看完整版本: 请教一个编程的问题