yihaha 发表于 2007-7-7 13:12

关于quad函数问题 (在线等)

初学matlab想编歌公式,运行老是出错,请人帮忙·!目的是编这个:对u.^k.*gamma(-k,u)求和(k=0到L-1),本来是想用gamma(a,b)=gamma(a)*(1-gammainc(b,a)) 这个函数的,不过这里a=-k小于0不能用,只有编积分公式了 gamma(-k,u)=对exp(-t)./*t.^(-k-1)从u到无穷积分,我用了1e+10来近似无穷,u是i一个6×41的矩阵
function ff=integral(t,k)
ff=exp(-t).*t.^(-k-1);   

L=;
BER_T=1e-3;
SNR_dB=0:40;
SNR=10.^(SNR_dB./10);
gamma_ba=SNR;
for i=1:6
    gammac_ba(i,:)=gamma_ba./L(i);
end
u=-(log(5*BER_T))./(1.6.*gammac_ba);
Y=zeros(6,41);
ff=zeros(6,41);
for m=1:6
    for n=1:41
      for k=0:L(m)-1
            ff(m,n)=quad(@integral,u(m,n),1e+10,1e-10);
            Y(m,n)=Y(m,n)+u(m,n).^k.*ff(m,n);
      end
      Y(m,n)=Y(m,n).*exp(u(m,n))./(log(2));      
    end
end
运行时老是提示quad那一行出错,知道的兄弟朋友说说,急死了`

[ 本帖最后由 eight 于 2007-7-9 21:38 编辑 ]

花如月 发表于 2007-7-8 11:02

不太明白。不过觉得symsum好像可以解决的你问题,help一下试试看

[ 本帖最后由 花如月 于 2007-7-8 11:03 编辑 ]
页: [1]
查看完整版本: 关于quad函数问题 (在线等)