cjhzju 发表于 2008-6-4 17:42

求助各位matlab大侠们~

[b]请教大侠们,我下面的这个函数哪里错了?调用的时候,如r(0,4)总是说自变量太多。我是新手,matlab语言不懂啊~[/b][em04]

function y=intf(x)
y=exp(-x.^2);
function [s,n]=r(a,b,eps)

if nargin<3
     eps=1e-4;
end
s=10;
s0=0;
k=2;
t(1,1)=(b-a)*(intf(a)+intf(b))/2;
while (abs(s-s0)>eps)
    h=(b-a)/2^(k-1);
    w=0;
    if(h~=0)
        for i=1:(2^(k-1)-1)
            w=w+intf(a+i*h);
        end
        t(k,1)=h*(intf(a)/2+w+intf(b)/2);
        for p=2:k
            for i=1:(k-p+1)
                t(i,p)=(4^(p-1)*t(i+1,p-1)-t(i,p-1))/(4^(p-1)-1);
            end
        end
        s=t(1,k);
        s0=(t(1,k-1));
        k=k+1;
        n=k;
    else s=s0;
        n=-k;
    end
end

hitzhang 发表于 2008-6-6 22:01

把function [s,n]=r(a,b,eps)的eps换成其他的看看

页: [1]

编程论坛