public void ObterPesosEAbascissasCheb()
        {
            const int numeroDePontos = 4;

            double[] momentosAnaliticos = CalcularMomentosAnaliticos(2 * numeroDePontos);

            var chebyChev = new ChebyshevModificado(numeroDePontos, momentosAnaliticos, ChebyshevModificado.TipoDeDominio.SemiInfinito);

            double[] pesos, abscissas;

            chebyChev.CalcularPesosEAbscissas(out pesos, out abscissas);

            AlgoritmoPD algoritmoPd = new AlgoritmoPD(numeroDePontos, momentosAnaliticos);

            double[] pesosEsperados;
            double[] abscissasEsperadas;

            algoritmoPd.CalcularPesosEAbscissas(out pesosEsperados, out abscissasEsperadas);

            Wheeler wheeler = new Wheeler(numeroDePontos,momentosAnaliticos);

            double[] pesosWheeler;
            double[] abscissasWheeler;

            wheeler.CalcularPesosEAbscissas(out pesosWheeler, out abscissasWheeler);
        }
        public void CalcularPesosEAbscissasAlgoritmoPDTeste()
        {
            int numeroDePontos = 4;
            double[] momentos = new double[] { 1, 5, 26, 140, 778, 4450, 26140, 157400 };

            double[] pesosEsperados = new[] { 0.0459, 0.4541, 0.4541, 0.0459 };
            double[] abscissasEsperadas = new[] { 2.6656, 4.2580, 5.7420, 7.3344 };

            AlgoritmoPD algoritmo = new AlgoritmoPD(numeroDePontos, momentos);

            double[] pesos;
            double[] abscissas;

            algoritmo.CalcularPesosEAbscissas(out pesos,out abscissas);

            for (int i = 0; i < numeroDePontos; i++)
            {
                Assert.AreEqual(pesosEsperados[i], pesos[i], 0.0001);
                Assert.AreEqual(abscissasEsperadas[i], abscissas[i], 0.0001);
            }
        }
        public void ObterPesosEAbascissasMcCoyCheb()
        {
            const int numeroDePontos = 4;

            double[] momentosAnaliticos = CalcularMomentosIniciaisMcCoy(2 * numeroDePontos, FuncaoMcCoy);

            var chebyChev = new ChebyshevModificado(numeroDePontos, momentosAnaliticos, ChebyshevModificado.TipoDeDominio.SemiInfinito);

            double[] pesos, abscissas;

            chebyChev.CalcularPesosEAbscissas(out pesos, out abscissas);

            AlgoritmoPD algoritmoPd = new AlgoritmoPD(numeroDePontos, momentosAnaliticos);

            double[] pesosEsperados;
            double[] abscissasEsperadas;

            algoritmoPd.CalcularPesosEAbscissas(out pesosEsperados, out abscissasEsperadas);
        }