Módulo 4 · Álgebra linear
Matrizes como transformações
Aula 4.2 · cerca de 20 minutos
Uma matriz m×n é uma função linear de ℝⁿ em ℝᵐ. As colunas da matriz mostram para onde vão os vetores da base. Multiplicar matrizes é compor transformações.
Rotação 2D por θ: [ cos θ −sin θ ]
[ sin θ cos θ ]
Escala: [ sx 0 ]
[ 0 sy ]A ordem importa: AB ≠ BA em geral. Rotacionar e depois transladar é diferente de transladar e depois rotacionar. Em gráficos 3D, usamos coordenadas homogêneas (matrizes 4×4) para que a translação também vire multiplicação.
import numpy as np
def rot(theta):
c, s = np.cos(theta), np.sin(theta)
return np.array([[c, -s], [s, c]])
p = np.array([1.0, 0.0])
print(rot(np.pi / 2) @ p) # ≈ [0, 1]
print(rot(np.pi / 4) @ rot(np.pi / 4) @ p) # mesma coisa: rotações se compõemDeterminante e inversa
O determinante é o fator pelo qual a transformação multiplica áreas (ou volumes). det = 0 significa que a matriz “achata” o espaço e não tem inversa. Um sistema Ax = b tem solução única exatamente quando det(A) ≠ 0.
np.linalg.solve(A, b) em vez de inv(A) @ b: é mais rápido e mais estável.Exercício 1
Qual é o determinante de uma matriz de rotação? O que isso significa?
Exercício 2
Custo de multiplicar duas matrizes n×n com o algoritmo ingênuo?