協方差計算的C語言代碼

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/luckisok/archive/2007/05/11/1605202.aspx謝謝

協方差在信號分析時有重要作用:

1。顯示x與y是正相關還是負相關
協方差爲負,是負相關,
協方差爲正,是正相關。
2。協方差顯示x與y相關程度的大小
當相關點在四個象限呈散亂的分佈,相關程度很低
當相關點分佈在x與y的平均值線上時,表示不相關
當相關點靠近一直線,表示相關關係密切
當相關點全部落在一直線,表示完全相關
說了這麼多,其實很簡單,協方差的計算機公式爲Sxy=(∑(xi-x^)(yi-y^))/(n-1),i=0,1,2...,n-1,這裏^表示平均值

void cox(int x[],int y[],int n,double *p)
{
   int i;
   double averx,avery,sumx=0,sumy=0;
   double sum=0;
   for(i=0;i<n;i++)
   {
      sumx+=x[i];
      sumy+=y[i];
   }
   averx=sumx/n;
   avery=sumy/n;
   for(i=0;i<n;i++)
     sum+=(x[i]-averx)*(y[i]-avery);
   *p=sum/(n-1);
}

void output(int array[],int n)
{
   int i;
   for(i=0;i<n;i++)
      printf("%4d",array[i]);
}

void main()
{
   int x[5]={1,2,3,4,5};
   int y[5]={5,4,3,2,1};
   double co;
   cox(x,y,5,&co);
   printf("/nx:/n");
   output(x,5);
   printf("/ny:/n");
   output(y,5);
   printf("/nThe cox of x and y is:%lf/n",co);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章