Numerical Lab
%Gauss Seidel method
clc
clear all
close all
x1(1) =0;
x2(1) =0;
x3(1) =0;
x4(1) =0;
for i=1:100
it(i)=i;
x1(i+1)= (3+ 2*x2(i)+ x3(i)+ x4(i))/10;
x2(i+1)= (15+2*x1(i+1) + x3(i) + x4(i))/10;
x3(i+1) = (27+ x1(i+1) + x2(i+1) + 2* x4(i))/10;
x4(i+1) = (-9+ x1(i+1) + x2(i+1) + 2* x3(i+1))/10;
er1=((x1(i+1)-x1(i))*100/x1(i+1));
er2=((x2(i+1)-x2(i))*100/x2(i+1));
er3=((x3(i+1)-x3(i))*100/x3(i+1));
er4=((x4(i+1)-x4(i))*100/x4(i+1));
if ( er1<0.01 && er2<0.01 && er3<0.01 && er4<0.01 )
break;
end
end
disp(' Iteration X1 X2 X3 X4');
disp ( [ it' x1(2:i+1)' x2(2:i+1)' x3(2:i+1)' x4(2:i+1)' ] ) ;
%Newton-Raphson method
clc
clear all
x(1)=2;
error(1) = 0;
it(1)=1;
for k=2 : 100
it(k)=k;
f(k-1)=x(k-1)^3-2*x(k-1)-5;
f1(k-1)=3*x(k-1)^2-2;
x(k)=x(k-1)-(f(k-1)/f1(k-1));
if(k>1)
error(k) = abs((x(k)-x(k-1))/x(k))*100;
if( error(k)<0.01)
f(k)=x(k)^3-2*x(k)-5;
break;
end
end
end
disp('Iteration x f(x) Error(%)')
disp([it' x' f' error'])
fprintf('The root is %f',x(k));
%study of Bisection methode using MATLAB
clc
clear all
close all
a(1)=1;
b(1)=2;
f1=a(1)^3-a(1)-1;
f2=b(1)^3-b(1)-1;
error(1)=0;
for k=1:100
it(k)=k;
x(k)=(a(k)+b(k))/2;
f(k)=x(k)^3-x(k)-1;
if f(k)>0
b(k+1)=x(k);
a(k+1)=a(k);
else
a(k+1)=x(k);
b(k+1)=b(k);
end
if(k>1)
error(k)=abs((x(k)-x(k-1))/x(k))*100;
if(error(k)<0.01)
break;
end
end
end
disp('iteration a b x f(x) Error(%)')
fprintf('the root is %f',x(k));
%false position method
clc
clear all
a(1)=2;
b(1)=3;
f1=a(1)^3-a(1)-1;
f2=b(1)^3-b(1)-1;
error(1) = 0;
for k=1 : 100
it(k)=k;
x(k)=( a(k)*f2-b(k)*f1 )/(f2-f1);
f(k)=x(k)^3-x(k)-1;
if f(k)>0
b(k+1)=x(k);
f2=f(k);
a(k+1)= a(k);
else
a(k+1)=x(k);
f1=f(k);
b(k+1)=b(k);
end
if(k >1)
error(k) = abs((x(k)-x(k-1))/x(k))*100;
if( error(k)<0.01)
break;
end
end
end
disp(' Iteration a b x f(x) Error(%)')
disp([it' a(1:k)' b(1:k)' x' f' error'])
fprintf('The root is %f',x(k));
Comments
Post a Comment