Approximaths

  • Regularize V

    The previous post illustrates the general strategy: the admissible scalings are obtained from the intersections of the affine exponent functions. In this post, we explain why this construction works. Consider a perturbed polynomial of the form

    \displaystyle P_{\epsilon}(x)=\sum_{i=1}^{n}\epsilon^{\alpha_i}x^{m_i}

    After the scaling

    \displaystyle x=\epsilon^{p}w

    each monomial becomes

    \displaystyle \epsilon^{\alpha_i}(\epsilon^p w)^{m_i} = \epsilon^{\alpha_i+m_ip}w^{m_i}

    Thus every monomial defines an affine function

    \displaystyle L_i(p)=m_ip+\alpha_i

    The exponents of \epsilon are therefore completely described by the family of affine functions

    \displaystyle L_1(p),L_2(p),\ldots,L_n(p)

    The key observation is that, as \epsilon\to0, the smallest exponent dominates all the others. Indeed, if

    \displaystyle \alpha<\beta

    then

    \displaystyle \epsilon^\alpha\gg\epsilon^\beta

    Consequently, for a fixed value of p, only the monomials whose exponent is minimal contribute to the dominant part of the polynomial.

    Now suppose that one affine function lies strictly below all the others. Then a single monomial dominates, and the limit polynomial consists of only one term.

    The interesting situation occurs when two affine functions intersect and their common value is the minimum among all the exponents. At such a point,

    \displaystyle L_i(p)=L_j(p)=\min_k L_k(p)

    so two monomials have exactly the same asymptotic order. After normalization, both survive in the limit polynomial, producing a non-trivial dominant part.

    Not every intersection is relevant. Two affine functions may intersect while another affine function remains strictly below them. In that case, the common exponent is not minimal, and the corresponding scaling does not contribute to the dominant polynomial.

    Therefore, the admissible scalings are obtained precisely from the intersection points where the common exponent is minimal.

    Geometrically, this means that the admissible scalings correspond to the corners of the lower envelope of the affine functions (see previous post). This simple geometric picture explains why the graph of the exponents completely determines the regularization process.

  • Regularize IV (scaling)

    Let us consider the following perturbed polynomial:

    \displaystyle P(x)=x^3+x^2+x
    \displaystyle P_{\epsilon}(x)=\epsilon^3x^3+x^2+\epsilon x
    \displaystyle P_{\epsilon}(\epsilon^p w)=\epsilon^3(\epsilon^p w)^3+(\epsilon^p w)^2+\epsilon(\epsilon^p w)
    \displaystyle =\epsilon^{3p+3}w^3+\epsilon^{2p}w^2+\epsilon^{p+1}w

    In the figure below, we plot the graphs of the affine functions 3p+3, 2p, and p+1. Their intersection points determine the values of p for which two exponents coincide. Among these, we retain only the intersections where the common exponent is minimal. In this example, we obtain

    \displaystyle (p_j,\nu_j)=(-3,-6)

    We now compute T_{\epsilon}^{(j)}(w) defined as follows:

    \displaystyle T_{\epsilon}^{(j)}(w):=\epsilon^{-\nu_j}P_{\epsilon}(\epsilon^{p_j}w)
    \displaystyle T_{\epsilon}^{(j)}(w)=\epsilon^{6}P_{\epsilon}(\epsilon^{-3}w)
    \displaystyle =\epsilon^{6}\bigl(\epsilon^{3(-3)+3}w^3+\epsilon^{2(-3)}w^2+\epsilon^{-3+1}w\bigr)
    \displaystyle =\epsilon^{6}\bigl(\epsilon^{-6}w^3+\epsilon^{-6}w^2+\epsilon^{-2}w\bigr)
    \displaystyle =\underbrace{w^3+w^2}_{T_{0}^{(j)}(w)}+\underbrace{\epsilon^{4}w}_{E_{\epsilon}^{(j)}(w)}

    Observe that E_{0}^{(j)}(w)=0. Therefore, we may write

    \displaystyle T_{\epsilon}^{(j)}(w)=T_{0}^{(j)}(w)+E_{\epsilon}^{(j)}(w)

    The polynomial T_{0}^{(j)}(w) is the dominant part of T_{\epsilon}^{(j)}(w) as \epsilon\to0, since it is independent of \epsilon. In this example, the dominant polynomial is non-degenerate. Therefore, the scaling x=\epsilon^{p_j}w regularizes the perturbed polynomial P_{\epsilon}(x).

    Graphs of the affine functions 3p+3, 2p, and p+1. The point (-3,-6) is the intersection of the lines 3p+3 and 2p. At p=-3, the minimum exponent is attained simultaneously by two monomials.

  • Regularization III

    In this post, we justify the regularization procedure introduced in previous posts for singular polynomial problems. Consider:

    \displaystyle P(x)=a_0+a_1x+\dots+a_nx^n
    \displaystyle P(x)=1+A_1x+\dots+A_nx^n
    \displaystyle P_{\epsilon}(x)=f_0(\epsilon)+f_1(\epsilon)\epsilon^{\alpha_1}A_1x+\dots+f_n(\epsilon)\epsilon^{\alpha_n}A_nx^n
    \displaystyle P_{\epsilon}(x)=(1+b_0\epsilon+c_0\epsilon^2+\dots)+(1+b_1\epsilon+c_1\epsilon^2+\dots)\epsilon^{\alpha_1}A_1x+\dots+(1+b_n\epsilon+c_n\epsilon^2+\dots)\epsilon^{\alpha_n}A_nx^n

    where f_0(\epsilon),f_1(\epsilon),\dots,f_n(\epsilon) admit power-series expansions in \epsilon, \alpha_i‘s are rational numbers and b_i‘s, c_i‘s are constants.

    The last expression is therefore a generalized version of a perturbed polynomial

    . We can rearrange this expression as follows:

    \displaystyle P_{\epsilon}(x)=(1+b_0\epsilon+c_0\epsilon^2+\dots)
    \displaystyle +(1+b_1\epsilon+c_1\epsilon^2+\dots)\epsilon^{\alpha_1}A_1x
    \displaystyle +\dots
    \displaystyle +(1+b_n\epsilon+c_n\epsilon^2+\dots)\epsilon^{\alpha_n}A_nx^n

    Collecting terms according to their powers of \epsilon, we obtain:

    \displaystyle P_{\epsilon}(x)=1+\epsilon^{\alpha_1}A_1x+\dots+\epsilon^{\alpha_n}A_nx^n
    \displaystyle +b_0\epsilon+b_1\epsilon^{\alpha_1+1}A_1x+\dots+b_n\epsilon^{\alpha_n+1}A_nx^n
    \displaystyle +\dots

    Theorem (Newton–Puiseux). Each root of the polynomial above is of the form:

    \displaystyle x(\epsilon)=\epsilon^pw(\epsilon),\quad w(0)\neq0

    where w(\epsilon) is a continuous function near zero. For convenience, we simply write x=\epsilon^pw. If the theorem holds, the polynomial above becomes:

    \displaystyle P_{\epsilon}(\epsilon^pw)=1+\epsilon^{\alpha_1}A_1\epsilon^pw+\dots+\epsilon^{\alpha_n}A_n(\epsilon^pw)^n
    \displaystyle +b_0\epsilon+b_1\epsilon^{\alpha_1+1}A_1\epsilon^pw+\dots+b_n\epsilon^{\alpha_n+1}A_n(\epsilon^pw)^n
    \displaystyle +\dots

    We define Q_{\epsilon}(w):=1+\epsilon^{\alpha_1+p}A_1w+\dots+\epsilon^{\alpha_n+np}A_nw^n and have:

    \displaystyle P_{\epsilon}(\epsilon^pw)=Q_{\epsilon}(w)+\epsilon(b_0+b_1\epsilon^{\alpha_1+p}A_1w+\dots+b_n\epsilon^{\alpha_n+np}A_nw^n)+\dots

    If \epsilon^pw is a root of P_{\epsilon}(x), we must satisfy:

    \displaystyle \lim_{\epsilon\to0}P_{\epsilon}(\epsilon^pw)=\lim_{\epsilon\to0}Q_{\epsilon}(w)=0

    Since w(\epsilon) is a continuous function near zero, we inspect the structure of Q_{\epsilon}(w(0)) to determine the leading-order behavior:

    \displaystyle Q_{\epsilon}(w(0))=1+\epsilon^{\alpha_1+p}A_1w(0)+\dots+\epsilon^{\alpha_n+np}A_nw(0)^n

    Considering the set of its exponents of \epsilon:

    \displaystyle E=\{0,\alpha_1+p,\dots,\alpha_k+kp,\dots,\alpha_n+np\}

    In order for the condition \lim_{\epsilon\to0}Q_{\epsilon}(w)=0 to hold, the minimal value of the set E must be exactly 0, and this minimum must be shared by at least two distinct exponents. These identical minimal exponents define the dominant terms of Q_{\epsilon}(w(0)) which can then compensate each other to balance the equation at leading order.

  • Regularize II

    \displaystyle

    The underlying idea of regularization is to recover the roots that are lost in a singular limit. When some coefficients of a polynomial are multiplied by powers of a small parameter \epsilon, the limiting polynomial obtained by setting \epsilon=0 may have fewer roots than the original polynomial. In this situation, some roots have escaped to a different scale and are therefore invisible in the limit.

    To recover these missing roots, we introduce a rescaling

    \displaystyle x:=\epsilon^p w

    where the exponent p is chosen so that at least two dominant terms of the polynomial balance each other. Geometrically, this choice is determined from the Newton polygon (or Newton diagram) by examining the exponents of \epsilon. After an additional normalization by a factor \epsilon^{-m_j}, one obtains a new limiting polynomial in the variable w. This reduced polynomial captures the asymptotic behavior of the roots on the corresponding scale and typically restores the correct number of roots.

    In this sense, the singularity is not an intrinsic property of the problem but rather the consequence of observing the problem at an inappropriate scale.

    As a simple example, consider

    \displaystyle P(x) = x^2 -x+1
    \displaystyle P_\epsilon(x) =\epsilon x^2-x+1

    Setting \epsilon=0 gives

    \displaystyle P_0(x)=-x+1

    which has only one root, although the original polynomial is quadratic and therefore has two roots. To recover the missing root, let

    \displaystyle x:=\epsilon^{-1}w

    Substituting into the polynomial gives

    \displaystyle P_\epsilon(\epsilon^{-1}w) = \epsilon(\epsilon^{-2}w^2)-\epsilon^{-1}w+1 = \epsilon^{-1}(w^2-w+\epsilon)

    Multiplying by \epsilon yields

    \displaystyle w^2-w+\epsilon

    Taking the limit \epsilon\to0 gives the regular polynomial

    \displaystyle w^2-w=w(w-1)

    which has two roots. One corresponds to the finite root seen in the original limit, while the second reveals a root located on the larger scale x=O(\epsilon^{-1}). The rescaling has therefore recovered the root that was hidden in the singular limit.

  • Regularize I

    We will now present (without justification) a method for regularizing a singular problem involving a polynomial. We want to find the roots of :

    \displaystyle P(x) = x^6 - x^4 - x^3 + 8

    We decide to perturb the above polynomial as follows:

    \displaystyle P_{\epsilon}(x) = \epsilon^2 x^6 - \epsilon x^4 - x^3 + 8

    For \epsilon = 0 we have:

    \displaystyle P_{\epsilon= 0}(x) = -x^3 + 8

    This polynomial has three roots. We have a singular problem since the original polynomial has six roots.

    We can try to fix the problem using a change of variable:

    \displaystyle x := \epsilon^p w
    \displaystyle P_{\epsilon}(\epsilon^p w) = \epsilon^2 (\epsilon^p w)^6 - \epsilon (\epsilon^p w)^4 - (\epsilon^p w)^3 + 8
    \displaystyle = \epsilon^2 (\epsilon^{6p} w^6) - \epsilon (\epsilon^{4p} w^4) - (\epsilon^{3p} w^3) + 8
    \displaystyle = \epsilon^{6p+2} w^6 -  \epsilon^{4p+1} w^4 - \epsilon^{3p} w^3 + 8

    Now we collect the exponents of \epsilon: (6p+2, 4p+1, 3p, 0) and plot them in a graph as a function of p (see figure below). If we think of the lines on the graph as delimiting a figure in the plane, we can select the vertex of this figure with the largest p value and the smallest f(p) value. In our case, the point corresponding to this criterion is the point of intersection of the lines 6p+2 and 3p. We thus obtain the point of intersection with coordinates (-2/3, -2).

    We will call the coordinates of the intersection point p_j and m_j respectively.

    Now calculate:

    \displaystyle \epsilon^{-m_j} P_{\epsilon}(\epsilon^{p_j} w) = \epsilon^{2} P_{\epsilon}(\epsilon^{-\frac{2}{3}} w)
    \displaystyle = \epsilon^2 (\epsilon^{6(-\frac{2}{3})+2} w^6 -  \epsilon^{4(-\frac{2}{3})+1} w^4 - \epsilon^{3(-\frac{2}{3})} w^3 + 8)
    \displaystyle = \epsilon^2 (\epsilon^{-2} w^6 - \epsilon^{-\frac{5}{3}} w^4 - \epsilon^{-2} w^3 + 8)
    \displaystyle =  w^6 - \epsilon^{\frac{1}{3}} w^4 - w^3 + 8 \epsilon^2

    This is now a regular problem since the new polynomial:

    \displaystyle P(w) = w^6 - w^3

    has 6 roots.

    Using the procedure above we have regularized a singular problem involving a polynomial using the following sequence:

    \displaystyle P(x) \to P_{\epsilon}(x) \to P_{\epsilon}(\epsilon^p w) \to \epsilon^{-m_j} P_{\epsilon}(\epsilon^{p_j} w)
  • A quintic equation

    So far, we’ve introduced the perturbation technique, described regular and irregular problems and presented solutions to simple problems that we could have solved exactly without using perturbative series. We will now consider a problem that cannot be solved exactly. In this way, we hope to illustrate the power of this method.

    We want to find a real zero of the following quintic equation:

    \displaystyle x^5 + x = 1

    We will proceed as usual (see previous sections):

    \displaystyle x^5 + \epsilon x = 1
    \displaystyle (a_0 + a_1\epsilon + a_2 \epsilon^2 + \cdots)^5 + \epsilon (a_0 + a_1\epsilon + a_2 \epsilon^2 + \cdots) = 1

    Solving the unperturbed problem (where \epsilon = 0) we see that a_0 = 1 (a_0 is always the answer to the unperturbed problem). We can use Python to expand the perturbative series and compute the coefficients (see code below). In this example we will calculate up to six coefficients.

    from sympy import *
    
    # set variables
    a1 = Symbol('a1')
    a2 = Symbol('a2')
    a3 = Symbol('a3')
    a4 = Symbol('a4')
    a5 = Symbol('a5')
    x = Symbol('x') # epsilon
    
    # from the unperturbed problem we know that a0 = 1
    
    # expand the quintic equation
    equ = expand ((1 + a1*x + a2*x**2 + a3*x**3 + a4*x**4 + a5*x**5)** 5 + x*(1 + a1*x + a2*x**2 + a3*x**3 + a4*x**4 + a5*x**5))
    
    # get the coefficients separately
    equ.coeff(x)
    
    5*a1+1
    
    equ.coeff(x**2)
    
    10*a1**2+a1+5*a2
    
    # solve the system of equations to calculate coefficients
    solution = solve([equ.coeff(x),equ.coeff(x**2),equ.coeff(x**3)], (a1, a2, a3))
    solution
    
    [(-1/5, -1/25, -1/125)]
    
    solution = solve([equ.coeff(x),equ.coeff(x**2),equ.coeff(x**3),equ.coeff(x**4), equ.coeff(x**5)], (a1, a2, a3, a4, a5))
    solution
    
    [(-1/5, -1/25, -1/125, 0, 21/15625)])
    

    Therefore (using the results above calculated using Python):

    \displaystyle a_0 = 1
    \displaystyle a_1 = -\frac{1}{5}
    \displaystyle a_2 = -\frac{1}{25}
    \displaystyle a_3 = -\frac{1}{125}
    \displaystyle a_4 = 0
    \displaystyle a_5 = \frac{21}{15625}

    We have:

    \displaystyle x(\epsilon) = 1 - \frac{1}{5}\epsilon - \frac{1}{25}\epsilon^2 - \frac{1}{125}\epsilon^3 + 0\cdot\epsilon^4 + \frac{21}{15625}\epsilon^5 + \cdots

    An approximation (fifth-order approximation) of the real solution of x^5 + x = 1 is (setting \epsilon = 1):

    \displaystyle 1 - \frac{1}{5} - \frac{1}{25} - \frac{1}{125} + 0 + \frac{21}{15625} \approx 0.7533
  • Illustration of a singular problem

    Illustration of a singular problem:

    \displaystyle x^2-2x +1 = 0 \quad \text{Problem}
    \displaystyle \epsilon x^2-2x +1 = 0 \quad \text{Insert }\epsilon

    The solutions to the perturbed problem are (see figure below):

    \displaystyle x_1(\epsilon) = \frac{1+ \sqrt{1-\epsilon}}{\epsilon}
    \displaystyle x_2(\epsilon) = \frac{1- \sqrt{1-\epsilon}}{\epsilon}

    While one of the roots approaches \frac{1}{2} as \epsilon \to 0, the other goes to infinity. This is a manifestation of a singular behaviour. The problems above illustrate the importance of setting \epsilon to a right position.

    A solution of the regular problem x^2-2x +\epsilon = 0 is x_1(\epsilon) = 1 - \sqrt{1- \epsilon} . We would like to calculate the corresponding perturbative series.

    Using:

    \displaystyle (a+b)^n = \sum_{k=0}^{\infty} {n\choose k} a^{n-k}b^{k}
    \displaystyle = a^n + n a^{n-1}b + \frac{n(n-1)}{2} a^{n-2}b^{2}+...+ \frac{n(n-1)\cdots(n-k+1)}{k!} a^{n-k}b^k +...

    We would like to find the perturbative series corresponding to:

    \displaystyle \sqrt{1-\epsilon} = (1-\epsilon)^{1/2}

    with a=1, b = -\epsilon, n = \frac{1}{2} therefore:

    \displaystyle \sqrt{1-\epsilon} = 1 - \frac{1}{2}\epsilon - \frac{1}{8}\epsilon^2 - ...
    \displaystyle 1- \sqrt{1-\epsilon} = \frac{1}{2}\epsilon + \frac{1}{8}\epsilon^2 + ...

    Here are the first series and their corresponding graphs:

    \displaystyle s_2 = \frac{1}{2} \epsilon + \frac{1}{8} \epsilon^2
    \displaystyle s_3 =\frac{1}{2} \epsilon + \frac{1}{8} \epsilon^2 + \frac{1}{16} \epsilon^3
    \displaystyle s_4 = \frac{1}{2} \epsilon + \frac{1}{8} \epsilon^2 + \frac{1}{16} \epsilon^3 + \frac{5}{128} \epsilon^4
  • Regular Problem II

    Illustration of another regular problem:

    \displaystyle x^2-2x -1 = 0 \quad \text{Problem}
    \displaystyle x^2-2\epsilon x-1=0 \quad \text{Insert }\epsilon

    The solutions to the perturbed problem are (see figure below):

    \displaystyle x_1(\epsilon) = \frac{2\epsilon + \sqrt{4 \epsilon^2 + 4}}{2} = \epsilon + \sqrt{1 + \epsilon^2}
    \displaystyle x_2(\epsilon) = \frac{2\epsilon - \sqrt{4 \epsilon^2 + 4}}{2} = \epsilon - \sqrt{1 + \epsilon^2}

    The figure above shows solutions of the problem x^2-2\epsilon x-1 = 0 using perturbation theory. For \epsilon =0 the solutions are -1 and 1 and for \epsilon =1 the solutions are exactly 1+\sqrt{2} and 1-\sqrt{2}.

    \displaystyle x_1(\epsilon) = 1 + \epsilon + \frac{1}{2}\epsilon^2 - \frac{1}{8}\epsilon^4 + \frac{1}{16}\epsilon^6 - \frac{5}{128}\epsilon^8 + O(\epsilon^{10})
    \displaystyle x_2(\epsilon) = -1 + \epsilon - \frac{1}{2}\epsilon^2 + \frac{1}{8}\epsilon^4 - \frac{1}{16}\epsilon^6 + \frac{5}{128}\epsilon^8 + O(\epsilon^{10})

    Setting \epsilon = 1 :

    \displaystyle x_1(1) \approx 2 + \frac{1}{2} - \frac{1}{8} + \frac{1}{16} - \frac{5}{128} = 2.3984375
    \displaystyle x_2(1) \approx 0 - \frac{1}{2} + \frac{1}{8} - \frac{1}{16} + \frac{5}{128} = -0.3984375

    This simple example clearly illustrates the application of regular perturbation theory to a quadratic equation, showing how the solutions vary continuously with the perturbation parameter \epsilon .

  • Regular Problem I

    In perturbation theory we distinguish regular and singular problems. In this section we aim to solve the original regular problem:

    \displaystyle x^2 - 2 = 0 \quad \text{Original problem}
    \displaystyle x^2 - (1 + \epsilon) = 0 \quad \text{Insert epsilon}

    The solutions are:

    \displaystyle x_1(\epsilon) = -\sqrt{1+\epsilon}
    \displaystyle x_2(\epsilon) = \sqrt{1+\epsilon}

    At \epsilon=0 the problem is solvable analytically:

    \displaystyle x_1 = -1, \quad x_2 = 1

    At \epsilon=1 we recover the solution of the original problem:

    \displaystyle x_1 = -\sqrt{2}, \quad x_2 = \sqrt{2}

    Figure. Regular problem: x^2-(1+\epsilon)=0 connecting x^2-1=0 to x^2-2=0.

    Characteristics of a regular perturbation problem:

    • The solution depends smoothly on ε.
    • The deformation from ε=0 to ε=1 is continuous.
    • The problem at ε=0 is simple and solvable analytically.
    • The original problem is recovered exactly at ε=1.
    • No singularities or discontinuities appear.
    • The solution admits a regular power-series expansion in ε.

    We treat \epsilon as a parameter to track the perturbation. The solution x_2(\epsilon) = \sqrt{1+\epsilon} can be expressed as a Taylor series around the simple problem (\epsilon = 0):

    \displaystyle x_2(\epsilon) = 1 + \frac{1}{2}\epsilon - \frac{1}{8}\epsilon^2 + \frac{1}{16}\epsilon^3 - \frac{5}{128}\epsilon^4 + \dots

    The original problem x^2 - 2 = 0 is recovered by evaluating this series at \epsilon = 1. The smooth dependence on the parameter allows us to reach the target solution. For \epsilon=1, the first few terms give:

    \displaystyle x_2(1) \approx 1 + 0.5 - 0.125 + 0.0625 - 0.039 = 1.3985

    which is already a good approximation \sqrt{2} \approx 1.4142.

    This example illustrates a regular homotopy connecting the simple problem x^2 - 1 = 0 to the target problem x^2 - 2 = 0.

  • Polynomial expansion

    Expanding series and sorting coefficients by hand can be tedious. The Python library sympy allows us to automate this process efficiently.

    Polynomial expansion and coefficient extraction

    from sympy import symbols, expand, collect
    
    # define variables
    a0, a1, a2, a3, x = symbols('a0 a1 a2 a3 x')
    
    # expand the expression
    expr = expand((a0 + a1*x + a2*x**2 + a3*x**3)**2)
    
    print("Expanded expression:")
    print(expr)
    
    print("\nCollected by powers of x:")
    print(collect(expr, x))
    

    Output:

    Expanded expression:
    a0**2 + 2*a0*a1*x + 2*a0*a2*x**2 + 2*a0*a3*x**3
    + a1**2*x**2 + 2*a1*a2*x**3 + 2*a1*a3*x**4
    + a2**2*x**4 + 2*a2*a3*x**5 + a3**2*x**6
    
    Collected by powers of x:
    a0**2 + 2*a0*a1*x
    + (2*a0*a2 + a1**2)*x**2
    + (2*a0*a3 + 2*a1*a2)*x**3
    + (2*a1*a3 + a2**2)*x**4
    + 2*a2*a3*x**5
    + a3**2*x**6
    

    We can also extract coefficients order by order:

    coeffs = [expr.coeff(x, i) for i in range(7)]
    
    for i, c in enumerate(coeffs):
        print(f"Coefficient of x^{i}:", c)  
    

    Output:

    Coefficient of x^0: a0**2
    Coefficient of x^1: 2*a0*a1
    Coefficient of x^2: 2*a0*a2 + a1**2
    Coefficient of x^3: 2*a0*a3 + 2*a1*a2
    Coefficient of x^4: 2*a1*a3 + a2**2
    Coefficient of x^5: 2*a2*a3
    Coefficient of x^6: a3**2
    

    This approach allows us to systematically extract and match coefficients order by order, which is particularly useful in perturbation theory.