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);
        }
示例#2
0
        public void CalcularPesosEAbscissasWheelerTeste()
        {
            int numeroDePontos = 4;
            double[] momentos = new double[] { 1, 5, 26, 140, 778, 4450, 26140, 157400 };

            double[] pesosEsperados = new[] { 0.045875854768069, 0.454124145231932,
                0.454124145231932, 0.045875854768068 };
            double[] abscissasEsperadas = new[] { 2.665585781661023, 4.258036215697274,
                5.741963784302726, 7.334414218338978 };

            Wheeler algoritmo = new Wheeler(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);
            }
        }