clc;
clear;
% make a function file eee18.m %
% function[y]=eee18(x)
y=x^3+2*x-5;
end %
% make another function file eee19.m %
% function[y]=eee19(x)
y=3*x+2;
end %
disp('© ET-153071™')
disp('>> Choose a Method');
disp('1. Bisection');
disp('2. False-position');
disp('3. Newton-Raphson');
disp('4. All in One');
answer=input('>> Choosen Option: ');
if answer==1
x1=input('- Enter the value of x1:');
x2=input('- Enter the value of x2:');
y1=eee18(x1);
y2=eee18(x2);
if (y1*y2)<0
disp('Initial values are correct');
for n=1:1:100
y1=eee18(x1);
y2=eee18(x2);
xm=(x1+x2)/2;
y0=eee18(xm);
if y0==0
break
end
if y1*y0>0
x1=xm;
else x2=xm;
end
end
M=xm;
fprintf('Bisection Root: %f\n', M);
else
disp('Initial values are incorrect');
end
elseif answer==2
x1=input('- Enter the value of x1:');
x2=input('- Enter the value of x2:');
y1=eee18(x1);
y2=eee18(x2);
if (y1*y2)<0
disp('Initial values are correct');
for n=1:1:10
y1=eee18(x1);
y2=eee18(x2);
xr=x1-(y1*(x2-x1))/(y2-y1);
y0=eee18(xr);
if y0==0
break
elseif abs(y0)<0.00001
break
elseif y1*y0>0;
x2=xr;
else
x1=xr;
end
end
N=xr;
fprintf('False Position Root: %f\n', N);
else
disp('Initial values are incorrect');
end
elseif answer==3
x1=input('Enter the value of x1:');
y1=eee18(x1);
y2=eee19(x1);
if (y1*y2)<0
disp('Initial values are correct')
for n=1:1:100
y1=eee18(x1);
y2=eee19(x1);
xq=x1-(y1/y2);
y0=eee18(xq);
if y0==0
break
end
x1=xq;
end
P=xq;
fprintf('Newton Root: %f\n', P);
else
disp('Initial values are incorrect');
end
elseif answer==4
x1=input('- Enter the value of x1:');
x2=input('- Enter the value of x2:');
y1=eee18(x1);
y2=eee18(x2);
if (y1*y2)<0
disp('Initial values are correct');
for n=1:1:100
y1=eee18(x1);
y2=eee18(x2);
xm=(x1+x2)/2;
y0=eee18(xm);
if y0==0
break
end
if y1*y0>0
x1=xm;
else x2=xm;
end
end
M=xm;
for n=1:1:10
y1=eee18(x1);
y2=eee18(x2);
xr=x1-(y1*(x2-x1))/(y2-y1);
y0=eee18(xr);
if y0==0
break
elseif abs(y0)<0.00001
break
elseif y1*y0>0;
x2=xr;
else
x1=xr;
end
end
N=xr;
for n=1:1:100
y1=eee18(x1);
y2=eee19(x1);
xq=x1-(y1/y2);
y0=eee18(xq);
if y0==0
break
end
x1=xq;
end
P=xq;
Q=[M,N,P];
disp('Bisection False-Position Newton-Raphson')
disp('---------------------------------------')
disp(Q)
else
disp('Initial values are incorrect');
end
else
disp('Please, choose any option!');
end
Comments
0 B
|👍
/👎
0 B
|👍
/👎