本文來自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);
}