You are on page 1of 6

2) a)

a=input(' Enter a '); b=input(' Enter b ');


n=input(' Enter number of significant digits:n ');
itmax=input(' Enter maximum number of iterations allowed: itmax ');
es= 0.5*10^(2-n); ea= 10*es; k=0; clear xk; fprintf('\n');
while (ea>es && k<itmax)
k=k+1;
fa=Nln(a);
m=(Nln(b)-fa)/(b-a);
xk=a-fa/m;
fx=Nln(xk);
if sign(fa*fx)<0
b=xk;
else
a=xk;
end
if k>1 ea= abs((xk-xold)/xk)*100;
fprintf(' %4d %12.6f %12.6f\n' ,k,xk,ea);
end
xold=xk;
end

>> Regula_falsi
Enter a 2.5
Enter b 3.5
Enter number of significant digits:n 5
Enter maximum number of iterations allowed: itmax 40
2

3.124818

7.556543

3.254097

3.972804

3.320870

2.010698

3.354321

0.997261

3.370823

0.489554

3.378902

0.239094

3.382842

0.116479

3.384761

0.056675

10

3.385694

0.027560

11

3.386147

0.013398

12

3.386368

0.006512

-313

3.386475

0.003165

14

3.386527

0.001538

15

3.386552

0.000748

16

3.386565

0.000363

b)
a=input(' Enter a '); b=input(' Enter b ');
n=input(' Enter number of significant digits:n ');
itmax=input(' Enter maximum number of iterations allowed: itmax ');
es= 0.5*10^(2-n); ea= 10*es; k=0; clear xk; fprintf('\n');N=0;
while (N<3)
dx=(b-a)/4;
if sign(Nln(a)*Nln(a+dx))<0
b=a+dx;
elseif sign(Nln(a+dx)*Nln(a+2*dx))<0
a=a+dx;
b=a+2*dx;
elseif sign(Nln(a+2*dx)*Nln(a+3*dx))<0
a=a+2*dx;
b=a+3*dx;
else
a=a+3*dx;
end
N=N+1;
end
while (ea>es && k<itmax)
k=k+1;
fa=Nln(a);
m=(Nln(b)-fa)/(b-a);
xk=a-fa/m;
fx=Nln(xk);
if sign(fa*fx)<0
b=xk;
else
a=xk;
end
if k>1 ea= abs((xk-xold)/xk)*100;
fprintf(' %4d %12.6f %12.6f\n' ,k,xk,ea);
end
xold=xk;
end

>> Regula_falsi
Enter a 2.5
Enter b 3.5
Enter number of significant digits:n 5
Enter maximum number of iterations allowed: itmax 20

-42

3.386298

0.044831

3.386533

0.006939

3.386570

0.001073

3.386575

0.000166

Both Bisection and Regula Falsi Method 16 steps; however, fewer iterations are gotten when we
write interval search algorithm.

-53)
function [f,fp]=NR(t)
f=10*(1-exp(-.04*t))+4*exp(-.04*t);
fp=.4*exp(-.04*t)-.16*exp(-.04*t);
end

n=input ('enter the number of significant digits "n" : ');


itmax=input('enter maximum number of iterations allowed "itmax" :');
es=0.5*10^(2-n); ea=10*es; k=0;
x=input('enter initial estimate "x0" :'); fprintf('\n');
while (ea>es && k< itmax)
k=k+1;
old=x;
[f,fp]=NR(x);
x=x-f/fp;
ea=abs((x-old)/x)*100;
fprintf(' %4d
%12.6f
%12.6f\n',k,x,ea);
end
1
2
3
4
5

-20.891782
-13.957754
-12.798384
-12.770656
-12.770641

123.932856
49.678679
9.058717
0.217127
0.000121

-64)
function [y] = Nln(x)
y=x*tan(0.875*x)-0.875 ;
end

n=input ('enter the number of significant digits "n" : ');


itmax=input('enter maximum number of iterations allowed "itmax" :');
es=0.5*10^(2-n); ea=10*es; k=1;
x0=input('enter initial estimate "x0" :');
x=input(' enter initial estimate "x1" : '); fprintf('\n');
while (ea>es && k< itmax)
k=k+1;
old=x ;
f= Nln(x);
fpp=Nln(x);
fpm=Nln(x0);
fp=(fpp-fpm)/(x-x0);
x=x-f/fp;
ea=abs((x-old)/x)*100;
xo=old;
fprintf(' %4d
%12.6f
%12.6f\n',k,x,ea);
end

-7-

You might also like