コード例 #1
0
        public void TestDifferentiate()
        {
            MathFunction f  = Math.Exp;
            MathFunction Df = Math.Exp;

            Assert.Equal(Df(-5), NumericalTools.Differentiate(f)(-5), 2);
            Assert.Equal(Df(-1), NumericalTools.Differentiate(f)(-1), 2);
            Assert.Equal(Df(0), NumericalTools.Differentiate(f)(0), 2);
            Assert.Equal(Df(1), NumericalTools.Differentiate(f)(1), 2);
            Assert.Equal(Df(5), NumericalTools.Differentiate(f)(5), 2);

            f  = Math.Sin;
            Df = Math.Cos;

            Assert.Equal(Df(-5), NumericalTools.Differentiate(f)(-5), 2);
            Assert.Equal(Df(-1), NumericalTools.Differentiate(f)(-1), 2);
            Assert.Equal(Df(0), NumericalTools.Differentiate(f)(0), 2);
            Assert.Equal(Df(1), NumericalTools.Differentiate(f)(1), 2);
            Assert.Equal(Df(5), NumericalTools.Differentiate(f)(5), 2);

            f  = x => Math.Pow(x, 3);
            Df = x => 3 * Math.Pow(x, 2);

            Assert.Equal(Df(-5), NumericalTools.Differentiate(f)(-5), 2);
            Assert.Equal(Df(-1), NumericalTools.Differentiate(f)(-1), 2);
            Assert.Equal(Df(0), NumericalTools.Differentiate(f)(0), 2);
            Assert.Equal(Df(1), NumericalTools.Differentiate(f)(1), 2);
            Assert.Equal(Df(5), NumericalTools.Differentiate(f)(5), 2);
        }