Você está na página 1de 19

Algebra Linear Numérica - 2016/2017 - DM - FCUP

Unidades Computacionais
Docente: Zélia Rocha (mrdioh@fc.up.pt)

Resolva com recurso ao MATLAB

Unidade computacional 1.1


Temas:
- Normas e Limites Vectoriais e Matriciais
- Condicionamentos de Problemas

1. Estude o condicionamento do calculo do inverso de um número real não nulo. Faça algu-
mas experiências numéricas.

2. Estude o condicionamento do calculo das raı́zes de uma parábola. Faça algumas ex-
periências numéricas.

3. Par estudar o condicionamento do calculo da solução de um sistema de duas equações a


duas incógnitas exiba dois sistemas, um bem condicionado e outro mal condicionado.

(a) Calcule a solução exacta de cada sistema.


(b) Perturbe ligeiramente cada um dos sistemas e calcule as correspondentes soluções
exactas e os erros relativos destas com respeito ás soluções dos sistemas não pertur-
bados.
(c) Avalie o erro relativo da perturbação de cada sistema, da matriz e do termo indepen-
dente, se for o caso.
(d) Avalie o número de condição das matrizes dos coeficientes dos 4 sistemas.
(e) Faça as representações gráficas dos 4 sistemas (algumas poderão ser quase coinci-
dentes).
(f) Interprete os resultados obtidos.

1
Unidade computacional 1.2
Temas:
- Normas e Limites Vectoriais e Matriciais
- Condicionamentos

1. Considere os seguintes vetores


  
x = − 0.84, 0.72, 0.07, −0.05 , y = − 3/34, 51/7, −3/34, 57/7 , z = − 3, 5, −10, −7 .

(a) Calcule a norma ∞ e as normas p, p = 1, ..., pmax desses vectores e interprete os


resultados.
(b) Represente graficamente os resultados anteriores.

2. Considere as seguintes matrizes:


     
−8/3 −6/8 3/16 −0.1 −0.3 0.07 −0.01 −0.03 0.07
A =  −3/4 5/7 −10/4  , B =  −0.08 0.5 −0.3  ,C =  −0.08 0.05 −0.03  .
31/3 3/8 −7/6 0.6 0.1 −0.09 0.06 0.01 −0.09

(a) Calcule as suas inversas, determinantes, normas 1, de Frobenius e ∞, assim como os


números de condição relativamente ás normas anteriores. Comente.
(b) Calcule alguns elementos das sucessões das potências das matrizes dadas: Ak , Bk e
Ck , k = 1, ..., kmax e interprete os resultados.
(c) Calcule alguns elementos das somas parciais das séries geométricas das matrizes
dadas: ∑nk=0 Ak , ∑nk=0 Bk , de ∑nk=0 Ck , n = 0, ..., nmax. Quais das séries são conver-
gentes? Para as séries convergentes responda:
i. Calcule um majorante do erro relativo das somas parciais.
ii. Calcule a soma das séries.
iii. Calcule os erros relativos das somas parciais e compare com os majorantes ante-
riormente calculados.
iv. Represente os resultados anteriores em tabelas e em gráficos e interprete-os.
v. Qual das séries converge mais rapidamente? Porquê?

3. Defina vetores e matrizes de várias dimensões (por exemplo 5 e 10), cujas componentes
ou entradas são:

(a) números reais aleatórios pertencentes ao intervalo [0, 1].


(b) números reais aleatórios pertencentes ao intervalo [−10, 10].
(c) números aleatórios inteiros pertencentes ao intervalo [−100, 100].
(d) números complexos com parte real e imaginária pertencentes ao intervalo [−1, 1].

4. Para as matrizes do exercı́cio anterior, calcule as inversas, determinantes, normas 1, ∞ e de


Frobenius, os números de condição relativamente ás normas anteriores. Comente

- Comece por supor pmax = 20 e kmax = nmax = 10, por exemplo. - Para os itens que
não possuem comando direto na linguagem computacional defina blocos de programa que os
calculem.

2
Unidade computacional 1.3
Temas:
- Normas e Limites Vectoriais e Matriciais
- Condicionamentos
- Sistemas de Equações Lineares e Matrizes Inversas

1. Considere o sistema Ax = b, em que


 
−9 −2 0 −8
 7 1 4 −10 
A=
 −3 −2 −6 −10  .

−10 0 −9 −1

(a) Determine o vector b correspondente á solução exacta x = (1, 1, 1, 1)T .


(b) Considere o vector solução aproximado

x̂ = (1.00021, 0.999867, 1.00053, 0.999946)T .

(c) Calcule os vectores erro absoluto e resı́duo correspondentes a x̂ e os seus valores em


norma.
(d) Calcule o erro relativo e o resı́duo relativo.
(e) Avalie o número de casas decimais e de algarismos significativos de x̂.

2. (a) Sabendo que


 
−(68/835) −(6/835) 13/167 −(46/835)
 −(13/334) 51/167 −(103/334) 57/167 
A−1 =  .
 311/3340 13/835 −(57/668) −(79/1670) 
−(79/3340) −(57/835) −(7/668) −(39/1670)

considere a seguinte matriz X que aproxima A−1 :


 
−0.081842 −0.0072543 0.0778327 −0.0550158
 −0.038833 0.30540 −0.308341 0.34153 
X = .
 0.093216 0.015573 −0.085392 −0.047327 
−0.023781 −0.068292 −0.010487 −0.023342

(b) Calcule a matriz erro e a matriz resı́duo correspondente a X e as suas normas.


(c) Calcule o erro relativo de X em norma.
(d) Avalie o número de casas decimais e de algarismos significativos de X.
(e) Calcule a condição de A.

3. (a) Interprete os resultados numéricos obtidos tendo em conta os resultados teóricos so-
bre este tema.
(b) Explicite as conclusões obtidas no caso do sistema e no caso da matriz inversa.

3
Unidade computacional 1.4 - Estudo comparativo entre a matriz de Hilbert e a matriz
aleatória
Temas:
- Normas e Limites Vectoriais e Matriciais
- Condicionamentos
- Sistemas de Equações Lineares e Matrizes Inversas

Considere a matriz de Hilbert A = (ai j )i, j=1(1)n assim definida ai j = 1/(i + j − 1), i, j =
1(1)n, ou seja,
1 12 1
. . . 1n
 
3
 1 1 1
. . . 1n 
A =  2.. 3 4
..  .
 
.. ..
 . . . . 
1 1 1 1
n n+1 n+2 ... 2n

A expressão exacta da inversa A−1 = (bi j )i, j=1(1)n e do determinante são dados por

(−1)i+ j (n + i − 1)!(n + j − 1)!


bi j = , i, j = 1(1)n,
(i + j − 1)[(i − 1)!( j − 1)!]2 (n − i)!(n − j)!

2n−1  !
i
det(A) = 1/ n! ∏ .
i=1 b 2i c
Considere uma matriz de entradas aleatórias com valores entre 0 e 1. Neste caso, e como
é evidente, as expressões exactas da inversa e do determinante não são conhecidos.

1. Avalie o número de condição e o determinante das duas matrizes acima mencionadas em


função da sua dimensão.
Para cada matriz elabore uma tabela do tipo seguinte.

n - - - ···
c(A) ··· ··· ··· ···
det(A) ··· ··· ··· ···

2. Calcule numericamente a solução do sistema Ax = b, sendo


n
bi = ∑ ai j , i = 1(1)n.
j=0

Neste caso a solução exata é x = (1, . . . , 1)T . Avalie a qualidade das soluções calculadas x̂
determinando normas de erros relativos e resı́duos relativos ou os algarismos significativos
correspondentes.

3. Calcule numericamente as matrizes inversas B = A−1 .


Avalie a qualidade das matrizes calculadas X̂ determinando normas de erros (apenas no
caso de Hilbert) e de resı́duos.

4. Organize os resultados em gráficos e tabelas.

5. Interprete os resultados obtidos tendo em conta os valores da condição das matrizes.

4
Unidade computacional 2.1
Temas:
Métodos Numéricos Directos para Sistemas e Inversas de Matrizes Triangulares

1. Considere o sistema T x = b, com T = (ti j ) triangular inferior, i.e., ti j = 0, i < j. Suponha


que T é regular, ou seja, tii 6= 0, i = 1(1)n.

 t11 x1 = b1
i

t21 x1 + t22 x2 = b2

⇐⇒ ∑ ti j x j = bi , i = 1(1)n .

 ··························· ··· ··· j=1
tn1 x1 + tn2 x2 + · · · + tnn xn = bn

(a) Implemente o método de substituição descendente, para o calculo da solução do sis-


tema, traduzido pelas seguintes equações
i−1
xi = (bi − ∑ ti j x j )/tii , i = 1(1)n.
j=1

(b) Gere uma matriz dos coeficientes triangular inferior com entradas aleatórias e di-
mensão n = 10, por exemplo.
(c) Considere o seguinte termo independente
n
bi = ∑ ti j , i = 1(1)n ,
j=1

de forma a que a solução exacta do sistema T x = b seja unitária, ou seja x = (1, . . . , 1)T ,
e teste a implementação da alı́nea (a).
(d) Calcule erros e resı́duos correspondentes á solução numérica x̂ obtida de forma a
poder avaliar com rigor a precisão da mesma.
(e) Considere valores crescentes da dimensão n do sistema e organize os resultados em
tabelas e gráficos da forma mais conveniente.
(f) Considere outra matriz dos coeficientes (ver exemplos no item 4.) e repita todo o
procedimento apresentado. Compare os resultados das duas matrizes e tire as suas
concluões.
(g) Faça uma economia do espaço de memória computacional, armazenando a matriz T
na forma vectorial, em que ti j corresponde a ak , para k = i(i−1)
2 + j, i ≥ j, j = 1(1)n.
Qual a dimensão do vector a?
(h) Implemente o método da substituição descendente através das seguintes equações
i−1
i(i − 1)
xi = (bi − ∑ aI+ j x j )/aI+i , I = , i = 1(1)n.
j=1 2

(i) Teste esta implementação como anteriormente.


(j) Qual é a economia de memória efectuada? Faça uma avaliação computacional da
mesma considerando valores de n suficientemente elevados.

5
2. Considere o problema do calculo da inversa de uma matriz triangular inferior T . Sendo
T −1 = (z1 . . . zn ) , onde zk = (0, . . . , 0, zkk , . . . , znk )T é a k-ésima coluna de T −1 , k = 1(1)n,
o calculo de T −1 corresponde á resolução dos seguintes n sistemas de equações lineares
    
t11 0 0
.
 . ... .
  .   .. 
 .  .   . 
T zk = ek ⇔  tk1 . . . tkk   zkk  =  1  , k = 1(1)n .
    
 . .. . .  .   . 
 .. . .   ..   .. 
tn1 . . . tnk . . . tnn znk 0

(a) Implemente o calculo de T −1 a partir da implementação da resolução de sistemas


triangulares inferiores efectuada no exercı́cio 1.
(b) Em alternativa, implemente o calculo de T −1 directamente partir das seguintes equações
 
 tkk zkk = 1  zkk = 1/tkk
⇔ , k = 1(1)n .
 i i−1
∑ j=k ti j z jk = 0 zik = −(∑ j=k ti j z jk )/tii , i = k + 1(1)n

(c) Qual é a implementação mais económica? Justifique.


(d) Gere uma matriz dos coeficientes triangular inferior com entradas aleatórias e di-
mensão n = 5, por exemplo, e teste as implementações anteriores.
(e) Calcule a norma da matriz resı́duo correspondente á inversa numérica calculada X̂
obtida de forma a poder avaliar a precisão da mesma.
(f) A partir de X̂, calcule o número de condição de T . Compare o seu resultado com o
valor fornecido pelo comando da linguagem computacional que está a utilizar.
(g) Considere valores crescentes da dimensão n da matriz e organize os resultados em
tabelas e gráficos da forma mais conveniente.
(h) Considere outra matriz (ver exemplos no item 4.) e repita todo o procedimento apre-
sentado. Compare os resultados das duas matrizes e tire as suas concluões.
(i) Com o objectivo de economizar o espaço de memória computacional, considere as
matrizes T e T −1 armazenadas na forma vectorial conforme a alı́nea (f) do exercı́cio
1. Neste pressuposto reescreva as equações da alı́nea (b) deste exercı́cio e modifique
a sua implementação do calculo da inversa.
(j) Teste a implementação anterior com as matrizes deste exercı́cio.
(k) Qual é a economia de memória efectuada? Faça uma avaliação da mesma con-
siderando valores de n suficientemente elevados.

3. Resolva os dois exercı́cios anteriores considerando agora matrizes triangulares superiores.


Considere pois o sistema triangular superior

 t11 x1 + t12 x2 + · · · + t1n xn = b1
n

t22 x2 + · · · + t2n xn = b2

⇐⇒ ∑ ti j x j = bi , i = 1(1)n.

 ··························· ··· ··· j=i
tnn xn = bn

e o método de substituição ascendente traduzido pelas seguintes equações


n
xi = (bi − ∑ ti j x j )/tii , i = n(−1)1.
j=i+1

6
O calculo da inversa T −1 corresponde á resolução dos seguintes n sistemas de equações
lineares
    
t11 . . . t1k . . . t1n z1k 0
. .
. . .. .
..  .   .
  ..   ..
  
 
T zk = ek ⇔  tkk . . . tkn   zkk  =  1  , k = 1(1)n ,
    
 .. .  .   .
. ..   ..   ..

 
tnn 0 0

que se traduz pelas seguintes equações


 
 tkk zkk = 1  zkk = 1/tkk
⇔ , k = 1(1)n .
 k k
t z = 0 z = −( t z )/t , i = k − 1(−1)1

∑ j=i i j jk ik ∑ j=i+1 i j jk ii

4. Considere os seguintes exemplos de matrizes triangulares superiores ou inferiores T . Para


cada um deles, escreva a expressão exacta do vector b e do determinante de T .
4.1 ti j = 1. 4.2 tii = −1 ; ti j = 1, i 6= j.
4.3 tii = ε ; ti j = 1, i 6= j.
4.4 tii = −ε ; ti j = 1, i 6= j.
Nos dois exemplos anteriores considere o caso em que 0 < ε << 1, por exemplo,
ε = 10−1 , 10−3 ; e o caso em que ε >> 1, por exemplo, ε = 10, 103 .

7
Unidade Computacional 2.2
Temas:
- Sistemas Triangulares e Inversas de Matrizes Triangulares
- Condicionamentos

1. Considere o seguinte caso de estudo relativo ao polinómio interpolador de Newton,


n k−1
Nn (x) = ∑ akWk (x) ; W0(x) = 1 , Wk (x) = ∏ (x − xi), k = 1(1)n,
k=0 i=0

que satisfaz as condições de interpolação Nn (xi ) = yi , i = 0(1)n.


Como sabemos os seus coeficientes podem ser obtidos resolvendo o seguinte sistema tri-
angular inferior:


 a0 = y0
 a0 + a1 (x1 − x0 )

= y1
.. .. .


 . .
 a + a (x − x ) + · · · + a (x − x ) · · · (x − x ) = y
0 1 n 0 n n 0 n n−1 n

Relembremos, também, a formula do erro da interpolação polinomial:

f (n+1) (ξx )
f (x) − Nn (x) = Wn (x) , ξx ∈]m, M[, m = min{xi }ni=0 , M = max{xi }ni=0 .
(n + 1)!

(a) Considere n + 1 abcissas xi igualmente espaçadas num intervalo [−1, 1].


 
(b) Considere as n + 1 abcissas seguintes xi = cos (2i+1)π
2(n+1) , i = 0(1)n correspondentes
aos zeros do polinómio de Chebyshev Tn+1 (x) = cos((n + 1) arccos x).
(c) Calcule os coeficientes ai , i = 0(1)n nas duas situações anteriores relativamente ás
1 2
funções f (x) = 1+25x 2 , x ∈ [−1, 1] (exemplo de Runge) e f (x) = exp(1 − x ) , x ∈
[−1, 1].
(d) Efectue as representações gráficas de f (x) e de Nn (x).
(e) Efectue as representações gráficas das funções erro absoluto e relativo.
(f) Avalie o número de condição e o determinante da matriz triangular inferior, matriz
dos coeficientes do sistema dado.
(g) Efectue o estudo completo para valores crescentes de n, por exemplo n = 5, 10, 20, 30.
(h) Interprete os resultados obtidos.

Sugestão:
Visualize as seguintes animações do Wolfram Mathematica
[1] ”Runge’s Phenomenon” from the Wolfram Demonstrations Project
http://demonstrations.wolfram.com/RungesPhenomenon/
Contributed by: Chris Maes
[2] ”Comparing Errors for Chebyshev Interpolation” from the Wolfram Demonstrations Project
http://demonstrations.wolfram.com/ComparingErrorsForChebyshevInterpolation/
Contributed by: Andrew Cheong and Adam Hood

8
Unidade computacional 3.1
Tema: Factorização Gaussiana

1. Considere a factorização de Gauss sem pivotagem A = LU.

(a) Qual a condição necessária e suficiente que garante a existência e unicidade desta
factorização? Escreva a implementação que permite verificá-la?
(b) Implemente o algoritmo de Gauss e proteja-o para o caso de não existir a factorização
escrevendo uma mensagem de alerta.
(c) Após o término do algoritmo, destaque os factores L e U e verifique os seus resulta-
dos.
(d) Implemente outra versão do algoritmo de forma a escrever em cada iteração os fac-
tores L e U, que são construı́dos coluna a coluna e linha a linha, respectivamente. Em
cada iteração, escreva também, as sucessivas submatrizes secundárias do algoritmo
de Gauss.
(e) Escreva uma function MATLAB, com o nome LU, que implemente o algoritmo da
alı́nea (b) e retorne os factores L e U.
(f) A partir da factorização A = LU implemente:
i. a resolução de um sistema de equações lineares Ax = b de solução unitária.
ii. o calculo da matriz inversa de A.
iii. o calculo do determinante de A.
(g) Aplique o código desenvolvido ás seguintes matrizes A de dimensão 10 :
i. Aleatória com entradas entre 0 e 1.
ii. Aleatória com entradas de ordens de grandeza muito diferentes consoante a pari-
dade das linhas e colunas, considerando dois geradores de números aleatórios.
iii. Estocástica por linhas, i.e., A satisfazendo as seguintes condições:
n
ai j ≥ 0 , i, j = 1(1)n e ∑ ai j = 1 , j = 1(1)n.
j=1

2. Considere o comando lu do MATLAB que calcula as factorizações de Gauss com piv-


otagem parcial e total, utilize-o para:

(a) calcular as matrizes P, L e U da factorização PA = LU (pivotagem parcial).


(b) calcular os elementos da alı́nea (f) do exercı́cio anterior, a partir de P, L e U.
(c) calcular as matrizes P, L, U e Q da factorização PAQ = LU (pivotagem total),
(d) calcular os elementos da alı́nea (f) do exercı́cio anterior, a partir de P, L, U e Q.
(e) Aplique o código desenvolvido ás matrizes da alı́nea (g) do exercı́cio anterior.

9
Unidade Computacional 3.2
Tema: Métodos Numéricos Directos para a resolução ou o calculo de:
- Sistemas de Equações Algébricas Lineares
- Inversas de Matrizes
- Determinantes
- Condição matricial

1. Implemente um dos seguintes métodos:

(a) Gauss.
(b) Gauss para matrizes simétricas.
(c) Gauss para matrizes tridiagonais.
(d) Gauss-Jordan.
(e) Cholesky para matrizes simétricas e definidas positivas.

2. Dada uma matriz A ∈ Rn×n , aplique um dos métodos anteriores ao calculo da:

(a) solução do sistema Ax = b, onde b é tal que:


n
bi = ∑ ai j , i = 1(1)n,
j=1

apresentando os correspondentes erro relativo e resı́duo relativo em norma.


(b) det(A).
(c) A−1 e a norma da matriz resı́duo.
(d) cond(A).

3. Utilize para teste pelo menos duas matrizes, para dois valores de n (p.ex.: n=10 e 30).
Pode ser conveniente efectuar cálculo numérico com duas precisões (p.ex.: 16 e 32 digitos
significativos) e cálculo formal, quando possı́vel.

4. Organize os resultados obtidos em termos de tabelas e de gráficos e interprete-os.

10
Unidade computacional 4
Tema: Factorização de Cholesky

1. Considere a factorização de Cholesky A = GGT .

(a) Qual a condição necessária e suficiente que garante a existência desta factorização?
(b) A partir de uma matriz B qualquer gere uma matriz A que satisfaça as condições
anteriores.
(c) Implemente o algoritmo de Cholesky de forma a calcular a matriz G e no final veri-
fique os seus resultados.
(d) Implemente outra versão do algoritmo de forma a escrever em cada iteração o factor
G construı́do coluna a coluna.
(e) Utilize o comando chol do MATLAB, que calcula a factorização de Cholesky, para
verificar os resultados obtidos na alı́nea (c).
(f) Escreva uma function MATLAB, com o nome CHOL, que implemente o algoritmo
da alı́nea (c) e retorne o factor G.
(g) A partir da factorização A = GGT implemente:
i. a resolução de um sistema de equações lineares Ax = b de solução unitária.
ii. o calculo da matriz inversa de A.
iii. o calculo do determinante de A.
(h) Aplique o código desenvolvido ás seguintes matrizes A e B de dimensão 10 :
i. Matriz aleatória B com entradas entre 0 e 1.
ii. Matriz aleatória B com entradas inteiras entre -100 e 100.
iii. Matriz de Pascal A.

11
Unidade computacional 5.1
Tema: Método Iterativo de Jacobi

1. Considere a forma matricial do método iterativo de Jacobi para a resolução do sistema


Ax = b, h i
(k+1) −1
x =D (D − A)x + b = Mx(k) + h, k = 0, 1, . . . ,
(k)
(1)

onde D = diag(a11 , . . . , ann ) é a parte diagonal de A, M = D−1 (D − A) e h = D−1 b.


Este método também pode ser traduzido pelas seguintes equações:
" #
i−1 n
(k+1) 1 (k) (k)
xi = − ∑ ai j x j − ∑ ai j x j + bi , i = 1(1)n , k = 0, 1, . . . . (2)
aii j=1 j=i+1

Considere um vector b de forma a que a solução do sistema seja unitária.

(a) Qual a condição suficiente que garante a convergência deste processo iterativo?
(b) Implemente este método de forma económica escrevendo os valores de k e x(k) , para
k = 0, 1, . . . , kmax, sendo kmax um valor fixado. Escreva duas versões: uma corre-
spondente á equação matricial (1) e outra correspondente ás equações (2). Qual é a
versão de implementação mais fácil?
(c) Calcule também o erro relativo er(k) e o resı́duo relativo rr(k) associados a cada x(k) ,
para k = 0, 1, . . . , kmax.
(d) Escreva uma function MATLAB, de nome JACOBI, que implemente este método
numa das suas versões.
(e) Aplique o código desenvolvido nas alı́neas anteriores ás seguintes matrizes e inter-
prete os resultados.
     
2.5 −1 1 5 −1 1 10 −1 1
i. A =  1 2.5 −1 , ii. A =
  1 5 −1  , iii. A =  1 10 −1  .
−1 1 2.5 −1 1 5 −1 1 10
(f) Para cada matriz, teste os seguintes vectores de arranque x(0) e interprete os resulta-
dos.
i. x(0) aleatório. ii. x(0) nulo. iii. x(0) unitário.
(k)
(g) Para cada matriz, represente graficamente as componentes dos vectores xi , i = 1(1)n
em função do k, k = 0(1)kmax. Comente e justifique.
(h) Para cada matriz, represente graficamente os erros relativos er(k) e os resı́duos rela-
tivos rr(k) em função do k, k = 0(1)kmax. Comente e justifique.

Observação: Para resolver as duas últimas alı́neas terá de fazer uma implementação nada
económica do algoritmo de Jacobi.

12
Unidade Computacional 5.2
Tema: Métodos iteratios de Jacobi e de Gauss-Seidel

Implemente os métodos iterativos de Jacobi e de Gauss-Seidel, teste-os com as matrizes


abaixo indicadas e compare os resultados obtidos.

1. 
 3x1 − 0.1x2 − 0.2x3 = 7.85
0.1x1 + 7x2 − 0.3x3 = −19.3
0.3x1 − 0.2x2 + 10x3 = 71.4

2. 

 4x1 + x3 + x4 = 1
4x2 + x4 = 1


 x1 + 4x3 = 1
x1 + x2 + 4x4 = 1

Dada uma matriz A ∈ Rn×n , aplique os dois métodos ao calculo da solução do sistema Ax = b,
onde b ∈ Rn é tal que:
n
bi = ∑ ai j , i = 1(1)n.
j=1

- Gere uma matriz A aleatória e torne-a estritamente diagonalmente dominante.


- Utilize para vector inicial o vector nulo.
- Teste dimensões crescentes (n = 5, 10).
- Calcule, em cada iteração, os correspondentes erro relativo e resı́duo relativo em norma
e represente graficamente esses valores em função de número de iteração, assim como cada
componente da solução aproximada.
- Torne a matriz A mais fortemente dominante e observe a variação nos resultados.

13
Unidade Computacional 6.1
Tema: Calculo de valores e de vectores próprios e de valores e de vectores singulares de
matrizes utilizando os comandos de referência do MATLAB

1. Use os comandos de referência do MATLAB, para:

(a) Definir uma matriz aleatória A de dimensão 5 ou 10.


(b) Calcular B = AAT e C = AT A.
(c) Verificar propriedades relevantes de B e de C.
(d) Calcular o polinómio caracterı́stico de B e de C.
(e) Calcular os valores e vectores próprios de B e de C.
(f) Calcular os valores e vectores singulares de A, de B e de C.
(g) Calcular os factores da SVD de A, de B e de C.
(h) Definir um vector b cujas componentes são a soma das linhas das matrizes dos coefi-
cientes.
(i) Considerar os sistemas Mx = b, onde M = A, B ou C. Resolver os sistemas utilizando
a SVD das matrizes A, B ou C.
(j) Calcular a caracterı́stica de A, B e C.
(k) Faça verificações computacionais dos resultados obtidos.
(l) Relacione entre si os resultados obtidos.
(m) Justifique teoricamente o tipo de resultados obtidos de acordo com as caracterı́sticas
das matrizes.

14
Unidade Computacional 6.2
Tema: Resolução de um sistema de equações lineares sobre-determinado no sentido dos
mı́nimos quadrados via SVD ou pela resolução do sistema das equações normais

1
1. Considere as funções f (x) = 1+25x2
, x ∈ [−1, 1] (exemplo de Runge) e f (x) = exp(1 −
x2 ) , x ∈ [−1, 1].

2. A partir de cada função dada, construa uma tabela de N + 1 pontos de abcissas xi igual-
mente espaçadas no intervalo [−1, 1], {(xi , f (xi )}i=0(1)N , sendo N = 10 ou N=20.

3. Perturbe os valores f (xi ) de um ruı́do aleatório de amplitude máxima ε ≤ 10−p , para p = 1


e p=3, obtendo assim os pontos {(xi , yi )}i=0(1)N .

4. Agora, suponha que quer aproximar a tabela {(xi , yi )}i=0(1)N , por um polinómio algébrico
de grau n, para n = 3 e n = 5, no sentido dos mı́nimos quadrados.

5. Defina a matriz dos coeficientes e o termo independente do sistema de equações sobre-


determinado associado ao problema anterior.

6. Resolva o sistema via calculo da SVD, implementando o algoritmo correspondente, com o


calculo dos resı́duos.

7. Determine a matriz dos coeficientes e o termo independente dos sistemas das equações
normais associados ao problema em causa.

8. Resolva os sistemas anteriores pelo método de Cholesky.

9. Obtenha resultados para os dois métodos, para os valores de N, p e n propostos, para as


duas funções consideradas.

10. Organize os resultados em tabelas e/ou gráficos e interprete-os.

15
Matrizes para o desenvolvimento das unidades computacionais.

1. Matriz Aleatória

ai j = randomi j , i, j = 1(1)n.

Considere 0 < ai j < 1, i, j = 1(1)n.


2. Matrizes Estocásticas
Uma matriz diz-se estocástica por linhas se e só se
n
ai j ≥ 0 , i, j = 1(1)n e ∑ ai j = 1 , j = 1(1)n.
j=1

Analogamente se define uma matriz estocástica por colunas ou uma matriz duplamente
estocástica (por linhas e por colunas). Os elementos ai j são naturalmente interpretados
como probabilidades.
3. Matrizes de Vandermonde
Considere o polinómio interpolador pn ∈ Pn , pn (x) = a0 + a1 x + . . . + an xn , da tabela de
pontos de abcissas distintas {(xi , yi )}i=0(1)n , isto é, o polinómio que satisfaz as condições
de interpolação

pn (xi ) = yi , i = 0(1)n ⇔ a0 + a1 xi + . . . + an xin = yi , i = 0(1)n.

Estas condições podem escrever-se na forma do sistema Xa = y, sendo X a matriz de


Vandermonde  
1 x0 · · · x0n
 1 x1 · · · x1n 
X =  .. .. . . ..  ,
 
 . . . . 
1 xn · · · xnn
y = (y0 , . . . , yn )T e a = (a0 , . . . , an )T .
Considere:
• as abcissas igualmente espaçadas em [−1, 1].
 
• xi = cos (2i+1)π
2(n+1) , i = 0(1)n correspondentes aos zeros do polinómio de Chebyshev
Tn+1 (x) = cos((n + 1) arccos x).
Sabe-se que:
n n
det(X) = ∏ ∏ (x j − xi ).
i=0 j=i+1

4. Matriz do Sistema das Equações Normais


Pode mostrar-se que o polinómio pn ∈ Pn , pn (x) = a0 + a1 x + . . . + an xn , que melhor
aproxima a tabela de pontos de abcissas distintas {(xi , yi )}i=0(1)N , n << N, no sentido do
método dos minimos quadrados, isto é, o polinómio que minimiza a soma dos quadrados
dos resı́duos,
N N N n
Φ(a0 , a1 , . . . , an ) = ∑ R2i = ∑ (yi − pn (xi )) = ∑ (yi − ∑ ak xik )2 ,
2
i=0 i=0 i=0 k=0

16
onde
n
Ri ≡ yi − pn (xi ) = yi − ∑ ak xik , i = 0(1)N ,
k=0
é dado pelo sistema das equações normais
!
n N N
k+ j j
∑ ∑ xi ak = ∑ xi yi j = 0(1)n ,
k=0 i=0 i=0

que se pode escrever na forma


(AT A)a = Ay ,
onde A é a matriz da alı́nea anterior, a = (a0 , . . . , an )T e y = (y0 , . . . , yN )T .
Note que a matriz dos coeficientes deste sistema, B = AT A, é simétrica e definida positiva.
5. Matriz de Hilbert (simétrica, definida positiva)
Considere em C[a, b] o seguinte produto interno e a norma dele resultante
Z b p
( f , g) = f (x)g(x)w(x)dx , || f ||2 = ( f , f ) , f , g ∈ C[a, b] , w(x) ≥ 0 , x ∈ [a, b].
a

Dada uma função f ∈ C[a, b] e Pn+1 = span{ϕ j (x)} j=0,1,...,n , onde ϕ j ∈ C[a, b], o elemento
pn+1 (x) ∈ Pn+1 que melhor aproxima f no sentido dos mı́nimos quadrados, isto é, que
minimiza a norma do resı́duo
n
R(x) = f (x) − pn+1 (x) = f (x) − ∑ a j ϕ j (x), x ∈ [a, b] ,
j=0
Z b
Φ(a0 , a1 , . . . , an ) = || f − pn+1 ||22 = R2 (x)w(x)dx ,
a
é obtido pela resolução do sistema das equações normais Ax = b, onde x = (a0 , a1 , . . . , an )T ,
   
(ϕ0 , ϕ0 ) (ϕ0 , ϕ1 ) . . . (ϕ0 , ϕn ) ( f , ϕ0 )
 (ϕ1 , ϕ0 ) (ϕ1 , ϕ1 ) . . . (ϕ1 , ϕn )   ( f , ϕ1 ) 
A= e b = .
   
.. .. ..   ..
 . . .   . 
(ϕn , ϕ0 ) (ϕn , ϕ1 ) . . . (ϕn , ϕn ) ( f , ϕn )
A é regular se e só se as funções {ϕ j (x)} j=0,1,...,n são linearmente independentes.
No caso de C[a, b] = C[0, 1], w(x) = 1, de ϕ j (x) = x j , j = 0(1)n e f (x) = xn+1 (por exem-
plo), A designa-se por matriz de Hilbert e é dada por
Z 1
ai j = (ϕi−1 , ϕ j−1 ) = xi+ j−2 dx = 1/(i + j − 1), i, j = 1(1)n + 1,
0
1 1 1
 
1 2 3 ... n+1
1 1 1 1

2 3 4 ... n+1

A= .
 
.. .. .. ..
 . . . . 
1 1 1 1
n+1 n+2 n+3 ... 2n+1

Sabe-se, ainda, que:


(−1)i+ j (n + i − 1)!(n + j − 1)!
bi j = , i, j = 1(1)n + 1,
(i + j − 1)[(i − 1)!( j − 1)!]2 (n − i)!(n − j)!

2n−1  !
i 2
det(A) = 1/ n! ∏ ∼ 2−2n .
i=1 b 2i c

17
6. Matriz Tridiagonal (simétrica)
Uma solução numérica do PVF (problema de valores fronteira)
 00
y (t) = f (t)
, t ∈ [0, 1] ,
y(0) = 0 = y(1)
pode obter-se pelo método das diferenças finitas, considerando a aproximação
−y(t − h) + 2y(t) − y(t + h)
y00 (t) ≈ .
h2
Designando por yi ≈ y(ti ) obtida desta maneira e por fi = f (ti ), onde ti = ih, i = 0(1)n são
n + 1 pontos equidistantes em [0, 1], sendo h = 1n , temos que:

−yi−1 + 2yi − yi+1 = h2 fi , i = 1(1)n , y0 = 0 = yn+1 .

Concluimos que estes valores são solução do seguinte sistema tridiagonal


    
2 −1 0 · · · 0 y1 f1

 −1 2 −1 · · · 0 
 y2 


 f2 

 0 −1 2 · · · 0  y3   f3 
 = h2 
    
.. . . . . . . . .. ..
. ..
  
 . . .  .   . 
    
 0 · · · −1 2 −1   yn−1   fn−1 
0 0 · · · −1 2 yn fn

bi j = −i(n − j + 1)/(n + 1) , i, j = 1(1)n .

7. Matrizes Tridiagonais
Considere valores de ε tais que: |ε| > 2, neste caso a matriz é estritamente diagonalmente
dominante, e |ε| ≤ 2 na seguinte matriz.

ai j = ε, ,j=i
= 1, , j = i+1
= −1 , j = i−1
= 0 , |i − j| > 1.
8. Matriz não simétrica
Considere valores de a1 , a2 , ..., an−1 próximos e afastados de 1, na seguinte matriz.
 
1 1 ··· ··· ··· 1
 a1 1 1 · · · · · · 1 
 .. .. 
 
..
 . a2 1 . . 
A=  ... .. .. .. . 
 . a3 . . .. 
 . . . . .
 .. .. .. .. .. 1 

a1 a2 a3 · · · an−1 1

bi j = 0, j > i + 1, i < n−1


= 0, j < i, i 6= n
= 1/(1 − ai ), j=i i 6= n
= −1/(1 − ai ), j = i+1 i 6= n
= (a j−1 − a j )/(1 − a j )(1 − a j−1 ), j 6= 1, n, i=n
= −a1 /(1 − a1 ), j=1 i=n
= 1/(1 − an−1 ), j = n, i = n, n ≥ 2.

18
det(A) = (1 − a1 ) · · · (1 − an−1 ).

9. Matriz de Pascal (simétrica, definida positiva)


 
1 (i + j − 2)! 1 i+ j−2
ai j = = , i, j = 1(1)n,
k (i − 1)!( j − 1)! k i−1
onde k é um inteiro positivo. det(A) = k−n . bi j são números inteiros, que se podem calcular
exactamente.

19