HOWTO · MATLAB

Forma escalonada de linha reduzida MATLAB

Pode-se encontrar a forma escalonada de linha reduzida de um array usando a função rref() no MATLAB.

Nesta página

Para encontrar a forma escalonada reduzida por linhas de uma matriz no MATLAB, chame rref passando a matriz como entrada. A função retorna uma matriz equivalente na forma reduzida; saídas opcionais identificam suas colunas pivô, e uma tolerância opcional controla quais valores são considerados pequenos durante a seleção dos pivôs.

Entenda a forma escalonada reduzida por linhas

Uma matriz está na forma escalonada reduzida por linhas (RREF) quando cada linha não nula começa com um 1 líder, esse 1 é o único elemento não nulo da coluna e os 1s líderes avançam para a direita à medida que se percorrem as linhas. Todas as linhas nulas ficam abaixo das linhas não nulas. Essas propriedades tornam essa forma uma maneira consistente de interpretar a estrutura de um sistema linear.

As operações elementares por linhas preservam as soluções de um sistema linear, por isso a RREF facilita a identificação das relações entre pivôs e variáveis livres. Uma coluna pivô contém um 1 líder. Quando a matriz representa um sistema de equações, as colunas sem pivôs correspondem a variáveis livres. O número de colunas pivô é o posto da matriz; as posições dos pivôs também podem ajudar a identificar colunas dependentes. A RREF descreve a matriz transformada, não um novo conjunto de soluções.

Encontre a forma escalonada reduzida por linhas no MATLAB

Passe uma matriz numérica para rref. A matriz retornada tem as mesmas dimensões da entrada. Neste exemplo, a última linha se torna nula, o que mostra que as linhas não são todas independentes. Este exemplo compatível com Octave usa a mesma forma de chamada de rref mostrada para MATLAB.

Execute este exemplo:

O código e os rótulos ou saídas exibidos nesta seção permanecem em inglês.

A = [1 2 3; 4 5 6; 7 8 9];
[R, p] = rref(A);
disp(R)
disp(p)

A variável R contém a matriz reduzida, e p contém os índices de suas colunas pivô. A matriz do exemplo tem pivôs na primeira e na segunda coluna. Se você precisar apenas da matriz transformada, use a forma com uma única saída: R = rref(A).

Interprete a RREF e as colunas pivô

A segunda saída opcional é um vetor de índices de coluna, não uma lista de valores dos pivôs. No exemplo anterior, p é [1 2]: a primeira e a segunda colunas contêm pivôs, enquanto a terceira é livre. Use esses índices para selecionar as colunas correspondentes da matriz original com A(:,p) ou para examinar as colunas correspondentes da matriz reduzida com R(:,p). Não tente inferir os índices das colunas pivô reunindo os valores não nulos de R: um valor de pivô é um elemento, enquanto um índice identifica uma coluna.

Em uma matriz aumentada, acompanhe quais colunas representam variáveis e quais representam constantes. Um pivô na coluna das constantes pode indicar um sistema inconsistente; uma variável livre indica que um sistema consistente pode ter várias soluções. rref retorna a matriz e os índices dos pivôs, mas a interpretação ainda depende de como as colunas da entrada estão organizadas.

Defina uma tolerância para os pivôs

Por padrão, rref usa uma tolerância para decidir se um valor é suficientemente pequeno para ser tratado como zero durante a seleção dos pivôs. Em matrizes cujos elementos têm escalas muito diferentes, você pode fornecer uma tolerância como segundo argumento: R = rref(A,tol). Escolha tol de acordo com a escala dos valores numéricos e com a precisão relevante para o problema; uma tolerância maior pode fazer com que elementos pequenos sejam tratados como zero e alterar os pivôs selecionados.

Se você fornecer uma tolerância e também precisar das colunas pivô, solicite as duas saídas com [R,p] = rref(A,tol). Quando a matriz for numericamente sensível, compare o resultado com o cálculo padrão e escolha uma tolerância compatível com a precisão dos dados, em vez de copiá-la sem avaliar se é adequada.