public ResultadoRegresion CalcularRegresionLineal(double[,] coordenadas, int cantidadPuntos) { ResultadoRegresion nuevoResultado = new ResultadoRegresion(); double sumatoriaXY = 0; double x2 = 0; double x = 0; double y = 0; for (int i = 0; i < cantidadPuntos; i++) { sumatoriaXY = sumatoriaXY + (coordenadas[i, 0] * coordenadas[i, 1]); x2 = x2 + Math.Pow(coordenadas[i, 0], 2); x = x + coordenadas[i, 0]; y = y + coordenadas[i, 1]; } var a1 = ((cantidadPuntos * sumatoriaXY) - (x * y)) / ((cantidadPuntos * x2) - Math.Pow(x, 2)); var a0 = ((y / cantidadPuntos) - a1 * (x / cantidadPuntos)); nuevoResultado.Resultadoa0 = a0; nuevoResultado.Resultadoa1 = a1; nuevoResultado.Resultados.Add(a0); nuevoResultado.Resultados.Add(a1); return(nuevoResultado); }
public ResultadoRegresion CalcularRegresionPolimonialInterno(double[,] coordenadas, int cantidadPuntos, int gradoCurva) { ResultadoRegresion nuevoResltado = new ResultadoRegresion(); double elevado = 0; double[,] Matriz = new double[gradoCurva + 3, gradoCurva + 3]; Matriz[0, 0] = cantidadPuntos; for (int i = 0; i < gradoCurva + 3; i++) { elevado = i; for (int j = 0; j < gradoCurva + 3; j++) { for (int sumatoria = 0; sumatoria < cantidadPuntos; sumatoria++) { //-----------------------CALCULA COEFICIENTES if (elevado != 0 && j != gradoCurva + 2) { Matriz[i, j] = Matriz[i, j] + Math.Pow(coordenadas[sumatoria, 0], elevado); } //------------------------CALCULA TERMINO INDEPENDIENTE------------------------------------------ if (j == gradoCurva + 2) { if (i == 0) { Matriz[i, j] = Matriz[i, j] + coordenadas[sumatoria, 1]; } else { Matriz[i, j] = Matriz[i, j] + (coordenadas[sumatoria, 1] * Math.Pow(coordenadas[sumatoria, 0], i)); } } } elevado = elevado + 1; } } SistemaDeEcuacion nuevoSistema = new SistemaDeEcuacion(); var nuevoRsultadoSistemas = nuevoSistema.CalcularSistemaGaussJordam(Matriz, gradoCurva + 2); nuevoResltado.Resultados = nuevoRsultadoSistemas.resultado; var coeficiente = CoefienteCorrelacion(coordenadas, cantidadPuntos, nuevoResltado.Resultados); return(nuevoResltado); }