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); }
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]); } }