0

我有这个向量 [10000000000 10000000001 10000000002]

我尝试使用这个公式计算它的方差

公式

我计算它,但我得到的答案是 3.33333333466667e+19 这是错误的,因为正确答案是 1。

我做错了什么?

MATLAB代码是

    total=0;
    m1=data(1);
    m2=(data(2)-m1)/2;
    q1=0;
    q2=q1+(((2-1)/2)*((data(2)-m1)^2));
    q3=q2+(((3-1)/3)*((data(3)-m2)^2));
    variance=q3/(3-1)

谢谢

4

1 回答 1

5

M是平均计算,它应该是

Mk = ((k-1) M(k-1) + xk)/k

因此

m1=data(1);
m2=(data(2)+m1)/2;
q1=0;
q2=q1+(((2-1)/2)*((data(2)-m1)^2));
q3=q2+(((3-1)/3)*((data(3)-m2)^2));
variance=q3/(3-1)
variance =
     1

见鬼,我感觉很慷慨,通用尺寸数据的完整代码:

sizle = size(data,2);
M = zeros(1, sizle);
Q = M;
Variance = Q;
M(1)=data(1);
for i = 2:sizle
    M(i)=((i-1)*M(i-1) + data(i))/i;
    Q(i)=Q(i-1)+(i-1)*((data(i)-M(i-1))^2)/i;
    Variance(i) = Q(i)/(i-1);
end

Variance(end)
var(data)
于 2012-05-04T02:10:40.360 回答