Kocak's double linearization loop renders a one-point, one-go nonlinear equation solver


Kocak M. C.

APPLIED MATHEMATICS AND COMPUTATION, vol.248, pp.494-502, 2014 (SCI-Expanded) identifier identifier

  • Publication Type: Article / Article
  • Volume: 248
  • Publication Date: 2014
  • Doi Number: 10.1016/j.amc.2014.09.120
  • Journal Name: APPLIED MATHEMATICS AND COMPUTATION
  • Journal Indexes: Science Citation Index Expanded (SCI-EXPANDED), Scopus
  • Page Numbers: pp.494-502
  • Keywords: Non-linear equations, Iterative methods, Newton's method, Convergence acceleration, Simulation, ITERATIVE SOLUTION, CONVERGENCE, 3RD-ORDER
  • Ankara University Affiliated: No

Abstract

To solve a nonlinear equation f (x) = 0 numerically means a repetitive operation x = g(x) hoping each time that f (g(x)) = 0. Let z be a root (zero) of f and a fixed point of g so that f (z) = 0 and z = g(z). Consider two points in the xf-plane: K (x, f) and G (g, 0). The slope of line KG is m = f/(x - g). So, iterators in the form g(x) = x + h; h = f (x)/m(x) attempt solution by linearization of f whereby G approximates Z(z, 0) and KG is a substitute for f. A common example is Newton's method where m is f' and KG is a tangent. After a theoretical background, this article provides a short and ready-to-use Matlab function lin2f0 which receives x, f, a number of its derivatives, a small h and a tiny tol as arguments, enters Kocak's double linearization loop to repeat m = -f/h, g = x + h - f(x + h)/m(x + h), and h = g - x while vertical bar f(x + h) > tol, and returns converged g. If f(g) is unsatisfactory, lin2f0 may be re-entered after updating x, f and derivatives. One call with sufficient number of (small) derivatives guarantees that this g is the first z in the direction of h. Tests including a case of a multiple root show that this robust solver works superbly where others fail. Note that lin2f0 linearizes f twice for each h; once at x and once at x + h. (C) 2014 Elsevier Inc. All rights reserved.