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())); }
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))); }
//[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); }