double r[11][11]; double x[11]; void main()
{ int i,j,k; double fenzi=0,fenmu1=0,fenmu2=0,fenmu=0;
int year[10][11]={276,324,159,413, 292 ,258,311,303,175,243,320,
for(i=0;i<11;i++) { for(k=0;k<10;k++)
{ x[i]=x[i]+year[k][i];}
251 ,287,349,344,310,454,285,451,402,307,470,
192 ,433,290,563,479,502,221,220,320,411,232, 246 ,232,243,281,267,310,273,315,285,327,352, 291,311,502,388 ,330,410,352,267,603,290,292, 466 ,158,224,178,164,203,502,320,240,278,350, 258,327,432 453,365,357
,401,361,381,301,413,402,199,421, ,452,384,420,482,228,360,316,252,
158 ,271,410,308,283,410,201,179,430,342,185, 324,406,235,520 ,442,520,358,343,251,282,371};
x[i]=x[i]/10; }
for(i=0;i<11;i++) {for(j=0;j<11;j++) { for(k=0;k<10;k++)
{ fenzi=fenzi+fabs((year[k][i]-x[i])*(year[k][j]-x[j])); fenmu1=fenmu1+(year[k][i]-x[i])*(year[k][i]-x[i]);
fenmu2=fenmu2+(year[k][j]-x[j])*(year[k][j]-x[j]);
fenmu=sqrt(fenmu1)*sqrt(fenmu2);
}
r[i][j]=fenzi/fenmu;
fenmu=fenmu1=fenmu2=fenzi=0; }}
for(i=0;i<11;i++)
{ for(j=0;j<11;j++)
{printf(\
printf(\getchar(); }
得到模糊相似矩阵R
1.000 0.839 0.528 0.844 0.828 0.702 0.995 0.671 0.431 0.573 0.712 0.839 1.000 0.542 0.996 0.989 0.899 0.855 0.510 0.475 0.617 0.572 0.528 0.542 1.000 0.562 0.585 0.697 0.571 0.551 0.962 0.642 0.568 0.844 0.996 0.562 1.000 0.992 0.908 0.861 0.542 0.499 0.639 0.607 0.828 0.989 0.585 0.992 1.000 0.922 0.843 0.526 0.512 0.686 0.584 0.702 0.899 0.697 0.908 0.922 1.000 0.726 0.455 0.667 0.596 0.511 0.995 0.855 0.571 0.861 0.843 0.726 1.000 0.676 0.489 0.587 0.719 0.671 0.510 0.551 0.542 0.526 0.455 0.676 1.000 0.467 0.678 0.994 0.431 0.475 0.962 0.499 0.512 0.667 0.489 0.467 1.000 0.487 0.485 0.573 0.617 0.642 0.639 0.686 0.596 0.587 0.678 0.487 1.000 0.688 0.712 0.572 0.568 0.607 0.584 0.511 0.719 0.994 0.485 0.688 1.000 对这个模糊相似矩阵用平方法作传递闭包运算,求R2???R4:R4 即t(R)=
R=R
4*
注:R是对称矩阵,故只写出它的下三角矩阵
?1.000?0.861??0.697??0.861?0.861?*R??0.861?0.994??0.719?0.697??0.688??0.71910.6970.9960.9960.9950.8610.7190.6970.6880.71910.6970.6970.6970.6970.6970.9620.6880.69710.9920.9220.8610.7190.6970.6880.71910.9220.8610.7190.6970.6880.71910.8610.7190.6970.6880.71910.7190.6970.6880.71910.6760.6880.68810.6970.69710.688????????????????1?
取?=0.996,则
?1???????=?????????1111111111111????????? ???????1?R0.996故第二行(列),第四行(列)完全一致,故x2,x4同属一类,所以此时可以将观测站分为9类{x2,x4,x5},{x1},{x3},{x6},{x7},{x8},{x9},{x10},{x11} 这表明,若只裁减一个观测站,可以裁x2,x4中的一个。若要裁掉更多的观测站,则要降低置信水平?,对不同的?作同样分析,得到
?=0.995时,可分为8类,即{x2,x4,x5,x6},{x1},{x3},{x7},{x8},{x9},{x10},{x11}
?=0.994时,可分为7类{x2,x4,x5,x6},{x1,x7},{x3} ,{x8},{x9},
{x10},{x11}
?=0.962时,可分为6类{x2,x4,{x3,,{x8}, {x10},{x11} x5,x6},{x1,x7},x9} ? =0.719时,可分为5类{x2,x4,x5,x6},{x1,x7},{x3,x9} ,{x8,x11},{x10}
2456173??0.996??0.995??0.994??0.962981110??0.719 再具体分析图5-1,我们可以看到x6虽然和x2,x4,x5分为一类,但x6和x2,x4,
x5观测点相距较远,撤去x6是不太合适的,保留x6而撤去x2,x4,x5就更不合适
了。因此还是将其分为6类,即{x2,x4,x5},{x6},{x1,x7},{x3,x9} ,{x8,
x11},{x10},依据每类最少保留一个站的原则,最多可撤去5个站。实际应该撤
去哪几个站就应该依据其他条件来确定了。
由本例可以看出,当需要比较聚类的数据较多时,一般采用模糊聚类法进行分析,在分析过程中,复杂的数据运算都可以在计算机上实现,从而减少繁琐的手工操作
相关推荐: