Bisectionmethod
Bisectionmethod
clc;
clear all;
f=@(x) ( exp ( x ) - 2*x -2 ) ;
x1 = input ('\n enter x1 = ') ;
x2 = input ( '\n enter x2 = ' ) ;
acc = input ( '\n enter accuracy = ' ) ;
y1 = f( x1 ) ;
y2 = f ( x2 ) ;
fprintf ( '\n y1 = %f' ,y1) ;
fprintf ( '\n y2 = %f' ,y2) ;
while ( y1*y2 ) > 0
fprintf ( '\n intial guess is wrong') ;
x1 = input ('\n enter x1 = ') ;
x2 = input ( '\n enter x2 = ' ) ;
y1 = f( x1 ) ;
y2 = f ( x2 ) ;
end
while ( abs( x2-x1 ) > acc )
x3 = ( x1 + x2 ) / 2 ;
y3 = f( x3 );
if ( y1 * y3) < 0
x2 = x3 ;
y2 = y3 ;
else
x1 = x3 ;
y1 = y3 ;
end
end
fprintf ( '\n root is = %f' , x3 ) ;
-------------------------------------------------------------
Solver
>> x0 = [ 1 , 2 ] ;
>> x = fzero(('exp(x)-2*x-2') , x0 )
x =
1.6783
----------------------------------------------------------------
Solution
enter x1 = 0
enter x2 = 1
enter accuracy = 0.001
y1 = -1.000000
y2 = -1.281718
intial guess is wrong
enter x1 = 1
enter x2 = 2
root is = 1.678711