Você está na página 1de 2

q=0

while q==0
clc
A = input('\nEscreva uma matriz quadrada: ')
[m,n]=size(A)
c=0

while c==0
if m==n
c=1
clc
A
else
c=0
clc
A = input('\nA matriz n�o � quadrada.\nEscreva uma matriz quadrada: ')
[m,n]=size(A)
end
end

V = 1:m

P = perms(V)
[x,y]=size(P)
S=0

% ALTERNANCIA DAS PERMITACOES: W ASSUME AS LINHAS DE P, UMA POR VEZ


for k=x:-1:1
W = P(k,:)
u=1

% MULTIPLICA��O DOS TERMOS: u = (a11)*(a22)*...*(ann)


for j=1:y
t = A(j,W(1,j))
u=t*u
end

% INVERSOES
J = 0
for f=1:1:y-1
for g=y:-1:f+1
if W(1,f)>W(1,g)
J=J+1
end
end
end

% PRIMEIRO TERMO DO SOMATORIO: R = ((-1)^J)*(a11)*(a22)*...*(ann)


R = ((-1)^J)*u

% SOMATORIO DE TODOS OS TERMOS R


S= S+R
end

a=0
clc

fprintf('\nMatriz de entrada:\n')
A
fprintf('\nDeterminante: %d\n\n---------------------------------------\n\n', S)

while a==0

b = input('Fazer novamente?\n1 - Sim\n2 - Nao\n')

switch b
case 1
q=0
a=1
clc
case 2
q=1
a=1
clc
otherwise
clc
fprintf('\nMatriz de entrada:\n')
A
fprintf('\nDeterminante: %d\n\n---------------------------------------\n', S)
fprintf('----------- OPCAO INCORRETA -----------\n\n')
end

end

fprintf('\n----------- PROGRAMA ENCERRADO -----------\n\n')

end

Você também pode gostar