• Nenhum resultado encontrado

Introdução aos Sistemas Lineares

N/A
N/A
Protected

Academic year: 2021

Share "Introdução aos Sistemas Lineares"

Copied!
10
0
0

Texto

(1)

Introdução aos Sistemas Lineares

Profa. Cynthia de O. Laga Ferreira

Métodos Numéricos e Computacionais I - SME0305

Frequentemente, em todas as áres científicas, precisamos resolver problemas na forma

Ax = b,

onde A é uma matriz quadrada de dimensão n ⇥ n cujos elementos aij são

reais ou complexos e x e b são vetores colunas de dimensão n, x é um vetor desconhecido e b é um vetor dado.

A equação acima se escreve também 8 > > > < > > > : a11x1+ a12x2+ ...+ a1nxn = b1 a21x1+ a22x2+ ...+ a2nxn = b2 ... ... ... ... ... an1x1+ an2x2+ ... annxn = bn

Antes de apresentarmos os métodos e algorítimos de solução deste problema, vejamos algumas aplicações.

(2)

Aplicações

1 Análise de fluxo em redes

Vamos representar o problema representado pela rede da figura acima através de um sistema linear. 8 > > > > < > > > > : x1+ x2 = 20 x3 x4 = 20 x2+ x3 = 20 x1 x5 = 10 x4 +x5 = 10

Matricialmente, este problema pode ser representado por 2 6 6 6 6 4 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 3 7 7 7 7 5 2 6 6 6 6 4 x1 x2 x3 x4 x5 3 7 7 7 7 5= 2 6 6 6 6 4 20 20 20 10 10 3 7 7 7 7 5

Usando MATLAB, podemos encontrar a solução deste sistema pelo operador de divisão à esquerda

(3)

>‌> A = [1 1 0 0 0; 0 0 1 -1 0; 0 1 1 0 0; 1 0 0 0 -1; 0 0 0 -1 1]; >‌> b = [20; -20; 20; -10; -10];

>‌> x = A\b x =

O que significa a mensagem de warning dada pelo MATLAB ?

2 Ajuste de curvas

Suponha que dispomos de n pontos do plano xy (x1, y1), (x2, y2), ... , (xn, yn)

representando uma coleção de dados. Gostaríamos de encontrar um polinômio de grau n 1 , p(x) = a0+a1x+a2x2+...+an 1xn 1cujo gráfico passe por estes

pontos. Este procedimento é chamado de ajuste de curvas.

Para encontrar os n coeficientes de p(x), devemos substituir cada um dos n pontos na função polinomial a fim de obtermos n equações nas n variáveis a0, a1, ...an 1.

(4)

8 > > > < > > > : a0+ a1x1+ · · · +an 1xn 11 = y1 a0+ a2x2+ · · · +an 1xn 12 = y2 ... ... ... ... ... a0+ a2xn+ · · · +an 1xn 1n = yn

Exemplo : Encontre o polinômio de grau 4 cujo gráfico passa pelos pontos ( 2, 3), ( 1, 5), (0, 1), (1, 4) e (2, 10).

Observação: Regra de Cramer

O sistema Ax = b possui solução única se e somente se a matriz A é não singular. Desta forma, a solução pode ser calculada usando a regra de Cramer xi= det(Ai)/det(A),com i = 1, ..., n. A matriz Aié obtida a partir da matriz A

substituindo sua i ´esima coluna por b. Se computarmos os n+1 determinantes usando a fórmula de Lagrange, na qual det(A) = ⇢ P a11 se n = 1

n

j=14ijaij n = 2, ...n ,

onde 4ij = ( 1)i+jdet(Aij),sendo Aija matriz obtida eliminando-se a i ´esima

linha e a j esima´ coluna da matriz A, 2(n + 1)! operações são necessárias.

Métodos Diretos

Consideremos, novamente, o problema Ax = b,

onde A é uma matriz quadrada de dimensão n⇥n cujos elementos aijsão reais ou

complexos e x e b são vetores colunas de dimensão n, x é um vetor desconhecido e b é um vetor dado. Vamos estudar uma classe de métodos conhecida como métodos diretos. Tais métodos nos permitem obter a solução exata do problema, supondo não haver erros de arredodamento ou quaisquer outros.

Matrizes Triangulares

Suponhamos que desejamos resolver o sistema Ax = b, no qual a matriz A 2 Mn(R) é triangular superior. Neste caso, o sistema a ser resolvido pode ser

escrito na forma 8 > > > < > > > : a11x1+ a12x2+ ...+ a1nxn = b1 0 a22x2+ ...+ a2nxn = b2 ... ... ... ... ... 0 0 ... annxn = bn

(5)

Se aii 6= 0, para todo i = 1, ..., n, a solução é calculada através do algoritmo

abaixo

Algoritmo de substituições regressivas Entrada: bi, i=1,...,n e aij, i,j = 1,...,n

Saída: xi, i=1,...,n xn= bn/ann Para i de n-1 até 1 xi= ⇣ bi Pnj=i+1aijxj ⌘ /aii

Exercício: escreva uma função MATLAB que realiza o algoritmo de substituições regressivas para resolver o sistema Ax = b, sendo dados a matriz quadrada triangular superior A e o vetor b. O protótipo da função deverá ser x = backsub(A,b).

Analogamente, podemos resolver o sistema Ax = b, em que a matriz A 2 Mn(R)

é triangular inferior. Neste caso, o sistema a ser resolvido pode ser escrito na forma 8 > > > < > > > : a11x1+ 0 ... 0 = b1 a21x1+ a22x2 0 ... 0 = b2 ... ... ... ... ... an1x1+ an2x2+ ... annxn = bn

Se aii6= 0, para todo i = 1, ..., n, a solução é calculada através do algoritmo

de substituição regressiva

Algoritmo de substituições progressivas Entrada: bi, i=1,...,n e aij, i,j = 1,...,n

Saída: xi, i=1,...,n x1= b1/a11 Para i de 2 até n xi= ⇣ bi Pn 1j=1aijxj ⌘ /aii

Exercício: repita o exercício anterior e escreva uma função MATLAB que realiza o algoritmo de substituições progressivas para resolver o sistema Ax = b, sendo dados a matriz quadrada triangular inferior A e o vetor b. O protótipo da função deverá ser x = forwsub(A,b).

(6)

Ordem de Complexidade: ⇢

Substitui¸c˜ao P rogressiva : n2 Substitui¸c˜ao Regressiva : n2

Decomposição LU

(TEOREMA) Seja A uma matriz quadrada de ordem n e Ak o menor principal

k. Se det(Ak) 6= 0, para k = 1, 2, ..., n 1. Então existe uma única matriz

triangular inferior L e uma única matriz triangular superior U tais que A = LU.

Definição: (Menores Principais Ak) São matrizes definidas pelas k primeiras

linhas e colunas de A. A = 2 6 6 6 4 a11 a12 . . . a1n a21 a22 a2n ... ... an1 an2 · · · ann 3 7 7 7 5= 2 6 6 6 4 1 l21 1 ... ... ln1 ln2 · · · 1 3 7 7 7 5 2 6 6 6 4 u11 u12 · · · u1n u22 u2n ... ... unn 3 7 7 7 5= LU.

Resolver o sistema Ax = b é equivalente a resolver os sistemas Ly = b e U x = y,consecutivamente, onde y é um vetor temporário.

2 6 6 6 4 1 l21 1 ... ... ln1 ln2 · · · 1 3 7 7 7 5 0 B B B @ y1 y2 ... yn 1 C C C A= 0 B B B @ b1 b2 ... bn 1 C C C A Substitui¸c˜ao P rogressiva 2 6 6 6 4 u11 u12 · · · u1n u22 u2n ... ... unn 3 7 7 7 5 0 B B B @ x1 x2 ... xn 1 C C C A= 0 B B B @ y1 y2 ... yn 1 C C C A Substitui¸c˜ao Regressiva

(7)

Pseudo-Código

uij = aij i 1 X k=1 likukj lij = aij Pj 1k=1likukj ujj

Função Matlab [L,U] = ludecomp(A)

% Decomposicao LU sem pivoteamento % Input:Matriz quadrada A(nxn).

% Output:Matrizes triangulares inferior L e superior U de A = LU. function [L,U] = ludecomp(A)

n=size(A,1); L=eye(n); U=zeros(n); for k=1:n for j=k:n U(k,j)=A(k,j)-L(k,1:k-1)*U(1:k-1,j); end for i=k+1:n L(i,k)=(A(i,k)-L(i,1:k-1)*U(1:k-1,k))/U(k,k); end end

Ordem de Complexidade: Decomposi¸c˜ao LU : 2 3n3

Função Matlab x = resolve_lu(A,b)

% Resolver sistema Ax = b, usando decomposição LU % Input:Matriz quadrada A e vetor b.

% Output:Vetor solução x. function x = resolve_lu(A,b) [L,U] = ludecomp(A);

y = forwsub(L,b); x = backsub(U,y);

(8)

Exercício: Seja A =

2

4

5 2 1

3 1 4

1 1 3

3

5.

(a) Verifique se A satisfaz às condições da decomposição LU. (b) Decompor A em LU.

(c) Calcular o determinante de A usando a decomposição obtida. (d) Resolver o sistema Ax = b, onde b = (0, 7, 5)t.

Decomposição De Cholesky

(COROLÁRIO) Se A é simétrica e positiva definida, então A pode ser decom-posta unicamente no produto HHT, onde H é uma matriz triangular inferior

com elementos diagonais positivos.

Definição: (Positiva definida) Uma matriz simétrica A é positiva definida se para todo vetor não nulo x 2 Rn , tem-se xTAx > 0.

A = 2 6 6 6 4 a11 a12 . . . a1n a21 a22 a2n ... ... an1 an2 · · · ann 3 7 7 7 5= 2 6 6 6 4 h11 h21 h22 ... ... hn1 hn2 · · · hnn 3 7 7 7 5 2 6 6 6 4 h11 h21 · · · hn1 h22 ... hn2 ... ... hnn 3 7 7 7 5= HH T.

Pseudo-Código

hkk= v u u takk k 1 X s=1 h2 ks hkj= akj Pj 1s=1hkshjs hjj

(9)

Função Matlab H = choldecomp(A)

% Decomposicao de Cholesky

% Input:Matriz simetrica e positiva definida A(nxn). % Output:Matriz triangular inferior H.

function H = cholcomp(A) n=size(A,1); H=tril(A); for k=1:n-1 H(k,k)=sqrt(H(k,k)); H(k+1:n,k)=H(k+1:n,k)/H(k,k); for j=k+1:n H(j:n,j)=H(j:n,j)-H(j:n,k)*H(j,k); end end H(n,n)=sqrt(H(n,n));

Ordem de Complexidade: Cholesky : 1 3n

3

Função Matlab x = resolve_chol(A,b)

% Resolver sistema Ax = b, usando decomposição Cholesky % Input:Matriz quadrada A e vetor b.

% Output:Vetor solução x. function x = resolve_chol(A,b) H = choldecomp(A); y = forwsub(H,b); x = backsub(H’,y);

Exercício: Seja A =

2

4

4

2

10

2

4

4

4

4

9

3

5.

(a) Verifique se A satisfaz às condições do método de Cholesky. (b) Decompor A em HHT.

(10)

Referências

Documentos relacionados

Em cumprimento ao artigo 7º, inciso I, c/c com o artigo 6º, inciso IX, da Lei nº 8.666/93, alterada pelas Leis 8.883/94 e 9.648/98, elaboramos o presente projeto para que

M ÓDULO III SIM NÃO SIM NÃO NÃO SIM DIFICULDADE PARA RESPIRAR Atendimento de Enfermagem Sinais de Alerta Sintomas Associados Consulta médica no dia para idodos e crianças menores de

5.4 A votação dos pareceres sobre Pro- postas de Reformas e/ou Alterações Estatutárias, tanto na Comissão espe- cífica como no Plenário da Convenção, será efetuada pela

Esta pesquisa, inicialmente, apresentou os resultados de uma investigação de caráter revisionista sobre o estado da pesquisa em evidenciação voluntária de Capital Intelectual (CI),

Anais do XI Encontro Nacional de Educação Matemática – ISSN 2178-034X Página 6 4º Encontro: Noções de coeficiente angular e linear – Neste encontro trabalharam-se as

O presente estudo tem como objetivo analisar a relevância das informações contábeis sobre LL, EBITDA e FCO de empresas do setor elétrico brasileiro no período

desenvolvida em conjunto com discentes dos Cursos de Bacharelado em Sistemas de informação, Licenciatura em Matemática e Bacharelado em Engenharia Civil, da

Cartografia Tátil: Orientação e mobilidade para pessoas com deficiência visual. Jundiaí: Editora Paco Editorial Ltda,