public void SomaDeContantesTest(double[] actualFist, double actualSecond, double[] expected) { var a = new Polinomial(actualFist.ToList()); a.Multiplicar(actualSecond); Assert.IsTrue(expected.SequenceEqual(a.Polinomio.Values.ToList())); }
public void MultiplicarTest(double[] actualFist, double[] actualSecond, double[] expected) { var a = new Polinomial(actualFist.ToList()); var b = new Polinomial(actualSecond.ToList()); a.Multiplicar(b); Assert.IsTrue(expected.SequenceEqual(a.Polinomio.Values.ToList())); }
public string Interpolacao() { var escalares = CalculaD(); var polinomio = new Polinomial(escalares[0]); for (var i = 1; i < escalares.Count; i++) { var auxPoli = new Polinomial(-Pontos[0].x, 1); for (var j = 1; j < i; j++) { auxPoli.Multiplicar(new [] { -Pontos[j].x, 1 }); } auxPoli.Multiplicar(escalares[i]); polinomio.Somar(auxPoli); } return(polinomio.ImprimirFormatado()); }
public List <string> Interpolacao() { var response = new List <string>(); for (var i = 1; i < Pontos.Count; i++) { var anterior = new Polinomial(Pontos[i].x, -1); anterior.Multiplicar(1 / (Pontos[i].x - Pontos[i - 1].x)); anterior.Multiplicar(Pontos[i - 1].y); var proximo = new Polinomial(-Pontos[i - 1].x, 1); proximo.Multiplicar(1 / (Pontos[i].x - Pontos[i - 1].x)); proximo.Multiplicar(Pontos[i].y); anterior.Somar(proximo); response.Add(anterior.ImprimirFormatado()); } return(response); }
private Polinomial ProdutorioL(int j) { Polinomial polinomial; // Caso especial para iniciação do polinomio // K == 1 if (j != 0) { polinomial = new Polinomial(new[] { Pontos[0].x * -1, 1 }); polinomial.Multiplicar(1 / (Pontos[j].x - Pontos[0].x)); } else { // Quando é o primeiro // K = 1 polinomial = new Polinomial(new[] { Pontos[1].x * -1, 1 }); polinomial.Multiplicar(1 / (Pontos[j].x - Pontos[1].x)); } for (var i = 1; i < K; i++) { if (i == j) { continue; } polinomial.Multiplicar(new[] { Pontos[i].x * -1, 1 }); polinomial.Multiplicar(1 / (Pontos[j].x - Pontos[i].x)); } // Multiplicação de Y polinomial.Multiplicar(Pontos[j].y); return(polinomial); }