%this function used to solve equations of triangular matrix
function y=tri_m(A,b)
value_up=0;
value_down=0;
size_A=size(A);
length_b=length(b);
diagonal_elements=1;
if size_A(1)==size_A(2) && size_A(1)==length_b
for i=1:length_b
if abs(A(i,i))<10^(-9)
disp('The elements of main diagonal can not be zero!')
diagonal_elements=0;
return
end
end
if diagonal_elements~=0
y=zeros(length_b,1);
for i=2:length_b
for j=1:i-1
if abs(A(i,j))<10^(-9)
continue
else
value_up=1;
break
end
end
end
if value_up==0
y(length_b)=b(length_b)/A(length_b,length_b);
for i=length_b-1:-1:1
for j=length_b:-1:i+1
y(i)=y(i)+y(j)*A(i,j);
end
y(i)=(b(i)-y(i))/A(i,i);
end
else
for i=1:length_b-1
for j=i+1:length_b
if A(i,j)<10^(-9)
continue
else
value_down=1;
break
end
end
end
if value_down==0
y(1)=b(1)/A(1,1);
for i=2:length_b
for j=1:i-1
y(i)=y(i)+A(i,j)*y(j);
end
y(i)=(b(i)-y(i))/A(i,i);
end
end
end
end
else
disp('Wrong! The matrix of coefficients is not a phalanx or the matrix does not match the vector.');
end