📄 mathsextend.java
字号:
//package datamining;
package clustering_feature_tree;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class MathsExtend {
public static int compareDistance(double[] insertPoint,double[] leftCF,double[] rightCF){//返回0表示与左边节点的重心较近,返回1表示与右边节点的重心较近
ojldAlgorithm ojld1= new ojldAlgorithm(insertPoint,leftCF);
ojldAlgorithm ojld2=new ojldAlgorithm(insertPoint,rightCF);
double result1,result2;
result1=ojld1.calculate();
result2=ojld2.calculate();
if(result1<=result2){
return 0;
}
else{
return 1;
}
}
public void fsd(){
}
public static double calDistance(double[] LS1,double[] LS2){
ojldAlgorithm ojld=new ojldAlgorithm(LS1,LS2);
return ojld.calculate();
}
public static double calDiameter(double SS,double[] LS,int num){//计算直径
double LSresult=0;
double result=0;
for(int i=0;i<LS.length;i++){
LSresult=LSresult+LS[i]*LS[i];
}
double temp=(double)num*2/(num-1);
result=Math.pow((SS-LSresult)*temp,0.5);
return result;
}
public static double calRadius(double SS,double[] LS){//计算半径
double LSresult=0;
double result=0;
for(int i=0;i<LS.length;i++){
LSresult=LSresult+LS[i]*LS[i];
}
result=Math.pow((SS-LSresult),0.5);
return result;
}
public static double[] getNewAverVector(double[] insertLS,double[] oldLS,int Num){//返回平均和,Num是未加入新元素后的元素数量
double[] resultLS=new double[insertLS.length];
for(int i=0;i<insertLS.length;i++){
resultLS[i]=((double)Num/(Num+1))*oldLS[i]+((double)1/(Num+1))*insertLS[i];
}
return resultLS;
}
public static double[] getNewAverVector(double[] LSx,int numx,double[] LSy,int numy){
double[] resultLS=new double[LSx.length];
for(int i=0;i<LSx.length;i++){
resultLS[i]=((double)numx/(numx+numy))*LSx[i]+((double)numy/(numx+numy))*LSy[i];
}
return resultLS;
}
public static double getNewMean(double[] insertLS,double oldMean,int Num){//其中Number是未新元素后的数量,insertLS是新填入点的vector
double temp;
double result;
temp=calSquareSum(insertLS);
result=((double)Num/(Num+1))*oldMean+((double)1/(Num+1))*temp;
return result;
}
public static double calSquareSum(double [] vector){//求平方和
double result = 0;
for (int i = 0; i < vector.length; i++) {
result = result + vector[i] * vector[i];
}
return result;
}
public MathsExtend() {
try {
jbInit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void jbInit() throws Exception {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -