public Polinomio retornarPolinomio(List <List <float> > fs, List <float> xs) { String polinomioSinResolver = "P(x)="; Polinomio polInterpolante = new Polinomio(); for (int j = 0; j < fs.Count; j++) { if (fs[j].Count != 0)//sin este if rompe al tener solo un punto { Polinomio termino = new Polinomio(); termino.AgregarCoeficiente(1); polinomioSinResolver += fs[j].First().ToString(); for (int i = 0; i < j; i++) { Polinomio aux = new Polinomio(); aux.AgregarCoeficiente(-xs[i]); aux.AgregarCoeficiente(1); polinomioSinResolver += "(x-" + xs[i] + ")"; termino = termino.Multiplicar(aux); } if (j != fs.Count - 1) { polinomioSinResolver += "+"; } termino = termino.MultiplicarEscalar(fs[j].First()); polInterpolante = polInterpolante.Sumar(termino); pasos.Add(polinomioSinResolver); } } return(polInterpolante); }
public Polinomio Sumar(Polinomio polinomio) { Polinomio resultado = new Polinomio(); for (int i = 0; i < Grado(); i++) { resultado.AgregarCoeficiente(coeficientes[i]); } for (int i = 0; i < polinomio.Grado(); i++) { if (i < resultado.GetCoeficientes().Count) { resultado.GetCoeficientes()[i] += polinomio.GetCoeficientes()[i]; } else { resultado.AgregarCoeficiente(polinomio.GetCoeficientes()[i]); } } return(resultado); }