Fixed Point Method

Work in progress. This note is still being written and incomplete.

A function GG from D⊆RnD \subseteq \mathbb{R}^n into Rn\mathbb{R}^n has a fixed point at p⃗∈D\vec{p} \in D iff

G(p⃗)=p⃗G(\vec{p}) = \vec{p}

A nonlinear system F(x⃗)=0⃗F(\vec{x}) = \vec{0} can be rewritten in fixed-point form x⃗=G(x⃗)\vec{x} = G(\vec{x}), so that a solution of F(x⃗)=0⃗F(\vec{x}) = \vec{0} is a fixed point of GG.

Rearranging F to G

For each coordinate function fi(x⃗)=0f_i(\vec{x}) = 0, solve for one variable in terms of the rest to isolate xix_i, giving xi=gi(x⃗)x_i = g_i(\vec{x}). Stacking the gig_i‘s gives G=(g1,…,gn)TG = (g_1, \ldots, g_n)^T. This choice is not unique: fi=0f_i = 0 can be solved for any variable, and different choices give different GG‘s with different convergence behavior under the fixed-point theorem.

Fixed-Point Iteration

Given GG and a starting vector x⃗(0)\vec{x}^{(0)}, generate

x⃗(k)=G(x⃗(k−1)),k≥1\vec{x}^{(k)} = G(\vec{x}^{(k-1)}), \quad k \geq 1

Fixed-Point Theorem in n-Space

Let D={(x1,x2,…,xn)T∣ai≤xi≤bi,  i=1,2,…,n}D = \{(x_1, x_2, \ldots, x_n)^T \mid a_i \leq x_i \leq b_i, \; i = 1, 2, \ldots, n\} for constants ai,bia_i, b_i, and let G:D→RnG: D \rightarrow \mathbb{R}^n be continuous with G(x⃗)∈DG(\vec{x}) \in D whenever x⃗∈D\vec{x} \in D. Then GG has a fixed point in DD.

If, in addition, every component function of GG has continuous partial derivatives and a constant K<1K < 1 exists with

∣∂gi(x⃗)∂xj∣≤Kn,∀x⃗∈D,  i,j=1,2,…,n\left|\frac{\partial g_i(\vec{x})}{\partial x_j}\right| \leq \frac{K}{n}, \quad \forall \vec{x} \in D, \; i, j = 1, 2, \ldots, n

then:

  • GG has a unique fixed point p⃗∈D\vec{p} \in D.
  • Fixed-point iteration converges to p⃗\vec{p} for any x⃗(0)∈D\vec{x}^{(0)} \in D.
  • ∥x⃗(k)−p⃗∥∞≤Kk1−K∥x⃗(1)−x⃗(0)∥∞\lVert \vec{x}^{(k)} - \vec{p} \rVert_\infty \leq \dfrac{K^k}{1-K} \lVert \vec{x}^{(1)} - \vec{x}^{(0)} \rVert_\infty for each k≥1k \geq 1.

Accelerating Convergence

Computing x⃗(k)\vec{x}^{(k)} with the already-updated components x1(k),…,xi−1(k)x_1^{(k)}, \ldots, x_{i-1}^{(k)} in place of x1(k−1),…,xi−1(k−1)x_1^{(k-1)}, \ldots, x_{i-1}^{(k-1)}, rather than waiting for the full previous iterate, is the Gauss-Seidel method applied to fixed-point iteration. It often converges faster, but not always.

Example

f1(x1,x2,x3)=3x1−cos⁡(x2x3)−12f2(x1,x2,x3)=x12−81(x2+0.1)2+sin⁡x3+1.06f3(x1,x2,x3)=e−x1x2+20x3+10π−33\begin{aligned} f_1(x_1, x_2, x_3) &= 3x_1 - \cos(x_2 x_3) - \tfrac{1}{2} \\ f_2(x_1, x_2, x_3) &= x_1^2 - 81(x_2 + 0.1)^2 + \sin x_3 + 1.06 \\ f_3(x_1, x_2, x_3) &= e^{-x_1 x_2} + 20x_3 + \tfrac{10\pi - 3}{3} \end{aligned}

For the coordinate functions f1,f2,f3f_1, f_2, f_3, solving each fi=0f_i = 0 for xix_i gives the fixed-point form x⃗=G(x⃗)\vec{x} = G(\vec{x}).

Solving f1=3x1−cos⁡(x2x3)−12=0f_1 = 3x_1 - \cos(x_2x_3) - \tfrac{1}{2} = 0 for x1x_1:

3x1=cos⁡(x2x3)+12  ⟹  x1=g1(x⃗)=13cos⁡(x2x3)+163x_1 = \cos(x_2x_3) + \tfrac{1}{2} \implies x_1 = g_1(\vec{x}) = \tfrac{1}{3}\cos(x_2 x_3) + \tfrac{1}{6}

Solving f2=x12−81(x2+0.1)2+sin⁡x3+1.06=0f_2 = x_1^2 - 81(x_2+0.1)^2 + \sin x_3 + 1.06 = 0 for x2x_2:

(x2+0.1)2=181(x12+sin⁡x3+1.06)  ⟹  x2=g2(x⃗)=19x12+sin⁡x3+1.06−0.1(x_2+0.1)^2 = \tfrac{1}{81}\left(x_1^2 + \sin x_3 + 1.06\right) \implies x_2 = g_2(\vec{x}) = \tfrac{1}{9}\sqrt{x_1^2 + \sin x_3 + 1.06} - 0.1

(taking the positive root, since the solution near the expected root has x2+0.1>0x_2 + 0.1 > 0)

Solving f3=e−x1x2+20x3+10π−33=0f_3 = e^{-x_1x_2} + 20x_3 + \tfrac{10\pi - 3}{3} = 0 for x3x_3:

20x3=−e−x1x2−10π−33  ⟹  x3=g3(x⃗)=−120e−x1x2−10π−36020x_3 = -e^{-x_1x_2} - \tfrac{10\pi - 3}{3} \implies x_3 = g_3(\vec{x}) = -\tfrac{1}{20}e^{-x_1 x_2} - \tfrac{10\pi - 3}{60}

Verifying a Fixed Point Exists

Take D={(x1,x2,x3)T∣−1≤xi≤1}D = \{(x_1, x_2, x_3)^T \mid -1 \leq x_i \leq 1\}.

G(D)⊆DG(D) \subseteq D: for x⃗∈D\vec{x} \in D, x2x3∈[−1,1]x_2 x_3 \in [-1, 1], so cos⁡(x2x3)∈[cos⁡1,1]=[0.5403,1]\cos(x_2x_3) \in [\cos 1, 1] = [0.5403, 1], giving

g1(x⃗)∈[13(0.5403)+16, 13(1)+16]=[0.3468, 0.5]g_1(\vec{x}) \in \left[\tfrac{1}{3}(0.5403) + \tfrac{1}{6},\ \tfrac{1}{3}(1) + \tfrac{1}{6}\right] = [0.3468,\ 0.5]

Similarly x12+sin⁡x3+1.06∈[0.2185,2.9015]x_1^2 + \sin x_3 + 1.06 \in [0.2185, 2.9015] (using sin⁡x3∈[−0.8415,0.8415]\sin x_3 \in [-0.8415, 0.8415], x12∈[0,1]x_1^2 \in [0, 1]), so

g2(x⃗)∈[−0.0481, 0.0893]g_2(\vec{x}) \in [-0.0481,\ 0.0893]

and x1x2∈[−1,1]x_1 x_2 \in [-1, 1] gives e−x1x2∈[0.3679,2.7183]e^{-x_1x_2} \in [0.3679, 2.7183], so

g3(x⃗)∈[−0.6095, −0.4920]g_3(\vec{x}) \in [-0.6095,\ -0.4920]

All three ranges lie in [−1,1][-1, 1], so G(x⃗)∈DG(\vec{x}) \in D whenever x⃗∈D\vec{x} \in D. Every gig_i is continuous on DD, so by the Fixed-Point Theorem, GG has a fixed point in DD.

Verifying Uniqueness

The Jacobian matrix of GG is

JG(x⃗)=(0−13x3sin⁡(x2x3)−13x2sin⁡(x2x3)x19x12+sin⁡x3+1.060cos⁡x318x12+sin⁡x3+1.06120x2e−x1x2120x1e−x1x20)J_G(\vec{x}) = \begin{pmatrix} 0 & -\tfrac{1}{3}x_3\sin(x_2x_3) & -\tfrac{1}{3}x_2\sin(x_2x_3) \\[6pt] \dfrac{x_1}{9\sqrt{x_1^2+\sin x_3+1.06}} & 0 & \dfrac{\cos x_3}{18\sqrt{x_1^2+\sin x_3+1.06}} \\[6pt] \tfrac{1}{20}x_2 e^{-x_1x_2} & \tfrac{1}{20}x_1 e^{-x_1x_2} & 0 \end{pmatrix}

Bounding each entry of JG(x⃗)J_G(\vec{x}) on DD (using ∣xi∣≤1|x_i| \leq 1, ∣sin⁡(x2x3)∣≤sin⁡1=0.8415|\sin(x_2x_3)| \leq \sin 1 = 0.8415, x12+sin⁡x3+1.06≥0.2185=0.4675\sqrt{x_1^2+\sin x_3+1.06} \geq \sqrt{0.2185} = 0.4675, e−x1x2≤e=2.7183e^{-x_1x_2} \leq e = 2.7183):

∣∂g1∂x2∣,∣∂g1∂x3∣≤0.2805,∣∂g2∂x1∣≤0.2377,∣∂g2∂x3∣≤0.1189,∣∂g3∂x1∣,∣∂g3∂x2∣≤0.1359\left|\frac{\partial g_1}{\partial x_2}\right|, \left|\frac{\partial g_1}{\partial x_3}\right| \leq 0.2805, \quad \left|\frac{\partial g_2}{\partial x_1}\right| \leq 0.2377, \quad \left|\frac{\partial g_2}{\partial x_3}\right| \leq 0.1189, \quad \left|\frac{\partial g_3}{\partial x_1}\right|, \left|\frac{\partial g_3}{\partial x_2}\right| \leq 0.1359

The largest of these is 0.28050.2805, so taking K=0.85K = 0.85 (so K/n=K/3=0.2833≥0.2805K/n = K/3 = 0.2833 \geq 0.2805) satisfies ∣(JG(x⃗))ij∣≤K/n\left|\left(J_G(\vec{x})\right)_{ij}\right| \leq K/n for all i,ji,j on DD, with K<1K < 1. By the Fixed-Point Theorem, GG therefore has a unique fixed point in DD, and fixed-point iteration converges to it for any x⃗(0)∈D\vec{x}^{(0)} \in D.

Iterating to the Fixed Point

Starting from x⃗(0)=(0.1,0.1,−0.1)T∈D\vec{x}^{(0)} = (0.1, 0.1, -0.1)^T \in D and applying x⃗(k)=G(x⃗(k−1))\vec{x}^{(k)} = G(\vec{x}^{(k-1)}):

kkx1(k)x_1^{(k)}x2(k)x_2^{(k)}x3(k)x_3^{(k)}
00.100000.10000-0.10000
10.499980.00944-0.52310
20.499990.00003-0.52336
30.500000.00001-0.52360

For k=1k=1: x2(0)x3(0)=−0.01x_2^{(0)}x_3^{(0)} = -0.01, so g1=13cos⁡(−0.01)+16=0.49998g_1 = \tfrac{1}{3}\cos(-0.01) + \tfrac{1}{6} = 0.49998; (x1(0))2+sin⁡x3(0)+1.06=0.97017\left(x_1^{(0)}\right)^2 + \sin x_3^{(0)} + 1.06 = 0.97017, so g2=190.97017−0.1=0.00944g_2 = \tfrac{1}{9}\sqrt{0.97017} - 0.1 = 0.00944; x1(0)x2(0)=0.01x_1^{(0)}x_2^{(0)} = 0.01, so g3=−120e−0.01−10π−360=−0.52310g_3 = -\tfrac{1}{20}e^{-0.01} - \tfrac{10\pi-3}{60} = -0.52310.

The iterates converge to p⃗=(0.5, 0, −π6)≈(0.5,0,−0.52360)\vec{p} = \left(0.5,\ 0,\ -\tfrac{\pi}{6}\right) \approx (0.5, 0, -0.52360), which checks out directly: g1(p⃗)=13cos⁡(0)+16=0.5g_1(\vec{p}) = \tfrac{1}{3}\cos(0) + \tfrac{1}{6} = 0.5, g2(p⃗)=190.25−0.5+1.06−0.1=190.81−0.1=0g_2(\vec{p}) = \tfrac{1}{9}\sqrt{0.25 - 0.5 + 1.06} - 0.1 = \tfrac{1}{9}\sqrt{0.81} - 0.1 = 0, g3(p⃗)=−120e0−10π−360=−0.05−0.4736=−π6g_3(\vec{p}) = -\tfrac{1}{20}e^0 - \tfrac{10\pi-3}{60} = -0.05 - 0.4736 = -\tfrac{\pi}{6}.

Written by September 28, 2026 3 min read
Was this helpful?