Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
Advertisement