Skip to main content
1 of 2
E. Chan-López
  • 34.3k
  • 3
  • 38
  • 55

Instead of introducing a formal expansion parameter via Series, the first–order truncation can be obtained directly at the structural level. The idea is simple: expand the expression into a sum of monomials, and then discard every term that contains nonlinear symbolic interactions:

FirstOrderApproximation[expr_] := ReplaceAll[Expand @ expr,
    {
            Times[s1_Symbol, s2_Symbol, rest___] :> 0,
            Power[s_Symbol, n_ /; Greater[n, 1]] :> 0
        }
   ];

Map[FirstOrderApproximation,
{3 a + c (d - a b d) + e c (a + b) f + 2 b - 1,
a + b a c d,
b a c d + b c,
a^4 + b a c d + b^8}]

(*{-1 + 3 a + 2 b, a, 0, 0}*)

Why this works?

  • Expand brings the expression to a canonical polynomial form, a flat sum of products.

  • After expansion, each term is an explicit Times expression. Since Times is Orderless, any product involving two or more symbolic factors matches s1_Symbol * s2_Symbol * rest___ and is removed, regardless of ordering or numeric coefficients.

  • Powers such as a^2 are eliminated by the second rule.

The result is precisely the collection of constant and linear terms, i.e. the first–order approximation in the symbolic variables.

E. Chan-López
  • 34.3k
  • 3
  • 38
  • 55