packagetestdemo1;importjava.util.Scanner;importorg.junit.Test;publicclassdemo1{@Test//装载数据publicvoidfun1(){System.out.println("请输入数据个数!");Scannerscanner=newSc...
package testdemo1;
import java.util.Scanner;
import org.junit.Test;
public class demo1 {
@Test
//装载数据
public void fun1(){
System.out.println("请输入数据个数!");
Scanner scanner = new Scanner(System.in);
//数据个数,由用户输入
int length;
length = scanner.nextInt();
System.out.println("请输入数据");
//数组,用于装测量数据
Double[] data = new Double[(int) length];
for (int i = 0; i < data.length; i++) {
data[i] = scanner.nextDouble();
}
double fun2Value = fun2(data , length);
//贝塞尔公式方差估计值
double fun3Value = fun3(data , length);
boolean b = fun4(fun2Value ,fun3Value , length);
//均值
double fun5Value = fun5(data , length);
//标准差
double fun6Value = fun6(data , length);
if(b){
System.out.println("测量数据中存在周期性系统误差");
System.out.println("均值:"+fun5Value+"标准偏差:"+fun6Value+"方差:"+fun3Value);
}else{
System.out.println("测量数据中不存在周期性系统误差");
System.out.println("均值:"+fun5Value+"标准偏差:"+fun6Value+"方差:"+fun3Value);
}
}/
/将v1,v2。。。按相邻两项进行两两相乘,然后求其和的绝对值public double fun2(Double[] data ,int length){
double sum = 0;
for (int i = 0; i < data.length - 1; i++) {
double a = data[i];
double b = data[i+1];
double multiply = a*b;sum+=multiply;
}
//sum的绝对值
double endSum = Math.abs(sum);
return endSum;}
//用贝塞尔公式求方差估计值
public double fun3(Double[] data ,int length){
double sum = 0;
for (int i = 0; i < data.length; i++) {
double a = data[i];
double b = a*a;sum+=b;
}
return sum/(length-1);
}
//实验原理步骤4 等式右边计算结果
public boolean fun4(double fun2,double fun3, int length){
//n-1开平方根
double a = Math.sqrt(length-1);
if(fun2 > (a*fun3)){
return true;
}else{return false;
}
}
//求均值
public double fun5(Double[] data ,int length){
double sum = 0;
for (int i = 0; i < data.length ; i++) {
double a = data[i];
sum+=a;
}
return sum/length;
}
//标准差
public double fun6(Double[] data ,int length){
double ave = fun5(data,length);
double sum = 0;
for (int i = 0; i < data.length; i++) {
double a = data[i];
double b = a-ave;
double c = b*b;sum+=c;
}
return Math.sqrt(sum/length);
}
}
展开