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 CompararMomentosPadraoEGeneralizadoLegendre()
        {
            const int numeroDePontos = 2;

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

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

            double[] momentosModificadosCalculados = chebyChev.MomentosModificados;

            for (int i = 0; i < momentosModificadosAnaliticos.Length; i++)
            {
                Assert.IsTrue(Math.Abs(momentosModificadosAnaliticos[i] - momentosModificadosCalculados[i]) < 1e-9);
            }
        }
        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);
        }