Jump to content


- - - - -

Determinante De Matriz










9 respostas a este tópico

#1 Raphael Oliveira

    Membro - Junior 1

  • Membros
  • PipPipPipPipPip
  • 250 posts

Adicionado 23 September 2004 - 01:11 PM

Boa Tarde Pessoal,

Alguém poderia me ajudar, naum estou conseguindo fazer uma função em que eu tenha que calcular a determinante de uma função 5x5 alguém tem ideia de como eu faço isso?

#2 darkvib

    Membro - Pleno 1

  • Membros
  • PipPipPipPipPipPipPipPip
  • 1087 posts
  • Estado:Minas Gerais

Adicionado 23 September 2004 - 01:59 PM

Dê uma pesquisada em pivotação de Gauss e como ela pode te ajudar a calcular determinante de matrizes... vc tb poderia usar aquela fórmula recursiva, mas vc teria q calcular 5X4X3 determinantes de matriz 2x2.

#3 Raphael Oliveira

    Membro - Junior 1

  • Membros
  • PipPipPipPipPip
  • 250 posts

Adicionado 23 September 2004 - 02:22 PM

Não entendi nada do que vc falou

#4 darkvib

    Membro - Pleno 1

  • Membros
  • PipPipPipPipPipPipPipPip
  • 1087 posts
  • Estado:Minas Gerais

Adicionado 23 September 2004 - 03:58 PM

Foi mal... vc lembra daquele método de resolver sistemas em q vc transformava a matriz dos coeficientes em uma matriz triangular? Tipo vc fazia a 1ª linha menos as outras de baixo para q todos os elementos 1,n com n>1 virassem zero... depois repetia sempre eliminando os elementos abaixo da diagonal principal. Pois é, esse método transforma a matriz em uma triangular. A matriz triangular pode ter seu determinante calculado facilmente, já q é o produto dos elementos da diagonal principal. E existe uma relação entre o determinante da matriz original e da obtida, já q vc realizou apenas operações elementares. Trocar 2 linhas inverte o sinal do determinante, multiplicar uma linha por A faz com q o det da matriz obtida seja Ax o det da original. E somar duas linhas não influi no determinante. Ah, vc sempre precisa escolher como base a linha q tiver o maior pivô possível.

A outra sugestão é uma fórmula, q eu não lembro de quem é q reduz o cálculo do determinante de uma 3X3 para o cálculo do determinante de 3 2x2. Ou seja, ele é recursivo, já q se vc tiver uma matriz nxn, o cálculo do seu determinante poderá ser feito através do cálculo do determinante de n matrizes n-1 x n-1.

Espero q tenha ficado mais claro.

#5 avilar

    Membro

  • Membros
  • PipPip
  • 56 posts
  • Estado:São Paulo

Adicionado 24 September 2004 - 07:28 AM

o algoritmo abaixo faz o pivoteamento de Gauss (transforma a matriz em triangular superior), mas não transforma os pivos em 1(isso nem é necessario), funciona para qqr matriz.

for k=1:n-1
    for i=k+1:n
        m = A(i,k)/A(k,k);
        b(i) = b(i) - m*b(k);
        for j=k+1:n
           A(i,j) = A(i,j) - m*A(k,j);
        end
    end
end

ele foi escrito para matlab, mas pode ser facilmente adaptado para c.
se houver problema, é só avisar...

depois é só vc aplicar as operações citadas pelo amigo darkvib para achar a determinante.

Quote

A matriz triangular pode ter seu determinante calculado facilmente, já q é o produto dos elementos da diagonal principal. E existe uma relação entre o determinante da matriz original e da obtida, já q vc realizou apenas operações elementares. Trocar 2 linhas inverte o sinal do determinante, multiplicar uma linha por A faz com q o det da matriz obtida seja Ax o det da original. E somar duas linhas não influi no determinante. Ah, vc sempre precisa escolher como base a linha q tiver o maior pivô possível.


#6 darkvib

    Membro - Pleno 1

  • Membros
  • PipPipPipPipPipPipPipPip
  • 1087 posts
  • Estado:Minas Gerais

Adicionado 24 September 2004 - 02:41 PM

Ops, Avilar, há um caso em q dá problema... tente calcular o determinante da matriz identidade 2x2 com as linhas invertidas:

0 1
1 0
:-P

Pra resolver isso vc tem q escolher a como pivô o maior elemento possível, e inverter as linhas para obter isso, tipo na primeira iteração 0 <1 então as linhas devem ser trocadas de posição e o pivô passa a ser o maior elemento possível, no caso, zero.

#7 avilar

    Membro

  • Membros
  • PipPip
  • 56 posts
  • Estado:São Paulo

Adicionado 24 September 2004 - 03:09 PM

opa...
tem razão...

acho que precipitei em dizer que era infalível...
deixe-me ratificar: a unção funciona com a grande maioria de matrizes!

melhorou?

:D

abraços,

t+
:yeah:

#8 Hideki Motosuwa

    Membro - Pleno 3

  • Membros
  • PipPipPipPipPipPip
  • 301 posts
  • Estado:Rio Grande do Sul

Adicionado 25 September 2004 - 06:01 PM

Prefiro Jacobi... ;)

#9 darkvib

    Membro - Pleno 1

  • Membros
  • PipPipPipPipPipPipPipPip
  • 1087 posts
  • Estado:Minas Gerais

Adicionado 25 September 2004 - 09:43 PM

Hideki Motosuwa, on 25-September-2004, 19:01, said:

Prefiro Jacobi... ;)

<{POST_SNAPBACK}>

Pelo q eu me lembro esse método funciona apenas em casos especiais...

#10 Raphael Oliveira

    Membro - Junior 1

  • Membros
  • PipPipPipPipPip
  • 250 posts

Adicionado 28 September 2004 - 02:17 PM

Pessoal na teoria, até sei fazer ou seja no papel, mas não consigo transformar isso em formula, alguém tem algum código mais detalhado pra poder me dar uma ideia?

Valeu Rapha





1 usuário(s) esta(ão) lendo este tópico

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)