lizfcm/notes/Oct-16.org

1.9 KiB

Find x ∈ R st f(x) = 0

if f(x^*) = 0 then define x^* = g(x^*) = x^* + f(x^*)

Suppose we approximate x^* by x_0. Then Using the fixed point equations:

x_1 = g(x_0) = x_0 + f(x_0) x_2 = g(g_1) ⋯ xk+1 = g(x_k)

This generates a sequence of approximations to x^*

{X_k} → x^*

The algorithm is: Given f(x), x_0, compute xk+1 = g(x_k), k = 0, 1, 2, ⋯ = x_k + f(x_k)

Examples for g(x)

  1. xk+1 = x_k + f(x_k)
  2. xk+1 = x_k - f(x_k)
  3. xk+1 = x_k - mf(x_k)
  4. xk+q = s_k - sin(f(x_k))

x^* = root of f y^* = solution of y^* = g(y^*)

x^* - y^* = x^* - (y^* - f(y^*))
xk+1 - x^* = g(x_k) - g(x^*)

= |g(x^*) + g'(x^k)(x_k - x^*) + ⋯) - g(x^*)| = |g'(x^*)(x_k - x^*) + hot| ≤ | g'(x^*)(x_k - x^*)| + (pos val) ≤ |g'(x^*)| (|x_k - x^*|)

⇒ |xk+1 - x^*| ≤ |g'(x^*)| ⋅ |x_k - x^*|

For this to converge, we need |g'(x^*)| < 1

Example

f(x) = xe-x

Then x^* = 0

If we construct g(x) = 10x + xe^-x

Then g'(x) = 10 + (e^-x - xe^-x) ⇒ g'(x) = 10 + e^0 - 0 = 11 (this wouldn't converge)n

However if g(x)) = x - (xe^-x), g'(x) = 1 - (e^-x - xe^-x) ⇒ g'(x^*) = 0

Then assume x_0 = 1/10 Then x_1 = g(x_0) = 1/10 - 1/10(e-1/10) ⋯

More General, Robust Algorithm

Theorem: Intermediate Value Theorem

Suppose that f(x) is a continuous function on [a, b] then

limx -> x_0 (f(x)) = f(x_0)

For all x_0 ∈ (a, b) and at the endpoints:

lima^+ f(x) = f(a) limx -> b^- f(x) = f(b)

Then if s is a number between f(a) and f(b), there exists a point c ∈ (a, b) such that f(c) = s.

To use this to ensure there is a root, we just take evaluations f(a) and f(b) that cross 0

So the condition we construct is: f(a) ⋅ f(b) < 0

Next Step: compute the midpoint of [a, b]

c = 1/2 (a + b)

do binary search on c by taking this midpoint and ensuring f(a) ⋅ f(c) < 0 or f(c) ⋅ f(b) < 0 is met, choosing the correct interval