コード例 #1
0
        public override Term GetDerivative(string argument)
        {
            List <Term> sums = new List <Term>();

            for (int i = 0; i < Parameters.Length; i++)
            {
                Term r = Parameters[i];

                if (r.IsMulInverse)
                {
                    r = r.GetDerivative(argument) / (r ^ 2);
                }
                else
                {
                    r = r.GetDerivative(argument);
                }

                for (int j = 0; j < Parameters.Length; j++)
                {
                    if (i == j)
                    {
                        continue;
                    }
                    r *= Parameters[j];
                }
                sums.Add(r);
            }

            return(new Addition(sums.ToArray()));
        }
コード例 #2
0
        public override Term GetDerivative(string argument)
        {
            Term f = Parameters[0];
            Term g = Parameters[1];

            return((f ^ (g - new Real(1))) * (g * f.GetDerivative(argument) + f * new Logarithm(f) * g.GetDerivative(argument)));
        }
コード例 #3
0
        //[TODO] zusammenfassen/vereinfachen
        public override Term Evaluate()
        {
            Term ret = Parameters[0];
            int  n   = 1;

            if (Parameters.Length == 3)
            {
                n = (int)((Real)Parameters[2]).Value;
            }
            for (int i = 0; i < n; i++)
            {
                ret = ret.GetDerivative(Parameters[1].ToString());
            }

            return(ret);
        }