Primeira vez aqui? Seja bem vindo e cheque o FAQ!
x

Como resolver a questão 6 do Cap. 1 do livro Linear Algebra, George E. Shilov?

0 votos
70 visitas
perguntada Fev 22 em Matemática por Tales Lins Costa (1 ponto)  
editado Mar 2 por Tales Lins Costa

Os números 20604, 53227, 25755, 20927 e 78421 são divisíveis por 17. Mostre que o determinante

\begin{vmatrix}
2 & 0 & 6 & 0 & 4 \\
5 & 3 & 2 & 2 & 7 \\
2 & 5 & 7 & 5 & 5 \\
2 & 0 & 9 & 2 & 7 \\
7 & 8 & 4 & 2 & 1
\end{vmatrix}

também é divisível por 17.

Compartilhe

1 Resposta

0 votos
respondida Fev 22 por Tales Lins Costa (1 ponto)  
editado Fev 23 por Tales Lins Costa

Para responder à esta pergunta faremos um exercício de Python ao mesmo tempo em que utilizaremos os próprios conceitos abordados no livro Linear Algebra, do Geoge E. Shilov.

Primeiramente vamos importar a biblioteca Numpy, recomendada para trabalhar com Algebra Linear.

import numpy as np

Em seguida, vamos nomear o determinante da matriz de "a" e de igual forma tome um outro determinante "b", onde a=b, logo

a = np.array([[2,0,6,0,4], 
              [5,3,2,2,7], 
              [2,5,7,5,5], 
              [2,0,9,2,7], 
              [7,8,4,2,1]])

b = np.array([[2,0,6,0,4], 
              [5,3,2,2,7], 
              [2,5,7,5,5], 
              [2,0,9,2,7], 
              [7,8,4,2,1]])


print(a) #Matriz a
print(np.linalg.det(a)) #Determinante da Matriz a

print(b) #Matriz b
print(np.linalg.det(b)) #Determinante da Matriz b

Para mostrar que esse determinante do problema é divisível por 17 vamos realizar algumas operações. Na matriz "a", multiplique a primeira coluna por \(10^4\), a segunda coluna por \(10^3\), a terceira coluna por \(10^2\) e a quarta coluna por \(10^1\). Por fim, some as quatro primeiras colunas e adicione na coluna final. Para realizar esses cálculos no Python basta fazer a seguinte programação:

a[:, 0] = a[:, 0]*10**4
a[:, 1] = a[:, 1]*10**3
a[:, 2] = a[:, 2]*10**2
a[:, 3] = a[:, 3]*10
a[:, 4] = (a[:, 4] + a[:, 0] + a[:, 1] + a[:, 2] + a[:, 3])

Fazendo

print(a)

Obtemos o seguinte determinante

\begin{vmatrix}
20000 & 0 & 600 & 0 & 20604 \\
50000 & 3000 & 200 & 20 & 53227 \\
20000 & 5000 & 700 & 50 & 25755 \\
20000 & 0 & 900 & 20 & 20927 \\
70000 & 8000 & 400 & 20 & 78421
\end{vmatrix}

Da mesma forma, faça o mesmo procedimento em b, logo

b[:, 0] = b[:, 0]*10**4
b[:, 1] = b[:, 1]*10**3
b[:, 2] = b[:, 2]*10**2
b[:, 3] = b[:, 3]*10
b[:, 4] = (b[:, 4] + b[:, 0] + b[:, 1] + b[:, 2] + b[:, 3])

Fazendo

print(b)

Temos o seguinte determinante

\begin{vmatrix}
20000 & 0 & 600 & 0 & 20604 \\
50000 & 3000 & 200 & 20 & 53227 \\
20000 & 5000 & 700 & 50 & 25755 \\
20000 & 0 & 900 & 20 & 20927 \\
70000 & 8000 & 400 & 20 & 78421
\end{vmatrix}

Para conferir se não houve nenhum erro de programação, basta conferir os determinantes com "==", assim, faça:

print(np.linalg.det(a)==np.linalg.det(b))

Se não houver nenhum problema, você vai obter "True" no console.

Dessa forma, pelo Corolário 1.45 (Pg. 11 do livro), sabemos que qualquer fator comum de uma coluna de um determinante pode ser fatorado para fora do determinante. Para mostrar que o determinante dessa matriz "a" é divisível por 17, basta mostrar que uma das colunas tem esse termo em comum e que ele pode ser fatorado para fora do determinante. Pelo o enunciado, sabemos que a quinta coluna inteira é divisível por 17. Dessa forma, basta dividir a última coluna por 17, logo:

b[:, 4] = b[:, 4]/17

Fazendo

print(b)

Obtemos a nova matriz "b"

\begin{vmatrix}
20000 & 0 & 600 & 0 & 1212 \\
50000 & 3000 & 200 & 20 & 3131 \\
20000 & 5000 & 700 & 50 & 1515\\
20000 & 0 & 900 & 20 & 1231 \\
70000 & 8000 & 400 & 20 & 4613
\end{vmatrix}

Dessa forma, obtemos a seguinte relação:

\begin{align}
\begin{vmatrix}
a \end{vmatrix} =
17 *
\begin{vmatrix}
b
\end{vmatrix}
\end{align}

O que pode ser confirmado fazendo:

print(round(np.linalg.det(a))==round(np.linalg.det(b)*17
))

Assim, obtemos "True" no console, então está verificada essa relação.

(Observe que a função foi arredondada, pois ao dividirmos por 17 e depois multiplicarmos por 17, o resultado apresenta uma diferença mínima no resultado, e portanto, precisou-se aplicar o round())

Portanto, provamos que o determinante

\begin{vmatrix}
2 & 0 & 6 & 0 & 4 \\
5 & 3 & 2 & 2 & 7 \\
2 & 5 & 7 & 5 & 5 \\
2 & 0 & 9 & 2 & 7 \\
7 & 8 & 4 & 2 & 1
\end{vmatrix}

é divisível também por 17.

comentou Abr 4 por Thiago Lappicy (6 pontos)  
Muito interessante a propriedade explorada para provar que o determinante da matriz mencionada é divisível por 17.

Outras maneira de provar isso seria na "força bruta", ou seja, realmente calculando o determinante da matriz e em seguida analisando se ele é ou não divisível por 17.

É possível fazer isso criando um programa (ou utilizando algum pacote na linguagem de programação de sua escolha) para calcular o determinante por, por exemplo, eliminação gaussiana. Isso pode ser facilmente encontrado no prorum < http://prorum.com/?qa=5388/como-calcular-o-determinante-das-matrizes-abaixo >.

Utilizando esse programa citado acima, é obtido que o determinante da matriz vale -952, que é divisível por 17 (17 * -56 = -952).

Outra maneira seria utilizando algum outro algoritmo para o cálculo de determinantes, como utilizar o teorema de Laplace ou a fórmula de Leibniz.

O teorema de Laplace seria interessante pois temos 3 valores iguais a zero na matriz, com 2 deles estando na mesma linha ou coluna, tornando o cálculo dos cofatores mais simples. Além disso, como temos apenas uma matriz 5x5, o método de eliminação gaussiana não é mais eficiente (apenas a partir de uma matriz 6x6) do que o Laplace de um ponto de vista computacional. Uma explicação mais detalhada disso pode ser encontrada no prorum no seguinte link: <http://prorum.com/?qa=3218/determinante-eliminacao-gaussiana-laplace-algoritmo-eficiente#:~:text=Elimina%C3%A7%C3%A3o%20de%20Gauss%20(ou%20m%C3%A9todo,resolver%20sistemas%20de%20equa%C3%A7%C3%B5es%20lineares.&text=Dessa%20forma%2C%20para%20aplicar%20o,um%20m%C3%BAltiplo%20de%20outra%20linha >.

Assim, temos diversos outros métodos para verificar se o determinante da matriz apresentada é divisível ou não por 17. Porém, a maneira mais "interessante" (de um ponto de vista matemático) de resolver o problema é, em minha opinião, utilizando a propriedade usada por Tales.

Podemos também montar um programa que faz os cálculos mostrados em R ao invés de Python. Ele está escrito abaixo de maneira resumida (assume-se que a matriz "A" já foi colocada no R e é a exatamente igual a matriz do enunciado). Nas primeiras 5 linhas do código apenas multiplicamos cada coluna por um valor (10^4 ... até 10), com a última sendo a soma da linha. Na linha de código seguinte, pedimos para que o R nos retorne o "resto" da divisão da última coluna por 17 (essa divisão é feita para a última coluna, linha a linha). O resultado "printado" na tela é 0, 0, 0, 0, 0. Indicando que toda a 5 coluna é divisível por 17 (não apresenta "restos") e provando, como demonstrado e explicado em mais detalhes pela resposta de Tales, que a matriz inteira também é divisível por 17.

A[,1] <- (10^4)*A[,1]
A[,2] <- (10^3)*A[,2]
A[,3] <- (10^2)*A[,3]
A[,4] <- (10^1)*A[,4]
A[,5] <- rowSums(A)

A[,5] %% 17
...