Exemplo n.º 1
0
        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()));
        }
Exemplo n.º 2
0
        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()));
        }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }