请问各位高手,我以下是模拟求保险公司的红利贴现期望(PD)及其2阶矩(var),我的程序错在哪里,为什么求出来的var不对呢?
clear;
v=0.95;
D=[];
sum=0;
c=input('please input the constant barrier:','s');
b=str2num(c);
for i=1:2500
    u=0;
    T=0;
    while u>=0
        X=binornd(8,1/8,1,1);
        Y=binornd(8,1/10,1,1);
        T=T+1;
        u=u+X-Y;
        if u>b
            D(i)=(u-b)*v^T;
            sum=sum+D(i);
            D(i)=sum;
            u=b;
        end
    end
end
for k=1:2500
    d=0;
    d=d+D(k);
end
PD=d/2500
for  k=1:2500
    D1=0;
    D1=D1+[D(k)-PD]^2;
end
var=D1/2500