Using the pseudocode for the Bisection Method in the class n
Solution
I wrote the bisection method in matlab code, it is quite straight-forward.
Assume a file f.m with contents
function y = f(x)
 y = e^x-x-2;
 exists. Then:
>> format long
 >> eps_abs = 1e-5;
 >> eps_step = 1e-5;
 >> a = 0.0;
 >> b = 2.0;
 >> while (b - a >= eps_step || ( abs( f(a) ) >= eps_abs && abs( f(b) ) >= eps_abs ) )
 c = (a + b)/2;
 if ( f(c) == 0 )
 break;
 elseif ( f(a)*f(c) < 0 )
 b = c;
 else
 a = c;
 end
 end
 - An implementation of a function would be -
function [ r ] = bisection( f, a, b, N, eps_step, eps_abs )
 % Check that that neither end-point is a root
 % and if f(a) and f(b) have the same sign, throw an exception.
if ( f(a) == 0 )
    r = a;
    return;
 elseif ( f(b) == 0 )
    r = b;
    return;
 elseif ( f(a) * f(b) > 0 )
 error( \'f(a) and f(b) do not have opposite signs\' );
 end
% We will iterate N times and if a root was not
 % found after N iterations, an exception will be thrown.
for k = 1:N
 % Find the mid-point
 c = (a + b)/2;
% Check if we found a root or whether or not
 % we should continue with:
 % [a, c] if f(a) and f(c) have opposite signs, or
 % [c, b] if f(c) and f(b) have opposite signs.
if ( f(c) == 0 )
 r = c;
 return;
 elseif ( f(c)*f(a) < 0 )
 b = c;
 else
 a = c;
 end
 % If |b - a| < eps_step, check whether or not
 % |f(a)| < |f(b)| and |f(a)| < eps_abs and return \'a\', or
 % |f(b)| < eps_abs and return \'b\'.
if ( b - a < eps_step )
 if ( abs( f(a) ) < abs( f(b) ) && abs( f(a) ) < eps_abs )
 r = a;
 return;
 elseif ( abs( f(b) ) < eps_abs )
 r = b;
 return;
 end
 end
 end
error( \'the method did not converge\' );
 end
![Using the pseudocode for the Bisection Method in the class note write a MATLAB code to approximate the root of f(x) = e^x - x - 2 on [0, 2] with accuracy withi  Using the pseudocode for the Bisection Method in the class note write a MATLAB code to approximate the root of f(x) = e^x - x - 2 on [0, 2] with accuracy withi](/WebImages/22/using-the-pseudocode-for-the-bisection-method-in-the-class-n-1053647-1761549322-0.webp)
![Using the pseudocode for the Bisection Method in the class note write a MATLAB code to approximate the root of f(x) = e^x - x - 2 on [0, 2] with accuracy withi  Using the pseudocode for the Bisection Method in the class note write a MATLAB code to approximate the root of f(x) = e^x - x - 2 on [0, 2] with accuracy withi](/WebImages/22/using-the-pseudocode-for-the-bisection-method-in-the-class-n-1053647-1761549322-1.webp)
