| | | |

Matemática numérica I

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

3.2 Norma e número de condicionamento

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.141)

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

𝒖⋅𝒗:=u1⁢v1+u2⁢v2+⋯+un⁢vn, (3.142)

temos que

‖𝒗‖=𝒗⋅𝒗. (3.143)
Exemplo 3.2.1.

Sejam os vetores

𝒖=(1,−2,3,−4), (3.144)
𝒗=(−1,2,0,1). (3.145)
  1. a)

    𝒖⋅𝒗=u1⁢v1+u2⁢v2+⋯+un⁢vn (3.146)
    =1⋅(−1)+(−2)⋅2+3⋅0+(−4)⋅1 (3.147)
    =−1−4+0−4 (3.148)
    =−9. (3.149)
    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.150)
    =(−1)2+22+02+12 (3.151)
    =1+4+1 (3.152)
    =6=2.4495e+0. (3.153)
    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.154)
    ‖𝒗‖=0⇔𝒗=𝟎. (3.155)
  2. b)

    Multiplicação por escalar

    ‖λ⁢𝒗‖=|λ|⋅‖𝒗‖. (3.156)
  3. c)

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

    𝒖⋅𝒗≤‖𝒖‖⋅‖𝒗‖ (3.157)
  4. d)

    Desigualdade triangular

    ‖𝒖+𝒗‖≤‖𝒖‖+‖𝒗‖ (3.158)
Demonstração.

Sejam dados λ∈ℝ e 𝒖,𝒗∈ℝn.

  1. a)

    Positividade.

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

    ‖𝒗‖ :=v12+v22+⋯+vn2 (3.159)
    ≥0. (3.160)

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

    ‖𝒗‖=v12+v22+⋯+vn2 (3.161)
    ‖𝟎‖=0=0. (3.162)

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

    v12+v22+⋯+vn2>0 (3.163)
    v12+v22+⋯+vn2>0 (3.164)
    ‖𝒗‖>0. (3.165)

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

  2. b)

    Multiplicação por escalar.

    Observamos que

    λ⁢𝒗=(λ⁢v1,λ⁢v2,…,λ⁢vn). (3.166)

    Então, segue por cálculo direto que

    ‖λ⁢𝒗‖=(λ⁢v1)2+(λ⁢v2)2+⋯+(λ⁢vn)2 (3.167)
    =λ2⁢(v12+v22+⋯+vn2) (3.168)
    =λ2v12+v22+⋯+vn2 (3.169)
    =|λ|∥𝒗∥. (3.170)
  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.171)
    𝒖⋅𝒖+2⁢α⁢𝒖⋅𝒗+α2⁢𝒗⋅𝒗≥0 (3.172)
    ‖𝒖‖2+2⁢α⁢𝒖⋅𝒗+α2⁢‖𝒗‖2≥0 (3.173)

    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⁢𝒖⋅𝒗)2−4⁢‖𝒖‖2⁢‖𝒗‖2≤0 (3.174)
    (𝒖⋅𝒗)2≤‖𝒖‖2⁢‖𝒗‖2 (3.175)
    (𝒖⋅𝒗)2≤‖𝒖‖2⁢‖𝒗‖2 (3.176)
    |𝒖⋅𝒗|≤‖𝒖‖⁢‖𝒗‖ (3.177)

    Donde, concluímos que

    𝒖⋅𝒗≤‖𝒖‖⁢‖𝒗‖. (3.178)
  4. d)

    Desigualdade triangular

    Consulte o E.3.2.6 para a demonstração da desigualdade triangular.

∎

Exemplo 3.2.2.

Vamos verificar a Desigualdade Triangular (3.158) para os vetores

𝒖=(1,−2,3,−4), (3.179)
𝒗=(−1,2,0,1). (3.180)

De fato, temos

‖𝒖+𝒗‖=(u1+v1)2+(u2+v2)2+(u3+v3)2+(un+vn)2 (3.181)
=02+02+32+32 (3.182)
=18 (3.183)
=4.2426e+0 (3.184)

e

‖𝒖‖+‖𝒗‖=u12+u22+u32+u42
+v12+v22+v32+v42 (3.185)
=12+(−2)2+32+(−4)2
+(−1)2+22+02+12 (3.186)
=30+6 (3.187)
=7.9267e+0. (3.188)

Ou seja, temos que

‖𝒖+𝒗‖≤‖𝒖‖+‖𝒗‖ (3.189)

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=[ai⁢j]i,j=1n é definida por

‖A‖2:=sup𝒙∈ℝn,‖𝒙‖=1‖A⁢𝒙‖. (3.190)

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

‖A‖2=λm⁢a⁢x⁢(AT⁢A), (3.191)

onde λm⁢a⁢x⁢(AT⁢A):=max⁡{|λ|;λ⁢ é autovalor de ⁢AT⁢A}.

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

‖A‖=(∑i=1n∑j=1n|ai,j|2)12 (3.192)

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

‖A‖2≤‖A‖≤n⁢‖A‖2. (3.193)
Exemplo 3.2.3.

A matriz

A=[1−12−2π47−52] (3.194)

tem norma

‖A‖=10.5768⁢e+0. (3.195)
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 v∈ℝn e um escalar λ, temos

  1. a)

    Positividade

    ‖A‖≥0 (3.196)
    ‖A‖=0⇔A=𝟎 (3.197)
  2. b)

    Multiplicação por escalar

    ‖λ⁢A‖=|λ|⋅‖A‖ (3.198)
  3. c)

    Desigualdade triangular

    ‖A+B‖≤‖A‖+‖B‖ (3.199)
  4. d)

    Sub-multiplicatividade

    ‖A⁢B‖≤‖A‖⁢‖B‖ (3.200)
  5. e)

    Norma da aplicação

    ‖A⁢v‖≤‖A‖⁢‖v‖ (3.201)
Demonstração.

Consulte o E.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.202)
    ‖I‖⋅‖I‖=‖I‖2=n (3.203)
  2. b)

    Norma da aplicação

    ‖In⁢𝒗‖=‖𝒗‖ (3.204)
    ‖In‖⁢‖v‖=n⁢‖𝒗‖ (3.205)

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=[ai⁢j]i,j=1n,n, um vetor 𝒙∈ℝn e uma perturbação 𝜹𝒙∈ℝn. Além disso, sejam

𝒚=A⁢𝒙 (3.206)
𝒚+𝜹𝒚=A⁢(𝒙+𝜹𝒙). (3.207)

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

er⁢e⁢l⁢(𝒚):=‖𝜹𝒚‖/‖𝒚‖ (3.208)
er⁢e⁢l⁢(𝒙):=‖𝜹𝒙‖/‖𝒙‖ (3.209)

da seguinte forma

‖𝒚‖/‖𝜹𝒚‖‖𝒙‖/‖𝜹𝒙‖=‖𝒚‖‖𝜹𝒚‖⁢‖𝜹𝒙‖‖𝒙‖
=‖A⁢𝒙‖‖𝜹𝒚‖‖A−1⁢𝜹𝒚‖‖𝒙‖ (3.210)
≤‖A‖⁢‖𝒙‖⁢‖A−1‖⁢‖𝜹𝒚‖‖𝜹𝒚‖⁢‖𝒙‖ (3.211)
=∥A∥∥A−1∥. (3.212)

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

er⁢e⁢l⁢(𝒚)≤‖A‖⁢‖A−1‖⁢er⁢e⁢l⁢(𝒙). (3.213)

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

κ⁢(A):=‖A‖⁢‖A−1‖. (3.214)

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

κ⁢(I)=1. (3.215)

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=[1−12−2π47−52], (3.216)

    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=[10000−210510−4105], (3.217)

    tem número de condicionamento

    κ⁢(B)=1.5811×1014, (3.218)

    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)


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

E. 3.2.2.

Compute a norma de cada uma das seguintes matrizes:

  1. a)

    A=[01−10] (3.219)
  2. b)

    B=[21−1−1023−20] (3.220)
  3. c)

    C=[21−10−10203−20−10102] (3.221)

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

E. 3.2.3.

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

  1. a)
    A=[01−10] (3.222)
  2. b)

    B=[21−1−1023−20] (3.223)
  3. c)

    C=[21−10−10203−20−10102] (3.224)
  4. d)

    D=[1⁢e+51⁢e−103⁢e−30−1⁢e−10−1⁢e−31⁢e+51⁢e−11⁢e−22⁢e−30−1⁢e−100] (3.225)
  5. e)
    E=[11⁢e−603⁢e−8−1⁢e−6−2⁢e−16−2⁢e−101⁢e+71⁢e+112⁢e−10−1⁢e⁢200] (3.226)

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


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

E. 3.2.4.

Considere o seguinte sistema linear

10−12⁢x1+20⁢x2+3⁢x3=−1, (3.227)
2.001x1+10−5x2+−x3=−2, (3.228)
x1−2⁢x2−0.1⁢x3=0.1. (3.229)
  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.


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

E. 3.2.5.

Considere

A=[1⁢e+812−11⁢e−21⁢e−101⁢e−3011⁢e⁢201⁢e−5001⁢e−4] (3.230)
  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 M−1⁢A é melhor que o de A.


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

Análise numérica

E. 3.2.6.

Mostre que a Desigualdade triangular

‖𝒖+𝒗‖≤‖𝒖‖+‖𝒗‖ (3.231)

vale para quaisquer 𝒖,𝒗∈ℝn.


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

E. 3.2.7.

Mostre a Proposição 3.2.2.


Dica: use as propriedades da norma de vetores.


Envie seu comentário

Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Opcional. Preencha seu nome para que eu possa lhe contatar.
Opcional. Preencha seu e-mail para que eu possa lhe contatar.
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.

Licença Creative Commons
Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.

Pedro H A Konzen
| | | |