A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Marcos Martins, Renato Elias e Alvaro Coutinho [renato,

Apresentações semelhantes


Apresentação em tema: "Marcos Martins, Renato Elias e Alvaro Coutinho [renato,"— Transcrição da apresentação:

1 Minicurso 3 - Módulo 1 Conceitos Básicos de Métodos Numéricos para Computação Científica
Marcos Martins, Renato Elias e Alvaro Coutinho [renato, Núcleo de Atendimento em Computação de Alto Desempenho Universidade Federal do Rio de Janeiro, Brasil

2 Método Carga horária de 10 horas Apresentação de slides
Conteúdo fortemente baseado nas referências bibliográficas Apresentação sem detalhamento matemático Idéia básica do conceito Características e conceitos principais Algoritmo (se for o caso) Ilustração de aplicação Discussão sucinta, se houver necessidade (vantagens, desvantagens, aplicações específicas etc)

3 Referências Michael T. Heath Yousef Saad Richard Barrett et al
Scientific Computing: An Introductory Survey” McGraw-Hill, 1997 ISBN Yousef Saad Iterative Methods for Sparse Linear Systems PWS Publishing Company, 1996 ISBN X Richard Barrett et al Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods Gilbert Strang Computational Science and Engineering, Wellesley-Cambridge Press, 2007.

4 Sumário Aula 1 – Aritmética Computacional
Introdução Tratamento do Erro Computacional Condicionamento Estabilidade e Precisão Representação Numérica de Ponto Flutuante Aula 2 – Sistemas de Equações Lineares Normas de Vetores e Matrizes Condicionamento de uma Matriz Erros e Resíduos

5 Sumário Aula 2 – Sistemas de Equações Lineares (Continuação)
Métodos Diretos de Solução Métodos Iterativos Estacionários Jacobi Gauss-Seidel Successive Overrelaxation Method Métodos Iterativos Não-Estacionários Steepest Descent Gradientes Conjugados Resíduos Mínimos Resíduos Mínimos Generalizados Pré-Condicionamento

6 Sumário Aula 3 – Sistemas de Equações Não-Lineares
Introdução Condicionamento Método de Ponto Fixo Método de Newton Convergência Aula 4 – Métodos Discretos Diferenças Finitas Elementos Finitos

7 Aula 1 – Aritmética Computacional
A Computação Científica (ou Análise Numérica) objetiva o projeto e a análise de algoritmos para solução de problemas oriundos da Ciência da Computação e Engenharia Trata as grandezas envolvidas de forma discreta (em vez de contínua) Preocupa-se em analisar os efeitos das aproximações Estratégia geral: substituir um problema de solução difícil por um problema de fácil solução relacionada ou próxima ao problema real Complicado × Simples Não-Linear × Linear Infinito × Finito Diferencial × Algébrico

8 Aula 1 – Aritmética Computacional
Fontes de aproximação Antes da computação Modelagem Medidas empíricas Cálculos prévios Durante a computação Truncamento ou “discretização” Arredondamento A precisão do resultado final pode refletir o emprego das aproximações e ainda pode ser amplificado de acordo com a natureza do problema ou algoritmo

9 Aula 1 – Aritmética Computacional
Erro de Dados e Erro Computacional Problema típico: calcular o valor de uma função f : R -> R para um determinado valor de x O valor real do dado de entrada é representado por x; o valor real do resultado é representado por f(x). A aproximação do dado de entrada é representada por ; a aproximação (algoritmo) da função calculada é representada por A expressão de cálculo do erro total (ET) é dada por A expressão do erro total compreende a soma do erro computacional ao erro de propagação. Impossível de calcular em aplicações práticas A escolha do algoritmo de solução não tem efeito sobre o erro de propagação

10 Aula 1 – Aritmética Computacional
Erro de Truncamento é a diferença entre o resultado real (para o dado real) e o resultado produzido pelo algoritmo empregado usando aritmética infinita. Exemplos desse tipo de erro são o truncamento de séries infinitas e a interrupção de um processo iterativo antes da convergência Erro de Arredondamento é a diferença entre o resultado produzido pelo algoritmo empregado usando aritmética infinita, e o resultado produzido pelo mesmo algoritmo usando aritmética finita. Deve-se à representação inexata dos números reais e operações aritméticas correspondentes Erro computacional é a soma do erro de truncamento e o erro de arredondamento, mas, usualmente, um deles é dominante

11 Aula 1 – Aritmética Computacional
Um problema é bem-condicionado quando pequenas modificações nos dados causam modificações da mesma ordem na solução final Um problema é mal-condicionado quando pequenas modificações nos dados causam modificações de ordens superiores na solução final O número de condicionamento de uma função unidimensional pode ser avaliado através da expressão O problema é mal-condicionado quando Cond >> 1

12 Aula 1 – Aritmética Computacional
Exemplo: avaliação da função cosseno para argumentos próximos a , por exemplo, e Erro Posterior (EP) e Erro Anterior (EA)

13 Aula 1 – Aritmética Computacional
Erro Anterior A solução aproximada do problema exato x é assumida como a solução exata f do problema modificado Que perturbação ao problema original corresponde ao resultado obtido ? Qual a correspondência entre o erro do resultado obtido e o erro dos dados ? A solução aproximada é de boa qualidade se for “igual” a solução exata para o problema aproximado Exemplo:

14 Aula 1 – Aritmética Computacional
Estabilidade e Precisão O conceito de estabilidade de um algoritmo é análogo ao conceito de condicionamento de um problema Um algoritmo é considerado estável se o resultado produzido for relativamente insensível às perturbações ocorridas durante a computação O conceito de precisão se refere à proximidade da solução obtida pelo algoritmo com a solução exata Estabilidade não garante precisão Precisão depende do condicionamento do problema tanto quanto da estabilidade do algoritmo Falta de precisão pode resultar da aplicação de um algoritmo estável a um problema mal-condicionado ou da aplicação de um algoritmo instável a um problema bem-condicionado

15 Aula 1 – Aritmética Computacional
Representação Numérica de Ponto Flutuante Um sistema de ponto flutuante é caracterizado por quatro parâmetros (números inteiros): Base b Precisão t Expoente e A representação de um número x é dada por onde d0d1...dt-1 é a mantissa, L e U são o mínimo e máximo expoente, respectivamente e d1d2...dt-1 é chamada fração

16 Aula 1 – Aritmética Computacional
Exemplos de sistemas de ponto flutuante Normalização O primeiro dígito (d0) é sempre diferente de zero, a menos que o número representado seja o próprio zero Num sistema normalizado, a mantissa sempre satisfaz a relação 1 ≤ m < b

17 Aula 1 – Aritmética Computacional
Objetivos da normalização Representação de cada número é única Não há desperdício de precisão com zeros nos dígitos iniciais Dígito inicial não precisa ser armazenado no sistema binário Sistemas de ponto flutuante são finitos e discretos O total de números representáveis em um sistema normalizado é calculado por: 2 (b – 1) b t-1 (U – L + 1 ) + 1 O menor número normalizado (Underflow Level – UFL) é calculado por: b L O maior número normalizado (Overflow Level – OFL) é calculado por: b U+1 (1 – b-t) Os números representados em um sistema de ponto flutuante são igualmente espaçados apenas entre potências de b sucessivas Nem todos números reais são exatamente representáveis. Aqueles que são, são denominados números de máquina

18 Aula 1 – Aritmética Computacional
Ilustração de sistema de ponto flutuante b = 2, t = 3, L = -1 e U = 1 Total de 25 números gerados Valores máximo e mínimo representáveis Representação granular com números desigualmente espaçados

19 Aula 1 – Aritmética Computacional
Regras de arredondamento Um número x que não pode ser representado exatamente em um sistema de ponto flutuante é aproximado por outro número de acordo com a regra de arredondamento A representação desse número x no sistema de ponto flutuante é dada por fl(x) A representação aproximada gera o erro de arredondamento Há duas regras de arredondamento: Truncamento: os dígitos da mantissa após a posição t+1 são simplesmente desprezados Ao mais próximo: o número fl(x) é o mais próximo ao valor real x; em caso de empate, arredonda-se para o número cujo último dígito é par. Devido a esse procedimento, essa regra também é conhecida por arredondamento ao número par O arredondamento ao mais próximo é mais preciso e é a regra utilizada pelo sistema IEEE

20 Aula 1 – Aritmética Computacional
A precisão de um sistema de ponto flutuante pode ser caracterizada por uma grandeza conhecida por unit round off, machine precision, ou machine epsilon, simbolizada por emach Para arredondamento por truncamento, emach = b 1-t Para arredondamento ao mais próximo, emach = ½ b 1-t Uma forma alternativa de se caracterizar o número de máquina é considerar o menor número e tal que fl(1+e) > 1 (embora não seja equivalente à definição do conceito) O erro relativo máximo oriundo da representação de um número em um sistema de ponto flutuante obedece à seguinte relação

21 Aula 1 – Aritmética Computacional
Para o sistema de ponto flutuante ilustrado anteriormente, tem-se emach = 0,25 para arredondamento por truncamento e emach = 0,125 para arredondamento ao mais próximo Para o sistema IEEE, tem-se emach = × para precisão simples e emach = × para precisão dupla Portanto, o sistema IEEE representa números decimais com 7 e 16 dígitos decimais, para precisão simples e dupla, respectivamente Não se podem confundir os conceitos de número de máquina e UFL Observa-se a seguinte relação 0 < UFL < emach < OFL

22 Aula 1 – Aritmética Computacional
Subnormalização e underflow gradual A normalização produz um vão entre os números 0 e 1 Se os dígitos iniciais da mantissa puderem ser nulos, mas apenas quando o expoente atinge seu valor mínimo, então o vão entre os números 0 e 1 é preenchido com números subnormalizados ou denormalizados A subnormalização permite uma extensão no intervalo de valores representáveis, embora haja perda de precisão O número de máquina permanece inalterado

23 Aula 1 – Aritmética Computacional
Valores de exceção O sistema IEEE prevê dois valores especiais representativos de situações de exceção Inf, representativo do infinito, é oriundo de uma divisão por zero NaN, sigla para “Not a Number”, é oriundo de operações indefinidas ou indeterminadas, tais como 0/0, 0 * Inf, ou Inf / Inf Os valores de exceção são implementados através de valores reservados dos expoentes

24 Aula 1 – Aritmética Computacional
Adição ou subtração: a mantissa do menor número é movimentada até que os expoentes dos operandos sejam igualados. Pode haver perda de precisão do menor número ou mesmo a sua anulação Multiplicação: o produto de dois números com t dígitos de precisão pode conter, no máximo, 2t dígitos e portanto, o resultado pode sofrer perda de precisão Divisão: o quociente entre dois números de t dígitos de precisão pode conter mais que t dígitos, tais como representações binárias infinitas de números múltiplos de 0,1 (exceto 0,5) Portanto, os resultados das operações aritméticas em sistemas de ponto flutuante freqüentemente diferem dos resultados produzidos pela aritmética infinita

25 Aula 1 – Aritmética Computacional
Exemplo 1 – adição b = 10, t = 6, x = 1, × 102 e y = 6, × 10-1 fl(x + y) = fl(1, × , × 102) = fl(1, × 102) = = 1, × 102, assumindo arredondamento ao mais próximo Os dois últimos dígitos foram perdidos e o antepenúltimo dígito determinou o arredondamento Se o expoente de y fosse menor que -4, o valor da soma seria o próprio x Exemplo 2 – multiplicação Para os mesmos valores de x e y anteriores, tem-se fl(x * y) = fl(1,92403 * 6, × 102-1) = fl(12, × 101) = = fl(1, × 102) = 1, × 102 Houve uma perda de 6 dígitos

26 Aula 1 – Aritmética Computacional
Números reais com expoentes além do limite superior provocam overflow Números reais com expoentes abaixo do limite inferior provocam underflow. Entretanto, a substituição desses números por zero é uma aproximação razoável Embora haja perda devido ao underflow, esta produz um impacto muito menor que a ocorrência de overflow A ocorrência de overflow provoca a parada do processamento, enquanto que a ocorrência de underflow pode ser “silenciosamente” resolvida através do arredondamento ao zero

27 Aula 1 – Aritmética Computacional
Exemplo 3 – Série infinita Esta série diverge em aritmética infinita, embora convirja em aritmética de ponto flutuante Explicações possíveis A soma parcial eventualmente ultrapassa o limite de overflow 1/n eventualmente ultrapassa o limite de underflow e é anulado As somas parciais param de produzir resultados uma vez que a soma à parcela corrente 1/n equivalha à 1 + e, onde e < emach, ou seja, Dividindo ambos membros por S, tem-se , ou seja,

28 Aula 1 – Aritmética Computacional
A relação x flop y = fl(x op y) ocorre sempre que o resultado x op y seja possível de ser representado no sistema de ponto flutuante corrente As operações de adição e multiplicação em sistemas de ponto flutuante são comutativas mas não são associativas (embora sejam em aritmética infinita). Por exemplo, assumindo e < emach, observa-se que (1 + e) + e = 1, mas 1 + (e + e) > 1 Exemplo 4 – Subtração A subtração entre dois números de precisão t com mesmo sinal e de mesma magnitude produz um resultado com menos de t dígitos de precisão, e portanto, sempre é exatamente representado A razão é que os dígitos iniciais dos dois números se cancelam. Exemplo: 1, × 102 – 1, × 102 = 1, × 10-1

29 Aula 1 – Aritmética Computacional
A despeito do resultado exato, o “cancelamento” pode estar acompanhado de perda de informação Em geral, os operandos sofrem arredondamento ou algum erro anterior à operação corrente, o que pode ser amplificado durante uma operação de subtração O cancelamento não é o gerador do erro resultante, mas é bastante sensível aos demais erros, apenas sinalizando-os ou mesmo amplificando-os Os dígitos perdidos durante um cancelamento são os iniciais e portanto, os mais significativos, ao contrário do arredondamento que provoca a perda dos dígitos finais e portanto, os menos significativos Devido a este efeito, a subtração entre números grandes e de mesma ordem é bastante sujeita a erros de arredondamento Em geral, o cancelamento pode ser evitado através da substituição da expressão por outra equivalente ou pela alteração da ordem das parcelas. Infelizmente, nem sempre essas alternativas são possíveis ou mesmo produzem resultados significativos

30 Aula 2 – Sistemas de Equações Lineares
Dada uma matriz A de dimensões m × n e um vetor b de dimensão m e um vetor de incógnitas x de dimensão n, a equação Ax = b constitui um sistema linear Se a equação for verdadeira, então as colunas da matriz A podem ser combinadas linearmente através dos componentes de x, ou seja, há solução para o sistema. Caso contrário, a solução é impossível Entretanto, mesmo quando há solução, esta pode ser única ou compreender infinitas soluções Para a aula corrente, consideraremos apenas sistemas quadrados, ou seja m = n

31 Aula 2 – Sistemas de Equações Lineares
Singularidade de uma matriz Uma matriz A (n × n) é não-singular se possuir as seguintes propriedades A inversa de A, denotada por A-1, existe O determinante de A, denotado por det(A), é diferente de zero A não sofre de deficiência de posto Qualquer que seja o vetor z não-nulo, Az ≠ 0 Se A for não-singular, então Ax = b possui apenas uma solução x Se A for singular, então o número de soluções é determinado pelo vetor b Se A é singular e Ax = b, então A(x + gz) = b, para qualquer escalar g, onde Az = 0 e z ≠ 0, então a solução não é única Portanto, quanto ao sistema, têm-se: Uma solução: não-singular Nenhuma solução: singular Infinitas soluções: singular

32 Aula 2 – Sistemas de Equações Lineares
Interpretação geométrica no plano Em um sistema linear de duas dimensões, cada equação determina uma reta no plano O ponto de intersecção entre as duas retas determina a solução única do sistema Se as duas retas forem paralelas, então o sistema é singular. Caso as retas forem coincidentes (infinitos pontos de intersecção), então há infinitas soluções para o sistema. Caso contrário, o sistema não possui solução (as retas não se intersectam e portanto, não há pontos em comum) Interpretação geométrica em outras dimensões No espaço, cada equação determina um plano Quando há interseção entre os planos através de uma reta, o sistema é não-singular e a solução é única Quando os planos são paralelos, há infinitas soluções se os planos forem coincidentes ou nenhuma solução se não forem coincidentes Para dimensões superiores, cada equação corresponde a um hiperplano e são válidas as considerações correspondentes, em cada caso

33 Aula 2 – Sistemas de Equações Lineares
Normas de vetores A norma-p de um vetor é dada por , onde p é um inteiro positivo não-nulo e x tem dimensão n Casos especiais Norma-1: Norma-2: Norma-∞: A seguinte relação é válida para x Rn ||x||1 ≥ ||x||2 ≥ ||x||∞

34 Aula 2 – Sistemas de Equações Lineares
Normas de matrizes A norma de uma matriz é dada por e mede o alongamento máximo que uma matriz produz em um vetor para cada norma desse vetor A norma-1 corresponde à maior soma de todas as somas das colunas em valores absolutos, ou seja, A norma-∞ corresponde à maior soma de todas as somas das linhas em

35 Aula 2 – Sistemas de Equações Lineares
O número de condicionamento de uma matriz é definido por Cond(A) = ||A|| . ||A-1|| Por convenção, Cond(A) = ∞ se A for singular, visto que ou seja, o número de condicionamento de uma matriz mede a razão entre o máximo alongamento e o máximo encurtamento que esta matriz produz sobre um vetor não-nulo Uma matriz com número de condicionamento grande está próxima da singularidade

36 Aula 2 – Sistemas de Equações Lineares
Propriedades do número de condicionamento de uma matriz Para qualquer matriz A, Cond(A) ≥ 1 Para a matriz identidade, Cond(I) = 1 Para qualquer matriz A e escalar g, Cond(gA) = Cond (A) Para qualquer matriz diagonal D = diag(di), Cond (D) = (max|di|)/(min|di|) Cálculo do número de condicionamento de uma matriz A definição do número de condicionamento de uma matriz envolve a inversa desta matriz e portanto, implica em um cálculo não-trivial O cálculo do número de condicionamento implica em mais esforço computacional do que o cálculo da solução do sistema Na prática, o número de condicionamento é apenas estimado A norma da matriz envolvida é facilmente computada através das norma-1 ou norma- ∞. Entretanto, a norma da inversa não é trivial

37 Aula 2 – Sistemas de Equações Lineares
Interferências no cálculo da solução são avaliados em função do condicionamento da matriz A interferência na solução devido a perturbações no vetor independente b é avaliada por A interferência na solução devido a perturbações na matriz A é avaliada por A relação da interferência na solução e o resíduo correspondente é dada por Em duas dimensões, o efeito das perturbações sobre a solução de um sistema de equações lineares pode ser ilustrado conforme segue

38 Aula 2 – Sistemas de Equações Lineares
A relação entre a solução aproximada e o número de condicionamento, para dados de entrada com precisão máxima, é dada por Portanto, a solução aproximada perde cerca de log10(Cond(A)) dígitos decimais de precisão relativamente à precisão dos dados de entrada As análises das interferências na precisão da solução são funções das normas de vetores e matrizes, o que implica na avaliação destas interferências para os maiores componentes da solução. O erro relativo correspondente às componentes de menor magnitude pode ser maior Os valores das perturbações sobre as componentes menores pode ser obtido, embora não trivialmente O condicionamento de uma matriz pode ser afetado por escalonamento Mal-condicionamento pode ser resultado de escalonamento mal feito tanto quanto da proximidade da matriz à singularidade Um bom escalonamento pode melhorar o condicionamento da matriz do sistema, embora não possa alterar a sua proximidade à singularidade

39 Aula 2 – Sistemas de Equações Lineares
Se a solução aproximada satisfaz exatamente a então e portanto, um resíduo relativo grande implica que houve um erro anterior grande na matriz do sistema e corresponde à instabilidade do algoritmo Um algoritmo estável produz um resíduo relativo pequeno, não obstante o quanto mal-condicionada for a matriz não-singular

40 Aula 2 – Sistemas de Equações Lineares
Métodos diretos de solução de sistemas de equações lineares A estratégia de solução de um sistema de equações lineares é transformá-lo em outro sistema com mesma solução, mas que demande menos esforço computacional Conceitos preliminares Multiplicação à esquerda Multiplicação à direita Escalonamento das linhas Escalonamento das colunas Sistemas transformados Matriz triangular Eliminação de Gauss e fatoração LU Eliminação de Gauss-Jordan Aspectos computacionais Tipos especiais de sistemas de equações lineares

41 Aula 2 – Sistemas de Equações Lineares
Multiplicando-se à esquerda ambos os membros do sistema de equações lineares por uma matriz M não-singular, tem-se Ou seja, a solução permanece inalterada. Exemplo: multiplicando-se ambos os membros do sistema pela matriz de permutação P (onde a matriz P possui um 1 em cada linha e coluna e zeros nas demais posições e P-1 = PT), da forma P Ax = P b, reordenam-se as linhas, mas mantém-se a solução x inalterada Multiplicando-se à direita a matriz do sistema pela matriz P, da forma AP x = b, reordenam-se as colunas e as componentes da solução do sistema original, sem entretanto, alteraram-se os valores das componentes da solução, ou seja,

42 Aula 2 – Sistemas de Equações Lineares
Escalonamento de linhas: multiplicando-se a esquerda ambos os membros do sistema linear por uma matriz não-singular D, D Ax = D b, cada linha da matriz A é multiplicada pela posição da diagonal da matriz D correspondente, e a solução permanece inalterada Escalonamento de colunas: multiplicando-se a direita a matriz A pela matriz D, multiplicam-se as colunas daquela (A) pelos correspondentes valores da diagonal desta (D), o que provoca o escalonamento da solução, ou seja, x = (AD)-1 b = D-1 A-1 b

43 Aula 2 – Sistemas de Equações Lineares
Matriz triangular Uma matriz é triangular-superior se todas as entradas acima da diagonal principal forem diferentes de zero, ou seja, aij = 0 para i > j Uma matriz é triangular inferior se todas as entradas abaixo da diagonal principal forem diferentes de zero, ou seja, aij = 0 para i < j Qualquer matriz pode ser transformada em uma matriz triangular superior ou inferior através de transformações que envolvem os conceitos vistos anteriormente Após a triangulação da matriz, procede-se às operações de substituição para frente (forward-substitution) ou para trás (backward-substitution), conforme a triangulação seja inferior ou superior, respectivamente, para o cálculo da solução final

44 Aula 2 – Sistemas de Equações Lineares
Forward-substitution para a solução do sistema triangular inferior do tipo Lx = b Backward-substitution para a solução do sistema triangular superior do tipo Ux = b

45 Aula 2 – Sistemas de Equações Lineares
Eliminação A transformação da matriz genérica em triangular envolve a substituição de determinadas posições da matriz por valores nulos Esse procedimento é realizado através da combinação linear adequada das linhas Considerando o vetor aT = [a1, a2], se a1 ≠ 0, então

46 Aula 2 – Sistemas de Equações Lineares
Matriz de eliminação elementar A expressão geral para a matriz de eliminação elementar Mk, de forma a anularem-se as posições do vetor a a partir da linha k, é aplicada conforme segue onde ak, chamado de pivô, não deve ser zero e mi = ai/ak, i = k+1, ..., n Mk é triangular inferior, diagonal unitária e não-singular

47 Aula 2 – Sistemas de Equações Lineares
A expressão da matriz de eliminação elementar é dada por onde mk = [0, ..., 0, mk+1, ..., mn]T e ek é a k-ésima coluna da matriz identidade A inversa da matriz de eliminação é diretamente calculada por e corresponde exatamente à matriz Mk com os sinais dos multiplicadores invertidos Se Mj, j > k for outra matriz de eliminação elementar, com vetor de multiplicação mj, então e similarmente para o produto das inversas, LkLj

48 Aula 2 – Sistemas de Equações Lineares
Exemplo – matriz de eliminação Observa-se que

49 Aula 2 – Sistemas de Equações Lineares
Eliminação de Gauss Para se reduzir um sistema linear Ax = b à forma triangular superior, primeiramente, calcula-se M1, com a11 como pivô, para anular todas as posições da primeira coluna da matriz A, abaixo do pivô a11. O sistema se transforma em M1 Ax = M1 b, mas a solução permanece inalterada Em seguida, calcula-se M2, usando-se a22 como pivô, para anular todas as posições da segunda coluna da matriz M1A, abaixo do pivô a22. O sistema se transforma em M2M1 Ax = M2M1 b, mas a solução permanece inalterada O sistema resultante é triangular superior, oriundo da seqüência de operações M Ax = Mn M1 Ax = Mn M1 b = M b que pode ser resolvido por back-substitution para se obter a solução do sistema original Ax = b

50 Aula 2 – Sistemas de Equações Lineares
Fatoração LU O produto LkLj, k < j, define o fator L, triangular inferior e diagonal unitária, ou seja, O produto MjMkA, k < j, define o fator U, triangular superior, ou seja, U = MA Assim, A = LU, onde L é o fator triangular inferior diagonal unitário e U é o fator triangular superior Portanto, Ax = b se transforma em LU x = b, e pode ser resolvido por substituição para frente (forward substitution) pelo fator triangular inferior, ou seja, Ly = b, seguido da substituição para trás (backward substitution) pelo fator triangular superior, ou seja, Ux = y A eliminação de Gauss e a fatoração LU são duas formas de expressar o mesmo processo de solução, visto que, Ux = y = Mb A matriz de eliminação de Gauss e os fatores LU são únicos para uma dada matriz. Entretanto, se, por algum motivo, a ordem das colunas ou das linhas da matriz original for alterada, a matriz de eliminação de Gauss e os fatores LU serão alterados, correspondentemente, de forma a garantir a propriedade da unicidade em relação à nova matriz ordenada

51 Aula 2 – Sistemas de Equações Lineares
Exemplo – eliminação de Gauss A anulação dos elementos da primeira coluna abaixo da diagonal principal é dada por

52 Aula 2 – Sistemas de Equações Lineares
Exemplo (continuação) – eliminação de Gauss A anulação dos elementos abaixo do pivô da segunda coluna é dada por

53 Aula 2 – Sistemas de Equações Lineares
Exemplo (continuação) – eliminação de Gauss O sistema resultante após a eliminação de Gauss é Cuja solução é dada por x = [-1, 2, 2]T A fatoração LU é avaliada conforme segue

54 Aula 2 – Sistemas de Equações Lineares
Permutação de linhas A eliminação de Gauss pode ser interrompida devido à ocorrência de pivôs nulos a qualquer instante A solução é relativamente simples: quando ocorrer um valor nulo no pivô k, essa linha é trocada com outra que não tenha valor nulo correspondente à coluna k No caso em que todos os valores forem nulos, nada pode ser feito, a menos de seguir à próxima coluna. Nesse caso, a matriz U é singular, embora a fatoração LU ainda possa ser executada completamente Caso U seja singular, não será possível o cálculo da solução visto que haverá divisão por pivô nulo

55 Aula 2 – Sistemas de Equações Lineares
Pivotamento parcial A princípio, qualquer valor não-nulo pode ser um pivô, embora o ideal seja um valor que minimize o erro A escolha dos pivôs deve ser de tal forma a não amplificar os erros de arredondamento anteriores, quando multiplicando a submatriz resultante pela matriz de eliminação corrente Os multiplicadores não devem exceder a unidade, o que pode ocorrer se o maior número da coluna corrente, abaixo da diagonal correspondente, for escolhido como pivô Esse procedimento é conhecido pivotamento parcial e é essencial à estabilidade numérica da implementação de Gauss para sistemas de equações lineares gerais

56 Aula 2 – Sistemas de Equações Lineares
Fatoração LU com pivotamento parcial O pivotamento parcial é executado através da multiplicação prévia da matriz corrente do sistema pela matriz correspondente de permutação P. Portanto, o cálculo do fator triangular superior é dado por U = MA = Mn-1 Pn M1 P1A Assim, M-1 torna-se predominantemente triangular, ou seja, surgem alguns valores não-nulos no triângulo superior devido às diversas permutações Alternativamente, entretanto, a aplicação prévia da matriz de permutação completa à matriz original A resulta em PA = LU, onde P = Pn P1 é a matriz de permutação completa gerada pelo pivotamento parcial e L é realmente triangular inferior com diagonal unitária

57 Aula 2 – Sistemas de Equações Lineares
Pivotamento completo Compreende a busca do maior valor presente na submatriz em eliminação corrente e a substituição do pivô correspondente por esse valor Demanda mais esforço que o pivotamento parcial pois, além da busca em maior área, implica na permutação de linhas e colunas correspondentes à submatriz em eliminação corrente Teoricamente, garante mais estabilidade que o pivotamento parcial que, na prática, é bastante adequado e freqüentemente acompanha a eliminação de Gauss O pivotamento completo é dado por PAQ = LU, onde L é o fator triangular inferior e diagonal unitária, U é o fator triangular superior P é a matriz de permutação de linhas e Q é a matriz de permutação de colunas

58 Aula 2 – Sistemas de Equações Lineares
Exemplo – pivotamento A necessidade do pivotamento não se relaciona à singularidade da matriz. Seja a matriz A, dada por Observa-se que a matriz A é não-sigular (det(A) ≠ 0) e não possui fatoração LU (diagonal principal nula), a menos que as linhas sejam permutadas. A matriz B, a seguir, embora seja singular (det(B) = 0), possui fatoração LU

59 Aula 2 – Sistemas de Equações Lineares
Exemplo – necessidade do pivotamento Para ilustrar o efeito de pivôs pequenos, seja a matriz a seguir onde e é um número positivo e menor que o número de máquina. O cálculo da matriz de eliminação e a fatoração LU, em aritmética de ponto flutuante, retornam Entretanto,

60 Aula 2 – Sistemas de Equações Lineares
Exemplo (continuação) – necessidade do pivotamento As ocorrências de pivô muito pequeno e multiplicador correspondente muito grande causaram uma perda significativa durante a fatoração LU (elemento U22 sofreu perda de roundoff durante a operação de adição) A permutação de linhas resolve o problema, conforme segue a fatoração LU em aritmética de ponto flutuante Observa-se que o resultado da fatoração LU após a permutação das linhas é correto, ou seja, embora ainda tenha havido perdas de oriundas do roundoff

61 Aula 2 – Sistemas de Equações Lineares
Necessidade do pivotamento Embora o pivotamento seja necessário para garantir a estabilidade da eliminação de Gauss, ele não é necessário para algumas classes de matrizes importantes Matriz diagonal dominante Matriz simétrica positiva definida A = AT e xT A x > 0 para todo x ≠ 0

62 Aula 2 – Sistemas de Equações Lineares
É possível estimar o erro para trás (backward error) produzido pela eliminação de Gauss devido à aritmética de ponto flutuante (slide 39) A literatura indica o valor do erro de acordo com a relação ||E|| ≤ r n emach ||A||, onde r é o fator de crescimento que é a razão entre o maior elemento de U e o maior elemento de A e n é a dimensão de A Portanto, sem o pivotamento, a maior entrada de U pode ser extremamente grande causando instabilidade no algoritmo de eliminação

63 Aula 2 – Sistemas de Equações Lineares
O pivotamento parcial produz valores de r, no máximo, da ordem de 2n-1, embora raramente Na prática, o pivotamento parcial é suficiente para produzir erro conforme ||E|| ≈ n emach ||A||, o que significa que o algoritmo de eliminação de Gauss com pivotamento parcial é suficiente para produzir resíduos (relativos) pequenos independentemente do condicionamento da matriz Portanto, um resíduo relativo pequeno não necessariamente implica que a solução esteja próxima da real, a menos que a matriz seja bem condicionada (slide 37) Embora o pivotamento completo produza fatores de crescimento menores que o pivotamento parcial, o ganho de estabilidade não compensa o esforço computacional necessário à sua implementação

64 Aula 2 – Sistemas de Equações Lineares
Eliminação de Gauss-Jordan A eliminação de Gauss-Jordan produz uma matriz diagonal em vez de uma matriz triangular As combinações entre as linhas são feitas de tal forma que as posições acima e abaixo do pivô sejam anuladas A matriz de eliminação de Gauss-Jordan é apresentada a seguir, onde mi = ai/ak, i = 1, ..., n

65 Aula 2 – Sistemas de Equações Lineares
Aspectos Computacionais A eliminação de Gauss ou a fatoração LU têm a seguinte forma geral de 3 laços aninhados, conforme segue For __________ aij = aij – (aik/akk)akj End Cada laço pode ser disposto em qualquer ordem, totalizando 6 possibilidades Essas variações implicam em diferentes acessos à memória, o que pode produzir resultados de desempenho diferentes, devido às características da arquitetura da plataforma corrente, tais como paginação, memória cache etc

66 Aula 2 – Sistemas de Equações Lineares
Aspectos computacionais As matrizes de eliminação Mk, as suas inversas Lk e as matrizes de permutação Pk utilizadas nos desenvolvimentos formais da fatoração LU não têm que ser necessariamente formadas O fator U sobrescreve a banda triangular superior e a diagonal principal da matriz do sistema A, enquanto o fator L sobrescreve a banda triangular inferior, a menos da diagonal unitária A fatoração LU demanda cerca de n3/3 multiplicações de ponto flutuante e similar quantidade de adições As substituições para frente e para trás (para vetores independentes) requerem cerca de n2 operações de multiplicação de ponto flutuante e similar quantidade de adições

67 Aula 2 – Sistemas de Equações Lineares
Aspectos computacionais O cálculo explícito da inversa da matriz do sistema, tal como, x = A-1b requer o esforço correspondente à solução por fatoração LU de n sistemas de equações lineares, um para cada coluna da identidade, seguidos por n substituições para frente e para trás O esforço computacional para inversão explícita da matriz do sistema é cerca de 3 vezes o esforço demandado pela fatoração LU Mesmo com muitos vetores independentes, a inversão explícita nunca compensa o seu custo, devido à multiplicação A-1b que consome cerca de n2 operações de ponto flutuante (flops), da mesma ordem de grandeza que o custo das substituições para frente e para trás

68 Aula 2 – Sistemas de Equações Lineares
Aspectos computacionais A inversão explícita é mais sujeita a erros de arredondamento, conforme sugere o exemplo simples, em uma dimensão, 3x = 18 que, por fatoração, 3x = 6 ✕ 3, resultando em x = 6, e onde, por inversão explícita, retorna x = 3-1 ✕ 18 = 0,333 ✕ 18 = 5,99, usando aritmética de 3 dígitos A inversão explícita é convenientemente adotada no desenvolvimento formal no desenvolvimento matemático de um conceito. Entretanto, raramente ocorre explicitamente implementado Por exemplo, o produto A-1B deve ser executado através da fatoração LU da matriz A, seguida pela substituição para frente e para trás usando cada coluna da matriz B

69 Aula 2 – Sistemas de Equações Lineares
Aspectos computacionais A eliminação de Gauss-Jordan demanda cerca de n3/2 operações de multiplicação de ponto flutuante e um número similar de operações de adição, sendo 50% mais cara que a fatoração LU Durante o processo de eliminação, as operações aplicadas à matriz do sistema também são aplicadas ao(s) vetor(es) independente(s) Uma vez que a matriz foi diagonalizada, a solução é simplesmente calculada através da divisão de cada componente do vetor independente pelo pivô correspondente Embora o último passo do algoritmo de Gauss-Jordan seja extremamente barato, não compensa suficientemente, a fase inicial da eliminação

70 Aula 2 – Sistemas de Equações Lineares
Aspectos computacionais O escalonamento diagonal não perturba o cálculo da solução em aritmética infinita. Entretanto, a aplicação do escalonamento em aritmética finita pode alterar o condicionamento da matriz e a seleção dos pivôs durante a eliminação de Gauss, o que pode afetar a estabilidade desse algoritmo O escalonamento diagonal resulta melhor, em geral, quando as entradas da matriz do sistema têm a mesma ordem de grandeza O escalonamento diagonal pode ainda, introduzir erros de arredondamento, se não for executado cuidadosamente

71 Aula 2 – Sistemas de Equações Lineares
Exemplo – efeito do escalonamento diagonal sobre a solução de um sistema de equações lineares O sistema linear a seguir possui um número de condicionamento igual a 1/e, sendo portanto, mal condicionado se e for pequeno Se a segunda linha for multiplicada por 1/e, então, o sistema se torna bem condicionado. Portanto, o mal-condicionamento do sistema desse exemplo é solucionado pelo escalonamento proposto Em geral, o “melhoramento” do condicionamento da matriz do sistema não é tão trivial como nesse exemplo

72 Aula 2 – Sistemas de Equações Lineares
Tipos especiais de sistemas de equações lineares O esforço e o armazenamento computacional podem ser reduzidos no caso de algumas sistemas especiais, tais como Simétrico: A = AT, aij = aji para todo i e j Positivo definido: xT A x > 0 para todo x ≠ 0 Em banda: aij = 0 para todo |i – j| > b, onde b é a largura de banda da matriz do sistema Esparso: a maioria das posições da matriz do sistema são nulas Se a matriz do sistema for simétrica e positiva definida, então a fatoração LU pode ser arranjada de tal forma que U = LT, ou seja, A = L LT, onde L é a matriz triangular inferior com valores diagonais positivos

73 Aula 2 – Sistemas de Equações Lineares
Tipos especiais de sistemas de equações lineares A fatoração de Cholesky é implementada de tal forma que o fator L sobrescreve a matriz original do sistema, ou seja, for j = 1 to n for k = 1 to j – 1 For i = j to n aij = aij – aik ✕ ajk end ajj = ajj0,5 for k = j + 1 to n akj = akj/ajj Para a matriz 2 ✕ 2 a seguir, a fatoração de Cholesky é dada por

74 Aula 2 – Sistemas de Equações Lineares
Tipos especiais de sistemas de equações lineares Fatoração de Cholesky Todas as n raízes quadradas são de números positivos e portanto o algoritmo é bem definido Não requer pivotamento para garantir a estabilidade numérica Apenas a banda triangular inferior da matriz do sistema é manipulada e portanto não requer a alocação de espaço para a banda triangular superior Demanda n3/6 operações de multiplicação de ponto flutuante e uma quantidade similar de adições Para matrizes simétricas indefinidas, a fatoração não é aplicável (produz raiz quadrada de número negativo) e portanto, pode ser necessária a execução de permutações ou pivotamento, este último geralmente necessário para a garantia da estabilidade numérica A fatoração P A PT = L D LT pode ser empregada a custo comparável à fatoração de Cholesky, onde L é a banda triangular inferior diagonal unitária da matriz A e D pode ser uma matriz tridiagonal ou bloco-diagonal, com blocos ✕ 1 ou 2 ✕ 2

75 Aula 2 – Sistemas de Equações Lineares
Tipos especiais de sistemas de equações lineares Matrizes em banda O algoritmo de eliminação de Gauss é simplificado no intervalo de variação dos laços O armazenamento consiste dos valores não-nulos apenas, através de alguma técnica que utilize de vetores inteiros auxiliares Se o pivotamento for necessário para garantir a estabilidade numérica, ocorre uma amplificação da largura de banda em até 2 vezes, no máximo Para pequenas larguras de banda, o algoritmo de cálculo da solução pode ser extremamente simples, principalmente se não for necessário a aplicação de pivotamento

76 Aula 2 – Sistemas de Equações Lineares
Tipos especiais de sistemas de equações lineares Matrizes tridiagonais Matrizes da forma Se o pivotamento não for necessário, então o algoritmo de eliminação de Gauss se reduz a d1 = b1 for i = 2 to n mi = ai/di-1 di = bi – mici-1 end

77 Aula 2 – Sistemas de Equações Lineares
Tipos especiais de sistemas de equações lineares A fatoração LU da matriz tridiagonal A é dada por Em geral, sistemas com largura de banda b requerem O(bn) de armazenamento e O(b2n) de esforço computacional durante a fatoração. Quando comparados aos sistemas densos, observa-se uma grande economia de esforço computacional e armazenamento quando b << n

78 Aula 2 – Sistemas de Equações Lineares
Métodos iterativos de solução de sistemas de equações lineares O método de eliminação de Gauss é um método direto de solução de sistemas lineares que garante a solução exata em um número finito de operações, quando em aritmética infinita Métodos iterativos de solução iniciam com uma solução arbitrária e, aprimorando a solução em cada iteração, convergem à solução real de acordo com a tolerância exigida Teoricamente, demandam um número infinito de iterações para convergirem à solução real Na prática, as iterações são encerradas quando o resíduo r = ||b – Ax||, ou outra métrica é obedecida para a tolerância exigida Métodos iterativos são especialmente úteis quando o sistema é esparso porque, ao contrário dos métodos diretos, não ocorre preenchimento (fill in) – espaços inicialmente ocupados por zeros são preenchidos com valores não-nulos após a fatoração

79 Aula 2 – Sistemas de Equações Lineares
Métodos iterativos de solução de sistemas de equações lineares Métodos estacionários são baseados na expressão do cálculo da solução x(k) = B x(k-1) + c, onde a matriz B e o vetor c não variam com as iterações k Jacobi Gauss-Seidel (GS) SOR (...) Métodos não-estacionários diferem dos estacionários pois todas grandezas envolvidas no cálculo da solução variam em cada iteração. Geralmente, esses cálculos compreendem produtos internos de resíduos ou outros vetores oriundos do método Steepest Descent Conjugate Gradient (CG) Generalized Minimal Residual (GMRes)

80 Aula 2 – Sistemas de Equações Lineares
Métodos iterativos de solução de sistemas de equações lineares Métodos iterativos estacionários são mais velhos, mais simples de entender e implementar, embora não sejam usualmente eficientes Métodos iterativos não-estacionários são relativamente novos, mais complicados de entender, embora sejam bastante eficientes O métodos iterativos não-estacionários abordados nesse curso são baseados no conceito de seqüências de vetores ortogonais A taxa de convergência depende fortemente do condicionamento da matriz do sistema Freqüentemente, métodos iterativos implementam a transformação da matriz do sistema em outra com condicionamento mais favorável, de forma a incrementar a convergência do algoritmo A transformação é executada por uma matriz conhecida por pré-condicionador que objetiva acelerar a convergência do algoritmo iterativo, compensando o custo da sua construção e operação

81 Aula 2 – Sistemas de Equações Lineares
Método estacionário de Jacobi O método de Jacobi propõe a solução de cada variável em função das demais Examinando cada uma das equações do sistema linear Ax = b, tem-se para a equação i, Isolando-se o componente i da solução, tem-se a expressão em função dos demais componentes dada por O que sugere a expressão iterativa que corresponde ao método de Jacobi Observa-se que o cálculo da solução independe da ordem dos componentes adotada, ou seja, cada componente pode ser calculada simultaneamente

82 Aula 2 – Sistemas de Equações Lineares
Método estacionário de Jacobi Matricialmente, o método de Jacobi pode ser expresso por x(k) = D-1 (b – (L + U) x(k), onde as matrizes D, L e U representam a diagonal principal, a banda triangular inferior estrita (sem a diagonal principal) e a banda triangular superior estrita (sem a diagonal principal) da matriz do sistema, respectivamente O método de Jacobi requer pivôs não-nulos,o que pode ser garantido através de permutações completas (linhas e colunas) O armazenamento da solução é dobrado, visto que nenhuma componente da solução anterior pode ser sobrescrita até que todas componentes da solução corrente sejam calculadas Os componentes da solução corrente são independentes entre si, ou seja, podem ser calculadas em qualquer ordem ou mesmo simultaneamente A convergência não é garantida sempre. Entretanto, sob determinadas circunstâncias (por exemplo, matriz diagonal dominantes), a convergência é garantida, embora possa ser bastante lenta

83 Aula 2 – Sistemas de Equações Lineares
Algoritmo de Jacobi k = 0 x(0) = ? do while (non-convergence) k = k + 1 for i = 1 until n do yi = 0 for j = 1, 2, ..., i – 1, i + 1, ..., n yi = yi + aij xj(k-1) end yi = (bi – yi)/aii x(k) = y check convergence

84 Aula 2 – Sistemas de Equações Lineares
Método estacionário de Gauss-Seidel A convergência do método de Jacobi pode ser acelerada se cada novo componente calculado for utilizado no cálculo do próximo componente (em vez de se esperar pela próxima iteração) Esse procedimento corresponde ao método de Gauss-Seidel expresso por Matricialmente, o método de Gauss-Seidel pode ser expresso por

85 Aula 2 – Sistemas de Equações Lineares
Método estacionário de Gauss-Seidel Requer pivôs não-nulos Não requer armazenamento dobrado para a solução, pois as componentes anteriores à corrente podem ser sobrescritos Entretanto, o cálculo da solução é seqüencial, pois cada componente depende dos anteriores A convergência não é garantida sempre, mas é mais fácil de ser atingida que o método de Jacobi (por exemplo, para matrizes simétricas positivas definidas) Em geral, o método de Gauss-Seidel converge duas vezes mais rápido que o método de Jacobi, o que não garante entretanto, velocidade de convergência

86 Aula 2 – Sistemas de Equações Lineares
Algoritmo de Gauss-Seidel k = 0 x(0) = ? do while (non-convergence) k = k + 1 for i = 1 until n do σ = 0 for j = 1, 2, ..., i – 1 σ = σ + aij xj(k) end for j = i + 1, ..., n σ = σ + aij xj(k-1) xi(k) = (bi – σ)/aii check convergence

87 Aula 2 – Sistemas de Equações Lineares
Método estacionário SOR (Successive Over-Relaxation) Equivale a uma extrapolação do método de Gauss-Seidel Essa extrapolação é calculada através da média ponderada entre a solução obtida na iteração anterior e a solução obtida na iteração corrente de Gauss-Seidel A expressão SOR para a próxima iteração é dada por onde ω é o parâmetro de relaxação ou ponderação (escolhido para acelerar a convergência) e xGS(k+1) é a solução corrente obtida pela iteração de Gauss-Seidel ω > 1 produz sobre-relaxação (over-relaxation), enquanto ω < 1produz sub-relaxação (under-relaxation). ω = 1 retorna o método de Gauss-Seidel

88 Aula 2 – Sistemas de Equações Lineares
Método estacionário SOR SOR diverge, a menos que a relação 0 < ω < 2 ocorra. Entretanto, a determinação de ω não é trivial, a menos para alguns casos especiais de sistemas Uma vez determinado o valor ótimo de w, a taxa de convergência do método SOR pode ser uma ordem de magnitude mais rápida que a produzida pelo método Gauss-Seidel Matricialmente, o método SOR pode ser expresso conforme segue

89 Aula 2 – Sistemas de Equações Lineares
Algoritmo de SOR k = 0 x(0) = ? do while (non-convergence) k = k + 1 for i = 1 until n do σ = 0 for j = 1, 2, ..., i – 1 σ = σ + aij xj(k) end for j = i + 1, ..., n σ = σ + aij xj(k-1) σ = (bi – σ)/aii xi(k) = xi(k-1) + ω (σ - xi(k-1)) check convergence

90 Aula 2 – Sistemas de Equações Lineares
Método Steepest Descent (SD) Método de minimização da função f : Rn → R, iniciando com uma solução arbitrária x(0) e, sucessivamente, aproximando a solução através de onde α(k) é o parâmetro de linha de busca que determina o comprimento da atualização da iteração na direção do gradiente da função f, ou direção de busca Dada a direção de busca, o valor do parâmetro de linha de busca é calculado através da minimização unidimensional da forma Por enquanto, uma forma simples de se entender a minimização acima é pensar em “calcular o valor de α para f ’(x(k+1)) = 0”

91 Aula 2 – Sistemas de Equações Lineares
Método Steepest Descent Em qualquer ponto x onde o vetor gradiente não é nulo, o vetor gradiente negativo, , aponta no sentido descendente da superfície (ou hipersuperfície, para dimensões superiores a 2), ou seja, para os pontos de menores valores da função De fato, o gradiente negativo é a direção mais acentuada até o mínimo local, em relação a qualquer outra direção O método é bastante confiável desde que não haja gradientes nulos Entretanto, a velocidade da convergência é lenta devido ao “zigzag” em direção à solução Em geral, a convergência do método é apenas linear

92 Aula 2 – Sistemas de Equações Lineares
Exemplo - método Steepest Descent Cálculo do valor de x que minimiza a função f(x) = 0,5 x12 + 2,5 x22, iniciando com x(0) = [5 1]T Gradiente: = [x1 5 x2]T Gradiente em x(0): = [5 5]T Cálculo do parâmetro α:

93 Aula 2 – Sistemas de Equações Lineares
Exemplo (continuação) – método Steepest Descent As elipses representam as curvas de nível, ou isocontornos, onde a função tem valor constante A direção do gradiente em qualquer ponto é sempre normal à curva de nível que passa por esse ponto O mínimo ao longo da direção de busca (gradiente negativo) ocorre quando o gradiente do novo ponto é normal ao gradiente anterior (direção de busca) A seqüência de iterações converge lentamente (“zigzag” acentuado) à solução, a qual, para esse problema, corresponde à origem, onde o mínimo da função é zero

94 Aula 2 – Sistemas de Equações Lineares
Método dos Gradientes Conjugados (GC) Se a matriz A, de dimensão n ✕ n, é simétrica e positiva definida, então, a função quadrática, em particular, f(x) = ½ xT A x – xT b atinge seu mínimo exatamente quando Ax = b Portanto, resolver o sistema de equações lineares (simétrico e positivo definido) Ax = b equivale à minimização da função quadrática f(x) enunciada Similarmente ao método steepest descent, a minimização da função f : Rn → R, iniciando com uma solução arbitrária x(0) é sucessivamente aproximada conforme onde α(k) é o parâmetro de linha de busca que determina o comprimento da iteração na direção de busca s(k) Para o método SD, s(k) =

95 Aula 2 – Sistemas de Equações Lineares
Método dos Gradientes Conjugados Para a função quadrática em particular, o gradiente negativo coincide com o resíduo, ou seja, = b – Ax = r Além dessa coincidência favorável, o parâmetro α pode ser calculado analiticamente, quando o mínimo de f em função de α ocorre quando o novo resíduo é ortogonal à direção de busca, ou seja, Como o novo resíduo pode ser expresso em função do antigo resíduo e da direção de busca, então, que resulta em

96 Aula 2 – Sistemas de Equações Lineares
Método dos Gradientes Conjugados As direções de busca são atualizadas conforme s(k) = r(k) + β(k) s(k-1) De acordo com a literatura, escolha do parâmetro da direção de busca tal como garante que s(k) e As(k-1) – ou equivalentemente, r(k) e r(k-1) – sejam ortogonais. De fato, a escolha do parâmetro β acima garante que s(k) e r(k) sejam ortogonais a todos As(i) e r(i) (k > i), respectivamente, ou seja, conjugados As sucessivas direções de busca são A-ortogonalizadas através da recorrência garantida pelo parâmetro β

97 Aula 2 – Sistemas de Equações Lineares
Algoritmo dos Gradientes Conjugados para funções quadráticas x(0) = ? r(0) = b – A x(0) s(0) = r(0) k = 0 do while (non-convergence) α(k) = rT(k) r(k) / (sT(k) A s(k)) x(k+1) = x(k) + α(k) s(k) r(k+1) = r(k) - α(k) A s(k) β(k+1) = rT(k+1) r(k+1) / (rT(k) r(k)) s(k+1) = r(k+1) + β(k+1) s(k) check convergence end

98 Aula 2 – Sistemas de Equações Lineares
Método dos Gradientes Conjugados Em cada iteração k, o algoritmo requer apenas operações de multiplicação matriz vetor (As(k)), além de mais alguns produtos internos. O armazenamento também é modesto, desde que os vetores x, r e s podem ser sobrescritos O caso particular da função quadrática resolvido pelo algoritmo SD implica no resíduo como direção do gradiente negativo. Conforme visto anteriormente, a convergência do SD é lenta devido ao “zigzag” promovido pelas direções de busca Esse comportamento pode ser evitado através da ortogonalização de cada nova direção em relação às anteriores, objetivando a manutenção das novas direções apenas. Esse procedimento seria computacionalmente caro, além de consumir muito espaço em memória, se não fosse a recorrência em três termos garantida pelo parâmetro , que garante a necessidade de se preservar apenas os dois últimos resíduos

99 Aula 2 – Sistemas de Equações Lineares
Métodos dos Gradientes Conjugados O GC garante o erro mínimo através do espaço gerado pelas direções de busca (resíduos) geradas até o passo corrente A propriedade anterior garante que o método produz a solução exata até, no máximo, n iterações, onde n é a dimensão do sistema Na prática, os erros de arredondamento geram perdas na ortogonalidade o que perturba a evolução das iterações e portanto assume-se um critério de parada baseado em tolerância do resíduo ou outra métrica similar O erro é induzido pelo condicionamento da matriz e portanto, se a matriz for bem condicionada, a convergência tende a ser rápida; entretanto, para matrizes mal condicionadas, a convergência pode ser significativamente lenta

100 Aula 2 – Sistemas de Equações Lineares
Método dos Gradientes Conjugados pré-Condicionado (PCG) A convergência do método pode ser significativamente acelerada através da técnica de pré-condicionamento O pré-condicionamento compreende a aplicação do algoritmo à matriz M-1A, de tal forma que M-1A seja mais bem condicionada que A e que os sistemas da forma Mz = y sejam facilmente solucionados A implementação do pré-condicionamento introduz mais uma multiplicação matriz-vetor, M-1 r(k), além da operação já existente, As(k), por iteração Tecnicamente, de forma a preservar a simetria, a transformação deveria ser da forma L-1AL-T em vez de M-1A, onde M = LLT. Entretanto, o algoritmo pode ser convenientemente arranjado de forma que apenas M seja utilizado e L não seja formado explicitamente A escolha apropriada do pré-condicionador depende da compensação entre o ganho de velocidade na convergência e o custo por iteração da construção e aplicação do pré-condicionador

101 Aula 2 – Sistemas de Equações Lineares
Algoritmo dos Gradientes Conjugados pré-Condicionado para funções quadráticas x(0) = ? r(0) = b – A x(0) s(0) = M-1 r(0) k = 0 do while (non-convergence) α(k) = rT(k) M-1 r(k) / (sT(k) A s(k)) x(k+1) = x(k) + α(k) s(k) r(k+1) = r(k) - α(k) A s(k) β(k+1) = rT(k+1) M-1 r(k+1) / (rT(k) M-1 r(k)) s(k+1) = M-1 r(k+1) + β(k+1) s(k) check convergence end

102 Aula 2 – Sistemas de Equações Lineares
Método dos Gradientes Conjugados pré-Condicionado Diversos tipos de pré-condicionadores têm sido propostos, constituindo uma intensa área de pesquisa. Os mais comumente usados são: Diagonal (também chamado de Jacobi): M é assumida como a diagonal da matriz do sistema Bloco-Diagonal (ou bloco-Jacobi): se os índices são particionados em subconjuntos mutuamente disjuntos, então, mij = aij se i e j estão no mesmo subconjunto e mij = 0, caso contrário. Escolhas naturais incluem o particionamento ao longo de linhas ou planos para malhas em duas ou três dimensões, respectivamente, ou agrupando variáveis que correspondem a um nó comum, conforme ocorre no método dos elementos finitos

103 Aula 2 – Sistemas de Equações Lineares
Método dos Gradientes Conjugados pré-Condicionado Mais pré-condicionadores: Fatoração Incompleta: devido à intensa ocorrência do preenchimento durante a fatoração de Cholesky, a fatoração incompleta propõe um pré-condicionador do tipo M = L LT, onde L é o fator triangular inferior com valores não-nulos apenas nas posições originais correspondentes à matriz do sistema Polinomial: M-1 é avaliada como um polinômio em função da matriz do sistema A que aproxima A-1 Inversa Aproximada: M-1 é obtida através de algoritmo de otimização para minimizar o resíduo ...

104 Aula 2 – Sistemas de Equações Lineares
Métodos iterativos para matrizes SIMÉTRICAS e NÃO-SIMÉTRICAS O método dos gradientes conjugados constrói a i-ésima iteração x(k) como um elemento de x(0) + z, z Span(K), K = {r(0), ..., A(k-1)r(0)} (onde K é o espaço de Krylov) de tal forma que (x(i) – x)T A (x(i) – x) seja minimizado, onde x é a solução exata de Ax = b. Esse mínimo é garantido apenas se a matriz do sistema for simétrica e positiva definida Para o algoritmo pré-condicionado, a minimização do erro é equivalente ao resíduo r(k) = b – Ax(k), sendo M-1 ortogonal (isto é, r(i)T M-1 r(j), i ≠ j). Desde que uma matriz simétrica constrói uma base ortogonal de Krylov com apenas três termos, tal recorrência também é suficiente para geração dos resíduos No método dos gradientes conjugados, duas recorrências a dois termos acopladas são usadas: uma atualiza o resíduo utilizado em cada direção de busca e a outra atualiza a direção de busca através do novo resíduo calculado. Essa característica faz o GC computacionalmente atraente

105 Aula 2 – Sistemas de Equações Lineares
Métodos iterativos para matrizes SIMÉTRICAS e NÃO-SIMÉTRICAS Se a matriz do sistema for indefinida ou não-simétrica, então o algoritmo GC pode falhar teoricamente (o problema de otimização correspondente não tem um mínimo) ou praticamente (a expressão para o cálculo de α pode falhar) Recentemente, alguns algoritmos têm sido propostos para solução de sistemas não-simétricos, dentre eles, GMRes, QMR, CGS, BiCG, Bi-CGStab etc Esses algoritmos tendem a ser menos robustos que o GC (método que os inspirou), além de requererem mais espaço para armazenamento. Entretanto, em diversos casos, eles ainda constituem os métodos mais eficazes para solução de sistemas não-simétricos de grande escala

106 Aula 2 – Sistemas de Equações Lineares
Método dos Resíduos Mínimos Generalizados (GMRes) Este método objetiva minimizar a norma residual do sistema linear Ax = b A solução aproximada apresenta a forma x(0) + z, z Span(Ks), Ks = {Ar(0), ..., A(k)r(0)} (espaço de Krylov com shift) e r(0) = b – Ax(0) e k é a dimensão de K O GMRes determina z de tal forma que a norma do resíduo seja mínima, isto é, x(0) + z é a solução de Ax = b se ||b – A(x(0) + z)|| é mínima Devido à ausência da simetria, a seqüência de vetores ortogonais geradores do espaço de Krylov não é possível apenas com recorrências em três termos (conforme no método CG)

107 Aula 2 – Sistemas de Equações Lineares
Método dos Resíduos Mínimos Generalizados (GMRes) No método GC, os resíduos formam uma base ortogonal para a expansão do espaço de Krylov. No GMRes, entretanto, os resíduos têm que ser ortogonalizados explicitamente. A ortogonalização dos resíduos pode ser realizada através do algoritmo de ortogonalização modificada de Gram-Schmidt (método de Arnoldi) u(1) = r(0)/||r(0)|| for i = 1, ..., k u(i+1) = A u(i) for j = 1, ..., i β(i+1,j) = (u(i+1), u(j)) u(i+1) = u(i+1) - β(i+1,j) u(j) end u(i+1) = u(i+1)/||u(i+1)||

108 Aula 2 – Sistemas de Equações Lineares
Método dos Resíduos Mínimos Generalizados Seja a matriz U(k) ortonormal U(k) = [u(1) u(2) u(k)]. A relação A U(k) = U(k+1) H(k) é válida, onde H(k) é a matriz superior de Hessenberg com dimensões (k+1) ✕ k (retangular) e é dada por

109 Aula 2 – Sistemas de Equações Lineares
GMRes Seja e com dimensão k Considerando-se a relação r(0) = U(k+1) e, o resíduo na iteração k é avaliado por Assim, o problema de minimização pode ser reescrito por que resulta em um sistema retangular que pode ser resolvido pelo método dos mínimos quadrados

110 Aula 2 – Sistemas de Equação Lineares
GMRes A aplicação do método dos mínimos quadrados à minimização anterior transforma o sistema original no sistema linear quadrado de dimensão k × k, H(k) y = e, onde H é uma matriz triangular superior e e é um vetor denso O sistema pode ser então resolvido por retro-substituição (backward substitutuion) e um novo resíduo é calculado com a aproximação encontrada Se a convergência não for atingida para a tolerância adotada, todo o processo (ciclo GMRes) é reiniciado com a solução inicial igual à solução obtida no ciclo anterior. Este processo é conhecido por Restart(m), onde m é um inteiro que limita a quantidade de vetores de Krylov por ciclo

111 Aula 2 – Sistemas de Equações Lineares
GMRes O algoritmo do ciclo GMRes é constituído basicamente pelas seguintes instruções Ortogonalização dos resíduos para geração de uma base do espaço de Krylov Em geral, essa ortogonalização é executada pelo algoritmo de ortogonalização modificado de Gram-Schmidt (processo conhecido como método de Arnoldi) A ortogonalização também pode ser executada pela transformação de Householder que, embora muito mais custosa, é relativamente mais estável e melhor para matrizes mal condicionadas Os vetores ortonormais gerados constituem as colunas da matriz de Hessenberg Solução do problema de mínimos quadrados para o vetor y(k) Esta solução consiste na fatoração QR da matriz de Hessenberg (e vetor independente) A fatoração QR pode ser executada através de rotações de Givens ou transformações de Householder etc Atualização da direção de busca: x(k) = x(0) + Σj=1,k y(j) u(j)

112 Aula 2 – Sistemas de Equações Lineares
GMRes A maior desvantagem do método é o crescimento linear do esforço computacional e armazenamento com a dimensão do sistema A forma usual de atenuar esse problema é através da técnica de Restart(m). Depois de completo um ciclo, todos os dados armazenados são eliminados, a menos da solução corrente que será usada como estimativa inicial para o próximo ciclo Entretanto, a dificuldade reside em se determinar o parâmetro m, a quantidade de vetores de Krylov. Se m for inadequadamente pequeno, por exemplo, os ciclos podem convergir lentamente e o método pode até falhar e não convergir Um valor inadequadamente grande implica em excesso de esforço computacional e armazenamento desnecessário Infelizmente, não há regras definitivas para a adoção do tamanho do ciclo. Na prática, este valor é adotado pela experiência de uso do algoritmo ao problema específico

113 Aula 2 – Sistemas de Equações Lineares
Pré-Condicionamento

114 Aula 2 – Sistemas de Equações Lineares
Pré-Condicionamento

115 Aula 3 – Sistemas de Equações Não-Lineares
Sumário Conceitos preliminares Equações não-lineares Método do ponto-fixo Método de Newton Método secante Sistemas de equações não-lineares Definição Método de Broyden

116 Aula 3 – Sistemas de Equações Não-Lineares
Conceitos preliminares Dada uma função f, a solução x produz f(x) = 0 A solução x é a raiz da equação ou o zero da função f São considerados os dois casos: f : R → R (a função retorna um escalar) f : Rn → Rn (a função retorna um vetor através de um sistema de equações não lineares) Exemplos Unidimensional: x2 – 4 sen(x) = 0 Bidimensional: A existência e unicidade das soluções dos sistemas de equações não-lineares é mais complicada de ser analisada do que para os sistemas de equações lineares A quantidade de soluções depende da equação não-linear em questão e pode ser qualquer, desde nenhuma solução até infinitas soluções

117 Aula 3 – Sistemas de Equações Não-Lineares
Conceitos Preliminares Uma equação não-linear pode ter raiz com multiplicidade n, ou seja, quando a solução anula, além da função, a derivada de ordem n Dada a solução aproximada x e a solução exata x*, o resíduo é calculado por ||f(x)|| e a proximidade à solução exata é calculado por ||x – x*||. Os dois valores não são necessariamente pequenos simultaneamente O condicionamento do cálculo do zero da função é o oposto do condicionamento da avaliação da função Se a função é insensível, então a raiz é sensível Se a função é sensível, então a raiz é insensível

118 Aula 3 – Sistemas de Equações Não-Lineares
Conceitos Preliminares O erro na iteração corrente k é avaliado conforme ek = xk – x*, onde xk é a aproximação corrente e x* é a solução exata Como a solução exata não é disponível, o controle da convergência é feito através da medição do comprimento do intervalo que contém a solução A medição da convergência é calculada conforme segue, onde r é a taxa de convergência e C é uma constante finita e não nula Na prática, os valores do erro (comprimento do intervalo) são calculados por ek = xk – xk-1

119 Aula 3 – Sistemas de Equações Não-Lineares
Método do Ponto-Fixo (unidimensional) O ponto-fixo de uma função é o valor de x que torna a igualdade x = g(x) verdadeira Diversos algoritmos de solução de equações não-lineares utilizam iterações dessa forma, ou seja, xk+1 = g(xk), onde g é a função cujos pontos-fixos são a solução para f(x) = 0 Esse procedimento é chamado de iteração de ponto fixo ou iteração funcional, visto que a função g é aplicada repetidamente aos sucessivos valores de xk Para uma determinada função f(x), podem existir diversas funções g(x) que garantam a relação de ponto fixo x = g(x) O problema maior reside em determinar a função de ponto fixo

120 Aula 3 – Sistemas de Equações Não-Lineares
Método de Newton (unidimensional) A série de Taylor truncada f(x + h) ≈ f(x) + f `(x) h constitui uma aproximação linear da função f em h, próxima a x A substituição da função original f(x) pela aproximação acima, cujo zero corresponde a h = -f(x) / f `(x), sucessivamente, produz o método de Newton, ou seja, xk+1 = xk – f(xk) / f `(xk) O método de Newton aproxima a função f próxima a xk pela tangente ao ponto f(xk)

121 Aula 3 – Sistemas de Equações Não-Lineares
Exemplo – Método de Newton (unidimensional) f(x) = x2 – 4 sen(x) = 0 Derivada: f `(x) = 2x – 4 cos(x) Expressão de iteração: xk+1 = xk – (xk2 – 4 sen(xk)) / (2xk – 4 cos(xk)) Arbitrando x0 = 3, tem-se

122 Aula 3 – Sistemas de Equações Não-Lineares
Método de Newton (unidimensional) O método de Newton corresponde a uma iteração de ponto fixo, na qual a função de ponto-fixo é dada por g(x) = x – f(x)/f `(x) É necessário que a raiz x* seja simples (não tenha multiplicidade), ou seja, f(x*) = 0 e f `(x*) ≠ 0, pois g`(x) = f(x) f ``(x) / (f `(x))2 A convergência do método de Newton para raízes simples é quadrática, ou seja, r = 2, enquanto que para raízes múltiplas, é linear (C = 1 – 1/m, onde m é a multiplicidade)

123 Aula 3 – Sistemas de Equações Não-Lineares
Método Secante (unidimensional) Uma grande desvantagem do método de Newton é a necessidade da avaliação da função e da derivada em cada iteração Uma forma alternativa de se evitar esse problema é a substituição da derivada pela diferença entre duas iterações sucessivas, conforme segue, caracterizando o método secante: Em circunstâncias normais, o método secante é super-linearmente convergente, com r ≈ 1,618 O método secante aproxima a função f localmente, através de uma linha secante entre duas iterações sucessivas

124 Aula 3 – Sistemas de Equações Não-Lineares
Exemplo – Método secante (unidimensional) f(x) = x2 – 4 sen(x) = 0 Derivada: f `(x) = 2x – 4 cos(x). Arbitrando x0 = 1 e x1 = 3, tem-se

125 Aula 3 – Sistemas de Equações Não-Lineares
Mais complexo que o caso escalar Comportamento mais diverso A convergência à solução ou intervalo que a contenha nem sempre é garantida de forma simples, de forma a se produzir um método simples Demanda computacional cresce rapidamente com a dimensão do problema Exemplo: x12 – x2 + γ = 0 -x1 + x22 + γ = 0

126 Aula 3 – Sistemas de Equações Não-Lineares
Método de Newton Em n dimensões, o método de Newton é expresso por x(k+1) = x(k) – J(x(k))-1 f(x(k)) onde J(x) é a matriz Jacobiana da função f, com cada termo avaliado por Na prática, a inversa do Jacobiano não é calculada explicitamente, mas sim, o sistema linear J(x(k)) s(k) = -f(x(k)) é resolvido e a próxima iteração x(k+1) é avaliada conforme x(k+1) = x(k) + s(k)

127 Aula 3 – Sistemas de Equações Não-Lineares
Exemplo – Método de Newton (n-dimensional) Dada a função vetorial O Jacobiano é dado por Arbitrando-se x(0) = [1 2]T, então

128 Aula 3 – Sistemas de Equações Não-Lineares
Exemplo – Método de Newton (n-dimensional) O sistema resultante retorna a solução s(0) = [-1,83 -0,58]T e portanto

129 Aula 3 – Sistemas de Equações Não-Lineares
Exemplo – Método de Newton (n-dimensional) retorna a solução s(1) = [-0,64 -0,32]T e portanto As iterações continuam até convergirem à solução x* = [0 1]T A convergência do método de Newton para sistemas de equações lineares é quadrática, desde que o Jacobiano da solução não seja singular A solução inicial arbitrada é um fator importante na convergência do algoritmo. Soluções iniciais muito distantes da solução real podem causar falha na convergência do algoritmo

130 Aula 3 – Sistemas de Equações Não-Lineares
Aspectos computacionais do método de Newton O custo computacional do método de Newton para matrizes densas de dimensão n é significativo O cálculo do Jacobiano demanda n2 avaliações escalares de funções A solução do sistema linear demanda O(n3) operações Aspectos computacionais do método secante Os métodos do tipo secante reduzem o custo das iterações de Newton Gradualmente, constroem aproximações do Jacobiano baseadas em sucessivas iterações e valores da função, sem avaliar as derivadas explicitamente Atualiza a fatoração do Jacobiano aproximado em cada iteração, em vez de fatorá-lo novamente em cada iteração Os métodos tipo secante, que geralmente apresentam convergência superlinear (e nunca quadrática) geralmente demandam menor esforço computacional se comparados ao método de Newton

131 Aula 3 – Sistemas de Equações Não-Lineares
Método de Broyden Método tipo secante Inicia com uma solução e Jacobiano arbitrários, seguindo os seguintes passos até a convergência B(k)s(k) = -f(x(k)) x(k+1) = x(k) + s(k) y(k) = f(x(k+1)) – f(x(k)) B(k+1) = B(k) + ((y(k) – B(k)s(k))s(k)T) / (s(k)Ts(k)) A motivação para a expressão de B é perturbar ao mínimo a matriz corrente B(k) sujeita à seguinte equação secante Na prática, a fatoração de B(k) é atualizada em fez de atualizar B(k) diretamente, e portanto, o custo total por iteração é apenas O(n2)

132 Aula 3 – Sistemas de Equações Não-Lineares
Algorithm IN (Inexact Newton-type): For k = 0 step 1 until convergence do: find some AND sk that satisfy set ηk is the forcing term. Linear solver: EDE-GMRES Our choice: “MATVEC products take 93% of the computational cost in EBE data structure during the iterative solution phase”

133 Aula 3 – Sistemas de Equações Não-Lineares
Flow Around a Le Mans Race Car (Inexact nonlinear solver performance)

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154


Carregar ppt "Marcos Martins, Renato Elias e Alvaro Coutinho [renato,"

Apresentações semelhantes


Anúncios Google