Article ID Journal Published Year Pages File Type
4627303 Applied Mathematics and Computation 2014 9 Pages PDF
Abstract

To solve a nonlinear equation f(x)=0f(x)=0 numerically means a repetitive operation x=g(x)x=g(x) hoping each time that f(g(x))=0f(g(x))=0. Let z be a root (zero) of f and a fixed point of g   so that f(z)=0f(z)=0 and z=g(z)z=g(z). Consider two points in the xf  -plane: K(x,f)K(x,f) and G(g,0)G(g,0). The slope of line KG is m=f/(x-g)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)Z(z,0) and KG is a substitute for f. A common example is Newton’s method where m   is f′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/hm=-f/h, g=x+h-f(x+h)/m(x+h)g=x+h-f(x+h)/m(x+h), and h=g-xh=g-x while |f(x+h)|>tol|f(x+h)|>tol, and returns converged g  . If f(g)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+hx+h.

Related Topics
Physical Sciences and Engineering Mathematics Applied Mathematics
Authors
,