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

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

O método dos gradientes conjugados Francisco A. M. Gomes MT402 – Matrizes – junho de 2008.

Apresentações semelhantes


Apresentação em tema: "O método dos gradientes conjugados Francisco A. M. Gomes MT402 – Matrizes – junho de 2008."— Transcrição da apresentação:

1 O método dos gradientes conjugados Francisco A. M. Gomes MT402 – Matrizes – junho de 2008

2 Funções quadráticas Chamamos de quadrática uma função f(x):  n   que pode ser escrita na forma onde A  n  n, b  n e c .

3 Exemplo de função quadrática

4 Curvas de nível da quadrática Repare que as curvas de nível de f, neste exemplo, são elipses. Em cada curva do gráfico, encontramos pontos com o mesmo valor de f.

5 Gradiente O gradiente de uma função f(x) é dado por Para um dado ponto x, o gradiente fornece a direção de maior crescimento de f(x).

6 Exemplo de gradiente O gradiente é ortogonal à curva de nível. No exemplo, as setas apontam para o lado de fora das elipses, de modo que o ponto (2,-2) é o mínimo de f(x). Em (2, -2), temos f’(x) = 0.

7 Quadráticas e sistemas lineares De uma forma geral, escrevemos o gradiente de uma função quadrática f(x) na forma: Se a matriz A é simétrica, temos Podemos tentar minimizar uma função quadrática f(x) igualando o gradiente a zero. Isso equivale a resolver o sistema Ax = b.

8 Mínimo ou máximo? Entretanto, dependendo de A, o ponto crítico de f(x) pode um máximo local.

9 Pontos de sela O ponto crítico de f(x) também pode ser um ponto de sela.

10 Matrizes definidas positivas Se a matriz A, além de simétrica, é definida positiva, então a função quadrática f(x) é um parabolóide voltado para cima, e a solução de f’(x) = 0, ou de Ax = b, é o ponto de mínimo de f(x).

11 O método da máxima descida Também chamado de método do gradiente. Começa em um ponto x 0 arbitrário Gera uma seqüência de pontos x 1, x 2,... Caminha para o ponto de mínimo do parabolóide, x*, seguindo a direção do vetor –f´(x).

12 Definições importantes Erro em x i : e i = x* – x i. Resíduo em x i : r i = b – Ax i. O resíduo pode ser visto como o erro transformado por A: r i = b – Ax i = A(x* – x i ) = Ae i. O resíduo também pode ser visto como a direção de máxima descida de f(x) em x i : r i = –f’(x i ).

13 Idéia do método Dado x 0, podemos encontrar um ponto x 1 que diminua o resíduo (ou f(x)), dando um passo na direção de –f ’(x 0 ). Em outras palavras, podemos encontrar x 1 definido como x 1 = x 0 + r 0. O parâmetro é denominado comprimento do passo.

14 Definindo o tamanho do passo Para encontrar o melhor valor de, minimizamos f(x) ao longo da direção definida por r 0, ou seja, fazemos uma busca linear: minimiza f(x 0 + r 0 ) é determinado igualando a zero a derivada de f(x 0 + r 0 ) com relação a :

15 Algoritmo Este procedimento é repetido por várias iterações, até que xi esteja suficientemente próximo de x*.

16 Taxa de convergência Infelizmente, o método do gradiente não possui, em geral, boa taxa de convergência. Na verdade, podemos provar apenas que onde  é o número de condição de A. Assim, se A tem um número de condição alto, pouco podemos esperar deste método.

17 Hiperelipsóides alongados Quando  (A) é alto, as curvas de nível de f(x) são hiperelipsóides muito alongados. Para exemplificar isso, vamos resolver o sistema Ax = b com Neste caso,  (A) = e+005.

18 Hiperelipsóides alongados, parte 2 Para esse exemplo, o método da máxima descida fez 3825 iterações, usando ||r||/||b||<0,00001 como critério de parada e partindo do ponto [0, 0] T.

19 O método dos gradientes conjugados É um método que usa a mesma fórmula recursiva do método do gradiente, ou seja, x k+1 = x k + k d k, Mas que não usa como vetor direção o resíduo no ponto x k : d k  r k = b – Ax k.

20 Idéia geral do método Vamos tentar encontrar, a cada iteração k, um vetor d k que 1. seja linearmente independente dos anteriores d 0,..., d k-1 ; 2. faça com que x k+1 minimize f(x) no espaço gerado pelos vetores d já definidos. (Naturalmente, esse espaço é o subespaço de Krylov K(A,d 0,k))

21 Idéia geral do método, parte 2 Assim, x k+1 deve resolver o problema onde D k é a matriz cujas colunas são os vetores d 0,..., d k. Desta forma, ao final de n iterações, teremos minimizado f(x) em  n, obtendo, assim, a solução do sistema linear Ax = b.

22 Encontrando w Para obter uma expressão computável para x k+1, substituímos o termo x k+1 = x k + D k w na fórmula de f(x k+1 ):

23 Encontrando w, parte 2 Derivando f(x k+1 ) com relação a w, obtemos um ponto de mínimo dado por Deste modo,

24 Vetores ortogonais Constatamos que r k+1 é ortogonal aos vetores d i (colunas de D k ), pois Assim, d j T r k+1 = 0, para j = 1,..., k.

25 Vetores ortogonais, parte 2 Se, nas iterações anteriores, os valores de x j, j = 1,..., k, também foram obtidos de modo a minimizar f(x j-1 + D j-1 w j-1 ), concluímos, por indução, que d j T r i = 0 para j < i. Substituindo este termo na expressão de x k+1, temos onde  = d k T r k e e k corresponde à k ésima coluna da identidade.

26 Usando vetores A-conjugados Para simplificar a expressão de x k+1 e facilitar os cálculos, podemos tentar fazer com que a matriz D k T AD k seja diagonal. Para tanto, basta exigirmos que os vetores d j sejam A-conjugados, ou seja, que d i T Ad j = 0 para i  j.

27 Como obter vetores A-conjugados Lembrando que a iteração do método é definida por podemos obter um conjunto de direções A-conjugadas: 1. Escolhendo d 0 = r 0 (como no método da máxima descida) 2. Definindo r k como uma combinação linear de d 0,..., d k, de modo que (1)

28 Como obter vetores A-conjugados (2) Desta última equação, obtemos Como as direções d j são A-conjugadas, Mas, de modo que Uma vez que, de (1), temos r i T r j = 0, i  j, Concluímos que  kj = 0, j = 1,...,k – 2.

29 Como obter vetores A-conjugados (3) Apenas  k,k-1  0. Chamemos de  k este valor Claramente Como Obtemos E como, de (1), temos Chegamos a Assim, a expressão de d k torna-se

30 Algoritmo Dados de entrada: 1. A matriz A (simétrica, definida positiva). 2. O vetor b. 3. Uma aproximação inicial x 0 da solução do sistema. 4. Os parâmetros  (tolerância do resíduo) e k max (número máximo permitido de iterações).

31 Algoritmo, parte 2 1 r 0  b – Ax 0 2 k  0;  -1  0; d -1  0 3 Enquanto ||r k || 2 /||b|| 2 >  e k  k max, 3.1d k  r k +  k d k k  r k T r k /d k T Ad k 3.3x k+1  x k + k d k 3.4r k+1  r k – k Ad k k  k + 1

32 Convergência do método Teoricamente, o método converge para a solução do sistema linear em n iterações. Entretanto, nem sempre isso acontece em virtude dos erros de arredondamento e cancelamento que fazem com que o vetor resíduo perca precisão; os vetores direção deixem de ser A- conjugados, ou seja, Isso ocorre quando A é mal condicionada.

33 Exemplo com A bem condicionada » A = sprand(100,100,0.05,0.5) +0.1*speye(100); » A = A'*A; » condest(A) ans = » b = rand(100,1); » x = pcg(A,b); pcg converged at iteration 15 to a solution with relative residual 9.8e-007

34 Exemplo com A mal condicionada » A = sprand(100,100,0.05,0.0001) +0.1*speye(100); » A = A'*A; » condest(A) ans = e+008 » x = pcg(A,b); pcg stopped at iteration 20 without converging to the desired tolerance 1e » x = pcg(A,b,1e-5,1000); pcg converged at iteration 232 to a solution with relative residual 2.6e-006

35 Taxa de convergência Assim, a distância entre f(xi) e f(x*) está limitada por um termo que é próximo de 1 se k(A) é grande. Felizmente, o método costuma convergir mais rápido do que podemos prever, principalmente quando precondicionado.


Carregar ppt "O método dos gradientes conjugados Francisco A. M. Gomes MT402 – Matrizes – junho de 2008."

Apresentações semelhantes


Anúncios Google