Last active
December 26, 2015 05:19
-
-
Save andregnhoato/7099797 to your computer and use it in GitHub Desktop.
Partes de código responsável por calcular os coeficientes: CUD, CUC e CUE;
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * @param sobreposicaoX sobreposição eixo x laterais | |
| * @param sobreposicaoY sobreposição eixo y aspersores | |
| * @formula cuc possivel visualizar a formula em | |
| * https://dl.dropboxusercontent.com/u/10055997/cuc.gif | |
| */ | |
| public void calculoCuc(float sobreposicaoX, float sobreposicaoY) { | |
| //organiza em um array os valores sobrepostos | |
| List<Float> listaSobreposicao = listaSobreposicao(sobreposicoes, sobreposicaoX, sobreposicaoY); | |
| Float mediaSobreposicao; | |
| Float somatoria = 0F; | |
| Float somatoriaAbsolutos = 0F; | |
| //somatória da sobreposiçao | |
| for (int i = 0; i < listaSobreposicao.size(); i++) { | |
| somatoria += listaSobreposicao.get(i); | |
| } | |
| mediaSobreposicao = somatoria / listaSobreposicao.size(); | |
| List<Float> valoresAbsolutos = new ArrayList(); | |
| for (int i = 0; i < listaSobreposicao.size(); i++) { | |
| valoresAbsolutos.add(Math.abs(listaSobreposicao.get(i) - mediaSobreposicao)); | |
| } | |
| for (int i = 0; i < valoresAbsolutos.size(); i++) { | |
| somatoriaAbsolutos += valoresAbsolutos.get(i); | |
| } | |
| CUC = round(1 - (somatoriaAbsolutos / (valoresAbsolutos.size() * mediaSobreposicao)) ,4); | |
| CUD = round(calculoCud(listaSobreposicao, mediaSobreposicao),4); | |
| CUE = round(CalculoCue(listaSobreposicao, mediaSobreposicao),4); | |
| Cuc = new SimpleStringProperty(CUC + ""); | |
| cuc.textProperty().bind(Cuc); | |
| cuc.setFont(Font.font("Verdana", FontWeight.BOLD, 14)); | |
| Cud = new SimpleStringProperty(CUD+""); | |
| cud.textProperty().bind(Cud); | |
| cud.setFont(Font.font("Verdana", FontWeight.BOLD, 14)); | |
| Cue = new SimpleStringProperty(CUE+""); | |
| cue.textProperty().bind(Cue); | |
| cue.setFont(Font.font("Verdana", FontWeight.BOLD, 14)); | |
| } | |
| /** | |
| * @param listaSobreposicoes lista com as sobreposições | |
| * @param mediaSobreposicoes media dos valores sobrepostos | |
| * @see Calculo cud corresponde a somatória dos 25% menores valores divido pela media geral das sobreposições | |
| * @return CUD | |
| */ | |
| public Float calculoCud(List<Float> listaSobreposicoes, float mediaSobreposicoes){ | |
| //ordena a listagem | |
| Collections.sort(listaSobreposicoes); | |
| //armazenando o valor de 1/4 do array | |
| float quarto = listaSobreposicoes.size() / 4; | |
| float somatoria = 0; | |
| for(int i = 0; i < quarto; i++){ | |
| somatoria += listaSobreposicoes.get(i); | |
| } | |
| //calcula media de 1/4 | |
| float quartil = somatoria / quarto; | |
| //calcula cud media de 1/4 dividido pela media geral | |
| return (quartil / mediaSobreposicoes); | |
| } | |
| /** | |
| * | |
| * @param listaSobreposicoes lista com os valores sobrepostos | |
| * @param mediaSobreposicoes media dos valores sobrepostos | |
| * @return CUE | |
| */ | |
| public Float CalculoCue(List<Float> listaSobreposicoes, float mediaSobreposicoes){ | |
| //1 calcular o desvio padrão = valor sopreposição - media geral elevado ao quadrado e realizar a somatória dos valores | |
| Float soma = 0F; | |
| for (Float valor : listaSobreposicoes) { | |
| double a = valor - mediaSobreposicoes; | |
| soma =+ (float)Math.pow(a, 2); | |
| } | |
| //2 calcular cue = 1 - raiz quadrada(soma / ((quantidade sobreposições -1 ) * media sobreposições ao quadrado) | |
| return 1-(float)Math.sqrt(soma/((listaSobreposicoes.size() - 1) * (float) Math.pow(mediaSobreposicoes, 2))); | |
| } | |
| public static Float round(float d, int decimalPlace) { | |
| BigDecimal bd = new BigDecimal(Float.toString(d)); | |
| bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP); | |
| return bd.floatValue(); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment