public static SymbolicExpression GetTaylor(int k, SymbolicExpression symbol, SymbolicExpression a, SymbolicExpression x) { int factorial = 1; SymbolicExpression accumulator = SymbolicExpression.Zero; SymbolicExpression derivative = x; for (int i = 0; i < k; i++) { var subs = derivative.Substitute(symbol, a); derivative = derivative.Differentiate(symbol); accumulator = accumulator.Add(subs / factorial * (symbol.Subtract(a)).Pow(i)); factorial *= (i + 1); } return accumulator.Expand(); }
public static SymbolicExpression GetTaylorExpression(int k, Expr symbol, Expr al, Expr xl) { int factorial = 1; SymbolicExpression accumulator = SymbolicExpression.Zero; SymbolicExpression derivative = xl; for (int i = 0; i < k; i++) { var subs = derivative.Substitute(symbol, al); derivative = derivative.Differentiate(symbol); accumulator = accumulator + subs / factorial * ((symbol - al).Pow(i)); factorial *= (i + 1); } return(accumulator.Expand()); }