public Lagrange(IReadOnlyList <KeyValuePair <double, double> > valoresParam) { valores = valoresParam; _polinomios = new List <Polinomio>(); for (var i = 0; i < valores.Count; i++) { var primerPaso = new PolinomioPrimerPaso(); var segundoPaso = new PolinomioSegundoPaso(); var pivot = valores[i].Key; double denominador = 1; for (var j = 0; j < valores.Count; j++) { var pivotSegundo = valores[j].Key; if (j == i) { continue; } var xMenosF = new List <double> { -pivotSegundo, 1 }; primerPaso.NumeradorString += "(X - " + pivotSegundo + ") "; primerPaso.DenominadorString += "(" + pivot + " - " + pivotSegundo + ") "; segundoPaso.Numerador = MultiplicarPolinomios(segundoPaso.Numerador, xMenosF); denominador *= pivot - pivotSegundo; } segundoPaso.Numerador = DistributivaDivision(segundoPaso.Numerador, denominador); _polinomios.Add(new Polinomio(primerPaso, segundoPaso)); } }
public Polinomio(PolinomioPrimerPaso primerPaso, PolinomioSegundoPaso segundoPaso) { PrimerPaso = primerPaso; SegundoPaso = segundoPaso; }