ms211 - cálculo numéricovalle/teaching/ms211/aula05.pdf · na aula anterior, falamos sobre os...

27
MS211 - Cálculo Numérico Aula 5 – Normas de Vetores e Matrizes. Condicionamento de uma Matriz. Marcos Eduardo Valle

Upload: lykhue

Post on 26-Nov-2018

228 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

MS211 - Cálculo NuméricoAula 5 – Normas de Vetores e Matrizes.

Condicionamento de uma Matriz.

Marcos Eduardo Valle

Page 2: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Na aula anterior, falamos sobre os erros de arredondamento narepresentação de ponto flutuante e suas operações aritméticas.

Em termos gerais, erros sempre existirão quando resolvemos umproblema contínuo (e.g. em R) num computador.

Consequentemente, um método numérico raramente produz asolução exata de um problema matemático contínuo.

Na aula de hoje, veremos quando o arredondamento em pontoflutuante e suas operações aritméticas influenciam nacredibilidade do resultado produzido por um método numérico.

Iniciaremos apresentando a definição de norma, conceitomatemático utilizado para medir tamanho ou distância.

Page 3: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Definição 1 (Norma)

Uma norma é uma função } ¨ }, de um espaço vetorial V noconjunto dos reais R, que satisfaz as seguintes propriedades paraquaisquer 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. Porora, basta saber que os conjuntos Rn e Rnˆn dos vetores com ncomponentes e as matrizes n ˆ n são ambos espaços vetoriaiscom a soma e multiplicação por escalar.

Uma norma } ¨ } : Rn Ñ R, que associa à um vetor de Rn umnúmero real, será chamada norma vetorial. Similarmente, umafunção } ¨ } : Rnˆn Ñ R é uma norma matricial.

Page 4: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

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 para x “ rx1, x2, . . . , xnsT incluem:

‚ }x}1 “nÿ

i“1

|xi | “ |x1| ` |x2| ` . . .` |xn|.

‚ }x}2 “

g

f

f

e

nÿ

i“1

x2i “

b

x21 ` x2

2 ` . . .` x2n . (norma Euclidiana)

‚ }x}8 “ maxi“1:n

|xi | “ maxt|x1|, |x2|, |xn|u.

Page 5: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Exemplo 2

Para o vetor x “ 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, } ¨ }2 e } ¨ }8de um vetor x usando respectivamente os comandos:» norm(x,1)» norm(x) ou » norm(x,2)» norm(x,inf)

Page 6: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Interpretação GeométricaO conjunto

B1 “ tx “ px , yq P R2 : }x}1 ď 1u,

corresponde à figura geométrica

Page 7: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Interpretação GeométricaO conjunto

B2 “ tx “ px , yq P R2 : }x}2 ď 1u,

corresponde à figura geométrica

Page 8: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Interpretação GeométricaO conjunto

B8 “ tx “ px , yq P R2 : }x}8 ď 1u,

corresponde à figura geométrica

Page 9: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Normas Matriciais SubordinadasPodemos identificar uma matriz A com uma transformação linear

x ÞÑ Ax.

Uma norma matricial subordinada }A} mede a maior distorçãoefetuada pela transformação linear x ÞÑ Ax. Formalmente, temos

}A} “ maxxPRn

}Ax}}x}

.

Equivalentemente, escrevendo v “ 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!

Page 10: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Exemplo da } ¨ }1

Considere a matriz A “„

1 20 2

. Geometricamente, temos

A //

}A}1 “ maxt}Av}1 : }v}1 “ 1u “ 4.

Page 11: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

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 que a1, . . . ,an são as colunas de A, i.e., A “ ra1, . . . ,ans.

Portanto, }A}1 é o valor máximo da soma dos valores absolutosdas colunas de A, ou seja,

}A}1 “ maxt}a1}1, . . . , }an}1u “ maxj“1:n

#

nÿ

i“1

|aij |

+

.

Page 12: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Exemplo da } ¨ }8

Considere a matriz A “„

1 20 2

. Geometricamente, temos

A //

}A}8 “ maxt}Av}8 : }v}8 “ 1u “ 3.

Page 13: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

A Norma Subordinada } ¨ }8

De um modo similar, pode-se mostrar que tAv : }v}8 “ 1u é umpolitopo 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 obtidospelo produto Av, em que v “ r˘1,˘1, . . . ,˘1sT .

Usando esse fato, podemos concluir que }A}8 é o valor máximoda soma dos valores absolutos das linhas de A, ou seja,

}A}8 “ maxt}aT1 }1, . . . , }a

Tn }1u “ max

i“1:n

$

&

%

nÿ

j“1

|aij |

,

.

-

,

em que aTi denota a i-ésima linha de A.

Page 14: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Exemplo da } ¨ }2

Considere a matriz A “„

1 20 2

. Geometricamente, temos

A //

}A}2 “ maxt}Av}2 : }v}2 “ 1u “ 2.92081.

Page 15: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

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 matriz A.

No GNU Octave, podemos calcular as normas } ¨ }1, } ¨ }2 e } ¨ }8de uma matriz A usando respectivamente os comandos:» norm(A,1)» norm(A) ou » norm(A,2)» norm(A,inf)

Page 16: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Norma Consistente

Dizemos que uma norma matricial } ¨ } é consistente se

}AB} ď }A}}B},

para quaisquer matrizes A e B.

Todas as normas subordinadas são consistentes!

As normas subordinadas também satisfazem a desigualdade

}Ax} ď }A}}x},

para quaisquer matriz A e vetor x.

Page 17: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Erro Absoluto e Erro Relativo

Suponha que resolvemos um sistema linear Ax “ b, em queA P Rnˆn é uma matriz não-singular e b P Rn, usando um métodonumérico como, por exemplo, o método da eliminação de Gauss.

Vamos denotar por x̃ a solução encontrada pelo método numéricoe x˚ “ A´1b a solução exata.

Para avaliar a qualidade da solução produzida pelo métodonumérico, comparamos a solução numérica x̃ com a soluçãoexata x˚ usando uma norma vetorial. Especificamente,calculamos o erro absoluto Ea ou o erro relativo Er dados por:

Ea “ }x˚ ´ x̃} e Er “}x˚ ´ x̃}}x˚}

.

Page 18: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Resíduo

Uma desvantagem da análise que descrevemos anteriormente éque, na prática, não conhecemos a solução exata x˚ do sistemalinear Ax “ b. Portanto, não podemos calcular o erro.

Como alternativa, calculamos o chamado resíduo absoluto Raou o resíduo relativo Rr definidos por

Ra “ }b´ Ax̃} e Rr “}b´ Ax̃}}b}

.

Em algumas situações, é conveniente definir os vetores

e “ x˚ ´ x̃ e r “ b´ Ax̃,

chamados respectivamente erro e resíduo.

Page 19: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Matriz Gerada Aleatoriamente

Para valiar a qualidade da solução de um sistema linear Ax “ bproduzida pelo método da eliminação de Gauss, geramos umamatriz A P R100ˆ100 cujos elementos aij possuem distribuiçãonormal padrão.

Além disso, definimos x˚ “ r1, . . . ,1sT e b “ Ax˚.

Determinamos a solução numérica x̃ usando o método daeliminação de Gauss e calculamos o erro e o resíduo relativo.

Repetimos o processo 1000 vezes. A média dos erros e resíduosrelativos foram 1.3ˆ 10´12 e 6.0ˆ 10´14, respectivamente.

Note que o resíduo forneceu uma boa estimativa para o erro!

Page 20: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Comandos do GNU Octave

» for i=1:1000A = 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-15

Page 21: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Matriz de Hilbert

Considere a matriz A P R100ˆ100 cujos elementos são

aij “1

i ` j ´ 1.

Definimos x˚ “ r1, . . . ,1sT , b “ Ax˚ e determinamos a soluçãonumé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´ Ax̃}8}b}8

“ 1.46ˆ 10´15.

Ao contrário do exemplo anterior, temos resíduo relativo muitopequeno mas um erro relativo grande.

Page 22: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

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

Page 23: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Sistemas Lineares Mal-Condicionados

Em termos gerais, um sistema linear Ax “ b é mal-condicionadose pequenas perturbações na matriz A ou no vetor b causamgrandes variações na solução.

Nesse caso, devido aos erros na representação e operações depontos flutuantes, não devemos esperar uma solução precisa deum método numérico!

Além disso, num sistema linear mal-condicionado, o resíduo podenão revelar a natureza do erro!

O condicionamento de uma matriz A é definido em termos de suanorma e a norma de sua inversa.

Page 24: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Sabemos que os vetores e (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ções b “ Ax˚ e x˚ “ 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}

.

Page 25: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Número de Condição de uma MatrizO número de condição de uma matriz A, também chamadocondicionamento de A, é definido por

condpAq “ }A}}A´1}.

Vale a seguinte relação entre o erro relativo e o resíduo relativo:

Rr

condpAqď Er ď condpAqRr .

‚ Se condpAq é próximo de 1, o erro relativo Er e o resíduorelativo Rr são próximos.

‚ Se condpAq é grande, o erro relativo pode ser muito maior queo resíduo relativo.

Page 26: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

O número de condição de uma matriz A pode ser calculada noGNU Octave usando o comando:» cond(A)

O comando» rcond(A)fornece o recíproco 1{ condpAq, obtido usando a norma-1.Note que A é 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.38loomoon

Er

ď 5.98ˆ 1019loooooomoooooon

condpAq

1.46ˆ 10´15looooooomooooooon

Rr

“ 8.71ˆ 104.

Page 27: MS211 - Cálculo Numéricovalle/Teaching/MS211/Aula05.pdf · Na aula anterior, falamos sobre os erros de arredondamento na representação de ponto flutuante e suas operações aritméticas

Considerações FinaisNa aula de hoje apresentamos os conceitos de norma vetorial enorma matricial subordinada.

Vimos como esses conceitos podem ser usados para determinaro erro relativo de um sistema linear.

Vimos também o conceito de resíduo relativo e mostramos queele representa o erro relativo se o condicionamento de A forpróximo de 1.

Se condpAq é grande, dizemos que a matriz é mal-condicionada.Nesse caso, não podemos confiar na solução fornecida por ummétodo numérico.

Muito grato pela atenção!