Beruflich Dokumente
Kultur Dokumente
Unidades Computacionais
Docente: Zélia Rocha (mrdioh@fc.up.pt)
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.
1
Unidade computacional 1.2
Temas:
- Normas e Limites Vectoriais e Matriciais
- Condicionamentos
3. Defina vetores e matrizes de várias dimensões (por exemplo 5 e 10), cujas componentes
ou entradas são:
- 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
−10 0 −9 −1
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
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.
n - - - ···
c(A) ··· ··· ··· ···
det(A) ··· ··· ··· ···
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.
4
Unidade computacional 2.1
Temas:
Métodos Numéricos Directos para Sistemas e Inversas de Matrizes Triangulares
(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
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
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
7
Unidade Computacional 2.2
Temas:
- Sistemas Triangulares e Inversas de Matrizes Triangulares
- Condicionamentos
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)!
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
(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
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
(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:
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.
10
Unidade computacional 4
Tema: Factorização de Cholesky
(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
(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
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
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
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.
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.
7. Determine a matriz dos coeficientes e o termo independente dos sistemas das equações
normais associados ao problema em causa.
15
Matrizes para o desenvolvimento das unidades computacionais.
1. Matriz Aleatória
ai j = randomi j , i, j = 1(1)n.
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
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
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
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:
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
18
det(A) = (1 − a1 ) · · · (1 − an−1 ).
19