回 帖 发 新 帖 刷新版面

主题:请教问题

用到两个函数,其中第二个函数为递归的函数

function v=v(i,k,n)
syms A sigma1 positive;
if (i>0)&&(i<n+1)
    v=power(A,2*k);
end
  if  (i==n+1) 
     v=factorial(k)*power(2*sigma1,k);%factorial(k)是阶乘
 end




function u=u(i,k,n)
 if i==1
     u=v(1,k,n);
 end
 if (i>1)&&(i<=n+1)
        u=0;
        for l=0:k    
        kl=factorial(k)/(factorial(l)*factorial(k-l));
        u1=u(i-1,l,n);
        u2=v(i,k-l,n);
        u3=u+kl^2*u1*u2;
        end
end


命令窗口输入u(2,2,3),
Attempted to access u(1,0,3); index must be a positive integer or logical.
Error in ==> u at 11
        u1=u(i-1,l,n);


但是单独运行u(1,0,3)能出来结果,请教达人到底是怎么回事啊?

回复列表 (共2个回复)

沙发

function u=u(i,k,n)
 if i==1
     u=v(1,k,n);
 end
 if (i>1)&&(i<=n+1)
        u=0;
这一行定义的变量u,和函数u的名字一样,所以出错
建议把u=0;换成uu=0

板凳


没注意,现在好了~~

谢啦~~~[em1]

我来回复

您尚未登录,请登录后再回复。点此登录或注册