Métodos Numéricos C A. Ismael F. Vaz1 1 Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho [email protected] Ano lectivo 2007/2008 A. Ismael F. Vaz (UMinho) MN C 2007/2008 1 / 216 Conteúdo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 2 / 216 Introdução Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 3 / 216 Introdução Apresentação - Docente Aulas teóricas A. Ismael F. Vaz - [email protected] www.norg.uminho.pt/aivaz Aulas teórico-práticas Isabel Espírito Santo - [email protected] www.norg.uminho.pt/iapinho Horário de atendimento A combinar... A. Ismael F. Vaz (UMinho) MN C 2007/2008 4 / 216 Introdução Apresentação - Disciplina Uma primeira parte de métodos numéricos e uma segunda parte de optimização não linear sem restrições; Página da disciplina; http://www.norg.uminho.pt/aivaz 7 fichas TPs para realizar ao longo do semestre (nas aulas Ts). A classificação final é a soma das notas das fichas TPs. Não é obrigatória a presença nas aulas Ts e TPs. Mas atenção aos momentos de avaliação. A. Ismael F. Vaz (UMinho) MN C 2007/2008 5 / 216 Introdução Material necessário e de apoio Calculadora científica; Folhas das fichas TPs; www.norg.uminho.pt/aivaz Papel e caneta; Livro de Computação Numérica; www.norg.uminho.pt/emgpf Software CoNum; www.norg.uminho.pt/emgpf A. Ismael F. Vaz (UMinho) MN C 2007/2008 6 / 216 Introdução Programa detalhado / Avaliações Dia 25-Fev 29-Fev 04-Mar 11-Mar 01-Abr 08-Abr Matéria Apresentação da disciplina. Erros. Algarismos significativos. Fórmula fundamental dos erros. Erros de truncatura. Solução de equações não lineares. Método dos gráficos. Método da secante e sua convergência. Método de Newton e sua convergência. Critérios de paragem. Sistemas de equações lineares. Eliminação de Gauss com pivotagem parcial. Métodos iterativos de Gauss-Seidel e Jacobi. Método de Newton para sistemas de equações não lineares. Avaliação sobre zeros de funções (2.5 valores). Interpolação polinomial. Diferenças divididas. Fórmula interpoladora de Newton. Erro da fórmula interpoladora de Newton. Avaliação sobre sistemas lineares e não lineares (2.5 valores). Mínimos quadrados polinomiais e modelos lineares. Mínimos quadrados não lineares. Método de Gauss-Newton. A. Ismael F. Vaz (UMinho) MN C 2007/2008 7 / 216 Introdução Programa detalhado / Avaliações - cont. Dia 15-Abr 22-Abr 29-Abr 06-Mai 20-Mai 27-Mai 03-Jun 17-Jun Matéria Revisões. Avaliação sobre interpolação e mínimos quadrados (3 valores). Integração numérica. Fórmulas simples e compostas do Trapézio, Simpson e 3/8. Optimização não linear sem restrições. Condições de optimalidade. Avaliação sobre integração numérica (2.5 valores). Procura unidimensional. Método DSC. Procura multidimensional. Método de Nelder-Mead. Método de Newton. Método de segurança de Newton. Avaliação sobre condições de optimalidade e DSC + NM (3 valores). Procura unidimensional com divisões sucessivas de α por 2. Critério de Armijo. Questionários. Método quasi-Newton. Revisões. Avaliação sobre segurança de Newton (4 valores). Revisões. Avaliação sobre quasi-Newton (2.5 valores). A. Ismael F. Vaz (UMinho) MN C 2007/2008 8 / 216 Introdução Motivação da disciplina Presente em todos os cursos de engenharia (aplicações em todas as áreas da engenharia); A disciplina de métodos numéricos dedica-se à resolução numérica de problemas matemáticos. Com o desenvolvimento dos computadores encontra-se direccionada para a implementação de algoritmos estáveis. A optimização consiste em determinar soluções óptimas para problema matemáticos. A. Ismael F. Vaz (UMinho) MN C 2007/2008 9 / 216 Introdução Controlo óptimo - Um exemplo Problema de optimização do processo semi-contínuo de produção de Etanol. O problema de optimização é: (t0 = 0 e tf = 61.2 dias) max J(tf ) ≡ x3 (tf )x4 (tf ) com u(t) s.a dx1 x1 = g1 x1 − u dt x4 dx2 150 − x2 = −10g1 x1 + u dt x4 x3 dx3 = g2 x1 − u dt x4 dx4 =u dt 0 ≤ x4 (tf ) ≤ 200 0 ≤ u(t) ≤ 12 ∀t ∈ [t0 , tf ] A. Ismael F. Vaz (UMinho) 0.408 x2 g1 = 1 + x3 /16 0.22 + x2 1 x2 g2 = 1 + x3 /71.5 0.44 + x2 onde x1 , x2 e x3 são as concentrações da massa celular, substrato e produto (g/L), e x4 é o volume (L). As condições iniciais são: x(t0 ) = (1, 150, 0, 10)T . MN C 2007/2008 10 / 216 Introdução Abordagem para a resolução Grande exigência em termos numéricos; Grande exigência em termos de programação; Solução da equação diferencial com o CVODE (software em C); Problemas codificados em AMPL (linguagem de modelação); Algoritmo para optimização sem derivadas; A. Ismael F. Vaz (UMinho) MN C 2007/2008 11 / 216 Erros Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 12 / 216 Erros Formato de vírgula flutuante normalizado f l(x) = ±0.d1 d2 ...dk × 10e onde, 0.d1 d2 . . . dk corresponde à mantissa, e e é o expoente. f lt (x) representa o valor de x em vírgula flutuante truncado e f la (x) representa o valor de x em vírgula flutuante arredondado. Exemplo x= f lt (x) = 0.66666 × 100 f la (x) = 0.66667 × 100 2 3 A. Ismael F. Vaz (UMinho) MN C 2007/2008 13 / 216 Erros Formato de vírgula flutuante (norma IEEE-754, 32 bits) σ 1 bit e + 64 7 bits d1 4 bits d2 4 bits d3 4 bits d4 4 bits d5 4 bits d6 4 bits Exemplo −1 x = 2490.125 = 9 × 162 + 11 × 161 + 10 × 160 + 2 × 316 = −1 −2 −3 −4 9 × 16 + 11 × 16 + 10 × 16 + 2 × 16 × 16 0 σ 1000011 e + 64 A. Ismael F. Vaz (UMinho) 1001 d1 1011 d2 1010 d3 MN C 0010 d4 0000 d5 0000 d6 2007/2008 14 / 216 Erros Exemplo de programação A. Ismael F. Vaz (UMinho) MN C 2007/2008 15 / 216 Erros Exemplo de programação A. Ismael F. Vaz (UMinho) MN C 2007/2008 16 / 216 Erros Erros Seja x o valor exacto e x o seu valor aproximado, que será usado nos cálculos x − x é o erro absoluto (normalmente não se pode calcular, porque x é desconhecido); |x − x| ≤ δx é o limite superior do erro absoluto; rx = |x−x| |x| = δx |x| ≈ δx |x| é o erro relativo. Exemplo Pediu-se a duas pessoas para contarem laranjas de dois cestos. A primeira contou 980 laranjas num cesto de 1000 e a segunda contou 480 num cesto de 500. Apesar de cometerem o mesmo erro absoluto (δ1 = 20 laranjas e δ2 = 20 laranjas) 20 20 a segunda cometeu um erro maior, visto que r1 = 1000 = 0.02 e r2 = 500 = 0.04. A. Ismael F. Vaz (UMinho) MN C 2007/2008 17 / 216 Erros Fórmula fundamental dos erros Dados n valores aproximados, x1 , . . . , xn , e os seus respectivos erros absolutos é possível calcular um majorante para o erro absoluto cometido quando se aplica uma função f , através da fórmula fundamental dos erros. δf ≤ Mx1 δx1 + Mx2 δx2 + ... + Mxn δxn onde maxx∈I ∂∂f ≤ Mxi , com I = Ix1 × · · · × Ixn e xi Ixi = [xi − δxi , xi + δxi ] rf ≤ A. Ismael F. Vaz (UMinho) δf |f (x1 , . . . , xn )| MN C 2007/2008 18 / 216 Erros Exemplo Cálculo dos limites do erro absoluto e relativo do cálculo da função f (x) = x1 − x2 . ∂f ∂f Temos que ∂x ≤ M = 1 e ∂x2 ≤ Mx2 = 1, logo x1 1 δ f = δ x1 + δ x2 e rf ≤ A. Ismael F. Vaz (UMinho) δ x1 + δ x2 |x1 − x2 | MN C 2007/2008 19 / 216 Erros Algarismos Significativos Casa decimais são as casas (algarismos) à direita da vírgula. Os algarismos significativos são aqueles em que temos confiança do seu valor. Exemplos: 0.1234567 tem 1 algarismo significativo se δ = 0.05, 2 se δ = 0.005 e 7 se δ = 0.00000005. 0.0000020 tem 7 casas decimais e 2 algarismos significativos (δ = 0.00000005). Quando todas as casas decimais são significativas 0.2 é diferente de 0.20. A. Ismael F. Vaz (UMinho) MN C 2007/2008 20 / 216 Zeros de funções Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 21 / 216 Zeros de funções Forma geral do problema Pretende-se determinar x∗ tal que f (x) = 0 Exemplo Temos x∗ = −0.567143290409784 como solução para ex + x = 0 Nota: uma equação não linear pode não ter solução, ou ter mais do que uma. A. Ismael F. Vaz (UMinho) MN C 2007/2008 22 / 216 Zeros de funções Métodos iterativos Uma sequência diz-se iterativa se é definida por uma função F independente de k e dependente de um ou vários elementos anteriores a ele, xk = F (xk−1 , xk−2 , . . . ) Aproximações iniciais Um método que se baseie numa sequência iterativa com k − 1 elementos anteriores necessita também de k − 1 valores iniciais. Exemplo xk = xk−1 + xk−2 Partindo de x0 = 1 e x1 = 1 temos x2 = x1 + x0 = 2, x3 = x2 + x1 = 2 + 1 = 3, x4 = x3 + x2 = 3 + 2 = 5 gera uma sequência com os números de Fibonacci. A. Ismael F. Vaz (UMinho) MN C 2007/2008 23 / 216 Zeros de funções Convergência Uma sequência iterativa diz-se convergente quando lim xk = x∗ k→∞ Convergência superlinear |x∗ − xk+1 | = L ou k→+∞ |x∗ − xk |1.618 lim |x∗ − xk+1 | =0 k→+∞ |x∗ − xk | lim Convergência quadrática |x∗ − xk+1 | =L k→+∞ |x∗ − xk |2 lim A. Ismael F. Vaz (UMinho) MN C 2007/2008 24 / 216 Zeros de funções Critério de Paragem A sequência de aproximações pode ser infinita. Como se pretende obter uma aproximação à solução implementa-se um critério de paragem. Estimativa do erro relativo dk = |xk+1 − xk | ≤ 1 |xk+1 | Valor da função |f (xk+1 )| ≤ 2 Número máximo de iterações k ≥ nmax A. Ismael F. Vaz (UMinho) MN C 2007/2008 25 / 216 Zeros de funções Método dos gráficos Uma aproximação ao zero da função f (x) pode obter-se pela intersecção do gráfico de f (x) com o eixo dos xx; se f (x) = g(x) − h(x) os zeros de f (x) são os pontos de intersecção de g(x) com h(x). O método dos gráficos é frequentemente usado para obtermos uma aproximação inicial para outros métodos mais precisos. A. Ismael F. Vaz (UMinho) MN C 2007/2008 26 / 216 Zeros de funções Exemplo f (x) = ex + x g(x) = ex h(x) = −x 1 0.8 0.6 g(x) 0.4 h(x) y 0.2 0 −0.2 −0.4 f(x) −0.6 −0.8 −1 −0.9 A. Ismael F. Vaz (UMinho) −0.8 −0.7 −0.6 −0.5 x MN C −0.4 −0.3 −0.2 −0.1 0 2007/2008 27 / 216 Zeros de funções Método da bissecção Se f (xi )f (xs ) < 0 então existe um número ímpar de raízes de f (x) no intervalo [xi , xs ]. Aproxima-se da raiz calculando xk = xi +xs 2 ,k = 1, 2, . . . Considera-se o intervalo [xi , xk ] se f (xi )f (xk ) < 0 e faz-se xs ← xk ou [xk , xs ] se f (xk )f (xs ) < 0 e faz-se xi ← xk A. Ismael F. Vaz (UMinho) MN C 2007/2008 28 / 216 Zeros de funções Interpretação gráfica (Bissecção) f (x) = ex + x 10 8 f(x) 6 4 2 xk+1 xi 0 xk xs xs −2 −2 −1.5 A. Ismael F. Vaz (UMinho) −1 −0.5 0 x MN C 0.5 1 1.5 2 2007/2008 29 / 216 Zeros de funções Método da secante Método iterativo em que se fornece o x1 e x2 (a raiz não está necessariamente no intervalo [x1 , x2 ]). O próximo valor é calculado pela seguinte fórmula (equação iterativa): xk+1 = xk − (xk − xk−1 )f (xk ) , k = 2, 3, . . . f (xk ) − f (xk−1 ) Zeros complexos: O método da secante também calcula zeros complexos, bastando para isso usar aritmética complexa. Convergência: A convergência do método da Secante depende do valor de M 00 0 2m ser pequeno. M é o max |f (ξ)| e m é o min |f (η)|, onde ξ, η ∈ I. k+1 = − A. Ismael F. Vaz (UMinho) f 00 (ξ) k−1 k 2f 0 (η) MN C 2007/2008 30 / 216 Zeros de funções Interpretação gráfica (Secante) f (x) = ex + x 10 8 f(x) 6 4 2 0 xk+2 −2 −2 −1.5 A. Ismael F. Vaz (UMinho) −1 −0.5 xk xk+1 0 x MN C 0.5 xk−1 1 1.5 2 2007/2008 31 / 216 Zeros de funções Método de Newton Método iterativo em que se fornece o x0 . O próximo valor é calculado pela seguinte formula (equação iterativa): xk+1 = xk − f (xk ) , k = 1, 2, ... f 0 (xk ) Zeros complexos: O método de Newton também calcula zeros complexos, bastando para isso usar aritmética complexa. Convergência: A convergência do método de Newton depende do valor de M 00 0 2m ser pequeno. M é o max |f (ξ)| e m é o min |f (η)|, onde ξ, η ∈ I. k+1 = − A. Ismael F. Vaz (UMinho) f 00 (ξ) 2 2f 0 (η) k MN C 2007/2008 32 / 216 Zeros de funções Interpretação gráfica (Newton) f (x) = ex + x 10 8 f(x) 6 4 2 0 xk+2 −2 −2 −1.5 A. Ismael F. Vaz (UMinho) −1 −0.5 xk xk+1 0 x MN C 0.5 1 1.5 2 2007/2008 33 / 216 Zeros de funções Principais propriedades Ambos possuem convergência local. Superlinear no caso do método da secante e quadrática no método de newton. O método da secante não usa derivadas. O método da secante e de Newton podem falhar quando o denominador da equação iterativa é próximo de zero, i.e., quando f (xk ) ≈ f (xk−1 ) ou f 0 (xk ) ≈ 0. O método da secante e de Newton não convergem necessariamente para o zero mais próximo da aproximação inicial. A. Ismael F. Vaz (UMinho) MN C 2007/2008 34 / 216 Zeros de funções Exemplo ex + x = 0 Método de Newton com x0 = −0.5, ε1 = 0.5, ε2 = 0.1, nmax = 2. Temos então que f (x) = ex + x e que f 0 (x) = ex + 1. 1a iteração x0 = −0.5 f (−0.5) = e−0.5 − 0.5 = 0.1065 e f 0 (−0.5) = 1.6065. x1 = x0 − f (−0.5) f 0 (−0.5) = −0.5 − 0.1065 1.6065 = −0.5665 CP: f (−0.5665) = 1.0082 × 10−3 ≤ 0.1 (Verdadeiro) |x1 −x0 | |x1 | = |−0.56665+0.5| |−0.5665| = 0.1174 ≤ 0.5 (Verdadeiro) O processo iterativo pára com x∗ ≈ x1 = −0.5665. E se o ε1 fosse 0.1? A. Ismael F. Vaz (UMinho) MN C 2007/2008 35 / 216 Resolução de sistemas lineares Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 36 / 216 Resolução de sistemas lineares Forma geral do problema a11 x1 + a12 x2 + · · · + a1n xn = b1 a21 x1 + a22 x2 + · · · + a2n xn = b2 ... an1 x1 + an2 x2 + · · · + ann xn = bn É um sistema com n equações lineares nas n incógnitas, x1 , x2 , . . . , xn . O sistema pode ser escrito na forma matricial Ax = b a11 a12 . . . a1n x1 b1 a21 a22 . . . a2n x2 b2 ... ... = ... an1 an2 . . . ann xn bn A. Ismael F. Vaz (UMinho) MN C 2007/2008 37 / 216 Resolução de sistemas lineares Exemplo 3 2 −2 x1 1 9 7 −9 x2 = 1 6 8 −8 x3 1 É umsistema linearde dimensão 3 × 3. A matriz dos coeficientes 3 2 −2 A = 9 7 −9 ∈ R3×3 e o vector b = (1, 1, 1)T ∈ R3 é o vector dos 6 8 −8 termos independentes. A. Ismael F. Vaz (UMinho) MN C 2007/2008 38 / 216 Resolução de sistemas lineares Definições A característica de uma matriz A, c(A), é o número máximo de linhas paralelas, ou colunas, linearmente independentes que existem na matriz. Para que um sistema seja possível e determinado temos de ter c(A) = n. Caso contrário (c(A) < n) o sistema é indeterminado ou impossível. À matrix (A|b) que se obtém ampliando A com a coluna do termo independente b chama-se matriz ampliada do sistema. Triangular superior (inferior): É uma matriz em que os elementos abaixo (acima) da diagonal principal são zeros. Tridiagonal: Matriz em que aij = 0, se |i − j| ≥ 2, i, j = 1, . . . , n. Uma matriz com muitos elementos nulos diz-se esparsa. A. Ismael F. Vaz (UMinho) MN C 2007/2008 39 / 216 Resolução de sistemas lineares Tipos de métodos Métodos directos e estáveis. Métodos que calculam a solução exacta do sistema ao fim de um número finito de operações elementares, caso não ocorram erros de arredondamento. Matrizes dos coeficientes densas e de pequena dimensão. Métodos iterativos. Métodos que definem uma sequência infinita de operações, determinando uma sequência de aproximações, cujo limite é a solução exacta do sistema. Matrizes dos coeficientes esparsas e de grande dimensão. A. Ismael F. Vaz (UMinho) MN C 2007/2008 40 / 216 Resolução de sistemas lineares Estabilidade numérica Considere-se o seguinte sistema linear: 0.0001x1 + x2 = 1.0001 x1 + x2 = 2 cuja solução é x = (1, 1)T . Usando aritmética de três algarismos significativos e considerando o multiplicador igual a 1 5 − 0.100×10 −3 = −0.100 × 10 , surge o sistema condensado 0.100 × 10−3 x1 + x2 = 0.100 × 101 5 − 0.1 × 10 x2 = −0.1 × 105 cuja solução é x = (0, 1)T !!! A. Ismael F. Vaz (UMinho) MN C 2007/2008 41 / 216 Resolução de sistemas lineares Motivação - Continuação Se nas mesmas condições usarmos a pivotagem parcial temos x1 + x2 = 2 −3 0.100 × 10 x1 + x2 = 0.100 × 101 m = − 0.100×10 1 −3 = −0.100 × 10−3 x1 + x2 = 2 x2 = 0.100 × 101 cuja solução é x = (1, 1)T . A. Ismael F. Vaz (UMinho) MN C 2007/2008 42 / 216 Resolução de sistemas lineares Eliminação de Gauss com Pivotagem Parcial (EGPP) Corresponde a eliminação de Gauss, mas em que a linha usada na eliminação dos elementos da coluna das linhas seguintes é o maior em módulo. Exemplo: 3 2 −2 1 9 7 −9 1 9 7 −9 1 → 3 2 −2 1 m21 = − 3 9 6 8 −8 1 6 8 −8 1 m31 = − 69 9 7 −9 0 −0.333333 1 0 3.333333 −2 A. Ismael F. Vaz (UMinho) MN C 1 0.666667 = 0.333333 2007/2008 43 / 216 Resolução de sistemas lineares Eliminação de Gauss com Pivotagem Parcial (EGPP) 1 9 7 −9 0 3.333333 −2 0.333333 = m32 = − −0.333333 = 0.1 0 −0.333333 1 0.666667 3.333333 9 7 −9 0 3.333333 −2 0 0 0.8 A. Ismael F. Vaz (UMinho) MN C 1 0.333333 0.7 2007/2008 44 / 216 Resolução de sistemas lineares Substituição inversa Quando a matriz é triangular superior pode-se determinar a solução directamente, através da substituição inversa. Exemplo 1 9 7 −9 0 3.333333 −2 0.333333 0.7 0 0 0.8 vem que x3 = 0.7 = 0.875, 0.8 x1 = A. Ismael F. Vaz (UMinho) x2 = 0.333333 − (−2) × 0.875 = 0.625 3.333333 1 − (−9) × 0.875 − 7 × 0.625 = 0.5 9 MN C 2007/2008 45 / 216 Resolução de sistemas lineares Substituição directa Quando a matriz é triangular inferior pode-se determinar a solução directamente, através da substituição directa. Exemplo 1 0 0 2 2 1 0 3 3 2 1 4 vem que x1 = 2 = 2, 1 x3 = A. Ismael F. Vaz (UMinho) x2 = 3−2×2 = −1 1 4 − 3 × 2 − 2 × (−1) =0 1 MN C 2007/2008 46 / 216 Resolução de sistemas lineares Decomposição LU Da eliminação de Gauss com Pivotagem Parcial resulta (A |I ) → (U |J ) Exemplo 2 1 0 1 2 1 0 1 1 2 1 0 → → 2 1 0 1 1 2 1 0 0 1.5 1 −0.5 A. Ismael F. Vaz (UMinho) MN C 2007/2008 47 / 216 Resolução de sistemas lineares Determinantes de Matrizes s det(A) = (−1) n Y uii i=1 onde uii corresponde aos elementos da diagonal da matriz U e s é o número de trocas de linhas para obter a matriz U . Exemplo 1 2 2 1 1 det = (−1) det = (−1)1 × 2 × 1.5 = −3 2 1 0 1.5 A. Ismael F. Vaz (UMinho) MN C 2007/2008 48 / 216 Resolução de sistemas lineares Cálculo da Inversa de Matrizes A matriz inversa de A (A−1 ) verifica AA−1 = I = A−1 A. O cálculo da matriz inversa reduz-se a resolução de n sistemas lineares da forma Axj = ej , j = 1, . . . , n, em que os vectores independentes ej são as colunas da matriz identidade. O vector solução xj corresponde à coluna j da matriz inversa. Na prática resolve-se os n sistemas em simultâneo, i.e., resolve-se a equação (U |J ) por substituição inversa. A. Ismael F. Vaz (UMinho) MN C 2007/2008 49 / 216 Resolução de sistemas lineares Cálculo da Inversa de Matrizes - Exemplo 1 1 2 1 0 2 1 0 1 2 1 0 → → 2 1 0 1 1 2 1 0 0 1.5 1 −0.5 2 1 0 = −0.3334 x11 = 0−1×0.6667 2 → 1 0 1.5 1 x21 = 1.5 = 0.6667 2 1 1 x12 = 1−1×(−0.3333) = 0.6667 2 → −0.5 0 1.5 −0.5 x22 = 1.5 = −0.3333 1 2 −0.3334 0.6667 A inversa de é 2 1 0.6667 −0.3333 A. Ismael F. Vaz (UMinho) MN C 2007/2008 50 / 216 Resolução de sistemas lineares Métodos iterativos Nos métodos iterativos a solução exacta só é obtida ao fim de uma sequência infinita de operações. O processo parte de uma aproximação inicial para a solução do sistema e usa uma equação iterativa da forma M x(k+1) = N x(k) + b, para k = 1, 2, . . . Os métodos em que M e N não dependem de k dizem-se estacionários. Os métodos de Jacobi e Gauss-Seidel são métodos estacionário. A. Ismael F. Vaz (UMinho) MN C 2007/2008 51 / 216 Resolução de sistemas lineares Método Iterativo Jacobi D matriz dos elementos da diagonal principal, L matriz dos simétricos dos elementos abaixo da diagonal principal e U matriz dos simétricos dos elementos acima da diagonal principal. O método de Jacobi usa a partição de A em D − (L + U ), i.e, M = D e N =L+U A equação iterativa fica Dx(k+1) = (L + U )x(k) + b ou x(k+1) = D−1 (L + U )x(k) + D−1 b A matriz iteração é CJ = M −1 N = D−1 (L + U ) A. Ismael F. Vaz (UMinho) MN C 2007/2008 52 / 216 Resolução de sistemas lineares Método Iterativo Gauss-Seidel M =D−L N =U A equação iterativa fica M x(k+1) = N x(k) + b ou x(k+1) = M −1 N x(k) + M −1 b A matriz iteração é CGS = M −1 N = (D − L)−1 U. A. Ismael F. Vaz (UMinho) MN C 2007/2008 53 / 216 Resolução de sistemas lineares Critério de Paragem Erro relativo na aproximação (k+1) x − x(k) < 1 x(k+1) Resíduo A. Ismael F. Vaz (UMinho) (k+1) − b < 2 Ax MN C 2007/2008 54 / 216 Resolução de sistemas lineares Convergência dos métodos iterativos Condições suficientes A simétrica e definida positiva =⇒ GS exibe convergência global; A é estrita e diagonalmente dominante =⇒ J e GS exibem convergência global; kCkp < 1, para qualquer normal p, =⇒ J e GS exibem convergência global; C é a matriz iteração de Jacobi ou Gauss-Seidel. A. Ismael F. Vaz (UMinho) MN C 2007/2008 55 / 216 Resolução de sistemas lineares Algumas definições Uma matriz A diz-se simétrica se A = AT . Uma matriz é definida positiva se dT Ad > 0, ∀d 6= 0. É equivalente a verificar que todos os determinante das sub-matrizes principais são maiores do que zero. Uma matriz P A diz-se estrita e diagonalmente dominante se |aii | > nj=1 |aij |, i = 1, . . . , n j6=i A. Ismael F. Vaz (UMinho) MN C 2007/2008 56 / 216 Resolução de sistemas lineares Exemplo - convergência de Gauss-Seidel Considere-se a seguinte matriz dos coeficientes de um sistema linear 3 1 A= 1 2 Como a A = AT a matriz é simétrica. 3 1 det(|3|) = 3 > 0 det(A) = 3 × 2 − 1 × 1 = 5 > 0 1 2 Logo A é simétrica e definida positiva e o método de Gauss-Seidel converge. A. Ismael F. Vaz (UMinho) MN C 2007/2008 57 / 216 Resolução de sistemas lineares Exemplo - convergência de Jacobi Considere-se o seguinte sistema 1 2 1 3 1 1 Como |1| ≯ |2| a matriz dos coeficientes não é estrita e diagonalmente dominante e nada se pode concluir acerca da convergência do método de Jacobi. No entanto se trocarmos as linhas temos 3 1 1 1 2 1 e como |3| > |1| e |2| > |1| a matriz é estrita e diagonalmente dominante, logo o método de Jacobi converge. A. Ismael F. Vaz (UMinho) MN C 2007/2008 58 / 216 Resolução de sistemas lineares Exemplo - convergência de Jacobi Considere-se a seguinte matriz dos coeficientes de um sistema linear 3 2 A= 3 1 Como |3| > |2|, mas |1| ≯ |3| a matriz dos coeficientes não é estrita e diagonalmente dominante e nada se pode concluir acerca da convergência do método de Jacobi. 3 0 0 0 0 −2 D= L= U= 0 1 −3 0 0 0 A. Ismael F. Vaz (UMinho) MN C 2007/2008 59 / 216 Resolução de sistemas lineares Continuação CJ = D −1 0.3333 0 0 1 0 −0.6666 −3 0 (L + U ) = = 0 −2 −3 0 Como kCJ k∞ = max{|0| + | − 0.6666|, | − 3| + |0|} = 3 ≥ 1 e kcJ k1 = max{|0| + | − 3|, | − 0.6666| + |0|} = 3 ≥ 1 nada se pode concluir acerca da convergência do método de Jacobi. A. Ismael F. Vaz (UMinho) MN C 2007/2008 60 / 216 Resolução de sistemas lineares Uma iteração do método de Gauss-Seidel Considere-se o seguinte sistema linear 3 1 1 A= , 1 2 1 x(1) = (0, 0)T e 1 = = 0.1 3 0 0 0 0 −1 D= L= U= 0 2 −1 0 0 0 Equação iterativa é (D − L)x(k+1) = U x(k) + b A. Ismael F. Vaz (UMinho) MN C 2007/2008 61 / 216 Resolução de sistemas lineares Continuação 1a iteração 3 0 1 2 (2) x = 3 0 1 1 2 1 0 −1 0 0 ( → (2) x1 = (2) x2 = 0 0 + 1 1 1 3 = 0.3333 1−1×0.3333 = 2 = 1 1 0.3334 C.P. 0.3333 0 (2) 0.3334 − 0 x − x(1) 0.3334 ∞ = = = 1 ≮ 0.1 x(2) 0.3333 0.3334 0.3334 ∞ Como o critério não se verifica deve-se continuar com a próxima iteração. A. Ismael F. Vaz (UMinho) MN C 2007/2008 62 / 216 Resolução de sistemas não lineares Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 63 / 216 Resolução de sistemas não lineares Sistemas de equações não lineares Forma geral do problema f1 (x1 , x2 , . . . , xn ) = 0 f2 (x1 , x2 , . . . , xn ) = 0 ... fn (x1 , x2 , . . . , xn ) = 0 em que f = (f1 , f2 , . . . , fn )T é um vector de funções pelo menos uma vez continuamente diferenciáveis. Pretende-se determinar um x∗ = (x∗1 , x∗2 , . . . , x∗n )T tal que f (x∗ ) = (0, 0, . . . , 0)T = 0. A. Ismael F. Vaz (UMinho) MN C 2007/2008 64 / 216 Resolução de sistemas não lineares Fórmula de Taylor a uma dimensão Se f : R → R for l + 1 vezes diferenciável temos que f (x) = l X f (k) (a) k=0 k! (x − a)k + f (l+1) (ξ) (x − a)l+1 (l + 1)! com ξ ∈ [a, x] e a função definida em torno de a. Exemplo: Valor da função em x(k+1) definido em torno de x(k) . f (x(k+1) ) ≈ f (x(k) ) + f 0 (x(k) )(x(k+1) − x(k) ) ou seja, quando se pretende que f (x(k+1) ) = 0 vem x(k+1) = x(k) − A. Ismael F. Vaz (UMinho) f (x(k) ) f 0 (x(k) ) Eq. it. do método de Newton MN C 2007/2008 65 / 216 Resolução de sistemas não lineares Fórmula de Taylor para dimensão n Se f : Rn → Rn temos que f (x(k+1) ) ≈ f (x(k) )+ (k) ∂f1 (x ) ∂x1 ∂f2 (x(k) ) ∂x1 ∂f1 (x(k) ) ∂x2 ∂f2 (x(k) ) ∂x2 ∂fn (x(k) ) ∂x1 ∂fn (x(k) ) ∂x2 ... ... ∂f1 (x(k) ) ∂xn ∂f2 (x(k) ) ∂xn ... ∂fn (x(k) ) ∂xn ... (k+1) (k) x1 − x1 (k+1) (k) x2 − x2 ... (k+1) (k) xn − xn e deduzindo a equação iterativa do método de Newton para sistemas de equações não lineares temos, (k) (k+1) J(x(k) )∆(k) = x(k) + ∆(k) x = −f (x ), com x x em que J(x) é o Jacobiano da função. A. Ismael F. Vaz (UMinho) MN C 2007/2008 66 / 216 Resolução de sistemas não lineares Critério de paragem (k) k∆x k2 kx(k+1) − x(k) k2 = (k+1) ≤ 1 (k+1) kx k2 kx k2 Se kx(k+1) k2 é zero, ou próximo de zero, então o critério deve ser (k) k∆x k2 ≤ 1 kf (x(k+1) )k2 ≤ 2 Número máximo de iterações. A. Ismael F. Vaz (UMinho) MN C 2007/2008 67 / 216 Resolução de sistemas não lineares Propriedades Convergência local quadrática. Determina a solução de um sistema linear numa única iteração. Inconveniente do cálculo do Jacobiano. (Também existe um método da secante para sistemas.) O método falha quando o Jacobiano é singular (nova aproximação inicial). O método de Newton não converge necessariamente para a solução mais próxima da aproximação inicial. A. Ismael F. Vaz (UMinho) MN C 2007/2008 68 / 216 Resolução de sistemas não lineares Um exemplo Considere-se o seguinte sistema não linear 3x2 + 2y 2 = 35 6x 4y cujo Jacobiano é J(x, y) = 4x2 − 3y 2 = 24 8x −6y Temos f (x, y) = 3x2 + 2y 2 − 35 4x2 − 3y 2 − 24 e a aproximação inicial é (x, y)(1) = (2.5, 2). Pretende-se determinar a solução com uma precisão de 1 = 2 = 10−1 . A. Ismael F. Vaz (UMinho) MN C 2007/2008 69 / 216 Resolução de sistemas não lineares Continuação 1a iteração 15 8 J((x, y) ) = J(2.5, 2) = 20 −12 −8.25 (1) f ((x, y) ) = f (2.5, 2) = −11 (1) 15 8 8.25 20 −12 11 20 −12 11 → → 20 −12 11 15 8 8.25 0 17 0 0.55 (1) (1) → ∆(x,y) = e (x, y)(2) = (x, y)(1) + ∆(x,y) = (3.05, 2)T 0 A. Ismael F. Vaz (UMinho) MN C 2007/2008 70 / 216 Resolução de sistemas não lineares Continuação C.P. f (x, y)(2) ∞ 0.9075 = 1.21 2 = 0.1 = 1.21 ∞ Como o critério não se verifica faz-se uma nova iteração. A. Ismael F. Vaz (UMinho) MN C 2007/2008 71 / 216 Interpolação polinomial Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 72 / 216 Interpolação polinomial Motivação Pretende-se determinar uma função aproximação que descreva o melhor possível o comportamento de um conjunto de pontos (x0 , f0 ), (x1 , f1 ), . . . , (xm , fm ). Este conjunto de pontos pode ter sido obtido de: observações de uma experiência (função desconhecida); uma função complexa cujo cálculo é difícil (função pode ser conhecida). A função aproximação server para: formular um modelo matemático que descreve o processo em causa; obter valores da função em pontos que são desconhecidos. Problema: Como implementar a função sin(x) num microcontrolador? A. Ismael F. Vaz (UMinho) MN C 2007/2008 73 / 216 Interpolação polinomial Continuação Pretende-se então, dado um conjunto de pontos (xi , fi ), i = 1, . . . , m, determinar uma função aproximação p(x) que melhor descreve o comportamento dos dados, de acordo com uma certa medida. No nosso caso vamos apenas considerar funções aproximação polinomiais, i.e., pn (x) é um polinómio interpolador de grau n. Para construirmos o polinómio interpolador de Newton são necessárias as diferenças divididas. A. Ismael F. Vaz (UMinho) MN C 2007/2008 74 / 216 Interpolação polinomial Diferenças divididas com espaçamento não constante Considere-se uma função f (x) tabelada em m + 1 pontos x0 , x1 , . . . , xm não igualmente espaçados. Diferenças divididas de primeira ordem são [xj , xj+1 ] = fj − fj+1 j = 0, . . . , m − 1 xj − xj+1 onde fj = f (xj ). A diferença dividida de primeira ordem corresponde ao declive da recta que passa em (xj , fj ) e (xj+1 , fj+1 ). A. Ismael F. Vaz (UMinho) MN C 2007/2008 75 / 216 Interpolação polinomial Continuação As diferenças divididas de segunda ordem são [xj , xj+1 , xj+2 ] = [xj , xj+1 ] − [xj+1 , xj+2 ] , xj − xj+2 j = 0, . . . , m − 2. As diferenças divididas de ordem n são [xj , xj+1 , . . . , xj+n ] = [xj , xj+1 , . . . , xj+n−1 ] − [xj+1 , xj+2 , . . . , xj+n ] xj − xj+n para j = 0, . . . , m − n. A. Ismael F. Vaz (UMinho) MN C 2007/2008 76 / 216 Interpolação polinomial Tabela das diferenças divididas x0 f0 x1 f1 [x0 , x1 ] [x0 , x1 , x2 ] [x1 , x2 ] x2 f2 ... xm−2 ... fm−2 xm−1 fm−1 [x0 , x1 , x2 , x3 ] [x1 , x2 , x3 ] [x2 , x3 ] [x1 , x2 , x3 , x4 ] [x0 , . . . , xm−1 , xm ] [xm−3 , xm−2 , xm−1 ] [xm−2 , xm−1 ] [xm−3 , xm−2 , xm−1 , xm ] [xm−2 , xm−1 , xm ] [xm−1 , xm ] xm fm A. Ismael F. Vaz (UMinho) MN C 2007/2008 77 / 216 Interpolação polinomial Exemplo xi 1 fi 2 3 3 4 4 dd1 dd2 dd3 dd4 dd5 0.5000 0.1667 −0.0667 1.0000 −0.1667 0.5000 6 5 6 −0.0043 −0.0139 0.1667 −0.0139 1.0000 7 0.0250 0.0833 0.0833 1.3333 10 10 A. Ismael F. Vaz (UMinho) MN C 2007/2008 78 / 216 Interpolação polinomial Propriedades das diferenças divididas Simétrica nos argumentos, i.e., é independente da ordem dos argumentos; Exemplo xi 6 fi 5 7 6 xi 7 fi 6 1.0000 1.3333 0.0833 1.3333 10 10 A. Ismael F. Vaz (UMinho) 0.0833 10 10 1.25 6 MN C 5 2007/2008 79 / 216 Interpolação polinomial Propriedades das diferenças divididas Se fj = uj + vj para valores de xj , j = 0, . . . , m então a tabela das DD de f é igual à soma das tabelas das DD de u e v. Exemplo: f (x) = sin(x) + ex , u(x) = sin(x) e v(x) = ex . xi 1 ui 0.8415 2 0.9093 xi 1 vi 2.7183 2 7.3891 0.0678 4.6708 −0.4180 −0.7682 3 4.0128 12.6964 3 0.1411 xi 1 fi 3.5598 2 8.2984 20.0855 4.7386 3.5948 11.9282 3 A. Ismael F. Vaz (UMinho) 20.2266 MN C 2007/2008 80 / 216 Interpolação polinomial Propriedades das diferenças divididas A diferença dividida de cf (x), com c constante, é igual ao produto da diferença dividida de f (x) por c. Exemplo: f (x) = sin(x), cf (x) = 2 sin(x) fi xi 1 0.8415 xi 2fi 1 1.6830 0.0678 2 0.1356 −0.4180 0.9093 2 −0.7682 3 −1.5364 3 0.1411 A. Ismael F. Vaz (UMinho) −0.8360 1.8186 MN C 0.2822 2007/2008 81 / 216 Interpolação polinomial Propriedades das diferenças divididas As diferenças divididas de ordem n da função xn são iguais a 1 e as de ordem r > n são nulas. Como consequência as diferenças divididas de ordem n de um polinómio de ordem n são iguais e diferentes de zero. Exemplo: f (x) = x2 + 3x + 1 xi fi dd1 dd2 dd3 dd4 −1 −1 2 0 1 1 4 0 1 5 1 0 6 0 2 11 1 8 3 19 A. Ismael F. Vaz (UMinho) MN C 2007/2008 82 / 216 Interpolação polinomial Fórmula interpoladora de Newton Das definições das diferenças divididas pode-se concluir que f (x) = f0 + (x − x0 )[x0 , x] = f0 + (x − x0 ) f (x) − f0 x − x0 [x0 , x] = [x0 , x1 ] + (x − x1 )[x0 , x1 , x] [x0 , x1 , x] = [x0 , x1 , x2 ] + (x − x2 )[x0 , x1 , x2 , x] ... [x0 , x1 , . . . , xn−1 , x] = [x0 , x1 , . . . , xn−1 , xn ] + (x − xn )[x0 , x1 , . . . , xn−1 , xn , x] ... deduzindo-se a fórmula interpoladora de Newton f (x) = f0 + (x − x0 )[x0 , x1 ] + (x − x0 )(x − x1 )[x0 , x1 , x2 ] + · · · + (x − x0 ) . . . (x − xn−1 )[x0 , x1 , . . . , xn ] + · · · A. Ismael F. Vaz (UMinho) MN C 2007/2008 83 / 216 Interpolação polinomial Polinómio interpolador de Newton O polinómio interpolador de grau n obtém-se usado apenas n + 1 termos da fórmula interpoladora de Newton, pn (x) = f0 + (x − x0 )[x0 , x1 ] + (x − x0 )(x − x1 )[x0 , x1 , x2 ] + · · · + (x − x0 ) . . . (x − xn−1 )[x0 , x1 , . . . , xn ] e temos que (n+1) R(x) = f (x) − pn (x) = (x − x0 )(x − x1 ) . . . (x − xn−1 )(x − xn ) f (n+1)!(ξ) , ξ ∈ [x0 , xn ]. A. Ismael F. Vaz (UMinho) MN C 2007/2008 84 / 216 Interpolação polinomial Diferenças divididas e derivadas Da dedução da fórmula do erro de truncatura temos que [x0 , x1 , . . . , xn ] = f (n) (ξ) , ξ ∈ [x0 , xn ], n! ou seja, as diferenças divididas de primeira ordem são aproximações as primeiras derivadas e a diferença dividida de ordem n é uma aproximação à derivada de ordem n da função sobre n!. A. Ismael F. Vaz (UMinho) MN C 2007/2008 85 / 216 Interpolação polinomial Determinação do polinómio interpolador Em geral temos que m > n. Para construirmos o polinómio interpolador de grau n são necessários n + 1 pontos. A escolha dos pontos está relacionada com o valor de x̄ para o qual se pretende obter uma estimativa da função f (x̄). A escolha dos pontos deve obedecer as seguintes regras: os pontos xj e xj+1 em que xj < x̄ < xj+1 devem ser incluídos. os restantes, até formar os n + 1 necessários, são aqueles que estão mais próximos de x̄. A. Ismael F. Vaz (UMinho) MN C 2007/2008 86 / 216 Interpolação polinomial Exemplo Considere-se a seguinte tabela de pontos i 0 1 2 3 4 5 xi 1 3 4 6 7 10 fi 2 3 4 5 6 10 pretende-se obter uma estimativa de f (8) através usando uma interpolação quadrática (polinómio de colocação de grau 2). Precisamos de 3 pontos para construir o polinómio de grau 2. x4 e x5 devem ser incluídos, uma vez que x4 < 8 < x5 , e o restante será o x3 . A. Ismael F. Vaz (UMinho) MN C 2007/2008 87 / 216 Interpolação polinomial Continuação Construindo a tabela das diferenças divididas temos que xi 6 fi 5 7 6 1.0000 0.0833 1.3333 10 10 e p2 (x) = 5 + (x − 6) × 1 + (x − 6)(x − 7) × 0.0833, ficando f (8) ≈ p2 (8) = 5 + (8 − 6) × 1 + (8 − 6)(8 − 7) × 0.0833 = 7.1666. Nota: x0 = 6, x1 = 7, e x2 = 10 para efeitos do cálculo do polinómio. Sendo o polinómio interpolador único qualquer combinação de pontos resulta no mesmo polinómio. A. Ismael F. Vaz (UMinho) MN C 2007/2008 88 / 216 Interpolação polinomial Continuação xi 7 fi 6 1.3333 10 10 0.0833 1.25 6 5 e p2 (x) = 6 + (x − 7) × 1.3333 + (x − 7)(x − 10) × 0.0833, ficando f (8) ≈ p2 (8) = 6 + (8 − 7) × 1.333 + (8 − 7)(8 − 10) × 0.0833 = 7.1667. A. Ismael F. Vaz (UMinho) MN C 2007/2008 89 / 216 Interpolação polinomial Cálculo do majorante do erro absoluto f (3) (ξ) ET (x) = (x − x0 )(x − x1 )(x − x2 ) , ξ ∈ [6, 10] 3! Como necessitámos de uma estimativa para f (3) (ξ) e a função f (x) é desconhecida vamos usar as diferenças divididas para a obter. Com os pontos usados na construção do polinómio não é possível obter uma diferença dividida de ordem 3 e por isso vamos acrescentar mais um ponto à tabela anterior. É indiferente inserir o ponto no início ou no final da tabela, uma vez que o valor de dd3 será o mesmo. A. Ismael F. Vaz (UMinho) MN C 2007/2008 90 / 216 Interpolação polinomial Continuação xi 4 fi 4 6 5 7 6 0.5000 0.1667 −0.0139 1.0000 0.0833 1.3333 10 10 ET (8) = |(8 − 6)(8 − 7)(8 − 10) × (−0.0139)| = 0.0556 A. Ismael F. Vaz (UMinho) MN C 2007/2008 91 / 216 Mínimos quadrados lineares Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 92 / 216 Mínimos quadrados lineares Mínimos quadrados lineares Motivação Os mínimos quadrados são usados quando os dados obtidos para uma determinada função f (x) estão afectados de erros (ou ruídos). Neste caso não faz muito sentido usar uma interpolação, mas sim construir uma função que reflicta, na generalidade, o comportamento dos dados. Exemplo Suponhamos que se pretende estimar o consumo de um automóvel em função da velocidade. Através da realização de várias experiências chegou-se aos seguintes valores: xi (velocidade - km/h) fi (consumo l/100km) A. Ismael F. Vaz (UMinho) 20 5.5 40 5.6 MN C 50 5.7 60 5.9 60 5.85 70 6.1 80 7.5 2007/2008 93 / 216 Mínimos quadrados lineares Cont. Seria correcto usar um polinómio interpolador para modelar a função f (x)? 7.4 7.2 Consumo (l/100km) 7 6.8 6.6 6.4 6.2 6 5.8 5.6 5.4 20 30 40 50 60 Velocidade (km/h) 70 80 O mais correcto seria determinar um polinómio de grau 2 (ou c1 + c2 ex ?) que melhor se aproxima-se dos dados da tabela. A. Ismael F. Vaz (UMinho) MN C 2007/2008 94 / 216 Mínimos quadrados lineares Forma geral do problema - Caso discreto Dado um conjunto de valores (xi , fi ), i = 1, . . . , m, pretende-se determinar um modelo M (x) que aproxima o melhor possível a função dada, ou seja, minimizarhf − M (x), f − M (x)i em que hg(x), h(x)i = m X ω(xi )g(xi )h(xi ). i=1 Pretende-se então minimizar m X (fi − M (xi ))2 i=1 A. Ismael F. Vaz (UMinho) MN C 2007/2008 95 / 216 Mínimos quadrados lineares Caso polinomial - estabilidade numérica No caso polinomial, ou seja, no caso em que M (x) = pn (x) e é usado o conjunto dos polinómios base {1, x, x2 , . . . , xn−1 , xn } na definição do modelo, temos que M (x) = pn (x) = c0 + c1 x + c2 x2 + · · · + cn−1 xn−1 + cn xn e a resolução do problema min m X (fi − pn (xi ))2 i=1 resulta num sistema linear mal condicionado. A introdução dos polinómios ortogonais é suficiente para resolver o problema de mau condicionamento. A. Ismael F. Vaz (UMinho) MN C 2007/2008 96 / 216 Mínimos quadrados lineares Polinómios ortogonais Definições: Duas funções g(x) e h(x) dizem-se ortogonais se o seu produto escalar for nulo, i.e., se hg(x), h(x)i = 0. A sequência P0 (x), P1 (x), . . . , Pn (x) forma uma sequência de n + 1 polinómios ortogonais se os polinómios Pi (x), i = 0, . . . , n, forem ortogonais dois a dois e cada Pi (x) for um polinómio de grau igual a i. A. Ismael F. Vaz (UMinho) MN C 2007/2008 97 / 216 Mínimos quadrados lineares Propriedades dos polinómios ortogonais Os polinómios ortogonais Pn (x) são também linearmente independentes. Assim, qualquer polinómio pn (x), de grau n, pode ser expresso na seguinte forma única pn (x) = c0 P0 (x) + c1 P1 (x) + · · · + cn Pn (x), como uma combinação linear de uma sequência de polinómios ortogonais. Os polinómios Pn (x) têm zeros reais e distintos que pertencem a [x1 , xm ]. A. Ismael F. Vaz (UMinho) MN C 2007/2008 98 / 216 Mínimos quadrados lineares Determinação dos polinómios ortogonais Pi+1 (x) = Ai (x − Bi )Pi (x) − Ci Pi−1 (x), para i = 0, . . . , n − 1 sendo P−1 (x) = 0, P0 (x) = 1 e os coeficientes da relação Ai = 1, para todo o i, hxPi (x), Pi (x)i Bi = , para todo o i, hPi (x), Pi (x)i hPi (x), Pi (x)i C0 = 0 e Ci = para i > 0. hPi−1 (x), Pi−1 (x)i A. Ismael F. Vaz (UMinho) MN C 2007/2008 99 / 216 Mínimos quadrados lineares Determinação dos coeficientes Pm Pm fi P1 (xi ) i=1 fi P0 (xi ) P c0 = , c1 = Pi=1 ,..., m m 2 2 P (x ) i=1 0 i i=1 P1 (xi ) P m fi Pn (xi ) cn = Pi=1 m 2 i=1 Pn (xi ) sendo o modelo pn (x) = c0 P0 (x) + c1 P1 (x) + · · · + cn Pn (x). A. Ismael F. Vaz (UMinho) MN C 2007/2008 100 / 216 Mínimos quadrados lineares Exemplo Determinação da recta (polinómio de grau 1) que melhor se ajusta (no sentido dos mínimos quadrados) aos dados da tabela xi fi 20 5.5 40 5.6 50 5.7 60 5.9 60 5.85 70 6.1 80 7.5 O modelo a determinar será p1 (x) = c0 P0 (x) + c1 P1 (x). Em primeiro lugar determina-se os polinómios ortogonais. P0 (x) = 1 por definição e P1 (x) = A0 (x − B0 )P0 (x) − C0 P−1 (x) com A0 = 1, C0 = 0, P−1 (x) = 0 e P7 xi P02 (xi ) hxP0 (x), P0 (x)i 380 B0 = = Pi=1 = = 54.285714 7 2 hP0 (x), P0 (x)i 7 i=1 P0 (xi ) A. Ismael F. Vaz (UMinho) MN C 2007/2008 101 / 216 Mínimos quadrados lineares Cont. Temos então que p1 (x) = c0 + c1 (x − 54.285714) e falta determinar os coeficientes. P7 fi P0 (xi ) 42.15 = 6.021429 c0 = Pi=1 = 7 2 7 i=1 P0 (xi ) P7 fi P1 (xi ) 5.5(20 − 54.285714) · · · 7.5(80 − 54.285714) c1 = Pi=1 = 7 2 (20 − 54.285714)2 · · · (80 − 54.285714)2 i=1 P1 (xi ) 62.571441 = = 0.026386 (0.026506 CoNum) 2371.4286 ficando p1 (x) = 6.021429 + 0.026386(x − 54.285714) A. Ismael F. Vaz (UMinho) MN C 2007/2008 102 / 216 Mínimos quadrados lineares Exemplo - Interpretação gráfica 8 7.5 p2(x) 7 6.5 6 p1(x) 5.5 5 20 30 40 50 60 70 80 p2 (x) = 6.021429 + 0.026506(x − 54.285714)+ 0.000946 ∗ ((x − 44.991394)(x − 54285714) − 338.775510) A. Ismael F. Vaz (UMinho) MN C 2007/2008 103 / 216 Mínimos quadrados lineares Modelo linear não polinomial - Caso discreto Pretende-se determinar o modelo, linear nos coeficientes, que melhor se aproxima (no sentido dos mínimos quadrados) à função f (x). Sendo o modelo linear nos coeficientes pode-se escrever como M (x) = c1 φ1 (x) + c2 φ2 (x) + · · · + cn φn (x) Exemplo M (x) = c1 + c2 ex em que φ1 (x) = 1 e φ2 (x) = ex . A. Ismael F. Vaz (UMinho) MN C 2007/2008 104 / 216 Mínimos quadrados lineares Dedução das equações normais Pretende-se minimizarS ≡ m X (fi − c1 φ1 (xi ) − · · · − cn φn (xi ))2 i=1 e derivando S em ordem aos ci , i = 1, . . . , n e igualando a zero, obtém-se m X ∂S = (fi − c1 φ1 (xi ) − · · · − cn φn (xi )) φ1 (xi ) = 0 ∂c1 i=1 ··· m X ∂S = (fi − c1 φ1 (xi ) − · · · − cn φn (xi )) φn (xi ) = 0 ∂cn i=1 A. Ismael F. Vaz (UMinho) MN C 2007/2008 105 / 216 Mínimos quadrados lineares Sistema das equações normais Na forma matricial vem 0X m φ1 (xi )φ1 (xi ) m X φ1 (xi )φ2 (xi ) B B i=1 i=1 B m m BX X B φ2 (xi )φ1 (xi ) φ2 (xi )φ2 (xi ) B B i=1 B i=1 B B ...... B BX m m X @ φn (xi )φ1 (xi ) φn (xi )φ2 (xi ) i=1 i=1 A. Ismael F. Vaz (UMinho) 1 0X 1 m f φ (x ) φ1 (xi )φn (xi ) C i 1 i C B C C 0 1 B i=1 i=1 C B C c1 m m C BX C X C CB C B fi φ2 (xi ) C ... φ2 (xi )φn (xi ) C B c2 C B C CB C = B i=1 C C @ ...A B i=1 B C C B ... C C ...... B C C cn B C C m m X A A @X fi φn (xi ) ... φn (xi )φn (xi ) ... m X i=1 MN C i=1 2007/2008 106 / 216 Mínimos quadrados lineares Exemplo Consideremos o exemplo já apresentado xi (velocidade - km/h) fi (consumo l/100km) 20 5.5 40 5.6 50 5.7 60 5.9 60 5.85 70 6.1 80 7.5 x pretendendo-se ajustar o modelo M (x) = c1 + c2 e 20 à tabela dada. Temos x que φ1 (x) = 1 e φ2 (x) = e 20 , resolvendo o sistema linear (EGPP) ! xi P7 P7 P7 1 e 20 fi i=1 i=1 i=1 xi xi xi P7 P7 P7 20 10 20 i=1 e i=1 e i=1 fi e vem c1 = 5.231132, c2 = 0.036838 e consequentemente x M (x) = 5.231132 + 0.036838e 20 . A. Ismael F. Vaz (UMinho) MN C 2007/2008 107 / 216 Mínimos quadrados lineares Exemplo - Gráfico 7.5 Consumo (l/100km) 7 6.5 6 5.5 5 10 20 A. Ismael F. Vaz (UMinho) 30 40 50 60 Velocidade (km/h) MN C 70 80 90 2007/2008 108 / 216 Mínimos quadrados lineares Resíduo O resíduo é determinado por m X (fi − c1 φ1 (xi ) − · · · − cn φn (xi ))2 . i=1 No caso do polinómio de grau um, p1 (x), temos um resíduo de 1.123193. Para o polinómio de grau 2 temos um resíduo de 0.302736 e no modelo linear um resíduo de 0.247494. O melhor modelo é o linear, porque tem menor resíduo. A. Ismael F. Vaz (UMinho) MN C 2007/2008 109 / 216 Mínimos quadrados lineares Exemplo - Gráficos 7.5 7 Consumo (l/100km) p1(x) 6.5 6 p2(x) 5.5 M(x) 5 10 20 A. Ismael F. Vaz (UMinho) 30 40 50 60 Velocidade (km/h) MN C 70 80 90 2007/2008 110 / 216 Mínimos quadrados não lineares Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 111 / 216 Mínimos quadrados não lineares Forma geral do problema - Caso discreto Dado um conjunto de valores (xi , fi ), i = 1, . . . , m, pretende-se determinar um modelo M (x) que aproxima o melhor possível a função dada, ou seja, minimizarS = m X (fi − M (xi ))2 i=1 em que o modelo M (x) é não linear nos coeficientes. A. Ismael F. Vaz (UMinho) MN C 2007/2008 112 / 216 Mínimos quadrados não lineares Exemplo Suponhamos que se pretende estimar o consumo de um automóvel em função da velocidade. Através da realização de várias experiências chegou-se aos seguintes valores: xi (velocidade - km/h) fi (consumo l/100km) 20 5.5 50 5.7 60 5.9 80 7.5 Pretende-se ajustar o modelo M (x) = c1 + ec2 x aos pontos da tabela, no sentido dos mínimos quadrados. A. Ismael F. Vaz (UMinho) MN C 2007/2008 113 / 216 Mínimos quadrados não lineares Dedução das equações normais Pretende-se minimizarS ≡ m X (fi − M (xi ))2 i=1 e derivando S em ordem aos ci , i = 1, . . . , n e igualando a zero, obtém-se m X ∂M (xi ) ∂S =− (fi − M (xi )) =0 ∂c1 ∂c1 i=1 ··· m X ∂S ∂M (xi ) =− (fi − M (xi )) =0 ∂cn ∂cn i=1 A. Ismael F. Vaz (UMinho) MN C 2007/2008 114 / 216 Mínimos quadrados não lineares Sistema das equações normais Uma vez que M (x) é não linear nos coeficiente o sistema resultante é também não linear nos coeficientes m X ∂M (xi ) F1 (c) = − (fi − M (xi )) =0 ∂c1 i=1 ··· m X ∂M (xi ) F (c) = − (fi − M (xi )) =0 n ∂cn i=1 e vamos aplicar o método de Newton para sistemas não lineares. A. Ismael F. Vaz (UMinho) MN C 2007/2008 115 / 216 Mínimos quadrados não lineares Método de Newton A equação iterativa do método de Newton é J(c)∆c = −F (c) com ck+1 = ck + ∆c e em que o cada elemento do Jacobiano é m Jjk X ∂Fj = = ∂ck i=1 ∂M (xi ) ∂M (xi ) ∂ 2 M (xi ) − (fi − M (xi )) ∂ck ∂cj ∂ck ∂cj , para j, k = 1, . . . , n. A. Ismael F. Vaz (UMinho) MN C 2007/2008 116 / 216 Mínimos quadrados não lineares Método de Gauss-Newton Como, próximo da solução, se espera que (fi − M (xi )) seja próximo de zero, o método de Gauss-Newton despreza o segundo termo dos elementos do Jacobiano, tomando como aproximação ao Jacobiano a matriz A cujos elementos são m X ∂Fj ≈ Ajk = ∂ck i=1 ∂M (xi ) ∂M (xi ) ∂ck ∂cj , para j, k = 1, . . . , n. A. Ismael F. Vaz (UMinho) MN C 2007/2008 117 / 216 Mínimos quadrados não lineares Resíduo O resíduo é determinado por S= m X (fi − M (xi ))2 , i=1 sendo um resultado obtido em cada iteração do algoritmo de Gauss-Newton. A. Ismael F. Vaz (UMinho) MN C 2007/2008 118 / 216 Mínimos quadrados não lineares Exemplo - Uma iteração Considere novamente o modelo M (x) = c1 + ec2 x que se pretende ajustar aos pontos da tabela (c(1) = (3.7, 0.015)T e 1 = 2 = 0.1) xi (velocidade - km/h) fi (consumo l/100km) 20 5.5 50 5.7 60 5.9 80 7.5 Temos que ∂M (x) ∂M (x) =1 e = xec2 x ∂c1 ∂c2 e consequentemente 4 X c2 xi − (fi − c1 − e ) i=1 F (c) = . 4 X − (fi − c1 − ec2 xi ) xi ec2 xi i=1 A. Ismael F. Vaz (UMinho) MN C 2007/2008 119 / 216 Mínimos quadrados não lineares Exemplo - Cont. A matriz aproximação do Jacobiano é 2 P ∂M (xi ) 4 i=1 ∂c1 A(c) = P ∂M (xi ) ∂M (xi ) 4 i=1 ∂c2 ∂c1 P4 1 A(c) = Pi=1 4 c 2 xi i=1 xi e A. Ismael F. Vaz (UMinho) MN C ∂M (xi ) ∂M (xi ) i=1 ∂c1 ∂c 2 2 P4 ∂M (xi ) i=1 ∂c2 P4 P4 xi ec2 xi Pi=1 4 c2 xi )2 i=1 (xi e 2007/2008 120 / 216 Mínimos quadrados não lineares Exemplo - 1a iteração c(1) = (3.7, 0.015)T 2 ∂M (xi ) ∂c2 ∂M (xi ) ∂c2 xi fi M (xi ) 20 50 60 80 5.5 5.7 5.9 7.5 5.0499 26.9972 728.8475 5.8170 105.8500 11204.2227 6.1596 147.5762 21778.7309 7.0201 265.6094 70548.3288 546.0328 104260.1299 i) − (fi − M (xi )) ∂M∂c(x 2 −12.1514 12.3845 38.3108 −127.4659 −88.9220 A. Ismael F. Vaz (UMinho) MN C − (fi − M (xi )) −0.4501 0.1170 0.2596 −0.4799 −0.5534 (fi − M (xi ))2 0.2026 0.0137 0.0674 0.2303 0.5140 2007/2008 121 / 216 Mínimos quadrados não lineares Cont. Temos então que S (1) = 0.5140 e o seguinte sistema linear para resolver (por EGPP) 0.5534 0.0769 4 546.0328 → ∆c = 546.0328 104260.1299 88.9220 0.0005 e consequentemente (2) c (1) =c + ∆c = 3.7 0.015 + 0.0769 0.0005 = 3.7769 0.0155 Falta-nos confirmar que há decréscimo da função objectivo, i.e., S (2) < S (1) e o critério de paragem. A. Ismael F. Vaz (UMinho) MN C 2007/2008 122 / 216 Mínimos quadrados não lineares Cont. xi 20 50 60 80 fi 5.5 5.7 5.9 7.5 M (xi ) 5.1403 5.9475 6.3114 7.2325 c(2) = (3.7769, 0.0155)T ∂M (xi ) i) − (fi − M (xi )) − (fi − M (xi )) ∂M∂c(x ∂c2 2 27.2685 −0.3597 −9.8085 108.5296 0.2475 26.8611 152.0706 −0.4114 −62.5618 276.4491 0.2675 73.9501 −0.2561 28.4409 (fi − M (xi ))2 0.1294 0.0613 0.1692 0.0716 0.4315 A. Ismael F. Vaz (UMinho) MN C 2007/2008 123 / 216 Mínimos quadrados não lineares Critério de paragem Temos então que 0.4315 = S (2) < S (1) = 0.5140, −0.2561 (2) (2) F (c ) = e F (c ) = 28.4420 > 2 = 0.01 28.4409 por outro lado também temos que 0.0769 0.0005 k∆c k 0.0769 = = = 0.0204 > 1 = 0.01 c(2) 3.7769 3.7769 0.0155 e temos que passar para a próxima iteração. A. Ismael F. Vaz (UMinho) MN C 2007/2008 124 / 216 Mínimos quadrados não lineares Gráfico com c(2) O resíduo em c(2) é S (2) = 0.4314. 7.5 Consumo (l/100km) 7 6.5 6 5.5 5 10 A. Ismael F. Vaz (UMinho) 20 30 40 50 60 Velocidade (km/h) MN C 70 80 90 2007/2008 125 / 216 Integração numérica Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 126 / 216 Integração numérica Forma geral do problema Pretende-se calcular uma aproximação ao integral definido Z I= b f (x)dx a com a e b constantes. A técnica a utilizar consiste na aproximação da função f (x) por um polinómio interpolador, pn (x), e posteriormente aproxima-se I por Rb a pn (x)dx. A. Ismael F. Vaz (UMinho) MN C 2007/2008 127 / 216 Integração numérica Motivação para a integração numérica As situações mais frequentes onde se torna necessário calcular uma aproximação ao integral definido são: a função primitiva não pode vir expressa em termos de funções elementares; a expressão da primitiva é muito complexa; a função integranda é conhecida apenas num conjunto discreto de pontos. A. Ismael F. Vaz (UMinho) MN C 2007/2008 128 / 216 Integração numérica Fórmulas com intervalos de amplitudes constantes Fórmulas Newton-Cotes (simples) As fórmulas simples são aplicadas a um intervalo que contém o número mínimo de pontos para a interpolação entre a e b. Regra do Trapézio (n = 1) Z b f (x)dx ≈ a A. Ismael F. Vaz (UMinho) b−a [f (a) + f (b)] 2 MN C 2007/2008 129 / 216 Integração numérica Cont. Regra de Simpson (n = 2) b Z f (x)dx ≈ a Regra dos Z a b 3 8 b−a a+b f (a) + 4f + f (b) 6 2 (n = 3, regra de Newton dos três oitavos) b−a 2a + b a + 2b f (x)dx ≈ f (a) + 3f + 3f + f (b) 8 3 3 A. Ismael F. Vaz (UMinho) MN C 2007/2008 130 / 216 Integração numérica Interpretação geométrica - Trapézio 1.4 1.2 p1(x) 1 sin(x) sin(x) 0.8 0.6 I 0.4 0.2 0 0 0.5 1 1.5 2 2.5 3 x sen(1) + A. Ismael F. Vaz (UMinho) sen(1)−sen(1.5) 1−1.5 MN C 3.5 p1 (x) = (x − 1) 2007/2008 131 / 216 Integração numérica Erro de truncatura As fórmulas do erro de truncatura são deduzidas a partir da fórmula para o erro da interpolação polinomial. Regra do Trapézio ETT = − (b − a)3 00 f (ξ), ξ ∈ [a, b] 12 Uma vez que ξ é um valor desconhecido calcula-se um majorante do erro absoluto, através da expressão (b − a)3 − M , em que M ≥ max f 00 (ξ) 12 ξ∈[a,b] A. Ismael F. Vaz (UMinho) MN C 2007/2008 132 / 216 Integração numérica Cont. Regra de Simpson Regra dos ETS = − (b − a)5 (iv) f (ξ), ξ ∈ [a, b] 2880 ET 3 = − (b − a)5 (iv) f (ξ), ξ ∈ [a, b] 6480 3 8 8 A. Ismael F. Vaz (UMinho) MN C 2007/2008 133 / 216 Integração numérica Fórmulas compostas - caso do Trapézio Suponhamos que se pretende aplicar a regra do Trapézio a um conjunto de igualmente espaçados, x0 , x1 , x2 , . . . , xn , para determinar Rpontos, xn x0 f (x)dx (dados os valores de f (x0 ) = f0 , . . . , f (xn ) = fn ). Como Z xn Z x1 Z x2 Z xn f (x)dx + f (x)dx + · · · + f (x)dx = f (x)dx x0 x0 x1 xn −1 e x1 x1 − x0 [f0 + f1 ] , 2 Z xi+1x0 xi+1 − xi f (x)dx ≈ [fi + fi+1 ] 2 xi Z f (x)dx ≈ A. Ismael F. Vaz (UMinho) MN C 2007/2008 134 / 216 Integração numérica Cont. Temos então que Z xn x1 − x0 x2 − x1 f (x)dx ≈ [f0 + f1 ] + [f1 + f2 ] + . . . 2 2 x0 xn − xn−1 + [fn−1 + fn ] 2 Usando o facto de que h = x1 − x0 = x2 − x1 = · · · = xn − xn−1 , e colocando em evidencia o termo h2 vem que Z xn h f (x)dx ≈ [f0 + 2f1 + 2f2 + · · · + 2fn−1 + fn ] 2 x0 A. Ismael F. Vaz (UMinho) MN C 2007/2008 135 / 216 Integração numérica Cont. As fórmulas compostas de Simpson e 83 são deduzidas de forma semelhante à do Trapézio, mas no caso da regra de Simpson consideram-se múltiplos de 2 intervalos e no caso dos 38 múltiplos de 3 intervalos. Composta de Simpson Z xn h f (x)dx ≈ [f0 + 4f1 + 2f2 + 4f3 + · · · + 2fn−2 + 4fn−1 + fn ] 3 x0 Composta dos Z 3 8 xn f (x)dx ≈ x0 3h [f0 + 3f1 + 3f2 + 2f3 + · · · + 8 + · · · + 2fn−3 + 3fn−2 + 3fn−1 + fn ] A. Ismael F. Vaz (UMinho) MN C 2007/2008 136 / 216 Integração numérica Erros de truncatura As fórmulas dos erros de truncatura são deduzidas a partir da fórmula do erro de truncatura simples. Trapézio ETT (h) = − =− n−1 X i=0 h2 12 A. Ismael F. Vaz (UMinho) n−1 h2 (b − a) X 00 (xi+1 − xi )3 00 f (ξi ) = − f (ξi ) 12 12 n i=0 (b − a)f 00 (η), η ∈ [a, b]. MN C 2007/2008 137 / 216 Integração numérica Cont. Simpson ETS (h) = − h4 (b − a)f (iv) (η), η ∈ [a, b] 180 3 8 ET 3 (h) = − 8 A. Ismael F. Vaz (UMinho) h4 (b − a)f (iv) (η), η ∈ [a, b] 80 MN C 2007/2008 138 / 216 Integração numérica Intervalos de amplitudes variadas Os intervalos de amplitudes variadas devem ser divididos em intervalos de amplitudes constantes e posteriormente aplicar-se as fórmulas Newton-Cotes. Da análise das fórmulas do erro de truncatura conclui-se a aplicação das seguintes regras (para valores de h ≤ 1): quando o número de intervalos é par aplica-se a regra de Simpson; quando o número de intervalos é múltiplo de 3 aplica-se a regra dos 38 ; aplica-se a regra do trapézio nos restantes casos. A. Ismael F. Vaz (UMinho) MN C 2007/2008 139 / 216 Integração numérica Exemplo [Edite Fernandes, 1998, adaptado] Um carro inicia um percurso, num dia de Inverno, e um aparelho mede o consumo de gasolina no instante em que percorreu x km. Os resultados registados são: x km f (x) l/hm 0.00 0.260 1.25 0.208 2.50 0.172 3.75 0.145 5.00 0.126 6.50 0.113 8.00 0.104 9.50 0.097 10.00 0.092 em que f (x) designa o consumo no fim do percurso, naquele instante, em l/km. Calcule o consumo total de gasolina no fim do percurso de 10km. Z 10 f (x)dx ≈ 0 1.25 [0.260 + 4 × 0.208 + 2 × 0.172 + 4 × 0.145 + 0.126] 3 3 × 1.5 [0.126 + 3 × 0.113 + 3 × 0.104 + 0.097] + 8 0.5 + [0.097 + 0.092] 2 A. Ismael F. Vaz (UMinho) MN C 2007/2008 140 / 216 Integração numérica Erro absoluto de truncatura É a soma dos majorantes das fórmulas aplicadas. Como a função f (x) é desconhecida usamos uma tabela das diferenças divididas para as estimar. 1.254 ET = − (5.00 − 0.00)0.000102 × 4! 180 1.54 + − (9.50 − 5.00)0.000016 × 4! 80 0.52 + − (10 − 9.5)(−0.002667) × 2! 12 A. Ismael F. Vaz (UMinho) MN C 2007/2008 141 / 216 Integração numérica Cont. x 0.00 f (x) 0.260 1.25 0.208 -0.041600 0.005120 -0.028800 2.50 0.172 -0.000597 0.002880 0.000102 -0.021600 3.75 0.145 -0.000085 0.002560 0.000007 -0.015200 5.00 0.126 -0.000046 0.002376 -0.000055 -0.008667 6.50 0.113 -0.000350 0.000889 0.000044 -0.006000 8.00 0.104 -0.000099 0.000444 0.000016 -0.004667 9.50 0.097 -0.000000 -0.002667 -0.010000 10.00 0.092 A. Ismael F. Vaz (UMinho) MN C 2007/2008 142 / 216 Integração numérica Falta cálculo de espaçamento dado o majorante do erro de truncatura Pois... A. Ismael F. Vaz (UMinho) MN C 2007/2008 143 / 216 Optimização não linear sem restrições Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 144 / 216 Optimização não linear sem restrições Forma geral do problema A formulação matemática de um problema de optimização, na sua forma mais geral, é min f (x) x∈Rn s.a ci (x) = 0, i = 1, . . . , m cj (x) ≥ 0, j = m + 1, . . . , t onde f (x) é a função objectivo, ci (x) = 0 são as restrições de igualdade e cj (x) ≥ são as restrições de desigualdade. A. Ismael F. Vaz (UMinho) MN C 2007/2008 145 / 216 Optimização não linear sem restrições Equivalência entre problemas O problema de optimização (maximização) max g(x) x∈Rn s.a ci (x) = 0, i = 1, . . . , m c̃j (x) ≤ 0, j = m + 1, . . . , t é equivalente ao problema de optimização (minimização) min f (x) ≡ −g(x) x∈Rn s.a ci (x) = 0, i = 1, . . . , m cj (x) ≡ −c̃j (x) ≥ 0, j = m + 1, . . . , t A. Ismael F. Vaz (UMinho) MN C 2007/2008 146 / 216 Optimização não linear sem restrições Interpretação geométrica 6 4 2 f(x), −f(x) f(x*) 0 x* −2 −f(x*) −4 −6 −1.5 −1 −0.5 0 0.5 x 1 1.5 2 2.5 f (x) = (x − 0.5)2 + 2 g(x) = −f (x) = −(x − 0.5)2 − 2 A. Ismael F. Vaz (UMinho) MN C 2007/2008 147 / 216 Optimização não linear sem restrições Exemplo Pretende-se determinar o volume máximo de uma lata (cilindro), fechada nas duas extremidades, sabendo que a quantidade de chapa a usar é de 1000 cm2 . Sendo r o raio da tampa e h a altura da lata, uma possível formulação do problema de optimização é max πr2 h (r,h)∈R2 s.a 2πr2 + 2πrh = 1000 que pode ser transformado no problema de minimização min −πx21 x2 s.a A. Ismael F. Vaz (UMinho) x∈R2 2πx21 + 2πx1 x2 = 1000 MN C 2007/2008 148 / 216 Optimização não linear sem restrições Optimização sem restrições Apenas iremos considerar problemas de minimização e sem restrições. A sua formulação é pois minn f (x). x∈R Classificação dos problemas (mais usuais) Problemas unidimensionais (n = 1, ou seja, x ∈ R); Problemas multidimensionais (n > 1, ou seja, x = (x1 , . . . , xn )T ∈ Rn ); Problemas de programação linear (f (x) e c(x) são funções lineares, i.e., f (x) = Ax, c(x) = Ax − b); Problemas de programação quadrática (f (x) é uma função quadrática, i.e., f (x) = 12 xT Gx + dT x, e c(x) são funções lineares); Problemas com limites simples (restrições nas variáveis do tipo al ≤ xl ≤ bl , l = 1, . . . , n); Problemas de programação não linear (pelo menos uma das funções envolvidas, f (x), c(x) é não linear). A. Ismael F. Vaz (UMinho) MN C 2007/2008 149 / 216 Optimização não linear sem restrições Classificação de mínimos x∗ é minimizante local forte se ∃δ tal que f (x∗ ) < f (x̄), ∀x̄ ∈ Vδ (x∗ ); minimizante local fraco se ∃δ tal que f (x∗ ) ≤ f (x̄), ∀x̄ ∈ Vδ (x∗ ); minimizante global forte se f (x∗ ) < f (x̄), ∀x̄ ∈ Rn ; minimizante global fraco se f (x∗ ) ≤ f (x̄), ∀x̄ ∈ Rn ; Onde Vδ (x∗ ) é uma vizinhança de x∗ de raio δ (||x̄ − x∗ || < δ). A. Ismael F. Vaz (UMinho) MN C 2007/2008 150 / 216 Optimização não linear sem restrições Mínimo global Mínimo global forte Função ilimitada f (x∗ ) < f (x̄) ∀x̄ ∈ R A. Ismael F. Vaz (UMinho) Mínimo global fraco f (x∗ ) ≤ f (x̄) ∀x̄ ∈ R MN C 2007/2008 151 / 216 Optimização não linear sem restrições Mínimo local ∃δ : f (x∗ ) < f (x̄), ∀x̄ ∈ Vδ (x∗ ). ∃δ : f (x∗ ) ≤ f (x̄), ∀x̄ ∈ Vδ (x∗ ). A. Ismael F. Vaz (UMinho) MN C 2007/2008 152 / 216 Optimização não linear sem restrições Conceitos Máximo e maximizante; Mínimo e minimizante; Óptimo local ou global; Convergência local e global de algoritmos. Um algoritmo diz-se global se determina um minimizante (maximizante) dada uma qualquer aproximação inicial. Um algoritmo diz-se local se determina um minimizante partindo apenas de uma aproximação inicial suficientemente perto do minimizante. (Não confundir com a determinação de mínimos locais ou globais). A. Ismael F. Vaz (UMinho) MN C 2007/2008 153 / 216 Optimização não linear sem restrições Condições de optimalidade Condições necessárias para a existência de um mínimo f 0 (x∗ ) = 0; f 00 (x∗ ) ≥ 0. Condições suficientes para a existência de um mínimo f 0 (x∗ ) = 0; f 00 (x∗ ) > 0. A. Ismael F. Vaz (UMinho) MN C 2007/2008 154 / 216 Optimização não linear sem restrições Exemplos f (x) = (x − 1.5)2 f 0 (1.5) = 2 × (1.5 − 1.5) = 0 f 00 (1.5) = 2 > 0 f (x) = sin(x) f 0 ( π2 ) = cos( π2 ) = 0 f 00 ( π2 ) = − sin( π2 ) = −1 < 0 1.02 0.25 1 0.2 0.98 0.96 0.15 0.94 0.92 0.1 0.9 0.88 0.05 0.86 0 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 0.84 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 Pelas condições necessária e suficiente A. Ismael F. Vaz (UMinho) MN C 2007/2008 155 / 216 Optimização não linear sem restrições Exemplos f (x) = x4 f 0 (0) = 3 × (0)3 = 0 f 00 (0) = 12 × (0)2 = 0 f (x) = x3 f 0 (0) = 3 × (0)2 = 0 f 00 (0) = 6 × (0) = 0 1 1 0.9 0.8 0.8 0.6 0.7 0.4 0.6 0.2 0.5 0 0.4 −0.2 0.3 −0.4 0.2 −0.6 0.1 0 −1 −0.8 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −1 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Verifica-se a condição necessária, mas não a condição suficiente A. Ismael F. Vaz (UMinho) MN C 2007/2008 156 / 216 Optimização não linear sem restrições Alguma notação Gradiente de f (x) : Rn → R, x = (x1 , . . . , xn )T , vector de dimensão n ∂f ∂x ∂f1 ∇f (x) = g(x) = ∂x2 ... ∂f ∂xn ∂f ∂f ∂f T , ,..., = ∂x1 ∂x2 ∂xn Matriz Hessiana, matriz de dimensão n × n ∂2f ∇2 f (x) = G(x) = ∂2f ∂xn ∂x1 ... ... ∂2f ∂2f ∂x21 ∂x1 ∂xn A. Ismael F. Vaz (UMinho) MN C ... ... ∂x2n 2007/2008 157 / 216 Optimização não linear sem restrições Condições de optimalidade Condições necessárias para a existência de um mínimo g(x∗ ) = 0 (sistema não linear); G(x∗ ) 0 (semi-definida positiva). Condições suficientes para a existência de um mínimo g(x∗ ) = 0 (sistema não linear); G(x∗ ) 0 (definida positiva). A. Ismael F. Vaz (UMinho) MN C 2007/2008 158 / 216 Optimização não linear sem restrições Exemplo Pretende-se determinar todos os pontos óptimos do seguinte problema de optimização min x21 + x32 + 2x1 x2 ≡ f (x) x∈R2 Da condição de necessária e suficiente de primeira ordem temos que g(x) = (2x1 + 2x2 , 3x22 + 2x1 )T = (0, 0)T , ou seja, ( 2x1 + 2x2 = 0 3x22 + 2x1 = 0 ( ⇔ x1 = −x2 3x22 − 2x2 = 0 ⇔ x1 = −x2 x2 = 0 ∨ x2 = 2 3 Os pontos x̄ = (0, 0)T e x̂ = (− 23 , 23 )T são pontos estacionários de f (x). A. Ismael F. Vaz (UMinho) MN C 2007/2008 159 / 216 Optimização não linear sem restrições Cont. Para verificar as condições de segunda ordem temos que estudar G(x̄) e G(x̂). 2 2 2 2 2 2 G(x) = , G(x̄) = , G(x̂) = 2 6x2 2 0 2 4 2 2 det(|2|) = 2, det 2 0 = −4, det 2 2 2 4 =4 e temos que G(x̄) é indefinida (x̄ é ponto sela - descanso) e G(x̂) é definida positiva (x̂ é mínimo local forte). A. Ismael F. Vaz (UMinho) MN C 2007/2008 160 / 216 Optimização não linear sem restrições Representação gráfica/Curvas de nível 1.5 15 1 10 f(x) 5 0.5 0 0 −5 −10 2 −0.5 1 0 −1 x2 −2 −1.5 −1 −0.5 0 0.5 1.5 −1 −1.5 −1.5 x1 f (x) = A. Ismael F. Vaz (UMinho) 1 x21 + x32 MN C −1 −0.5 0 0.5 1 1.5 + 2x1 x2 2007/2008 161 / 216 Optimização não linear sem restrições Motivação para os métodos numéricos Na determinação analítica dos pontos estacionários é necessário resolver um sistema não linear, que é quase sempre de difícil resolução. Exemplo Considere-se a função f (x) = x1 ex2 − 2x1 x2 . Os pontos estacionários de f (x) obtêm-se através da resolução do sistema não linear ( ex2 − 2x2 = 0 x1 ex2 − 2x1 = 0 A. Ismael F. Vaz (UMinho) MN C 2007/2008 162 / 216 Método de Davies Swann e Campey Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 163 / 216 Método de Davies Swann e Campey Forma geral do problema A formulação matemática de um problema de optimização unidimensional, sem restrições é min f (x), x∈R com f (x) : R → R (n = 1). A. Ismael F. Vaz (UMinho) MN C 2007/2008 164 / 216 Método de Davies Swann e Campey Exemplo Pretende-se determinar o volume máximo de uma lata (cilindro), fechada nas duas extremidades, sabendo que a quantidade de chapa a usar é de 1000 cm2 . Sendo r o raio da tampa e h a altura da lata, uma possível formulação do problema de optimização é max πr2 h (r,h)∈R2 s.a 2πr2 + 2πrh = 1000 A restrição 2πr2 + 2πrh = 1000 pode ser usada para eliminar h na função objectivo, originando o seguinte problema de minimização unidimensional 2 1000 − x = −500x + πx3 min −πx x∈R 2πx A. Ismael F. Vaz (UMinho) MN C 2007/2008 165 / 216 Método de Davies Swann e Campey Interpolação quadrática O método DSC procura três pontos igualmente espaçados, x1 < x2 < x3 , que formam uma zona convexa da função objectivo. Os três pontos igualmente espaçados (x1 , x2 e x3 com espaçamento δ) são usados para estimar o mínimo da função f (x), usando uma interpolação quadrática. x∗ (q) = x2 + δ A. Ismael F. Vaz (UMinho) f (x1 ) − f (x3 ) 2 (f (x3 ) − 2f (x2 ) + f (x1 )) MN C 2007/2008 166 / 216 Método de Davies Swann e Campey Método DSC O método DSC gera uma sequência de pontos de procura definidos por x1 x2 = x1 + pδ x3 = x2 + p2δ x4 = x3 + p4δ ... xn = xn−1 + p2n−2 δ, com p = 1 se a procura é no sentido positivo (para a direita) e p = −1 no sentido negativo (para a esquerda). A. Ismael F. Vaz (UMinho) MN C 2007/2008 167 / 216 Método de Davies Swann e Campey Cont. A procura pára no ponto xk se f (xk ) > f (xk−1 ). Nessa altura tem-se xk−2 < xk−1 < xk (quando p = 1. Sendo análogo para p = −1.) em que f (xk−2 ) ≥ f (xk−1 ), f (xk−1 ) < f (xk ) e a distância entre xk e xk−1 é o dobro da distância entre xk−1 e xk−2 . O último valor é o ponto médio do último intervalo, xm = xk + xk−1 2 Para a interpolação quadrática é necessário escolher três dos quarto pontos encontrados. Se f (xk−1 ) ≤ f (xm ) os três pontos escolhidos são xk−2 , xk−1 e xm . Caso contrário escolhe-se os pontos xk−1 , xm e xk . A. Ismael F. Vaz (UMinho) MN C 2007/2008 168 / 216 Método de Davies Swann e Campey Cont. O algoritmo começa a procura no sentido positivo e caso f (x2 ) > f (x1 ) a procura dá-se no sentido negativo. Se por sua vez obtivermos f (x̄2 ≡ x1 − δ) > f (x1 ) procede-se à aproximação do mínimo da função usando, na interpolação quadrática, os três pontos igualmente espaçados. O algoritmo necessita de uma aproximação inicial (x1 ) e usa nas próximas iterações a última aproximação ao mínimo encontrada (x∗ (q)). O algoritmo termina quando o valor de δ usado na interpolação quadrática for inferior a . O valor de δ é reduzido em cada iteração por um factor M (M < 1). A. Ismael F. Vaz (UMinho) MN C 2007/2008 169 / 216 Método de Davies Swann e Campey Exemplo Considere-se o problema de minimização da função f (x) = −500x + πx3 , usando x1 = 7.5, δ = 0.1, M = 0.5 e = 0.1. 1a iteração x1 = 7.5 f1 = −2.4246e + 003 x2 = x1 + δ = 7.6 f2 = −2.4209e + 003 Como f2 > f1 , inverte-se a procura x̄2 = x1 − δ = 7.4 f¯2 = −2.4270e + 003 x̄3 = x̄2 − 2δ = 7.2 f¯3 = −2.4274e + 003 x̄4 = x̄3 − 4δ = 6.8 f¯4 = −2.4122e + 003 Como f¯4 > f¯3 , pára-se a procura xm = A. Ismael F. Vaz (UMinho) x̄4 +x̄3 2 = 7.0 fm = −2.4224e + 003 MN C 2007/2008 170 / 216 Método de Davies Swann e Campey Interpretação gráfica −2410 −2412 −2414 x4 −2416 f(x) −2418 x2 −2420 −2422 xm x1 −2424 −2426 x2 x3 −2428 −2430 6.5 7 7.5 8 x A. Ismael F. Vaz (UMinho) MN C 2007/2008 171 / 216 Método de Davies Swann e Campey Interpolação quadrática Os pontos escolhidos para a interpolação são: x1 = 7.0, x2 = 7.2 e x3 = 7.4 com f1 = −2.4224e + 003, f2 = −2.4274e + 003 e f3 = −2.4270e + 003. O espaçamento entre pontos é δ = 0.2. Vem então que x∗ (q) = 7.2 + 0.2× −2.4224e + 003 + 2.4270e + 003 2 (−2.4270e + 003 − 2 × (−2.4274e + 003) − 2.4224e + 003)) = 7.2852, valor que deve inicial a próxima iteração, uma vez que δ = 0.2 ≮ = 0.1. Na próxima iteração temos então x1 = 7.2852 e δ = 0.1 × 0.5 = 0.05. Não confundir o δ da interpolação quadrática com o δ da procura A. Ismael F. Vaz (UMinho) MN C 2007/2008 172 / 216 Método de Davies Swann e Campey Cont. 2a iteração x1 = 7.2852 f1 = −2.4279e + 003 x2 = x1 + δ = 7.3352 f2 = −2.4277e + 003 Como f2 > f1 , inverte-se a procura x̄2 = x1 − δ = 7.2352 f¯2 = −2.4277e + 003 Como f¯2 > f1 , pára-se a procura. Temos três pontos igualmente espaçados e procede-se à interpolação quadrática. x1 = 7.2352, x2 = 7.2852 e x3 = 7.3352 com f1 = −2.4277e + 003, f2 = −2.4279e + 003 e f3 = −2.4277e + 003. O espaçamento entre pontos é δ = 0.05 e vem que = 7.2852. Como x∗ (q) = 7.2852 + 0.05 −2.4277e+003+2.4277e+003 ... ∗ 0.05 q = δ < = 0.1 pára-se com x = 7.2852. (A solução analítica é 500 3π = 7.283656.) A. Ismael F. Vaz (UMinho) MN C 2007/2008 173 / 216 Método de Davies Swann e Campey Interpretação gráfica −2427.65 x2 −2427.7 x2 f(x) −2427.75 −2427.8 −2427.85 x1 −2427.9 7.22 7.24 7.26 7.28 7.3 7.32 7.34 7.36 x A. Ismael F. Vaz (UMinho) MN C 2007/2008 174 / 216 Método de Nelder Mead Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 175 / 216 Método de Nelder Mead Forma geral do problema A formulação matemática de um problema de optimização multidimensional, sem restrições é min f (x), x∈Rn com f (x) : Rn → R (n > 1). A. Ismael F. Vaz (UMinho) MN C 2007/2008 176 / 216 Método de Nelder Mead Exemplo - Poluição atmosférica Assumindo que a dispersão do penacho segue uma distribuição Gaussiana, a concentração C, de gás ou aerosol (partículas com menos de 20 microns de diâmetro) na posição x, y e ao nível do solo, de uma fonte contínua de emissão é dada por (modelo muito simplificado) “ ”2 “ ”2 1 − 12 σy − 12 σ1 y z C(x, y) = e e πσy σz px 2 se x > 0 . com σy = σz = 0 se x ≤ 0 A. Ismael F. Vaz (UMinho) MN C 2007/2008 177 / 216 Método de Nelder Mead Exemplo - Cont. O cálculo da poluição máxima pode ser formulado no seguinte problema ( − 1 y 2 +1 − πx2 1 e x1 ( 2 ) se x > 0 min x∈R2 0 se x ≤ 0 2 1.5 1 0.5 0 −0.5 −1 −1.5 −2 A. Ismael F. Vaz (UMinho) 0.5 1 1.5 2 MN C 2.5 3 3.5 4 2007/2008 178 / 216 Método de Nelder Mead Algoritmo de Nelder-Mead O algoritmo de Nelder-Mead destina-se a problemas de optimização multidimensional e é um método de procura directa (apenas usa informação da função objectivo, não usa derivadas nem as estima). Seja n a dimensão do problema. O algoritmo usa um conjunto de n + 1 pontos no início de cada iteração. Os pontos x1 , x2 , . . . , xn+1 são considerados os vértices de um simplex de dimensão n. Em R2 , os 3 (n + 1) pontos formam um triângulo. Em cada iteração considera-se o simplex Sk = hx1 , x2 , . . . , xn+1 i A. Ismael F. Vaz (UMinho) MN C 2007/2008 179 / 216 Método de Nelder Mead Cont. Em cada iteração considera-se sempre que o simplex está ordenado por ordem crescente dos valores da função objectivo, i.e., Sk = hX1 , X2 , . . . , Xn+1 i em que f (X1 ) ≤ f (X2 ) ≤ · · · ≤ f (Xn+1 ). O algoritmo consiste em determinar um novo simplex, através da substituição do ponto Xn+1 por um ponto com melhor valor da função objectivo (valor menor) ou encolhendo o simplex. A determinação do novo ponto pode ser feita através de pontos auxiliares que podem definir vértices reflectidos, expandidos, contraídos (para o interior ou para o exterior) ou de um simplex encolhido. A. Ismael F. Vaz (UMinho) MN C 2007/2008 180 / 216 Método de Nelder Mead Pontos auxiliares P Vértice reflectido xr = (1 + α)x̄ − αXn+1 , com x̄ = n1 ni=1 Xi e α = 1. Se xr for bom (f (X1 ) ≤ f (xr ) < f (Xn )) aceita-se xr . Se xr for muito bom (f (xr ) < f (X1 )) faz-se uma expansão do simplex. Vértice expandido xe = γxr + (1 − γ)x̄ com γ = 2. Se xe for muito bom (f (xe ) < f (X1 )) aceita-se xe , senão aceita-se xr . Se xr for fraco (f (Xn ) ≤ f (xr ) < f (Xn+1 )) faz-se uma contracção para o exterior. Calcula-se x̂c = βxr + (1 − β)x̄ com β = 0.5. Se x̂c for bom (f (x̂c ) < f (Xn )) aceita-se x̂c , senão encolhe-se o simplex. Se xr for muito fraco (f (xr ) ≥ f (Xn+1 )) faz-se uma contracção para o interior. Calcula-se xc = βXn+1 + (1 − β)x̄ com β = 0.5. Se xc for bom (f (xc ) < f (Xn )) aceita-se xc , senão encolhe-se o simplex. A. Ismael F. Vaz (UMinho) MN C 2007/2008 181 / 216 Método de Nelder Mead Encolher o simplex - Critério de paragem Encolher o simplex consiste em substituir os vértices Xi , i = 2, . . . , n + 1, pelo ponto médio do segmento que os une a X1 , i.e. xi = Xi + X1 . 2 O critério de paragem consiste em verificar se o tamanho relativo do simplex não é superior a uma quantidade pequena, i.e., o processo iterativo pára se 1 max ||Xi − X1 ||2 ≤ com ∆ = max(1, ||X1 ||2 ). ∆ 2≤i≤n+1 A. Ismael F. Vaz (UMinho) MN C 2007/2008 182 / 216 Método de Nelder Mead Interpretação gráfica 4 3.5 X2 3 2.5 xe xr 2 xc x2 1.5 x xc 1 X3 0.5 x3 0 X1 −0.5 −1 0 2 A. Ismael F. Vaz (UMinho) 4 6 8 10 MN C S = h(4, 0)T , (2, 3)T , (0, 1)T i x̄ = (3, 1.5)T xr = (6, 2)T xe = (9, 2.5)T xc = (1.5, 1.25)T x̂c = (4.5, 1.75)T 2007/2008 183 / 216 Método de Nelder Mead Exemplo Considere-se o problema de minimização ( 1 2 2 − x1 (y2 +1) e se x > 0 − πx 1 min 2 x∈R 0 se x ≤ 0. Pretende-se determinar a solução usando o método de Nelder-Mead. O simplex inicial é h(2, −1)T , (0.5, −0.5)T , (1.25, 1)T i e = 0.1. O primeiro passo é ordenar o simplex pelos valores da função objectivo. Temos f (x1 ) = −0.1171, f (x2 ) = −0.1045 e f (x3 ) = −0.1028, o que significa que o simplex ordenado na primeira iteração é S1 = h(2, −1)T , (0.5, −0.5)T , (1.25, 1)T i A. Ismael F. Vaz (UMinho) MN C 2007/2008 184 / 216 Método de Nelder Mead Cont. 1a iteração x̄ = 1 (2, −1)T + (0.5, −0.5)T = (1.25, −0.75)T 2 e xr = 2x̄ − X3 = 2(1.25, −0.75)T − (1.25, 1)T = (1.25, −2.5)T com f (xr ) = −0.0015. Como xr é muito fraco f (xr ) ≥ f (X3 ) faz-se uma contracção para o interior. xc = 0.5X3 + 0.5x̄ = 0.5(1.25, 1)T + 0.5(1.25 − 0.75)T = (1.25, 0)T com f (xc ) = −0.2288 e como f (xc ) < f (X2 ) aceita-se xc . O novo simplex é S2 = h(1.25, 0)T , (2, −1)T , (0.5, −0.5)T i A. Ismael F. Vaz (UMinho) MN C 2007/2008 185 / 216 Método de Nelder Mead Cont. Critério de paragem ∆ = max(1, ||X1 ||2 ) = max(1, (1.25, 0)T 2 ) = 1.25 1 max(||X2 − X1 ||2 , ||X3 − X1 ||2 ) = 1.25 1 max((0.75, −1)T 2 , (−0.75, −0.5)T 2 ) = 1.25 √ √ 1 max( 1.5625, 0.8125) = 1.25 1 = 0.1 e continua-se com a próxima iteração. A. Ismael F. Vaz (UMinho) MN C 2007/2008 186 / 216 Método de Nelder Mead Interpretação gráfica 3 2 1 0 −1 −2 −3 A. Ismael F. Vaz (UMinho) 0.5 1 1.5 2 MN C 2.5 3 3.5 4 2007/2008 187 / 216 Método de Segurança de Newton Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 188 / 216 Método de Segurança de Newton Forma geral do problema A formulação matemática de um problema de optimização multidimensional, sem restrições é min f (x), x∈Rn com f (x) : Rn → R (n > 1) duas vezes diferenciável. A. Ismael F. Vaz (UMinho) MN C 2007/2008 189 / 216 Método de Segurança de Newton Notação Gradiente de f (x) : Rn → R, x = (x1 , . . . , xn )T , vector de dimensão n ∂f ∂x ∂f1 ∇f (x) = g(x) = ∂x2 ... ∂f ∂xn ∂f ∂f ∂f T , ,..., = ∂x1 ∂x2 ∂xn Matriz Hessiana, matriz de dimensão n × n ∂2f ∇2 f (x) = G(x) = ∂2f ∂xn ∂x1 ... ... ∂2f ∂2f ∂x21 ∂x1 ∂xn A. Ismael F. Vaz (UMinho) MN C ... ... ∂x2n 2007/2008 190 / 216 Método de Segurança de Newton Alguns conceitos O vector gradiente ‘aponta’ no sentido de subida da função. −g(x) g(x) 100 10 0 5 −100 0 −200 −10 − x21 − x22 − 2x1 x2 + 10 −5 −5 f (x) = 0 5 10 g(x) = −10 (−2x1 − 2x2 , −2x2 − 2x1 )T g(1, 1) = (−4, −4)T A. Ismael F. Vaz (UMinho) MN C 2007/2008 191 / 216 Método de Segurança de Newton Alguns conceitos - Cont. A matrix Hessiana indica a concavidade (convexa ou côncava). 50 0 −50 −100 −150 10 −200 −10 5 0 −5 0 −5 5 10 −10 f (x) = − x21 − x22 − 2x1 x2 + 10 −2 −2 G(x) = −2 −2 Semi-definida negativa. A. Ismael F. Vaz (UMinho) MN C 2007/2008 192 / 216 Método de Segurança de Newton Método de Newton A função f (x), em x∗ = x + d pode ser aproximada por 1 f (x∗ ) ≈ f (x) + g(x)T d + dT G(x)d 2 (1) que resulta da expansão em série de Taylor de f (x), com x∗ suficientemente perto de x. A aproximação quadrática (1) pode ser usada para determinar o vector d em que x é um vector fixo. Derivando em ordem a d e igualando a zero obtemos g(x) + G(x)d = 0 ⇔ G(x)d = −g(x) (2) A. Ismael F. Vaz (UMinho) MN C 2007/2008 193 / 216 Método de Segurança de Newton Cont. Quando a função f (x) é quadrática obtém-se a solução resolvendo o sistema linear (2). No caso em que f (x) não é quadrática, o novo ponto x + d não é mínimo e o processo deve ser repetido iterativamente. As equações iterativas do processo são x(k+1) = x(k) + d(k) G(x(k) )d(k) = −g(x(k) ), para k = 1, 2, . . . Nota: O método de Newton possui terminação quadrática, i.e., se f (x) for uma função quadrática convexa o método de Newton necessita no máximo de n iterações para encontrar a solução exacta. A. Ismael F. Vaz (UMinho) MN C 2007/2008 194 / 216 Método de Segurança de Newton Método de Newton - Falhas de convergência O método de Newton pode falhar nas seguintes condições: A matriz G(x(k) ) é singular e d(k) não é sequer definido. O vector direcção d(k) é quase ortogonal a g(x(k) ) e não é possível progredir ao longo de d(k) . O vector direcção d(k) não aponta no sentido descendente de f e não é possível garantir a descida do valor da função. A matriz G(x(k) )−1 existe e é definida positiva, o vector direcção d(k) é de descida, no entanto o comprimento é tal que f (x(k+1) ) > f (x(k) ), e o novo ponto não é melhor que o anterior. A. Ismael F. Vaz (UMinho) MN C 2007/2008 195 / 216 Método de Segurança de Newton Método de segurança de Newton O método de segurança de Newton resolve as possíveis falhas do método de Newton. A matriz G(x(k) ) é singular e d(k) não é sequer definido. Neste caso toma-se como direcção de procura a direcção de descida máxima (d(k) = −g(x(k) )). Como a direcção de descida máxima resolve os restantes problemas (excepto o problema do comprimento da direcção) não e necessário verificar a quase-ortogonalidade e a descida da função objectivo. A. Ismael F. Vaz (UMinho) MN C 2007/2008 196 / 216 Método de Segurança de Newton Cont. O vector direcção d(k) é quase ortogonal a g(x(k) ) e não é possível progredir ao longo de d(k) . 6 4 −g(1,1) 2 0 g(1,1) −2 −4 Quase ortogonal se −6 |g(x(k) )T d(k) | ≤ ηkg(x(k) )kkd(k) k Se for quase ortogonal então −6 −4 −2 0 2 4 6 d(k) = −g(x(k) ) A. Ismael F. Vaz (UMinho) MN C 2007/2008 197 / 216 Método de Segurança de Newton Cont. O vector direcção d(k) não aponta no sentido descendente de f e não é possível garantir a descida do valor da função. d(k) é direcção de descida se g(x(k) )T d(k) ≤ ηkg(x(k) )kkd(k) k. Caso d(k) não seja direcção de descida faz-se d(k) = −d(k) . A. Ismael F. Vaz (UMinho) MN C 2007/2008 198 / 216 Método de Segurança de Newton Cont. A matriz G(x(k) )−1 existe e é definida positiva, o vector direcção d(k) é de descida, no entanto o comprimento é tal que f (x(k+1) ) > f (x(k) ), e o novo ponto não é melhor que o anterior. O método de Newton tem convergência local, i.e., x(k) tem de ser suficientemente próximo de x∗ para que o método funcione. A convergência global obtém-se através da introdução da procura unidimensional (regiões de confiança!!). x(k+1) = x(k) + αd(k) em que o α deve ser calculado para garantir que f (x(k+1) ) < f (x(k) ) A. Ismael F. Vaz (UMinho) Decréscimo simples MN C 2007/2008 199 / 216 Método de Segurança de Newton Procura unidimensional exacta Na procura unidimensional exacta pretende-se determinar (exactamente) qual o valor de α que minimiza a função φ(α) = f (x(k+1) ) com x(k+1) = x(k) + αd(k) , usando as condições de optimalidade φ0 (α) = 0 e φ00 (α) > 0. No entanto a solução para o problema minα∈R φ(α) não é de fácil resolução (difícil implementação e cálculos computacionais pesados). A. Ismael F. Vaz (UMinho) MN C 2007/2008 200 / 216 Método de Segurança de Newton Procura unidimensional Critério de Armijo e divisões sucessivas de α por dois. Pressupondo que a direcção de procura é de descida, gera-se uma sequência de valores, {ω j α}, j = 0, 1, 2, . . . com α = 1 e ω = 1 2 até se encontrar um elemento que origine uma redução (significativa) no valor de f f (x(k) ) − f (x(k) + ω j αd(k) ) ≥ −µ1 ω j αg(x(k) )T d(k) . O primeiro elemento encontrado é usado como o comprimento do passo na iteração k (α(k) = ω j α). A. Ismael F. Vaz (UMinho) MN C 2007/2008 201 / 216 Método de Segurança de Newton Critério de paragem Considera-se as três condições para o critério de paragem kx(k+1) − x(k) k ≤ 1 kx(k+1) k |f (k+1) − f (k) | ≤ 2 |f (k+1) | kg (k+1) k ≤ 3 A. Ismael F. Vaz (UMinho) MN C 2007/2008 202 / 216 Método de Segurança de Newton Exemplo Considere-se o seguinte problema de optimização min x41 + x22 − 3x1 x∈R2 partindo de x(1) = (0, 1)T e com = 0.5. Temos que g(x) = (4x31 − 3, 2x2 )T e G(x) = A. Ismael F. Vaz (UMinho) 12x21 0 0 2 MN C 2007/2008 203 / 216 Método de Segurança de Newton 1a iteração g (1) (1) = g(x T ) = (−3, 2) G 0 0 3 0 2 −2 (1) (1) = G(x )= 0 0 0 2 → Impossível Como a matriz G(x(1) ) é singular temos que d(1) = −g (1) = (3, −2)T . Não é necessário verificar a quase ortogonalidade e passa-se para a procura unidimensional. A. Ismael F. Vaz (UMinho) MN C 2007/2008 204 / 216 Método de Segurança de Newton Procura unidimensional x(1) = (0, 1)T α=1 f (1) = 1 g (1)T d(1) = −13 x̄ = x(1) + d(1) = (0, 1)T + 1(3, −2)T = (3, −1)T f (x̄) = 73 1 − 73 = f (x(1) ) − f (x̄) 10−3 × 1 × 13 α = 0.5 x̄ = (0, 1)T + 0.5(3, −2)T = (1.5, 0)T f (x̄) = 0.5625 1 − 0.5625 = f (x(1) ) − f (x̄) ≥ 10−3 × 0.5 × 13 Aceita-se α(1) = 0.5 e tem-se x(2) = (1.5, 0)T . A. Ismael F. Vaz (UMinho) MN C 2007/2008 205 / 216 Método de Segurança de Newton Critério de paragem kx(2) − x(1) k = kx(2) k √ 1.52 + 12 = 1.201 0.5 1.5 Logo passa-se à próxima iteração. As restantes condições seriam (neste caso não é necessário verificar) |f (2) − f (1) | 1 − 0.5625 = = 0.7778 0.5 (2) 0.5625 |f | e kg (2) k = k(10.5, 0)T k = 10.5 0.5 A. Ismael F. Vaz (UMinho) MN C 2007/2008 206 / 216 Método de Segurança de Newton 2a iteração x(2) = (1.5, 0)T (2) T (2) 27 0 0 2 g = (10.5, 0) G = 27 0 −10.5 → d(2) = (−0.3889, 0)T 0 2 0 d(2) é quase ortogonal com o gradiente? kd(2) k = 0.3889 kg (2) k = 10.5 (g (2) )T d(2) = (10.5, 0)(−0.3889, 0)T = −4.0835 4.0835 = |(g (2) )T d(2) | 10−4 × 0.3889 × 10.5 = 4.0835 × 10−4 , logo d(2) não é quase ortogonal com o gradiente (se fosse d(2) = −g (2) ). A. Ismael F. Vaz (UMinho) MN C 2007/2008 207 / 216 Método de Segurança de Newton 2a iteração - Cont. d(2) é direcção de descida? kd(2) k = 0.3889 kg (2) k = 10.5 (g (2) )T d(2) = (10.5, 0)(−0.3889, 0)T = −4.0835 − 4.0835 = (g (2) )T d(2) ≤ 10−4 × 0.3889 × 10.5 = 4.0835 × 10−4 , logo d(2) é direcção de descida (se não fosse d(2) = −d(2) ). Inicia-se a procura unidimensional. A. Ismael F. Vaz (UMinho) MN C 2007/2008 208 / 216 Método quasi-Newton Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Introdução Erros Zeros de funções Resolução de sistemas lineares Resolução de sistemas não lineares Interpolação polinomial Mínimos quadrados lineares Mínimos quadrados não lineares Integração numérica Optimização não linear sem restrições Método de Davies Swann e Campey Método de Nelder Mead Método de Segurança de Newton Método quasi-Newton A. Ismael F. Vaz (UMinho) MN C 2007/2008 209 / 216 Método quasi-Newton Método Quasi-Newton O método Quasi-Newton usa uma matriz aproximação à matriz Hessiana (ou à sua inversa) da função objectivo. O uso de uma matriz aproximação evita o cálculo da matriz Hessiana (segundas derivadas) que pode ser difícil de obter. A aproximação à inversa da Hessiana, em vez da própria Hessiana, substituí a resolução de um sistema linear em cada iteração, por um produto matriz vector. (G(x)d = −g(d) → d = −G(x)−1 g(x)). A. Ismael F. Vaz (UMinho) MN C 2007/2008 210 / 216 Método quasi-Newton Cont. A matriz aproximação é actualizada em cada iteração usando a informação das derivadas (gradiente) da iteração anterior. A fórmula mais conhecida é devida a Broyden, Fletcher, Goldfarb e Shanno (B.F.G.S.) ! ! (k) y (k)T (k) s(k)T s y s(k) s(k)T H (k+1) = I − (k)T (k) H (k) I − (k)T (k) + (k)T (k) s y y s s y em que s(k) = α(k) d(k) = x(k+1) − x(k) e y (k) = g (k+1) − g (k) . Quando s(k)T y (k) > 0 e H (k) é simétrica e definida positiva, a formula de actualização garante que a matriz H (k+1) é simétrica e definida positiva. A fórmula B.F.G.S. satisfaz a propriedade de terminação quadrática. A. Ismael F. Vaz (UMinho) MN C 2007/2008 211 / 216 Método quasi-Newton Cont. Na primeira iteração temos que H (1) = I (simétrica e definida positiva). Quando se usa a técnica de recomeço a matriz H (k) = I sempre que (k − 1) mod n = 0. Como H (k) é simétrica e definida positiva não é necessário verificar a quase ortogonalidade e se a direcção calculada é de descida para a função objectivo. Os problemas numéricos com a matriz H (k) , tais como ‘overflow’ na actualização de H (k) , um deslocamento ao longo da direcção de procura muito longo devido à quase ortogonalidade da direcção com o gradiente, podem ser ultrapassados usando a técnica do recomeço. A. Ismael F. Vaz (UMinho) MN C 2007/2008 212 / 216 Método quasi-Newton Exemplo Considere-se o seguinte problema de optimização (x(1) = (0, 1)T e = 0.5) min x41 + x22 − 3x1 x∈R2 Temos que g(x) = (4x31 − 3, 2x2 )T . 1a iteração g (1) = g(x(1) ) = (−3, 2)T H (1) = I d(1) = −Hg (1) = (3, −2)T . Procura unidimensional . . . (ver exemplo do segurança de Newton) Aceita-se α(1) = 0.5 e vem que x(2) = (1.5, 0)T . A. Ismael F. Vaz (UMinho) MN C 2007/2008 213 / 216 Método quasi-Newton Critério de paragem kx(2) − x(1) k = kx(2) k √ 1.52 + 12 = 1.201 0.5 1.5 Logo passa-se à próxima iteração. 2a iteração x(2) = (1.5, 0)T e g (2) = (10.5, 0)T H (2) = s(1) y (1)T I − (1)T (1) s y ! H (1) y (1) s(1)T I − (1)T (1) y s ! + s(1) s(1)T s(1)T y (1) s(1) = x(2) − x(1) = (1.5, 0)T − (0, 1)T = (1.5, −1)T y (1) = g (2) − g (1) = (10.5, 0)T − (−3, 2)T = (13.5, −2)T A. Ismael F. Vaz (UMinho) MN C 2007/2008 214 / 216 Método quasi-Newton Cont. (1) (1)T s y 1.5 −1 = 20.25 −3 −13.5 2 (13.5, −2) = s(1)T y (1) = (1.5, −1)(13.5, −2)T = 22.25 s(1) y (1)T I − (1)T (1) = s y 1 0 (1) (1)T s H (2) = s 0.0899 0.6067 0 1 − = 0.1348 0.9101 H A. Ismael F. Vaz (UMinho) 1.5 −1 H (2) 0.9101 −0.1348 −0.6067 0.0899 (1.5, −1) = (1) = 0.0899 0.1348 = 0.0899 0.6067 2.25 −1.5 −1.5 2 0.6067 0.9101 0.1274 0.1098 0.1098 0.8202 MN C + 0.1348 0.9101 0.1011 −0.0674 −0.0674 0.0899 2007/2008 215 / 216 Método quasi-Newton Cont. d (2) = −H 0.1274 0.1098 g =− 0.1098 0.8202 −1.3377 (2) d = −1.1529 (2) (2) 10.5 0 Procura unidimensional ... A. Ismael F. Vaz (UMinho) MN C 2007/2008 216 / 216