public class Deviation {
/*输入*/
private double[]r;
public Deviation(double[] r) {
this.r = r;
}
/*平均值*/
static double ave(double[]r){
double sum = 0;
for (int i = 0; i < r.length; i++) {//求和
sum += r[i];
}
double dAve = sum / r.length;
return dAve;
}
static double ave(ArrayList<Double>x){
double sum = 0;
for (int i=0;i< x.size();i++){//求和
sum += x.get(i);
}
double dAve = sum / x.size();
return dAve;
}
/*方差*/
static double var(double[]r){
double sum = 0;
double sumdave =0;
for (int i = 0; i < r.length; i++) {//求和
sum += r[i];
}
double dAve = sum / r.length;
for (int i = 0; i < r.length; i++) {
sumdave += Math.abs(r[i] - dAve);
}
double avr = sumdave / r.length;
return avr;
}
static double var(ArrayList<Double>x){
double sum = 0;
double sumdave =0;
for (int i=0;i< x.size();i++){//求和
sum += x.get(i);
}
double dAve = sum / x.size();
for (int i = 0; i < x.size(); i++) {
sumdave += Math.abs(x.get(i) - dAve);
}
double avr = sumdave /x.size();
return avr;
}
/*标准差*/
static double dr(double[]r){
double sum = 0;
double sumdave =0;
for (int i = 0; i < r.length; i++) {//求和
sum += r[i];
}
double dAve = sum / r.length;
for (int i = 0; i < r.length; i++) {
sumdave += Math.abs(r[i] - dAve);
}
double avr = sumdave / r.length;
double dr = Math.sqrt(avr);
return dr;
}
static double dr(ArrayList<Double>x){
double sum = 0;
double sumdave =0;
for (int i=0;i< x.size();i++){//求和
sum += x.get(i);
}
double dAve = sum / x.size();
for (int i = 0; i < x.size(); i++) {
sumdave += Math.abs(x.get(i) - dAve);
}
double avr = sumdave /x.size();
double dr = Math.sqrt(avr);
return dr;
}
static double dS(ArrayList<Double>x,ArrayList<Double>y,ArrayList<Double>z){
double sum = 0;
double sumdave =0;
for (int i=0;i< x.size();i++){//求和
sum += x.get(i);
}
double dAvex = sum / x.size();
for (int i=0;i< y.size();i++){//求和
sum += y.get(i);
}
double dAvey = sum / y.size();
for (int i=0;i< z.size();i++){//求和
sum += z.get(i);
}
double dAvez = sum / z.size();
for (int i = 0; i < x.size(); i++) {
sumdave += Math.abs(x.get(i) - dAvex)*Math.abs(x.get(i) - dAvex)+Math.abs(y.get(i) - dAvey)*Math.abs(y.get(i) - dAvey)+Math.abs(z.get(i) - dAvez)*Math.abs(z.get(i) - dAvez);
}
double avr = sumdave /x.size();
double dr = Math.sqrt(avr);
return dr;
}
static double dS(ArrayList<double[]>x){
double sum1 = 0;
double sum2 = 0;
double sum3 = 0;
double sumdave =0;
for (int i=0;i< x.size();i++){//求和
sum1 += x.get(i)[0];
sum2 += x.get(i)[1];
sum3 += x.get(i)[2];
}
double dAve1 = sum1 / x.size();
double dAve2 = sum2 / x.size();
double dAve3 = sum3 / x.size();
for (int i = 0; i < x.size(); i++) {
sumdave += Math.abs(x.get(i)[0] - dAve1)*Math.abs(x.get(i)[0] - dAve1)+Math.abs(x.get(i)[1] - dAve2)*Math.abs(x.get(i)[1] - dAve2)+Math.abs(x.get(i)[2] - dAve3)*Math.abs(x.get(i)[2] - dAve3);
}
double avr = sumdave /x.size();
double dr = Math.sqrt(avr);
return dr;
}
}
偏差值(自用)
于 2022-02-15 15:50:06 首次发布