public override Expression FindDerivative() => AdditionExpression.Build(VariableParts.Select(x => x.FindDerivative() * MultiplicationExpression.Build(VariableParts.Where(y => y != x)))) * Coefficient;
public override string ToString() => IsVariableWithCoefficient ? $"{Coefficient}{VariableParts[0]}" : "(" + (Coefficient == Fraction.One ? string.Empty : $"{Coefficient} * ") + string.Join(" * ", VariableParts.Select(x => x.ToString())) + ")";
public override Expression SubstituteVariables(Dictionary <string, Fraction> variableValues, Dictionary <string, Expression> variableExpressions) => Build(Coefficient, VariableParts.Select(x => x.SubstituteVariables(variableValues, variableExpressions)));