Em Álgebra Linear, a diagonal principal de uma matriz é definida como os elementos Matrix onde .
Por exemplo, na matriz
A diagonal principal são os elementos 1,4 e 17 .
Escreva uma função que recebe uma matriz como entrada, e tem como saída um vetor com a diagonal principal. A matriz da entrada sempre será uma matriz quadrada.
Desafio: Você consegue achar a diagonal principal da matriz com apenas um loop for?
Passo 1
O enunciado pede para criar uma função que receba como entrada uma matriz quadrada e retorne um vetor contendo os elementos da diagonal principal dessa matriz. O conteúdo é Álgebra Linear (diagonal principal) combinado com programação de algoritmos simples. Para resolver, precisamos apenas percorrer uma vez os índices de 0 até n-1, onde n é a dimensão da matriz, e coletar os elementos cujo índice de linha é igual ao índice de coluna.
Passo 2
Seja M uma matriz quadrada de ordem n. Os elementos da diagonal principal são aqueles M[i][i] para i = 0,1,dots,n-1. Basta, portanto, definir um vetor vazio e, num único laço for, iterar sobre i de 0 até n-1 para extrair M[i][i].
Passo 3
Mostramos a seguir a função em Python que faz exatamente isso usando um único for. Primeiro determinamos , depois criamos uma lista vazia diag, e em cada iteração pegamos M[i][i] e damos um append nessa lista.
def \(diagonal_principal\)(M):
"""
Recebe uma matriz quadrada M e retorna um vetor
com os elementos da diagonal principal.
Usa apenas um loop for.
"""
n \(=\) len(M)
diag \(=\) []
for i inrange(n):
diag.append(M[i][i])
return diag