MS211 - Cálculo Numérico
Aula 5 – Normas de Vetores e Matrizes.Condicionamento de uma Matriz.
Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas. Em termos gerais, erros sempre existirão quando resolvemos um problema contínuo (e.g. em R) num computador.
Consequentemente, um método numérico raramente produz a solução exata de um problema matemático contínuo.
Na aula de hoje, veremos quando o arredondamento em ponto flutuante e suas operações aritméticas influenciam na
credibilidade do resultado produzido por um método numérico. Iniciaremos apresentando a definição de norma, conceito matemático utilizado para medir tamanho ou distância.
Definição 1 (Norma)
Uma norma é uma função } ¨ }, de um espaço vetorial V no
conjunto dos reais R, que satisfaz as seguintes propriedades para quaisquer u, v P V e α P R:
1. }v } ě 0 com }v } “ 0 se e somente se v “ 0.
2. }αv } “ |α|}v }.
3. }u ` v } ď }u} ` }v }. (desigualdade triangular) Não entraremos nos detalhes do que é um espaço vetorial. Por ora, basta saber que os conjuntos Rne Rnˆn dos vetores com n
componentes e as matrizes n ˆ n são ambos espaços vetoriais com a soma e multiplicação por escalar.
Uma norma } ¨ } : RnÑ R, que associa à um vetor de Rnum número real, será chamadanorma vetorial. Similarmente, uma
Norma Vetorial
Muitas normas vetoriais são dadas pela equação
}x}p“ p g f f e n ÿ i“1 |xi|p “ p a |x1|p` |x2|p` . . . ` |xn|p, 1 ď p ă `8.
Exemplos de normas parax “ rx1,x2, . . . ,xnsT incluem:
‚ }x}1“ n ÿ i“1 |xi| “ |x1| ` |x2| ` . . . ` |xn|. ‚ }x}2“ g f f e n ÿ i“1 xi2“ b x12` x22` . . . ` xn2. (norma Euclidiana) ‚ }x}8“ max
Exemplo 2
Para o vetorx “ r3 ´ 4sT, temos:
}x}1“ |3| ` | ´ 4| “ 7,
}x}2“
b
32` p´4q2“ 5,
}x}8“ maxt|3|, | ´ 4|u “ 4.
No GNU Octave, podemos calcular as normas } ¨ }1, } ¨ }2e } ¨ }8
de um vetorx usando respectivamente os comandos:
» norm(x,1)
» norm(x) ou » norm(x,2) » norm(x,inf)
Interpretação Geométrica
O conjunto
B1“ tx “ px , y q P R2: }x}1ď 1u,
Interpretação Geométrica
O conjunto
B2“ tx “ px , y q P R2: }x}2ď 1u,
Interpretação Geométrica
O conjunto
B8“ tx “ px , y q P R2: }x}8ď 1u,
Normas Matriciais Subordinadas
Podemos identificar uma matrizA com uma transformação linear x ÞÑ Ax.
Uma norma matricial subordinada }A} mede a maior distorção efetuada pela transformação linearx ÞÑ Ax. Formalmente, temos
}A} “ max
xPRn
}Ax} }x} .
Equivalentemente, escrevendov “ x{}x}, concluímos que
}A} “ maxt}Av} : }v} “ 1u,
ou seja, }A} é a maior distorção que A faz em tv : }v} “ 1u. Observe que a norma matricial acima está subordinada ou é induzida pela norma vetorial!
Exemplo da } ¨ }1
Considere a matrizA “„1 2 0 2 . Geometricamente, temos A // }A}1“ maxt}Av}1: }v}1“ 1u “ 4.A Norma Subordinada } ¨ }1
Pode-se mostrar que tAv : }v}1“ 1u é um politopo
(generalização de um polígono) e o valor máximo de }Av}1, para
}v}1“ 1, é obtido num dos vértices.
Os vértices do politopo t}Av : }v}1“ 1u são ˘a1, ˘a2, . . . , ˘an,
em quea1, . . . ,ansão as colunas deA, i.e., A “ ra1, . . . ,ans.
Portanto, }A}1é o valor máximo da soma dos valores absolutos
das colunas deA, ou seja,
}A}1“ maxt}a1}1, . . . , }an}1u “ max j“1:n # n ÿ i“1 |aij| + .
Exemplo da } ¨ }8
Considere a matrizA “„1 2 0 2 . Geometricamente, temos A // }A}8“ maxt}Av}8 : }v}8 “ 1u “ 3.A Norma Subordinada } ¨ }8
De um modo similar, pode-se mostrar que tAv : }v}8“ 1u é um
politopo e o valor máximo de }Av}8é obtido num dos vértices.
Contudo, os vértices do politopo t}Av : }v}8“ 1u são obtidos
pelo produtoAv, em que v “ r˘1, ˘1, . . . , ˘1sT.
Usando esse fato, podemos concluir que }A}8é o valor máximo
da soma dos valores absolutos das linhas deA, ou seja,
}A}8“ maxt}aT1}1, . . . , }aTn}1u “ max i“1:n $ & % n ÿ j“1 |aij| , . -,
Exemplo da } ¨ }2
Considere a matrizA “„1 2 0 2 . Geometricamente, temos A // }A}2“ maxt}Av}2: }v}2“ 1u “ 2.92081.A Norma Subordinada } ¨ }2
Pode-se mostrar que tAv : }v}2“ 1u é um hiper-elipse
(generalização de uma elipse) e o valor máximo de }Av}2, para
}v}1“ 2, é a metade do maior eixo.
Formalmente, }A}2é o maior valor singular de matrizA.
No GNU Octave, podemos calcular as normas } ¨ }1, } ¨ }2e } ¨ }8
de uma matrizA usando respectivamente os comandos:
» norm(A,1)
» norm(A) ou » norm(A,2) » norm(A,inf)
Norma Consistente
Dizemos que uma norma matricial } ¨ } é consistente se }AB} ď }A}}B},
para quaisquer matrizesA e B.
Todas as normas subordinadas são consistentes!
As normas subordinadas também satisfazem a desigualdade }Ax} ď }A}}x},
Erro Absoluto e Erro Relativo
Suponha que resolvemos um sistema linearAx “ b, em que A P Rnˆn é uma matriz não-singular eb P Rn, usando um método
numérico como, por exemplo, o método da eliminação de Gauss. Vamos denotar por ˜x a solução encontrada pelo método numérico
ex˚
“ A´1b a solução exata.
Para avaliar a qualidade da solução produzida pelo método numérico, comparamos a solução numérica ˜x com a solução
exatax˚usando uma norma vetorial. Especificamente,
calculamos o erro absoluto Eaou o erro relativo Er dados por:
Ea“ }x˚´ ˜x} e Er “ }x ˚
´ ˜x} }x˚} .
Resíduo
Uma desvantagem da análise que descrevemos anteriormente é que, na prática, não conhecemos a solução exatax˚do sistema
linearAx “ b. Portanto, não podemos calcular o erro.
Como alternativa, calculamos o chamadoresíduo absoluto Ra
ou oresíduo relativo Rr definidos por
Ra“ }b ´ A˜x} e Rr “ }b ´ A˜
x}
}b} . Em algumas situações, é conveniente definir os vetores
e “ x˚
´ ˜x e r “ b ´ A˜x,
Matriz Gerada Aleatoriamente
Para valiar a qualidade da solução de um sistema linearAx “ b
produzida pelo método da eliminação de Gauss, geramos uma matrizA P R100ˆ100cujos elementos aij possuem distribuição
normal padrão.
Além disso, definimosx˚
“ r1, . . . , 1sT eb “ Ax˚.
Determinamos a solução numérica ˜x usando o método da
eliminação de Gauss e calculamos o erro e o resíduo relativo. Repetimos o processo 1000 vezes. A média dos erros e resíduos relativos foram 1.3 ˆ 10´12 e 6.0 ˆ 10´14, respectivamente.
Comandos do GNU Octave
» for i=1:1000 A = randn(100,100); xs=ones(100,1); b=A*xs; xt=Azb; E_r(i)=norm(xs-xt,inf); R_r(i)=norm(b-A*xt,inf)/norm(b,inf); end » [mean(E_r),mean(R_r)]; ans = 1.6535e-13 2.2155e-15Matriz de Hilbert
Considere a matrizA P R100ˆ100cujos elementos são
aij “
1 i ` j ´ 1.
Definimosx˚ “ r1, . . . , 1sT,b “ Ax˚ e determinamos a solução
numérica ˜x usando o método da eliminação de Gauss.
O erro relativo e o resíduo relativo foram Er “ }x˚´ ˜x}8 }x˚} 8 “ 1.38 e Rr “ }b ´ A˜x}8 }b}8 “ 1.46 ˆ 10´15. Ao contrário do exemplo anterior, temos resíduo relativo muito pequeno mas um erro relativo grande.
Comandos do GNU Octave
» A = hilb(100); xs=ones(100,1); » b=A*xs; xt=Azb;
warning: matrix singular to machine precision, rcond = 1.14558e-21
» R_r=norm(b-A*xt,inf)/norm(b,inf) R_r = 1.4554e-15
» E_r=norm(xs-xt,inf) E_r = 1.3774
Sistemas Lineares Mal-Condicionados
Em termos gerais, um sistema linearAx “ b é mal-condicionado
se pequenas perturbações na matrizA ou no vetor b causam
grandes variações na solução.
Nesse caso, devido aos erros na representação e operações de pontos flutuantes, não devemos esperar uma solução precisa de um método numérico!
Além disso, num sistema linear mal-condicionado, o resíduo pode não revelar a natureza do erro!
O condicionamento de uma matrizA é definido em termos de sua
Sabemos que os vetorese (erro) e r (resíduo) satisfazem: r “ Ae e e “ A´1r.
Sendo } ¨ } uma norma subordinada, tem-se: }r} ď }A}}e} e }e} ď }A´1}}r} ùñ }r}
}A} ď }e} ď }A
´1
}}r}. Analogamente, das equaçõesb “ Ax˚ ex˚
“ A´1b, obtemos }b} ď }A}}x˚} e }x˚} ď }A´1}}b} ùñ 1 }A´1}}b} ď 1 }x˚} ď }A} }b}. Combinamos as inequações, obtemos:
1 }A}}A´1} }r} }b} ď }e} }x˚} ď }A}}A ´1 }}r} }b}.
Número de Condição de uma Matriz
O número de condição de uma matrizA, também chamado
condicionamento deA, é definido por
cond pAq “ }A}}A´1
}.
Vale a seguinte relação entre o erro relativo e o resíduo relativo: Rr
cond pAq ď Er ď cond pAqRr.
‚ Se cond pAq é próximo de 1, o erro relativo Er e o resíduo
relativo Rr são próximos.
‚ Se cond pAq é grande, o erro relativo pode ser muito maior que
O número de condição de uma matrizA pode ser calculada no
GNU Octaveusando o comando: » cond(A)
O comando » rcond(A)
fornece o recíproco 1{ cond pAq, obtido usando a norma-1.
Note queA é mal-condicionada se rcond(A) é próximo de zero.
Calculamos o condicionamento da matriz de Hilbert como segue: » cond(hilb(100))
ans = 5.9832e+19
Com base nos números do exemplo anterior, temos 1.38 loomoon Er ď 5.98 ˆ 10loooooomoooooon19 cond pAq 1.46 ˆ 10´15 looooooomooooooon Rr “ 8.71 ˆ 104.
Considerações Finais
Na aula de hoje apresentamos os conceitos de norma vetorial e norma matricial subordinada.
Vimos como esses conceitos podem ser usados para determinar o erro relativo de um sistema linear.
Vimos também o conceito de resíduo relativo e mostramos que ele representa o erro relativo se o condicionamento deA for
próximo de 1.
Se cond pAq é grande, dizemos que a matriz é mal-condicionada. Nesse caso, não podemos confiar na solução fornecida por um método numérico.