package utils; import java.util.ArrayList; public class mathTools { public static double numIntegral(ArrayList<Double> average, ArrayList<Double> time){ double FullIntegral =0; for(int i=0;i<average.size()-1;i++){ double rectangle = (time.get(i+1) - time.get(i))*Math.max(average.get(i), average.get(i+1)); double triangleUp = Math.abs(average.get(i)-average.get(i+1))*(time.get(i+1) - time.get(i))/2; FullIntegral += rectangle - triangleUp; } return FullIntegral; } public static double elasticityScalar(ArrayList<Double> average, ArrayList<Double> time, ArrayList<Double> sd, int M, int N){ double under = (time.get(time.size()-1) - time.get(0)) * average.get(average.size()-1); double A = numIntegral(average, time); ArrayList<Double> averageSD = new ArrayList<Double>(); for(int i=0;i<average.size();i++){ averageSD.add(average.get(i)+sd.get(i)); } double B = numIntegral(averageSD, time); double res = (A + B - 2 * under)/(N + M); return res; } }