04 April 2013 2 5K Report

when I clicked the run button, the system shows

The matrix is not strictly diagonally dominant at row 1

The matrix is not strictly diagonally dominant at row 2

The matrix is not strictly diagonally dominant at row 3

The matrix is not strictly diagonally dominant at row 4

What dose this mean?? what's the matter with my input??

clear;clc

format compact

%% Read or Input any square Matrix

A = [-8.7673 9.4736 0 0 0;

4.7368 -8.4736 4.7368 0 0;

0 4.7368 -8.4736 4.7368 0;

0 0 4.7368 -8.4736 4.7368;

0 0 0 -9.4736 10.4736];% coefficients matrix

C = [20;20;20;20;20];% constants vector

n = length(C);

X = zeros(n,1);

Error_eval = ones(n,1);

%% Check if the matrix A is diagonally dominant

for i = 1:n

j = 1:n;

j(i) = [];

B = abs(A(i,j));

Check(i) = abs(A(i,i)) - sum(B); % Is the diagonal value greater than the remaining row values combined?

if Check(i) < 0

fprintf('The matrix is not strictly diagonally dominant at row %2i\n\n',i)

end

end

%% Start the Iterative method

iteration = 0;

while max(Error_eval) > 0.001

iteration = iteration + 1;

Z = X; % save current values to calculate error later

for i = 1:n

j = 1:n; % define an array of the coefficients' elements

j(i) = []; % eliminate the unknow's coefficient from the remaining coefficients

Xtemp = X; % copy the unknows to a new variable

Xtemp(i) = []; % eliminate the unknown under question from the set of values

X(i) = (C(i) - sum(A(i,j) * Xtemp)) / A(i,i);

end

Xsolution(:,iteration) = X;

Error_eval = sqrt((X - Z).^2);

end

%% Display Results

GaussSeidelTable = [1:iteration;Xsolution]'

MaTrIx = [A X C]

Similar questions and discussions