Fixed point iteration
This content is part of the Python Zone, which is presented to you by DZone and New Relic. Visit the Python Zone for news, tips, and tutorials on the Python programming language. New Relic provides the resources and best practices to help you monitor these applications.
A fixed point for a function is a point at which the value of the
function does not change when the function is applied. More formally, x is a fixed point for a given function f if
and the fixed point iteration
converges to the a fixed point if f is continuous.
The following function implements the fixed point iteration algorithm:
Source: http://glowingpython.blogspot.com/2012/01/fixed-point-iteration.html
and the fixed point iteration
converges to the a fixed point if f is continuous.
The following function implements the fixed point iteration algorithm:
from pylab import plot,show from numpy import array,linspace,sqrt,sin from numpy.linalg import norm def fixedp(f,x0,tol=10e-5,maxiter=100): """ Fixed point algorithm """ e = 1 itr = 0 xp = [] while(e > tol and itr < maxiter): x = f(x0) # fixed point equation e = norm(x0-x) # error at the current step x0 = x xp.append(x0) # save the solution of the current step itr = itr + 1 return x,xpLet's find the fixed point of the square root funtion starting from x = 0.5 and plot the result
f = lambda x : sqrt(x)
x_start = .5
xf,xp = fixedp(f,x_start)
x = linspace(0,2,100)
y = f(x)
plot(x,y,xp,f(xp),'bo',
x_start,f(x_start),'ro',xf,f(xf),'go',x,x,'k')
show()The result of the program would appear as follows:
The red dot is the starting point, the blue ones are the sequence x_1,x_2,x_3,... and the green is the fixed point found.
In a similar way, we can compute the fixed point of function of multiple variables:
# 2 variables function def g(x): x[0] = 1/4*(x[0]*x[0] + x[1]*x[1]) x[1] = sin(x[0]+1) return array(x) x,xf = fixedp(g,[0, 1]) print ' x =',x print 'f(x) =',g(xf[len(xf)-1])In this case g is a function of two variables and x is a vector, so the fixed point is a vector and the output is as follows:
x = [ 0. 0.84147098] f(x) = [ 0. 0.84147098]
Source: http://glowingpython.blogspot.com/2012/01/fixed-point-iteration.html
Tags:
Published at DZone with permission of Giuseppe Vettigli, author and DZone MVB.(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)
Python is a fast, powerful, dynamic, and versatile programming language that is being used in a variety of application domains. It has flourished as a beginner-friendly language that is penetrating more and more industries. The Python Zone is
a community that features a diverse collection of news, tutorials,
advice, and opinions about Python and Django. The Python Zone is
sponsored by New Relic, the all-in-one web application performance tool that lets you see performance from the end user experience, through servers, and down to the line of application code.




