⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mathsextend.java

📁 Birch
💻 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 + -