Sei sulla pagina 1di 2

E:\SEMESTER-5\MATHS\project\New Folder\func.

end
c=(a+b)/2;
err=abs(b-a);
yc=subs(f,c);
disp('ROOT')
disp(c);
disp('NUMBER OF ITERATIONS')
disp(k)
end
if (z== 'N')
g =input('INPUT THE VALUE OF guess(not zero):');
max1=1+round((log(b-a)-log(tolX))/log(2));
for k=1:max1
p1=g-subs(f,g)/subs(diff(f,x),g);
err=abs(p1-g);

if ((b-a) < tolX)


break
end

function func()
syms x
f=input( 'INPUT THE VALUE OF F:');
a=input( 'INPUT THE VALUE OF INITIAL DOMAIN VALUE (A):');
b=input( 'INPUT THE VALUE OF FINAL DOMAIN VALUE (B):');
tolX=input('INPUT THE VALUE OF TOLERANCE:');
char method;
method=input ('INPUT THE METHOD===("B")FOR BISECTION***("N")FOR NEWTON***("S")FOR
SECANT***("F")FOR FALSE POSITION:', 's' );
if isempty (method)
z = method;
end
z = char (method);
if (z== 'B')
ya=subs(f,a);
yb=subs(f,b);
if ((ya*yb) > 0)
return;
end
max1=1+round((log(b-a)-log(tolX))/log(2));
for k=1:max1
c=(a+b)/2;
yc=subs(f,c);
if yc==0
a=c;
b=c;
elseif yb*yc>0
b=c;
yb=yc;
else
a=c;
ya=yc;
end

10/10/10 3:02 PM

1 of 3

E:\SEMESTER-5\MATHS\project\New Folder\func.m

2 of 3

end
disp('ROOT')
disp(g);
disp('NUMBER OF ITERATIONS')
disp(k)
end
if (z== 'S')
g0 =input('INPUT THE VALUE OF FIRST guess(should be less than second guess,NOT
ZERO):');
g1 =input('INPUT THE VALUE OF SECOND guess:' );
max1=1+round((log(b-a)-log(tolX))/log(2));
for k=1:max1
g2=g1-(subs(f,g1)*(g1-g0))/(subs(f,g1)-subs(f,g0));
err=abs(g2-g1);
relerr=2*err/(abs(g2)+tolX);
g0=g1;
g1=g2;
y=subs(f,g1);
if (err<tolX)|(relerr<tolX), break, end
end
disp('ROOT')
disp(g1);
disp('NUMBER OF ITERATIONS')
disp(k)
end
if (z== 'F')
g1 =input('INPUT THE VALUE OF FIRST guess:(should be less than second guess)' );
g2 =input('INPUT THE VALUE OF SECOND guess:' );
max1=1+round((log(b-a)-log(tolX))/log(2));
ya=subs(f,g1);
yb=subs(f,g2);
if ((ya*yb) > 0)
return;
end
for k=1:max1
c=g2-(subs(f,g2)*(g2-g1))/(subs(f,g2)-subs(f,g1));
yc=subs(f,c);
if yc==0
g1=c;
g2=c;
elseif yb*yc>0
g2=c;
yb=yc;
else
g1=c;
ya=yc;
end

relerr=2*err/(abs(p1)+tolX);
g=p1;
y=subs(f,g);
if (err<tolX)|(relerr<tolX), break, end

10/10/10 3:02 PM

E:\SEMESTER-5\MATHS\project\New Folder\func.m

end
err=abs(g2-g1);
yc=subs(f,c);
disp('ROOT')
disp(c);
disp('NUMBER OF ITERATIONS')
disp(k)
end

if ((g2-g1) < tolX)


break
end

10/10/10 3:02 PM

3 of 3

Potrebbero piacerti anche