## IS A GIVEN SQUARE MATRIX STRICTLY DIAGONALLY DOMINANT?

Language : Matlab 2007a Authors : Autar Kaw Last Revised : November 25, 2008 Abstract: This program shows you two ways of finding out if a square matrix is diagonally dominant. A square matrix is diagonally dominant if for all rows the absolute value of the diagonal element in a row is strictly greater than than the sum of absolute value of the rest of the elements in that row

```clc
clear all
disp('This program shows you two ways of finding out')
disp('if a square matrix is diagonally dominant. A square matrix is')
disp('diagonally dominant if for all rows the absolute value of the')
disp('diagonal element in a row is strictly greater than than the sum')
disp('of absolute value of the rest of the elements in that row')
disp('  ')
```
```This program shows you two ways of finding out
if a square matrix is diagonally dominant. A square matrix is
diagonally dominant if for all rows the absolute value of the
diagonal element in a row is strictly greater than than the sum
of absolute value of the rest of the elements in that row

```

## INPUTS

The square matrix

```A=[-12  1  -7  2;1  3.4  1.1  1.1; 1  0  -4.5 0;10  1  1  10];
disp ('INPUTS')
disp('Here is the square matrix')
A
disp(' ')
```
```INPUTS
Here is the square matrix

A =

-12.0000    1.0000   -7.0000    2.0000
1.0000    3.4000    1.1000    1.1000
1.0000         0   -4.5000         0
10.0000    1.0000    1.0000   10.0000

```

## FIRST SOLUTION

This is based on finding for how many rows the condition the absolute value of the diagonal element in a row is strictly greater than than the sum of absolute value of the rest of the elements in that row.

```%size gives how many rows and columns in the A matrix
rowcol=size(A);
n=rowcol(1);
% count = for how many rows is the inequality met that
% the absolute value of the diagonal element in a row is
% strictly greater than than the sum of absolute value
% of the rest of the elements in that row
count=0;
for i=1:1:n
sumrow=0;
for j=1:1:n
if i~=j
sumrow=sumrow+abs(A(i,j));
end
end
if abs(A(i,i))>sumrow
count=count+1;
end
end
disp('FIRST WAY')
if count==n
disp('Matrix is strictly diagonal dominant')
else
disp('Matrix is NOT strictly diagonal dominant')
end
```
```FIRST WAY
Matrix is NOT strictly diagonal dominant
```

## SECOND SOLUTION

This is based on finding for if for any row the condition the absolute value of the diagonal element in a row is strictly greater than than the sum of absolute value of the rest of the elements in that row is NOT met

```%size gives how many rows and columns in the A matrix
rowcol=size(A);
n=rowcol(1);
% flag = keeps track if the condition is not met
% flag = 1 if matrix is strictly diagonally dominant
% flag = 2 if matrix is not strictly diagonally dominant

% Assuming matrix is strictly diagonally dominant
flag=1;
for i=1:1:n
sumrow=0;
for j=1:1:n
if i~=j
sumrow=sumrow+abs(A(i,j));
end
end
% As soon as the condition is not met, it is not a strictly
% diagonally dominant matrix
if abs(A(i,i))<=sumrow
flag=2;
break;
end
end
disp('  ')
disp('SECOND WAY')
if flag==1
disp('Matrix is strictly diagonal dominant')
else
disp('Matrix is NOT strictly diagonal dominant')
end
```
```
SECOND WAY
Matrix is NOT strictly diagonal dominant
```