Fixed Point Iteration Method in MATLAB

Fixed Point Iteration is method of finding the fixed point of the given function in numerical method. A point x=a is called fixed point of f(x)=0 if f(a)=a. It is very easy method to find to the root of nonlinear equation by computing fixed point of function. This is an open method and does not guarantee to convergence the fixed point. To check the convergence of fixed point of function, a theorem is use.

Fixed-Point Theorem

Let g C[a, b] and suppose that g(x) [a, b] for all x in [a, b]. Suppose, in addition, that g’ exists on (a, b) with |g'(x)| k 1 for all x (a, b). If p0 is any number in [a, b], then the sequence defined by pn=g(xn-1), n 1, converge to the unique fixed point p in [a, b].

At here, we write the code of Fixed Point Iteration in MATLAB step by step. MATLAB is easy way to solve complicated mathematical problems that are not solve by hand or impossible to solve at page. MATLAB is develop for mathematics, therefore MATLAB is the abbreviation of MATrix LABoratory.

MATLAB Code of Fixed Point Iteration

echo on; clc;
%---------------------------------------------------------------------------
%A2_1   MATLAB script file for implementing Algorithm 2.1
%
% NUMERICAL METHODS: MATLAB Programs, (c) John H. Mathews 1995
% To accompany the text:
% NUMERICAL METHODS for Mathematics, Science and Engineering, 2nd Ed, 1992
% Prentice Hall, Englewood Cliffs, New Jersey, 07632, U.S.A.
% Prentice Hall, Inc.; USA, Canada, Mexico ISBN 0-13-624990-6
% Prentice Hall, International Editions:   ISBN 0-13-625047-5
% This free software is compliments of the author.
% E-mail address:      in%"mathews@fullerton.edu"
%
% Algorithm 2.1  (Fixed Point Iteration).
% Section	2.1,  Iteration for Solving  x = g(x), Page 51
%---------------------------------------------------------------------------

clc; clear all; format long;

% - - - - - - - - - - - - - - - - - - - - - - -
%
% This program implements fixed point iteration.
%
% Define and store g(x)	in the M-file  g.m
%
%
% function y = g(x)
% y = cos(x);

pause % Press any key to continue.

clc;
%.......................................................................
% Begin a section which enters the function(s) necessary for the example
% into M-file(s) by executing the diary command in this script file.
% The preferred programming method is not to use these steps.
% One should enter the function(s) into the M-file(s) with an editor.
delete output
delete g.m
diary  g.m; disp('function y = g(x)');...
            disp('y = cos(x);');...
diary off;
% Remark. g.m and fixpt.m are used for Algorithm 2.1
g(0); % Test for file g.m
pause % Press any key to see the graph y = g(x).

clc;
% ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
% Prepare graphics arrays to plot y = g(x).
% ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
a = -0.1;
b = 1.8;
h = (b-a)/150;
X = a:h:b;
Y = g(X);
X1 = [a b];
Y1 = [a b];

clc; figure(1); clf;

%~~~~~~~~~~~~~~~~~~~~~~~
% Begin graphics section
%~~~~~~~~~~~~~~~~~~~~~~~
a = -0.1;
b = 1.8;
c = 0;
d = 1.6;
whitebg('w');
plot([a b],[0 0],'b',[0 0],[c d],'b');
axis([a b c d]);
axis(axis);
hold on;
plot(X1,Y1,'-r',X,Y,'-g');
xlabel('x');
ylabel('y');
title('The line y = x and the curve y = g(x).');
grid;
hold off;

figure(gcf); pause % Press any key to continue.

clc;

% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%
% Example 2.3, page 49.  Investigate the nature of fixed point
% iteration for the function  g(x) = cos(x).
%
% Enter the starting value in  p0
%
% Enter the number of iterations in  max1
%
% Enter the tolerance in  delta

p0 = 0.3;
max1  = 100;
delta = 1e-9;

[pc,err,P] = fixpt('g',p0,delta,max1);

pause % Press any key for the list of iterations.

clc;
% ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
% Prepare arrays to graph and print the results.
% ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
max1 = length(P);
for j = 1:max1-1,
  k1 = 2*j-1;
  k2 = 2*j;
  Vx(k1) = P(j);
  Vy(k1) = P(j);
  Vx(k2) = P(j);
  Vy(k2) = P(j+1);
end
Vy(1) = 0;
Z0 = zeros(1,length(P));

clc; figure(2); clf;

%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
% Begin graphics section for the results.
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
a = -0.1;
b = 1.8;
c = 0;
d = 1.6;
whitebg('w');
plot([a b],[0 0],'b',[0 0],[c d],'b');
axis([a b 0 2]);
axis(axis);
hold on;
plot(X1,Y1,'-g',X,Y,'-g',Vx,Vy,'-r',P,Z0,'or');
plot([a b],[0 0],'b',[0 0],[c d],'b');
xlabel('x');
ylabel('y');
title('Graphical analysis for fixed point iteration.');
grid;
hold off;

figure(gcf); pause % Press any key to continue.

% .. .. .. .. .. 
% Prepare results
% .. .. .. .. .. 
max1 = length(P);
J = 1:max1;
points = [J;P];

clc;
%............................................
% Begin section to print the results.
% Diary commands are included which write all
% the results to the Matlab textfile   output
%............................................
Mx1 = 'Computations for the fixed point iteration method.';
Mx2 = '     k                  p(k)';
Mx3 = 'The fixed point is g(p) = p = ';
Mx4 = 'The error estimate for p is  ~ ';
clc,echo off,diary output,...
disp(''),disp(Mx1),disp(''),disp(Mx2),disp(points'),...
disp(''),disp(Mx3),disp(pc),...
disp([Mx4,num2str(err)]),diary off,echo on