function xv=trisupscript(U,b)


% Definisce la matrice U ed il vettore termine noto b;
%  calcolino nuovamente la dimensione della matrice;
%  verifichino che la matrice sia effettivamente triangolare superiore;
%  utilizzino la function trisup per determinare la soluzione;
%  visualizzino la matrice U, il vettore b, la dimensione del sistema ed il vettore
% soluzione.

% Calcolo la dimensione della matrice.
n=size(U,1);

% Verifica sia triangolare superiore.
% Bisogna controllare che a(i,j) = 0 per i > j.
% flag=0 se la matrice e' triangolare superiore, 1 altrimenti.
flag=test_trisup(U,n);

% Soluzione del sistema se la matrice e' triangolare superiore.
if flag == 0
    fprintf('\n \t Matrice U non singolare');
    xv = trisup(U, b);
else
    fprintf('\n \t Matrice U singolare');
    xv=zeros(n,1);
end

U
b
xv



function flag=test_trisup(U,n)
% Verifica sia triangolare superiore.
% Bisogna controllare che a(i,j) = 0 per i > j.
flag=0;
for i=1:n
    for j=1:i-1
        if abs(U(i,j)) > 0
            flag=1;
            return;
        end
    end
end
    