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

Posto de uma matriz formada por duas matrizes quadradas

+1 voto
79 visitas
perguntada Fev 27 em Matemática por Lucas Warwar (16 pontos)  

Busco uma resposta para o exercício número 9 do Problems for Practice 5.4.1 do livro "Essential Linear ALgebra with Applications - A Problem Solving Approach", de Titu Andreescu.

A tradução do problema, que se encontra na página 195 do livro, é a seguinte:

Seja \(A\) uma matriz \(m \times m\) e \(B\) uma matriz \(n \times n\). Prove que:

\[rank\left[\begin{array}{cc} A & 0 \\ 0 & B \\ \end{array}\right] = rank(A) + rank(B)\]

Compartilhe

2 Respostas

+1 voto
respondida Fev 27 por Lucas Warwar (16 pontos)  

Sabemos que o posto (rank) de uma matriz é a dimensão do seu espaço coluna, ou, equivalentemente, o número de colunas linearmente independentes que a matriz possui.

Buscamos o posto de uma matriz quadrada \(m+n \times m+n\), onde as \(m\) primeiras colunas são formadas pelas colunas de \(A\) acrescidas de zeros nas \(n\) linhas \(i \gt m\), e as \(n\) colunas restantes são formadas por zeros nas \(m\) primeiras linhas acrescidos dos valores das colunas de \(B\) nas \(n\) linhas \(i \gt m\):

\[C = \left[\begin{array}{cc} a_{11} & a_{12} & ... & a_{1m} & 0 & ... & 0 \\ a_{21} & a_{22} & ... & a_{2m} & 0 & ... & 0 \\ ... & ... & ... & ... & ... & ... & ... \\ a_{m1} & a_{m2} & ... & a_{mm} & 0 & ... & 0\\ 0 & 0 & ... & 0 & b_{11} & ... & b_{1n}\\ ... & ... & ... & ... & ... & ... & ... \\ 0 & 0 & ... & 0 & b_{n1} & ... & b_{nn}\\ \end{array}\right]\]

O posto da matriz \(C\) será o número de colunas linearmente independentes que ela possui.

Suponha que as duas primeiras colunas de \(A\), \(a_1 = (a_{11},...,a_{m1})\) e \(a_2 = (a_{12},...,a_{m2})\) são linearmente independentes. É facil mostrar que tais colunas acrescidas de zero também serão linearmente independentes:

\[\sum_{i=1}^2\alpha_i a_i = 0 \Rightarrow \alpha_i = 0\]
\[\Rightarrow \sum_{i=1}^m\alpha_1 a_{i1} + \sum_{i=2}^m\alpha_2 a_{i2} = 0 \Rightarrow \alpha_i = 0\]
\[\Rightarrow \sum_{i=1}^m\alpha_1 a_{i1} + \alpha_10 + \sum_{i=2}^m\alpha_2 a_{i2} + \alpha_20= 0 \Rightarrow \alpha_i = 0\]

Logo, se as duas primeiras colunas de \(A\) forem linearmente independentes, as duas primeiras colunas de \(C\) também serão. Sem perda de generalidade, o argumento acima é válido para quaisquer número de colunas de \(A\), e um argumento análogo pode ser feito para as colunas de \(B\).

Portanto, se \(A\) tem posto igual a \(p_A\), dentre as \(m\) primeiras colunas de \(C\), \(p_A\) serão linearmente independentes. se \(B\) tem posto igual a \(p_B\), dentre as \(n\) colunas \(j \gt m\) de \(C\), \(p_B\) serão linearmente independentes. Assim,

\[rank(C) = p_A + p_B = rank(A) + rank(B)\]

0 votos
respondida Mar 22 por Samuel Ceccon (1 ponto)  

Achei bem completa a sua explicação. Para acrescentar algo a sua resposta eu pensei em mostrar uma aplicação no Python para calcular o rank de uma matriz. Como eu estou aprendendo a programar agora não imaginava que fosse algo tão complexo, mas me pareceu bem mais difícil do que eu imaginava.

Acredito que seja um tema a ser explorado no curso de Métodos Computacionais, mas pelas minhas pesquisas eu encontrei algumas informações interessantes que mostram o método utilizado.

A forma que eu encontrei é pela biblioteca numpy e usa o método SVD (decomposição em valores singulares) que é um método para fatorar matrizes.

Em casos de matrizes mais simples, como uma 3x3 eu acredito que o comando da biblioteca numpy funcione sem erros

import numpy as np
A = np.matrix([[1,3,7],[2,8,3],[7,8,1]])
np.linalg.matrix_rank(A)

#output: 3

Mas com matrizes maiores, que são os casos que observaremos em dados reais, o problema se torna muito mais complexo e começam a surgir imprecisões devido as aproximações feitas.

A principal fonte que eu me baseei foi a própria página do numpy:

https://numpy.org/doc/stable/reference/generated/numpy.linalg.matrix_rank.html

...