Académique Documents
Professionnel Documents
Culture Documents
16 de Outubro de 2008
1 / 14
Conteúdo
1 Descrição
2 Operações com vectores e matrizes
3 Decomposição LU e sistemas de equações lineares com
matrizes densas e esparsas
4 Decomposição de Cholesky e sistemas de equações lineares
com matrizes simétricas densas e esparsas
5 Decomposição QR
6 Mı́nimos quadrados lineares: equações normais e
decomposição QR
7 Decomposição em valores singulares, mı́nimos quadrados
lineares e número de condição na norma ℓ2
8 Estimador do número de condição na norma ℓ1
9 Método dos gradientes conjugados para sistemas de equações
lineares
10 Interpolação polinomial
11 Equações não lineares: métodos de Newton e da secante
12 Programação linear: método simplex
2 / 14
Descrição
3 / 14
Operações com vectores e matrizes
Atribuição
ˆ ˜
Vector-linha a= 12 3 −4
3 >> a = [ 1 3 -4 ]
1
Vector-coluna b = 4 −2 5 >> b = [ 1; -2; 3/5 ]
3
2 5 3
1 1 2
Matriz A=4 3 5 8 5 >> A = [ 1 1 2; 3 5 8; 13 21 34 ]
13 21 34
4 / 14
Decomposição LU
Implementação
Matrizes densas com escolha parcial de pivot
Matrizes esparsas com escolha limite de pivot e critério de Markowitz
5 / 14
Decomposição de Cholesky
Descrição
Para matrizes SPD densas e esparsas; se a matriz não for simétrica
positiva definida, termina com uma mensagem de erro.
Aplicação
>> A=[9 1 1; 1 9 1; 1 1 9];
>> b=[11 11 11]’;
>> R=chol(A);
>> y = R’ \ b;
>> x = R \ y
Resolução do sistema Ax = b
>> x = A \ b
6 / 14
Decomposição QR
Descrição
Matrizes densas: fornece as matrizes Q e R
Matrizes esparsas: fornece apenas a matriz R, sendo possı́vel
implementar o método das equações semi-normais para
resolver Ax = b com A = QR:
1 Calcular b = AT b;
2 Resolver R T y = b e Rx = y .
Aplicação
>> R=qr(S);
>> b1 = S’*b;
>> y=R’\b1;
>> x=R\y
7 / 14
Mı́nimos quadrados lineares
Exemplo
1 2 1
x1
Bx = b com B = 2 3 , x =
,b = 1
x2
3 5 1
Métodos de resolução
Equações normais:
>> x = (B’*B)\(B’*b)
Decomposição QR:
>> [m,n]=size(B);
>> [Q,R]=qr(B);
>> R=R(1:n,:);
>> bb=Q’*b;
>> x=R\bb(1:n)
8 / 14
Decomposição em valores singulares
Aplicação
>> [U,S,V] = svd(A)
ou
>> max(svd(A))/min(svd(A))
9 / 14
Estimador do número de condição ℓ1
Aplicação
Estimador de Hager:
>> condest(A)
Cálculo de cond1 (A):
>> cond(A,1)
10 / 14
Método dos gradientes conjugados para sistemas de
equações lineares
Exemplo
Ax = b com
9 1 1 11
A = 1 9 1 , b = 11
1 1 9 11
Aplicação
Sem precondicionamento:
>> x=pcg(A,b,tol,maxit);
Com precondicionamento diagonal:
>> x=pcg(A,b,tol,maxit,diag(diag(A)));
11 / 14
Interpolação polinomial
Exemplo
Suponhamos que pretendemos obter o polinómio interpolador da
função f dada por
xi −2 −1 0 1 2
yi = f (xi ) 1 0 1 0 1
Aplicação
>> X = -2:2
>> Y = [1 0 1 0 1];
>> P = lagrangepoly(X,Y);
Resultado
Obtém-se P = (0.3333, 0, −1.3333, 0, 1.0000), pelo que o
polinómio interpolador é
1 4
P(x) = x 4 − x 2 + 1
3 3 12 / 14
Equações não lineares
Exemplo
f (x) = 0 com f (x) = x 3 − 2x 2 + 2x − 1
Aproximação da solução
método de Newton:
>> x=newtsol(x0,@funcao,tolabs,tolrel);
método da secante:
>> x=secant(x0,@funcao,tolabs,tolrel);
13 / 14
Programação Linear
Exemplo
Minimize x1 + x2 + x3
s.a. x1 + x2 + 2x3 = 4
x1 + x2 + 3x3 = 5
x1 , x2 , x3 ≥ 0
Aplicação
>> c=[1 1 1]’;
>> A=[1 1 2; 1 1 3];
>> b=[4 5]’;
>> lb=zeros(3,1);
>> x=linprog(c,[],[],A,b,lb,[]);
14 / 14