示例#1
0
        public void TestGaussLegendreRuleGetAbscissasGetWeightsOrderViaIntegration(int order)
        {
            GaussLegendreRule gaussLegendre = new GaussLegendreRule(StartA, StopA, order);

            double appoximateArea = 0;
            for (int i = 0; i < gaussLegendre.Order; i++)
            {
                appoximateArea += gaussLegendre.GetWeight(i) * TargetFunctionA(gaussLegendre.GetAbscissa(i));
            }

            double relativeError = Math.Abs(TargetAreaA - appoximateArea) / TargetAreaA;
            Assert.Less(relativeError, 5e-16);
        }
示例#2
0
 public void TestGaussLegendreRuleIntervalEnd()
 {
     const int order = 19;
     GaussLegendreRule gaussLegendre = new GaussLegendreRule(StartA, StopA, order);
     Assert.AreEqual(gaussLegendre.IntervalEnd, StopA);
 }
        public void TestGaussLegendreRuleAbscissasWeightsViaIntegration()
        {
            const int order = 19;
            GaussLegendreRule gaussLegendre = new GaussLegendreRule(StartA, StopA, order);
            double[] abscissa = gaussLegendre.Abscissas;
            double[] weight = gaussLegendre.Weights;

            for (int i = 0; i < gaussLegendre.Order; i++)
            {
                Assert.AreEqual(gaussLegendre.GetAbscissa(i),abscissa[i]);
                Assert.AreEqual(gaussLegendre.GetWeight(i), weight[i]);
            }
        }