Koçak’s double linearization loop renders a one-point, one-go nonlinear equation solver. 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 Koçak’s double linearization loop to repeat m=-f/h, g=x+h-f(x+h)/m(x+h), and h=g-x while |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.
Keywords for this software
References in zbMATH (referenced in 1 article )
Showing result 1 of 1.
- Koçak, Mehmet Çetin: Ko\ccak’s double linearization loop renders a one-point, one-go nonlinear equation solver (2014)