Вы находитесь на странице: 1из 2

10/4/19 12:17 PM C:\Users\Rupesh\Desktop\...\Question_1a.

m 1 of 2

%% Matlab Program to solve (3x3) system equation by using Gauss Seidel method without
diagonal dominance
A = input('Please Enter the elements of 3*3 Matrix A ' ) ;
B = input('Please Enter the elements of 3*1 Matrix b ' ) ;
%{
To make matrix diagonally dominant
[max_value,element_number] = max(abs(A(:)));
[row,column] = ind2sub([3 3],element_number);
A1=zeros(3,3);
B1 = zeros(3,1);
A1(column,:)=A(row,:);
B1(column) = B(row);
A2=A;
A2(row,:)=0;
A2(:,column)=0;
A
[max_value,element1_number] = max(abs(A2(:)));
[row1,column1] = ind2sub([3 3],element1_number);
A1(column1,:)=A(row1,:);
B1(column1)=B(row1);
for k=1:3
if(k~=row1 && k~=row)
for j = 1:3
if j~=column && j~=column1
A1(j,:)=A(k,:);
B1(j) = B(k);
end
end
end
end
A1
B1
%}

%solving the system of equations


dett = det(A);
if dett == 0
disp('This system unsolvable because det(A) = 0 ')
break
else
C=[A B'];
n=3;
x = zeros(n,1);
e = zeros(n,1);
for iter=1:50
for k= 1:n
xo=x(k);
r = C(k,end)-C(k,1:k-1)*x(1:k-1)-C(k,k+1:n)*x(k+1:n);
x(k) = r/(C(k,k));
e(k) = abs(x(k))-xo;
end
10/4/19 12:17 PM C:\Users\Rupesh\Desktop\...\Question_1a.m 2 of 2

end
end
disp( 'x=')
disp(num2str(x))

Вам также может понравиться