| | | | |

3.2 Norma e Número de Condicionamento

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

Nesta seção, fazemos uma rápida discussão sobre normas de vetores e matrizes e sobre o condicionamento de uma matriz.

3.2.1 Norma L2

Norma de Vetores

A norma L2 de um dado vetor 𝒗=(v1,v2,,vn)n é definida por

𝒗:=v12+v22++vn2. (3.217)

Lembrando que o produto interno de dois vetores 𝒖,𝒗2 é definido por

𝒖𝒗:=u1v1+u2v2++unvn, (3.218)

temos que

𝒗=𝒗𝒗. (3.219)
Exemplo 3.2.1.

Sejam os vetores

𝒖 =(1,2,3,4), (3.220)
𝒗 =(1,2,0,1). (3.221)
  1. a)
    𝒖𝒗 =u1v1+u2v2++unvn (3.222)
    =1(1)+(2)2+30+(4)1 (3.223)
    =14+04 (3.224)
    =9. (3.225)
    1import numpy as np
    2u = np.array([1., -2., 3., -4.])
    3v = np.array([-1., 2., 0., 1.])
    4udv = np.dot(u,v)
    5print(f'\nu.v = {udv}')
  2. b)
    𝒗 =v12+v22++vn2 (3.226)
    =(1)2+22+02+12 (3.227)
    =1+4+1 (3.228)
    =6=2.4495e+0. (3.229)
    1import numpy as np
    2import numpy.linalg as npla
    3v = np.array([-1., 2., 0., 1.])
    4norm_v = npla.norm(v)
    5print(f'\n||v|| = {norm_v}')
Proposição 3.2.1.

(Propriedades da Norma para Vetores.) Dados os vetores 𝒖,𝒗n e um escalar λ, temos:

  1. a)

    Positividade

    𝒗0. (3.230)
    𝒗=0𝒗=𝟎. (3.231)
  2. b)

    Multiplicação por escalar

    λ𝒗=|λ|𝒗. (3.232)
  3. c)

    Desigualdade de Cauchy3232endnote: 32Augustin-Louis Cauchy, 1789-1857, matemático francês. Fonte: Wikipédia: Augustin-Louis Cauchy.-Schwarz3333endnote: 33Karl Hermann Amandus Schwarz, 1843-1921, matemático alemão. Fonte: Wikipédia: Hermann Amandus Schwarz.

    𝒖𝒗𝒖𝒗 (3.233)
  4. d)

    Desigualdade triangular

    𝒖+𝒗𝒖+𝒗 (3.234)
Demonstração.

Sejam dados λ e 𝒖,𝒗n.

  1. a)

    Positividade.

    Observa-se diretamente que v12+v22++vn20. Então, como a raiz quadrada é uma função não-negativa, concluímos que

    𝒗 :=v12+v22++vn2 (3.235)
    0

    No caso de 𝒗=𝟎, temos vi=0, i=1,2,,n, donde

    𝒗 =v12+v22++vn2 (3.236)
    𝟎 =0=0.

    Ou seja, se 𝒗=𝟎, então 𝒗=0. Agora, se 𝒗𝟎, então tem-se vi0 para algum i=1,2,,n. Logo, pela monotonicidade da função raiz quadrada, temos

    v12+v22++vn2>0 (3.237)
    v12+v22++vn2>0 (3.238)
    𝒗>0. (3.239)

    Portanto, concluímos que 𝒗=0 se, e somente se, 𝒗=𝟎.

  2. b)

    Multiplicação por escalar.

    Observamos que

    λ𝒗=(λv1,λv2,,λvn). (3.240)

    Então, segue por cálculo direto que

    λ𝒗 =(λv1)2+(λv2)2++(λvn)2 (3.241)
    =λ2(v12+v22++vn2) (3.242)
    =λ2v12+v22++vn2 (3.243)
    =|λ|𝒗. (3.244)
  3. c)

    Desigualdade de Cauchy-Schwarz.

    Sem perda de generalidade, se 𝒗=𝟎, então a desigualdade é imediatamente satisfeita. Suponhamos, agora, que 𝒗𝟎. Para qualquer α, temos

    (𝒖+α𝒗)(𝒖+α𝒗) 0 (3.245)
    𝒖𝒖+2α𝒖𝒗+α2𝒗𝒗 0 (3.246)
    𝒖2+2α𝒖𝒗+α2𝒗2 0 (3.247)

    O lado direito desta desigualdade é um polinômio quadrático em α. Para ser não-negativo para todo α, seu discriminante precisa ser não-positivo, i.e.

    (2𝒖𝒗)24𝒖2𝒗20 (3.248)
    (𝒖𝒗)2𝒖2𝒗2 (3.249)
    (𝒖𝒗)2𝒖2𝒗2 (3.250)
    |𝒖𝒗|𝒖𝒗 (3.251)

    Donde, concluímos que

    𝒖𝒗𝒖𝒗. (3.252)
  4. d)

    Desigualdade triangular

    Consulte o Exercício 3.2.6 para a demonstração da desigualdade triangular.

Exemplo 3.2.2.

Vamos verificar a Desigualdade Triangular (3.234) para os vetores

𝒖 =(1,2,3,4), (3.253)
𝒗 =(1,2,0,1). (3.254)

De fato, temos

𝒖+𝒗 =(u1+v1)2+(u2+v2)2+(u3+v3)2+(un+vn)2 (3.255)
=02+02+32+32 (3.256)
=18 (3.257)
=4.2426e+0 (3.258)

e

𝒖+𝒗 =u12+u22+u32+u42
+v12+v22+v32+v42 (3.259)
=12+(2)2+32+(4)2
+(1)2+22+02+12 (3.260)
=30+6 (3.261)
=7.9267e+0 (3.262)

Ou seja, temos que

𝒖+𝒗𝒖+𝒗 (3.263)

como esperado.

1import numpy as np
2u = np.array([1., -2., 3., -4.])
3v = np.array([-1., 2., 0., 1.])
4nupv = npla.norm(u+v)
5nupnv = npla.norm(u) + npla.norm(v)
6print('\nu.v <= ||u||.||v||?')
7print(nupv <= nupnv)

Norma de Matrizes

A norma L2 induzida de uma dada matriz real A=[aij]i,j=1n é definida por

A2:=sup𝒙n,𝒙=1A𝒙. (3.264)

Pode-se mostrar que3434endnote: 34Consulte [7, Section 1.3-3] para informações sobre a demonstração.

A2=λmax(ATA), (3.265)

onde λmax(ATA):=max{|λ|;λ é autovalor de ATA}.

Tendo em vista o grande custo computacional em se calcular a norma induzida, vamos trabalhar com a norma de Frobenius (ou norma Euclidiana3535endnote: 35Euclides de Alexandria, 300 a.C., matemático grego. Fonte: Wikipédia: Euclides.)

A=(i=1nj=1n|ai,j|2)12 (3.266)

Esta é uma generalização da norma euclidiana para vetores e é equivalente a norma L2 induzida, i.e.

A2AnA2. (3.267)
Exemplo 3.2.3.

A matriz

A=[1122π4752] (3.268)

tem norma

A=10.5768e+0. (3.269)
1import numpy as np
2import numpy.linalg as npla
3A = np.array([[1., -1., 2.],
4              [-2., np.pi, 4.],
5              [7., -5., np.sqrt(2)]])
6norm_A = npla.norm(A)
7print(norm_A)
Proposição 3.2.2.

(Propriedades da Norma para Matrizes.) Dadas as matrizes reais A,B n×n, um vetor vn e um escalar λ, temos

  1. a)

    Positividade

    A0 (3.270)
    A=0A=𝟎 (3.271)
  2. b)

    Multiplicação por escalar

    λA=|λ|A (3.272)
  3. c)

    Desigualdade triangular

    A+BA+B (3.273)
  4. d)

    Sub-multiplicatividade

    ABAB (3.274)
  5. e)

    Norma da aplicação

    AvAv (3.275)
Demonstração.

Consulte o Exercício 3.2.7. ∎

Exemplo 3.2.4.

Vamos ver exemplos das propriedades d) e e) da norma de matriz.

  1. a)

    Sub-multiplicatividade

    In2=In=n (3.276)
    II=I2=n (3.277)
  2. b)

    Norma da aplicação

    In𝒗=𝒗 (3.278)
    Inv=n𝒗 (3.279)

3.2.2 Número de Condicionamento

Em revisão

O número de condicionamento de uma matriz é uma medida referente a propagação de erros que ocorre da sua aplicação. Mais especificamente, assumamos que seja dada uma matriz invertível A=[aij]i,j=1n,n, um vetor 𝒙n e uma perturbação 𝜹𝒙n. Além disso, sejam

𝒚 =A𝒙 (3.280)
𝒚+𝜹𝒚 =A(𝒙+𝜹𝒙). (3.281)

Ou seja, 𝜹𝒚 é a perturbação em 𝒚 propagada da aplicação de A em 𝒙 com perturbação 𝜹𝒙.

Agora, podemos estimar a razão entre os erros relativos

erel(𝒚):=𝜹𝒚/𝒚 (3.282)
erel(𝒙):=𝜹𝒙/𝒙 (3.283)

da seguinte forma

𝒚/𝜹𝒚𝒙/𝜹𝒙 =𝒚𝜹𝒚𝜹𝒙𝒙 (3.284)
=A𝒙𝜹𝒚A1𝜹𝒚𝒙 (3.285)
A𝒙A1𝜹𝒚𝜹𝒚𝒙 (3.286)
=A|A1. (3.287)

Logo, temos a seguinte estimativa de propagação de erro

erel(𝒚)AA1erel(𝒙). (3.288)

Isto nos motiva a definir o número de condicionamento da matriz A por

κ(A):=AA1. (3.289)

A matriz identidade tem o menor número de condicionamento que é

κ(I)=1. (3.290)

temos que κ(A)1 e quanto maior, mais mal condicionada é a matriz. Ou seja, quando maior κ(A), maior é a propagação dos erros ao se computar A𝒙.

Exemplo 3.2.5.

Estudamos os seguintes exemplos:

  1. a)

    Matriz bem condicionada.

    A=[1122π4752], (3.291)

    cujo número de condicionamento é κ(A)=13.997.

    1import numpy as np
    2import numpy.linalg as npla
    3A = np.array([[1., -1., 2.],
    4              [-2., np.pi, 4.],
    5              [7., -5., np.sqrt(2)]])
    6cond_A = npla.cond(A, 'fro')
    7print(f'cond(A) = {cond_A}')
  2. b)

    Matriz mal condicionada.

    B=[100002105104105], (3.292)

    tem número de condicionamento

    κ(B)=1.5811×1014, (3.293)

    o que indica que B é uma matriz mal condicionada.

    1import numpy as np
    2import numpy.linalg as npla
    3A = np.array([[1., 0., 0.],
    4              [0., 0., -2.],
    5              [1e5, 1e-4, 1e5]])
    6cond_A = npla.cond(A, 'fro')
    7print(f'cond(A) = {cond_A:.4e}')

3.2.3 Exercícios

E. 3.2.1.

Compute a norma de cada um dos seguintes vetores:

  1. a)

    𝒖=(1,0,1)

  2. b)

    𝒗=(1,2,1,2)

  3. c)

    𝒘=(1,0,1,2,2)

Resposta.

a) u=2; b) v=3.1623e+0; c) w=3.1623e+0;

E. 3.2.2.

Compute a norma de cada uma das seguintes matrizes:

  1. a)
    A=[0110] (3.294)
  2. b)
    B=[211102320] (3.295)
  3. c)
    C=[2110102032010102] (3.296)
Resposta.

a) A=2; b) B=4.8990e+0; c) C=5.4772e+0

E. 3.2.3.

Compute o número de condicionamento de cada uma das seguintes matrizes:

  1. a)
    A=[0110] (3.297)
  2. b)
    B=[211102320] (3.298)
  3. c)
    C=[2110102032010102] (3.299)
  4. d)
    D=[1e+51e103e301e101e31e+51e11e22e301e100] (3.300)
  5. e)
    E=[11e603e81e62e162e101e+71e+112e101e200] (3.301)

Qual das matriz acima é a mais mal condicionada? Justifique sua resposta.

Resposta.

a) κ(A)=2; b) κ(B)=4.6904e+0; c) κ(C)=6.6291e+0; d) κ(D)=4.6314e+8 e) κ(E)=1.0000e+15, a mais mal condicionada.

E. 3.2.4.

Considere o seguinte sistema linear

1012x1+20x2+3x3 =1, (3.302)
2.001x1+105x2+x3 =2, (3.303)
x12x20.1x3 =0.1. (3.304)
  1. a)

    Compute a norma do vetor dos termos constantes deste sistema.

  2. b)

    Compute a norma matriz dos coeficientes deste sistema.

  3. c)

    Compute o número de condicionamento da matriz dos coeficientes deste sistema.

Resposta.

a) 2.2383e+0; b) 2.0323e+1; c) 3.5128e+1

E. 3.2.5.

Considere

A=[1e+81211e21e101e3011e201e5001e4] (3.305)
  1. a)

    Compute κ(A).

  2. b)

    Aloque a matriz diagonal M, cujos elementos da diagonal sejam iguais aos da matriz A.

  3. c)

    Verifique que o número de condicionamento de M1A é melhor que o de A.

Resposta.

a) κ(A)=1.0e+12; b) M = np.diag(np.diag(A)); c) κ(M1A)=4.0201e+0

Análise Numérica

E. 3.2.6.

Mostre que a Desigualdade triangular

𝒖+𝒗𝒖+𝒗 (3.306)

vale para quaisquer 𝒖,𝒗n.

Resposta.

Dica: use a Desigualdade de Cauchy-Schwarz (3.233).

E. 3.2.7.

Mostre a Proposição 3.2.2.

Resposta.

Dica: use as propriedades da norma de vetores.


Envie seu comentário

As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a Política de Uso de Dados para mais informações. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!