1 Representação de Números e Erros 1.1 Sistemas de Vírgula Flutuante Para podermos fazer cálculos é necessário antes de mais escolhermos um sistema para representar os números com que trabalhamos. Supondo que vamos trabalhar com números reais, os sistemas habitualmente utilizados para os representar são os sistemas de vírgula (ponto) flutuante. Assim, vamos começar por definir matematicamente estes sistemas. Seja β um número natural, diferente de 1, a que chamaremos base do sistema. A base é o número de dígitos diferentes que usamos para representar os números. A base mais corrente é a decimal, em que se usam dez dígitos (os algarismos); quando usamos esta base, temos β = 10. No entanto, se atentarmos à forma como os números são representados internamente nos computadores e outros sistemas de cálculo, verificaremos que a base aí utilizada é a binária, ou seja, β = 2, já que, por razões técnicas, é conveniente trabalhar apenas com dois símbolos diferentes: 0 e 1. Nesse caso, cada símbolo representado designa-se por bit. Uma vez escolhida a base, qualquer elemento x do sistema de vírgula flutuante representa-se na forma x = σ 0.a 1 a 2 a 3...a n β t (1.1) onde σ representa o sinal (σ = ±1), a i são dígitos da base considerada e t é um número inteiro. A sucessão de dígitos a 1 a 2 a 3...a n, onde a 1 0, designa-se mantissa. Assim, além da base, qualquer sistema de vírgula flutuante caracteriza-se pelo comprimento da mantissa, isto é, o número n de dígitos que a compõem. Finalmente, um sistema de vírgula flutuante caracteriza-se pelos limites inferior e superior do expoente t, que representaremos respectivamente por t 1 e t 2. Chegamos assim à seguinte definição. Definição 1. Sistema de vírgula flutuante com base β e n dígitos na mantissa: V F (β, n, t 1, t 2 ) = {x IR : x = σ 0.a 1 a 2 a 3...a n β t, σ = ±1, a 1 0, t 1 t t 2, t Z} {0}. De acordo com esta definição, como é natural, o número 0 pertence a qualquer sistema VF, embora formalmente ele não possa ser representado na forma (1.1), já que o primeiro dígito da mantissa, por definição, é diferente de zero. Exemplo 1.1. Calculadora em que os números são representados na base decimal, com 12 dígitos na mantissa e com o expoente entre -99 e 99. Neste caso, o sistema utilizado é V F (10, 12, 99, 99). 1
Exemplo 1.2. Computador em que os números são representados na base binária, sendo reservados 56 bits para a mantissa e 8 bits para o expoente. Dos 8 bits do expoente 7 são reservados ao seu valor absoluto e um ao sinal, pelo que o seu valor pode variar entre 2 7 +1 = 127 e 2 7 1 = 127. Logo, o sistema considerado é V F (2, 56, 127, 127). Note-se que, devido à condição a 1 0, no caso do sistema binário obtém-se a 1 = 1, qualquer que seja o número representado. Isto faz com que o primeiro dígito da mantissa seja supérfluo. Na prática, esse dígito é usado para representar o sinal da mantissa. Propriedades dos sistemas de vírgula flutuante: 1. Qualquer sistema VF é finito. Determinemos o número de elementos positivos do sistema V F (β, n, t 1, t 2 ). O número de mantissas diferentes é β n 1 (β 1) (o primeiro dígito da mantissa não pode ser 0, por definição). O número de expoentes diferentes é t 2 t 1 +1. Logo, o número de elementos do sistema V F (β, n, t 1, t 2 ), tendo em conta os números negativos e o zero, é 2β n 1 (β 1)( t 2 t 1 + 1) + 1 (no caso do exemplo 1.1, temos 2 9 199 10 9 + 1 3.6 10 12 elementos, enquanto que no exemplo 1.2 o número de elementos é 2 255 2 55 + 1 1.84 10 19 ). Em qualquer sistema de vírgula flutuante existe um elemento máximo, cujo valor é M = (1 β n )β t 2 (no caso do exemplo 1.1, temos M = (1 10 12 )10 99 10 99, enquanto que para o exemplo 1.2 temos M = (1 2 155 )2 127 1.70 10 38 ). 3. Em qualquer sistema de vírgula flutuante existe um elemento com o mínimo valor absoluto, igual a m = β 1 β t 1 = β t 1 1 (no caso do exemplo 1.1, temos m = 10 100, enquanto que para o exemplo 1.2 temos m = 2 128 2.9 10 39 ). 1.2 Representação de números em sistemas de vírgula flutuante Visto que qualquer sistema VF é finito, ele contém apenas uma pequena parte dos números reais. Quando um número real não pertence ao sistema VF considerado, para o representar nesse sistema é necessário fazer uma certa aproximação, chamada arredondamento. Denotemos f l(x) a representação do real x no sistema VF considerado. Se x V F (β, n, t 1, t 2 ) então f l(x) = x (diz-se que x tem representação exacta nesse sistema). Caso contrário, isto é, se x / V F (β, n, t 1, t 2 ), há que escolher fl(x) e essa escolha pode ser feita de diferentes maneiras. Para melhor compreender este 2
processo, suponhamos que x = σ 0.a 1 a 2 a 3...a n a n+1... β t. Note-se que qualquer número real pode ser representado nesta forma, sendo que a mantissa, regra geral, é uma dízima infinita. Segundo a forma mais simples de arredondamento, o arredondamento por corte, escolhe-se: fl(x) = σ 0.a 1 a 2 a 3...a n β t. Outra forma mais sofisticada de determinar f l(x) consiste em defini-lo pela fórmula { σ 0.a fl(x) = 1 a 2 a 3...a n β t, se a n+1 < β/2; σ (0.a 1 a 2 a 3...a n + β n ) β t, se a n+1 β/2. Esta forma de aproximação chama-se arredondamento simétrico. Este tipo de arredondamento envolve um erro igual ao do arredondamento por corte, no caso de a n+1 < β/2, ou menor, no caso em que a n+1 β/2. Note-se que, ao considerar um certo sistema VF, nem todos os números reais podem ser representados nele, mesmo com arredondamento. Os números x, tais que x > M ou x < m, não têm qualquer representação no sistema, pelo que ao tentar representá-los ocorrem situações de erro. No primeiro caso, essas situações designam-se por overflow, enquanto no segundo caso são referidas como underflow. Exercício 1.1 Para cada um dos seguintes números reais obtenha (caso seja possível) a sua representação no sistema V F (10, 3, 99, 99),utilizando arredondamento simétrico: a) x = 10 b) x = 0.001235 c) x = 1001 d) x = 1/3 d) x = 10 100 e) x = 10 101 Resposta: x fl(x) 100 0.100 10 3 0.001235 0.124 10 2-1001 -0.100 10 4 1/3 0.333 10 100 não tem representação (overflow) 10 101 não tem representação (underflow) 3
1.3 Erros de arredondamento Quando se aproxima um número real x pela sua representação em vírgula flutuante, f l(x), comete-se um erro geralmente designado por erro de arredondamento: e ar = fl(x) x. Outras grandezas relacionadas são o erro de arredondamento absoluto e o erro de arredondamento relativo: e ar = x fl(x) δ ar = x fl(x). x Para caracterizar a precisão com que os números reais são aproximados num sistema VF utiliza-se o conceito de unidade de arredondamento. A unidade de arredondamento do sistema VF é um número real u, tal que δ ar u, x IR, m x M. O valor de u depende, evidentemente, dos parâmetros do sistema VF considerado, mais precisamente, de n e β. Logicamente, para o mesmo valor de β, a unidade de arredondamento será tanto mais pequena quanto maior for n, isto é, quanto mais dígitos utilizarmos para representar os números tanto menor será o erro de arredondamento relativo. Para analisarmos esta questão em pormenor, consideremos um número real x arbitrário e representemo-lo na forma x = σ 0.a 1 a 2 a 3...a n a n+1... β t. Para simplificar, comecemos por considerar o caso do arredondamento por corte. Como já vimos, neste caso fl(x) = σ 0.a 1 a 2 a 3...a n β t. Por conseguinte, o erro de arredondamento absoluto é e ar = x fl(x) = 0.00...0a n+1... β t < β t n. No que diz respeito ao erro de arredondamento relativo, temos δ ar = x fl(x) x < βt n β t 1 = β1 n. Por conseguinte, qualquer que seja x,tal que m x M,verifica-se δ ar < β 1 n. 4
Logo, podemos afirmar que, no caso do arredondamento por corte, a unidade de arredondamento é u = β 1 n. Raciocínios semelhantes levam-nos à conclusão que, no caso do arredondamento simétrico, a unidade de arredondamento é u = 1 2 β1 n. Por exemplo, no caso do sistema V F (10, 12, 99, 99), e assumindo que o arredondamento é simétrico, temos u = 0.5 10 11. Exercício 1.2. Para cada um dos números referidos no exercício 1.3, considerando de novo o sistema V F (10, 3, 99, 99), determine o erro de arredondamento absoluto e o erro de arredondamento relativo (nos casos em que existe representação). Compare este último com a unidade de arredondamento do sistema. Resposta: x fl(x) e ar δ ar 100 0.100 10 3 0 0 0.001235 0.124 10 2 0.5 10 5 0.004 1001-0.100 10 4 1 0.001 1/3 0.333 0.33 10 3 0.001 A unidade de arredondamento, neste caso, é 0.5 10 2 = 0.005, pelo que todos os números considerados têm erro de arredondamento relativo inferior a este valor, como seria de esperar. 1.4 Propagação dos Erros Sejam x e ỹ valores aproximados dos números reais x e y, respectivamente. Denotaremos por e x e δ x o erro e o erro relativo de x, repectivamente: e x = x x, δ x = x x x. De modo análogo se definem o erro e o erro relativo de ỹ. Suponhamos que x e ỹ são dados de um cálculo que pretendemos efectuar. O nosso objectivo é determinar qual o efeito dos erros destes dados no resultado. Para começar, consideremos o caso das operações aritméticas. 5
Adição/Subtracção Representemos por e x±y o erro de x ± ỹ. Note-se que x ± ỹ = (x + e x ) ± (y + e y ) = (x ± y) + (e x ± e y ). Por conseguinte, para o erro de x ± ỹ temos e x±y = e x ± e y e, para o erro absoluto, e x±y e x + e y. Quanto ao erro relativo, podemos escrever δ x±y = e x ± e y x ± y xδx + yδy. (1.2) x ± y Daqui resulta que, se x ± y for próximo de zero, então o erro relativo de x±y pode ser muito maior que o dos dados. Voltaremos a este assunto mais tarde. No caso da multiplicação, temos Multiplicação x.ỹ = (x + e x ).(y + e y ) = (x.y) + ye x + xe y + e x e y. Admitindo que e x e e y são grandezas pequenas, o seu produto pode ser desprezado na expressão anterior, pelo que obtemos e x.y = x.ỹ x.y ye x + xe y. Logo, para o erro relativo do produto, resulta δ x.y = e x.y x.y ye x + xe y δx + δy. (1.3) x.y 6
Divisão Para deduzir a fórmula do erro do quociente, suponhamos que os valores de e x e e y são desprezáveis em comparação com x e y, respectivamente. Podemos então fazer a seguinte aproximação: x ỹ = (x + e x) 1 y Daqui resulta que 1 1 + ey y (x + e x ) 1 y ( 1 e y y e x/y = x ỹ x y ye x xe y y 2. Quanto ao erro relativo do quociente, obtém-se ) = x y + ye x xe y y 2. δ x/y = e x/y y x ye x xe y y y 2 x e x x + e y = δx + δy. (1.4) y Os cálculos que acabámos de efectuar mostram que, no caso da multiplicação e da divisão, o erro relativo dos resultados é da mesma ordem que o erro relativo dos dados, ou seja, destas operações não resulta uma perda de precisão. Já no caso da adição e da subtracção, como vimos, tal perda de precisão pode ocorrer. Esse fenómeno designa-se cancelamento subtractivo e é ilustrado pelo exercício que se segue. Exercício 1.3. Considere os números x = π e y = 2199/700. 1. Determine x e ỹ com 4 dígitos na mantissa, usando arredondamento simétrico. Obtenha ainda x ỹ. Solução. x = 0.3141592 10; x = fl(x) = 0.3142 10; y = 0.3141428 10; ỹ = fl(y) = 0.3141 10. Logo, x ỹ = 0.1 10 2. 2. Calcule os erros absolutos e relativos de x e ỹ. Comente. Solução. Dado Erro absoluto Erro relativo x e x = x x = 0.41 10 3 δx = e x / x = 0.131 10 3 y e y = y ỹ = 0.43 10 3 δy = e y / y = 0.137 10 3. Como era de esperar, os erros de arredondamento relativos dos dados são inferiores à unidade de arredondamento do sistema que, neste caso, é u = 0.5 10 1 4 = 0.5 10 3. 7
3. Represente os números x e y em ponto flutuante, mas com 6 algarismos na mantissa. Com base nestas novas aproximações, calcule de novo x ỹ e comente. Solução. Neste caso temos: x = 0.3141592 10; x = fl(x) = 0.314159 10; y = 0.3141428 10; ỹ = fl(y) = 0.314143 10. Logo, x ỹ = 0.16 10 3, o que é muito diferente do valor obtido na alínea 1. Isto sugere que, na alínea 1, houve uma perda de precisão, resultante de cancelamento subtractivo. 4. Tomando como valor exacto da diferença o resultado da alínea anterior, determine o erro relativo do valor de x ỹ, obtido na alínea 1. Se usasse a estimativa (1.2) para o erro relativo da diferença, chegaria à mesma conclusão? Solução. Comparando os resultados da alínea 1 e da alínea 3, temos δ x y = e x y 0.001 0.00016 = 5.25. x y 0.00016 Vemos que o erro relativo do resultado da alínea 1 é muito superior à unidade, o que significa uma perda total de precisão. Por outro lado, se usássemos a estimativa (1.2), teríamos δ x y xδx + yδy x y 0.00084 0.00016 = 5.25, ou seja, neste caso verifica-se a igualdade na relação (1.2). 1.5 Estabilidade de algoritmos Quando se efectua um cálculo, geralmente efectua-se por passos. Assim, o erro cometido em cada passo acumula-se com os erros dos passos anteriores. Em resultado, o erro do resultado final pode ser muito maior do que o erro de cada passo isolado. O conjunto dos passos que levam à obtenção de um dado resultado designa-se algoritmo. O mesmo resultado pode ser obtido, em princípio, através de algoritmos diferentes. No entanto, os erros propagam-se de forma diferente em cada algoritmo. Por isso, os resultados que se obtêm, para o mesmo problema, através de algoritmos diferentes podem divergir significativamente. Surge assim a definição de estabilidade numérica. 8
Definição. Um algoritmo diz-se estável (ou numericamente estável) para um certo conjunto de dados se, a pequenos valores dos erros relativos de arredondamento dos dados e da unidade de arredondamento do sistema corresponderem pequenos valores do erro relativo do resultado. O exercício que se segue ilustra o conceito de estabilidade numérica. Exercício 1.3 Considere a função real de variável real f(x) = 1 cos x x 2. (1.5) 1. Supondo que utiliza um sistema de vírgula flutuante com 10 dígitos na mantissa e arredondamento simétrico, calcule f(10 6 ) aplicando a fórmula (1.5). Solução. A fórmula (1.5) pode ser aplicada em 3 passos. Sendo x = 10 6, temos z 1 = cosx = 1; z 2 = 1 z 1 = 0; z 3 = f(x) = z 2 x 2 = 0. 2. Obtenha uma aproximação de f(10 6 ), utilizando o desenvolvimento de f em série de Taylor, em torno de x = 0. Solução. Como é sabido, para valores de x próximos de zero, a função cos(x) admite o seguinte desenvolvimento em série de Taylor: cosx = 1 x2 2 + x4 4! + O(x6 ), Daqui obtém-se facilmente que f(x) = 1 cos x x 2 = 1 2 x2 4! + O(x4 ). (1.6) Utilizando a fórmula (1.6), num sistema VF com 10 dígitos, obtém-se f(10 6 ) = 0.5000000000. 3. Sabendo que 1 cos x = 2 sin 2 (x/2), calcule f(10 6 ) utilizando uma nova fórmula para f. Solução. Transformando a fórmula (1.5) obtém-se f(x) = 1 cos x x 2 = 2 x 2 sin2 (x/2). (1.7) 9
À semelhança do que fizemos na alínea 1, apliquemos a fórmula (1.7) em 5 passos: w 1 = x/2 = 0.5 10 6 ; w 2 = sen(w 1 ) = 0.5 10 6 w 3 = w 2 2 = 0.25 10 12 ; w 4 = w 3 /x 2 = 0.25; w 5 = f(x) = 2w 4 = 0.5. 4. Compare os valores obtidos nas alíneas anteriores e classifique os algoritmos quanto à estabilidade. Solução. Verifica-se que o valor obtido na alínea 3 é uma boa aproximação de f(10 6 ), já que coincide com o valor dado pela série de Taylor (em todos os 10 dígitos). Pelo contrário, o valor obtido pelo algoritmo da alínea 1 dava uma má aproximação (nem um único dígito correcto). Este facto deve-se apenas aos erros de arredondamento cometidos, já que as fórmulas usadas são equivalentes e, se trabalhássemos com valores exactos, obteríamos em ambos os casos o mesmo resultado. Esta situação pode interpretar-se do seguinte modo: para valores de x próximos de 0 o algoritmo considerado em 1) é instável, enquanto o algoritmo considerado em 3) é estável. 2 Métodos Numéricos para Equações Não Lineares 2.1 Localização de raizes de uma função Seja f uma função real, definida num certo intervalo [a, b]. O ponto z [a, b] diz-se um zero ou uma raiz de f se e só se f(z) = 0. No caso de f (z) 0, z diz-se um zero simples. Se f (z) = 0, z diz-se um zero múltiplo. Mais precisamente, se f C k (z) e se f (z) = f (z) =... = f (k 1) (z) = 0, f (k) (z) 0,então z diz-se um zero de multiplicidade k da função f. Exemplo 2.1. Seja f um polinómio de grau n. Então, de acordo com o teorema fundamental da álgebra, f tem, no total, n raizes em C (somando as multiplicidades). Em particular, se tivermos f(x) = x 2 + 2x + 1, f tem uma raiz de multiplicidade dois (raiz dupla) em z = 1. De facto, verificase f( 1) = 0; visto que f (x) = 2x + 2, temosf ( 1) = 0; além disso, como f (x) = 2, f ( 1) 0. Se considerarmos o polínómio de terceiro grau f(x) = x 3 x = x(x 1)(x + 1), verificamos facilmente que ele tem três 10
raizes simples: z 1 = 1, z 2 = 0, z 3 = 1. Quanto ao polinómio f(x) = x 3 + 1, tem apenas uma raiz real (z 1 = 1) e duas raizes complexas (z 2,3 = 1± 3i 2 ). De um modo geral, a determinação das raizes de um polinómio de grau n (ou zeros de uma equação algébrica) é um problema muito complexo que ocupou os matemáticos de várias civilizações. Desde o princípio do século XX sabe-se, graças a Abel, que não existem fórmulas resolventes para equações algébricas de qualquer grau. Mais precisamente, para uma equação algébrica de grau superior a 4 não é possível, através de uma fórmula geral, exprimir todas as raizes através dos seus coeficientes. Este exemplo ilustra a importância dos métodos numéricos para a resolução de equações. Até no caso de equações relativamente simples, como as equações algébricas, é impossível calcular as suas raizes unicamente através de fórmulas analíticas. Por outro lado, mesmo nos casos em que existem fórmulas resolventes, estas são por vezes tão complexas que se torna mais eficiente determinar as raizes a partir de um método numérico. Tal é o caso de algumas equações algébricas de terceiro e quarto grau, por exemplo. Naturalmente, isso pressupõe que se escolha um método adequado à equação considerada. Para tratar o problema do cálculo numérico de todas as raizes da função f é necessário, em primeiro lugar, localizar as raizes, isto é, determinar, para cada raiz, um intervalo que a contenha e que não contenha nenhuma outra. Com esse objectivo, recordemos dois teoremas da análise matemática. Teorema 2.1 (teorema de Bolzano). Se f for contínua em [a, b] e se f(a)f(b) < 0, então f tem, pelo menos, uma raiz em ]a, b[. Teorema 2.2 (corolário do teorema de Rolle). Se f for contínua em [a, b] e continuamente diferenciável em]a, b[ e se f (x) 0 em ]a, b[ então f tem, no máximo, uma raiz em]a, b[. Combinando estes dois teoremas e alguns outros resultados da análise, é possível, em muitas situações, localizar as raizes reais de uma equação. Exemplo 2.2. Com base nos teoremas 2.1 e 2.2, determinar o número de raizes reais da equação e x x 2 2x = 0.5 e determinar um intervalo que contenha cada uma delas (mas não contenha as restantes). Este problema é equivalente a determinar os zeros da função de variável real f(x) = e x x 2 2x 0.5. Esta função é evidentemente contínua em IR, 11
4 f 2-3 -2-1 1 2 3 x -2 Figure 1: Gráfico relativo ao Exemplo 2.2 assim como todas as suas derivadas de qualquer ordem (ver o seu gráfico na fig.1). Para facilitar a análise do problema, comecemos por calcular uma tabela de valores de f e de f. Tabela 2.1 x 3 2 1 0 1 2 3 f(x) 3.45 0.365 0.868 0.5 0.782 1.11 4.59 f (x) 4.05 2.14 0.368 1 1.28 1.39 12.1 Observando a tabela 2.1, verifica-se imediatamente que o teorema 2.1 é aplicável a f nos intervalos [ 2, 1],[0, 1]e [2, 3]. Daqui se conclui que a equação considerada tem, pelo menos, 3 raizes: z 1 [ 2, 1], z 2 [0, 1] e z 3 [2, 3]. Pela aplicação do teorema 2.2 podemos concluir também que, em cada um destes intervalos, a função f tem exactamente 1 raiz. Para isso, consideremos a primeira e a segunda derivada de f : f (x) = e x 2x 2, f (x) = e x 2. Em relação à segunda derivada, verifica-se facilmente que ela é positiva para x > ln 2 e negativa para x < ln 2. Temos f (ln 2) = 0, f (ln 2) = 2, pelo que f tem em ln 2 um ponto de mínimo. Assim, no intervalo [ 2, 1], f é decrescente. Recorrendo de novo à tabela 2.1, verifica-se que f é sempre positiva neste intervalo, pelo que, pelo teorema 2.2, podemos concluir que f tem uma única raiz z 1 no intervalo [ 2, 1]. Do mesmo modo, podemos observar que a função f é crescente em [2, 3] e, de acordo com a tabela, toma sempre valores positivos neste intervalo. Aplicando o teorema 2.2 neste intervalo, constata-se que f tem nele uma única raiz z 3. Para aplicar o teorema 2.2 no intervalo [0,1], comecemos por recordar que a função f tem 12
um ponto de mínimo em x = ln 2, que pertence a este intervalo. Note-se que f (ln 2) = 1.38 < 0; uma vez que, de acordo com a tabela, f (0) e f (1) também são negativos, podemos concluir que f é negativa em todo o intervalo [0,1]. Logo, o teorema 2.2 é aplicável neste intervalo e a função tem nele uma única raiz z 2. Resta esclarecer uma questão: será que a função f tem alguma raiz além das que acabámos de localizar? Para responder a esta pergunta, recordemos que a segunda derivada de f tem uma única raiz real (ln 2). Daqui, pelo teorema de Rolle, somos levados a concluir que a primeira derivada de f tem, no máximo, duas raizes reais. Finalmente, aplicando o teorema de Rolle a f,conclui-se que f tem, no máximo, 3 raizes reais. Como já vimos que existem, pelo menos, 3 raizes (z 1, z 2 e z 3 ), concluímos que estas são as únicas raizes de f. 2.2 Método da Bissecção Um dos métodos mais simples para o cálculo aproximado de raizes é o método da bissecção. Para se poder aplicar este método basta conhecer um intervalo que contenha uma única raiz da função considerada (a qual é, por condição, contínua). A ideia do método é construir uma sucessão de intervalos encaixados [a, b] [a 1, b 1 ]... [a k, b k ] tais que a)cada intervalo tem o comprimento igual a metade do intervalo anterior; b)f(a i )f(b i ) < 0, i = 1, 2,..., k. Desta última condição, pelo teorema 2.1, resulta que a raiz é um ponto comum a todos os intervalos da sucessão. Assim, construindo um número suficientemente grande de intervalos, é possível aproximar a raiz com a precisão que se pretender. Vejamos em pormenor o algoritmo deste método. 1 o Passo. Dado um intervalo [a, b] e uma função f tais que f(a)f(b) < 0, determina-se o ponto médio desse intervalo: x 1 = a+b 2. Se, por feliz coincidência, se verificar f(x 1 ) = 0, x 1 é a raiz procurada Suponhamos que f(x 1 ) 0,então verifica-se f(x 1 )f(a) < 0 ou f(x 1 )f(a) > 0. No primeiro caso, podemos afirmar que z [a, x 1 ]; no segundo caso, z [x 1, b]. Então o intervalo [a 1, b 1 ] pode ser definido do seguinte modo: se f(x 1 )f(a) < 0, então a 1 = a; b 1 = x 1 ; senão, a 1 = x 1 ; b 1 = b. Em qualquer dos casos, o novo intervalo [a 1, b 1 ] satisfaz f(a 1 )f(b 1 ) < 0. 2 o Passo. Repetem-se as acções do primeiro passo, substituindo o intervalo [a, b] por [a 1, b 1 ] e representando por x 2 o ponto médio deste intervalo.deste passo, resulta o intervalo [a 2, b 2 ]. Generalizando, no k-ésimo passo (iteração) realizam-se as seguintes operações. Determina-se o ponto médio do intervalo anterior: x k = a k 1+b k 1 2 ; 13
Se f(x k )f(a k 1 ) < 0, então a k = a k 1 ; b k = x k ; senão, a k = x k ; b k = b k 1. Do k-ésimo passo obtém-se o intervalo [a k, b k ]. O processo é interrompido quando for satisfeita a condição de paragem: b k a k < ε,onde ε é uma tolerância estabelecida de acordo com a precisão que se pretende obter. Note-se que o comprimento do k-ésimo intervalo, por construção, é b k a k = b a, pelo que tende para zero, quando k tende para infinito. Logo, 2 k qualquer que seja ε, a condição de paragem é satisfeita ao fim de um certo número de passos, que depende do comprimento do intervalo inicial e de ε. Mais precisamente, temos b a 2 k < ε b a ε < 2 k k > log 2 ( b a ). ε Assim, o número de passos do método da bissecção que é necessário realizar até satisfazer a condição de paragem é o mínimo inteiro k, tal que k > log 2 ( b a ε ). Se tomarmos como k-ésima aproximação da raiz z o valor de x k podemos afirmar que o erro absoluto de x k satisfaz z x k < b k 1 a k 1 2 = b a 2 k. É costume nos métodos computacionais representar o erro da k-ésima aproximação da raiz por e k ; usando esta notação, podemos afirmar que, no método da bissecção é válida a estimativa do erro: e k < b a 2 k. Exercício 2.1. a)recorrendo ao teorema 2.1, justifique que a raiz cúbica de 2 pertence ao intervalo [1.2, 1.3]. b) Baseando-se na alínea anterior, efectue três iterações (passos) do método da bissecção com o objectivo de calcular um valor aproximado da raiz cúbica de 2. c) Quantas iterações teria que efectuar se pretendesse determinar 3 2 com um erro absoluto inferior a 0.001? Resposta. Comecemos por observar que determinar a raiz cúbica de 2 equivale a resolver a equação f(x) = x 3 2 = 0. a) Temos que f(1.2) = 1.2 3 2 = 0.272 < 0 e f(1.3) = 1.3 3 2 = 0.197 > 0. Uma vez que a função f é contínua, pelo teorema 2.1 concluímos que a raiz procurada está no intervalo [1.2, 1.3]. 14
b) Comecemos com o intervalo [a, b] = [1.2, 1.3]. Então x 1 = a+b 2 = 1.25. Verifica-se que f(1.25) = 0.047 < 0, de onde resulta que f(1.25)f(1.2) > 0. Logo, o intervalo a considerar na iteração seguinte é [a 1, b 1 ] = [1.25, 1.3]. Por conseguinte, x 2 = a 1+b 1 2 = 1.275. Neste caso, f(1.275) = 0.0727 > 0, de onde resulta que f(1.275)f(1.25) < 0. Assim, o intervalo a considerar na terceira iteração é [a 2, b 2 ] = [1.25, 1.275]. Finalmente, x 3 = a 2+b 2 2 = 1.2625. Neste ponto, temos f(1.2625) = 0.012 > 0, pelo que o intervalo a considerar na iteração seguinte será [a 3, b 3 ] = [1.25, 1.2625] c) O comprimento do intervalo inicial é b a = 0.1. Logo, para atingir uma precisão de ε = 0.001, o número de iterações é dado por log 2 ( b a ε ) = log 2 ( 0.1 0.001 ) = 6.64. Ou seja, a precisão será atingida ao fim de 7 iterações. 2.3 Método do Ponto Fixo 2.3.1 Definição e exemplos de pontos fixos Definição. Seja g uma função real, definida num certo intervalo [a, b] IR. O número z [a, b] diz-se um ponto fixo de g se g(z) = z. Exemplo 2.3 a) Seja g(x) = αx + β, α 1, α, β IR. O ponto fixo de g é o que satisfaz αz + β = z, ou seja z = β 1 α. Por exemplo, se for α = 2, β = 3, obtém-se z = 3 (fig.2). b) Seja g(x) = x 2 +1. Neste caso, a equação dos pontos fixos é z 2 +1 = z. Por conseguinte, temos z = 1 2 ± 1 2 2 1, ou seja, não existem pontos fixos reais (fig. 3). c) g(x) = x 2. A equação dos pontos fixos, neste caso, é z 2 = z. Logo, existem dois pontos fixos: z 1 = 0, z 2 = 1 (fig.4). d) g(x) = cos x. Embora não seja possível determinar analiticamente o ponto fixo desta função, é fácil verificar que ela tem um ponto fixo (único) no intervalo [0, 1]. Com efeito, se definirmos f(x) = cos x x, verifica-se que f(0) = 1, f(1) = cos 1 1 < 0. Logo, sendo a função f contínua, pelo teorema 2.1, ela tem, pelo menos, um zero z em ]0, 1[. Nesse ponto z verificase cos z = z, pelo que z é um ponto fixo de g. Por outro lado, f é uma função continuamente diferenciável e a sua derivada, f (x) = senx 1, é negativa em [0, 1]. Logo, pelo Teorema 2.2, f tem uma única raiz neste intervalo, que é também o único ponto fixo de g (fig.5). Dada uma função g, determinar os seus pontos fixos equivale a calcular as raizes da equação g(x) x = 0, ou, por outras palavras, calcular os zeros da função f(x) = g(x) x. Inversamente, se for dada uma equação f(x) = 0, 15
y 6 4 2-2 g y=x z 1 2 3 4 5 x Figure 2: Exemplo 2.3a y 5 4 3 2 g y=x 1 0.5 1 1.5 2 x Figure 3: Exemplo 2.3b calcular as raizes dessa equação outra função. equivale a determinar os pontos fixos de Exemplo 2.4. Consideremos de novo a equação e x x 2 2x = 0.5 (exemplo 2.2). Esta equação pode ser reescrita de várias formas, todas elas equivalentes: e x x 2 0.5 = x; (2.1) 2 e x 2x 0.5 = x; (2.2) ln(x 2 + 2x + 0.5) = x. (2.3) No caso da equação (2.1), as raizes da equação inicial são vistas como os pontos fixos da função g 1 (x) = ex x 2 0.5 2. Em relação à equação (2.2), ela remete-nos para os pontos fixos de g 2 (x) = e x 2x 0.5. Note-se 16
y 4 g 3 2 y=x 1 z1 z2 0.5 1 1.5 2 x Figure 4: Exemplo 2.3c 2 y y x 1.5 1 0.5 0.5 z 1 1.5 2 x g Figure 5: Exemplo 2.3d que, neste caso, as equações só são equivalentes para valores positivos de x (a função g 2 não pode tomar valores negativos). Em particular, a raiz z 1, negativa, não é ponto fixo de g 2. Quanto à equação (2.3), diz-nos que as raizes da equação inicial são pontos fixos da função g 3 (x) = ln(x 2 +2x+0.5). Neste caso, a equivalência também não é válida para qualquer valor de x, já que o domínio da função g 3 só inclui os valores de x,para os quais x 2 +2x+0.5 > 0. Das raizes da equação inicial apenas z 2 e z 3 satisfazem esta condição. Logo, z 2 e z 3 são também pontos fixos de g 3, enquanto z 1 não o é. O Exemplo 2.4 mostra-nos que as raizes de uma equação dada podem ser tratadas como pontos fixos de diferentes funções. Veremos que esse facto pode ser utilizado na escolha de métodos numéricos para o cálculo aproximado destas raizes. 17
2.3.2 Sucessões numéricas geradas por funções Dada uma função real g,com domínio num certo intervalo [a, b], e um número x 0, tal que x 0 [a, b], é possível gerar uma sucessão de números reais {x n } do seguinte modo: x k+1 = g(x k ), k = 0, 1,... (2.4) Se a imagem do intervalo [a,b] estiver contida no próprio intervalo, então a relação (2.4) permite-nos definir uma sucessão infinita de elementos do conjunto considerado. Neste caso, chamaremos a g a função iteradora e aos termos x k da sucessão as iteradas. Veremos como as sucessões geradas desse modo podem ser utilizadas para aproximar as raizes de uma equação dada. Exemplo 2.5. Seja g(x) = x 2. O domínio desta função é R e a imagem do intervalo [0,1] por esta função é o próprio intervalo.se tomarmos x 0 = 0, a função g gera uma sucessão constante:{0, 0, 0,..}. Se considerarmos 0 < x 0 < 1,então a sucessão gerada é {x 0, x 2 0, x4 0,...} e converge para 0, que é um dos pontos fixos de g. Se tomarmos x 0 = 1, a sucessão das iteradas é de novo constante: {1, 1, 1,..}( 1 também é um ponto fixo de g). Se tomarmos x 0 > 1, a sucessão vai ser divergente (tende para infinito). O exemplo 2.5 sugere-nos que, quando a sucessão gerada por uma função g converge, então o seu limite é um ponto fixo da função g. De facto, pode provar-se que assim é. Teorema 2.3. Seja {x n } uma sucessão gerada pela função g que converge para um certo limite z. Se g for contínua em z, então z é ponto fixo de g. Demonstração. Uma vez que z = lim n x n, temos z = lim n x n+1 = lim n g(x n). Da continuidade de g em z resulta que lim n g(x n ) = g(lim n x n ) = g(z). Obtemos assim que z = g(z),como se pretendia demonstrar. Exercício 2.2. Considere a sucessão gerada pela função g(x) = sen(x), com x 0 = 1. Prove que esta sucessão converge. Qual é o seu limite? Resposta. Para provar que a sucessão converge, basta provar que é monótona e limitada. Note-se que, sendo 0 < x < 1, temos 0 < sen(x) < x. Daqui resulta que 1) todos os termos da sucessão considerada pertencem ao intervalo [0,1]; 2) a sucessão é motótona decrescente, já que x k+1 = sen(x k ) < x k.por conseguinte a sucessão é monótona e limitada, logo é convergente. De acordo com o teorema 2.3, a sucessão considerada, sendo 18
convergente, deve convergir para um ponto fixo da função iteradora. O único ponto fixo da função g(x) = sen(x) é z = 0, logo é para esse ponto que a sucessão converge. 2.3.3 Teorema do Ponto Fixo O teorema 2.3 diz-nos que uma sucessão gerada por uma função iteradora g, a convergir, converge para um ponto fixo daquela função. Fica por responder a questão: em que condições essa sucessão converge? A resposta a esta questão é dada por um teorema fundamental da Análise Matemática, o teorema do ponto fixo. Embora este teorema possa ser formulado num contexto mais vasto, por agora, limitar-os-emos a uma versão simplificada, em que g é uma função de uma variável real. Teorema 2.4 (teorema do ponto fixo). Seja g uma função de variável real e [a, b] um intervalo tais que: 1. g([a, b]) [a, b]; 2. g é continuamente diferenciável em [a, b]; 3. max x [a,b] g (x) = L < 1; Então são válidas as seguintes afirmações: 1. g tem um único ponto fixo z em [a, b]; 2. se x 0 [a, b], a sucessão gerada pela função g converge para o ponto fixo z. Demonstração. 1. Para demonstrar a existência de, pelo menos, um ponto fixo, defina-se a função h(x) = g(x) x. Esta função é obviamente contínua em [a, b]; se tivermos g(a) = a (ou g(b) = b), teremos que a (ou b, respectivamente) é ponto fixo de g. Caso contrário, de acordo com a condição 1), a função h satisfaz h(a) = g(a) a > 0, h(b) = g(b) b < 0; então, pelo teorema de Bolzano, existe, pelo menos, um ponto z [a, b], tal que h(z) = 0, ou seja, g(z) = z; logo, z é ponto fixo de g. Para demonstrar a unicidade, suponhamos que existem em [a, b] dois pontos fixos distintos z 1,z 2. Por definição, temos g(z 1 ) = z 1, g(z 2 ) = z 2. Logo, g(z 1 ) g(z 2 ) = z 1 z 2. Por outro lado, usando o Teorema de Lagrange e a condição 3, temos g(z 1 ) g(z 2 ) max x [a,b] g (x) z 1 z 2 = L z 1 z 2. 19
Obtemos assim que ou seja, z 1 z 2 L z 1 z 2, z 1 z 2 (1 L) 0. (2.5) Mas, de acordo com a condição 3, L < 1; logo, da desigualdade (2.5) resulta que z 1 z 2 = 0, o que contradiz a hipótese de z 1 e z 2 serem distintos. Desta contradição conclui-se a unicidade do ponto fixo. 2. Para demonstrar a segunda afirmação seja x 0 um ponto arbitrário de [a, b]. Pela condição 1 do teorema, temos que x 1 = g(x 0 ) também pertence ao intervalo [a, b]. Do mesmo modo se conclui que todos os elementos da sucessão, gerada pela função g, pertencem àquele intervalo. Vamos agora provar que esta sucessão converge para o ponto fixo z. Pela condição 3 do teorema, temos x n z = g(x n 1 ) g(z) L x n 1 z. (2.6) Aplicando n vezes a desigualdade (2.6), conclui-se que x n z L n x 0 z. (2.7) Como, por condição, L < 1, da desigualdade (2.7) resulta que x n z 0, quando n (qualquer que seja x 0 [a, b]). Fica assim demonstrada a segunda afirmação do teorema. O teorema do ponto fixo não só nos garante a existência de um único ponto fixo z da função g num dado intervalo, como nos indica um método para obter aproximações desse ponto. Na realidade, se tomarmos qualquer ponto inicial x 0 dentro do intervalo e construirmos a sucessão, gerada pela função g, de acordo com o teorema do ponto fixo essa sucessão converge para z. O método baseado nesta construção chama-se método do ponto fixo. Este método permite-nos, dada uma função iteradora g e um intervalo [a, b] (tal que sejam satisfeitas as condições do teorema 2.4), obter uma aproximação tão precisa quanto quisermos do ponto fixo de g em [a, b]. O algoritmo é extremamente simples: 1. Escolher um ponto x 0 [a, b]; 2. calcular cada nova iterada pela fórmula x n = g(x n 1 ), n = 1, 2,...; 3. Parar quando se obtiver uma aproximação aceitável (sobre os critérios de paragem falaremos mais abaixo). 20
2.3.4 Estimativa do erro do método do ponto fixo Para efeitos práticos, interessa-nos não só saber as condições em que um método converge, mas também estimar o erro das aproximações obtidas. No caso do método do ponto fixo, a resposta a esta questão é dada pelo seguinte teorema. Teorema 2.5. Nas condições do Teorema 2.4, são válidas as seguintes estimativas do erro: (estimativa apriori), x n z L n x 0 z (2.8) x n z L 1 L x n x n 1, n 1 (2.9) (estimativa aposteriori), onde x n 1, x n, são duas iteradas consecutivas do método do ponto fixo e L = max x [a,b] g (x). Demonstração. A fórmula (2.8) já foi provada durante a demonstração do teorema do ponto fixo (ver (2.7)). Quanto à fórmula (2.9), pode ser provada do seguinte modo. Comecemos por observar que x n 1 z = z x n 1 z x n + x n x n 1. (2.10) Por outro lado, visto que, de acordo com (2.6), da fórmula (2.10) resulta que x n z L x n 1 z, x n 1 z (1 L) x n x n 1. (2.11) Observando que 1 L > 0 (pela condição 3 do teorema 2.4), podem dividir-se por este valor ambos os membros da desigualdade (2.11), obtendo-se assim x n 1 z 1 1 L x n x n 1. (2.12) Finalmente, das desigualdades (2.12) e (2.6) obtém-se a estimativa (2.9). 21
Exercício 2.3. Considere a equação cos(x) 2x = 0. 1. Com base no teorema do ponto fixo, mostre que esta equação tem uma única raiz no intervalo [0.4, 0.5] e que o método do ponto fixo converge para essa raiz. Resolução. Comecemos por observar que qualquer raiz da equação dada é um ponto fixo de g(x) = cosx 2. Mostremos agora que a função g satisfaz, no dado intervalo, as condições do teorema do ponto fixo. (a) Para mostrar que g([0.4, 0.5]) [0.4, 0.5] comecemos por calcular as imagens dos extremos do intervalo: g[0.4] = cos(0.4)/2 = 0.46053 [0.4, 0.5]; g(0.5) = cos(0.5)/2 = 0.43879 [0.4, 0.5]. Por outro lado, a função g é decrescente em [0.4, 0.5] (g (x) = senx/2 é negativa naquele intervalo). Daqui se conclui que g([0.4, 0.5]) [0.4, 0.5]. (b) g é continuamente diferenciável em IR e, em particular, no intervalo considerado. (c) L = max x [0.4,0.5] g senx (x) = max x [0.4,0.5] 2 = sen0.5 2 = 0.2397 < 1. Concluimos assim que todas as condições do teorema do ponto fixo estão satisfeitas, pelo que o método do ponto fixo com a função iteradora g(x) = cosx/2 converge para o ponto fixo. 2. Tomando como aproximação inicial x 0 = 0.4, calcule as duas primeiras iteradas do método. Resolução. Tomando como aproximação inicial x 0 = 0.4, as duas primeiras aproximações iniciais são x 1 = g(x 0 ) = 0.46053; x 2 = g(x 1 ) = 0.44791. 3. Obtenha uma estimativa do erro da aproximação x 2, calculada na alínea anterior. Resolução.Usando a fórmula (2.9), obtém-se z x 2 L 1 L x 2 x 1 = 0.2397 0.44791 0.46053 = 0.00397. 1 0.2397 4. Nas condições da alínea anterior, quantas iterações é necessário efectuar para garantir que o erro absoluto da aproximação obtida é inferior a 0.001? 22
Resolução. Para responder a esta questão, é necessário aplicar a estimativa a priori (2.8). De acordo com esta estimativa, temos x n z L n x 0 z 0.2397 n 0.5 0.4 = 0.1 0.2397 n, n 1. Logo, para garantir que o erro absoluto da n-ésima iterada é inferior a um certo ɛ, basta escolher n de tal modo que 0.2397 n < 10ɛ. Desta inequação, resulta que n > log 0.2397 (10ɛ). No caso de ɛ = 0.001, obtém-se n > 3.22, de onde se conclui que o erro satisfaz a condição exigida ao fim de 4 iterações. 2.3.5 Classificação dos pontos fixos De acordo com o teorema do ponto fixo, a convergência das sucessões geradas por uma certa função g num intervalo [a, b] depende do comportamento da sua derivada g nesse intervalo. Isto leva-nos a classificar os pontos fixos z de uma função g de acordo com o valor de g (z). Neste parágrafo iremos assumir que g é continuamente diferenciável (ou seja, g é contínua), pelo menos, numa vizinhança de cada ponto fixo de g. Assim, um ponto fixo z de uma função g diz-se atractor se g (z) < 1. De facto, se g (z) < 1 e g é contínua em z, então existe uma vizinhança V ɛ (z) = (z ɛ, z + ɛ) tal que max x Vɛ(z) g (z) = L < 1. Por outro lado, se x V ɛ (z), temos g(x) g(z) L x z < x z < ɛ, ou seja, g(x) também pertence a V ɛ (z). Logo, se o intervalo [a, b] estiver contido em V ɛ (z), nesse intervalo a função g satisfaz as condições do teorema do ponto fixo. Concluimos portanto que, se z for um ponto fixo atractor, então existe uma vizinhança V ɛ (z) tal que, se x 0 V ɛ (z) então a sucessão gerada por g converge para z. Por outro lado, se z é um ponto fixo de g e g (z) > 1, então z diz-se um repulsor. Nesse caso, é fácil verificar que nenhuma sucessão gerada pela função g converge para z (excepto a sucessão constante {z, z,... } ou qualquer sucessão da forma {..., x, z, z,... }, onde x é tal que g(x) = z). De facto, se z é um repulsor, então existe uma vizinhança V ɛ (z) = (z ɛ, z + ɛ) tal que g (z) > 1, x V ɛ (z). Assim, seja x k um termo de uma sucessão gerada pela função g e suponhamos que x k V ɛ (z), x k z. Então temos x k+1 z = g(x k ) g(z) min x Vɛ(z) g (x) x k z > x k z. Logo, x k+1 está mais distante de z do que x k. Se o ponto x k+1 também pertencer a V ɛ (z), então o mesmo raciocínio se aplica a esse ponto, e vemos que a sucessão se afasta de z. A única possibilidade de uma sucessão não constante convergir para z, sendo z repulsor, é o caso de essa sucessão conter um ponto x (não pertencencente à vizinhança referida), tal que g(x) = z. 23
0.4 0.35 0.3 0.2 0.25 0.3 0.35 0.4 0.25 0.2 Figure 6: Iterações da função g(x) = 1.5x(1 x), com x 0 = 0.2. Finalmente, se tivermos g (z) = 1, então o ponto fixo z diz-se neutro. Neste caso, existem sucessões geradas pela função g que convergem para z e outras que não convergem (mesmo que x 0 esteja próximo do ponto fixo z). Exemplo 2.6. Consideremos a função g(x) = kx(1 x), onde k > 0. Esta função é conhecida como função logística e tem diversas aplicações em ecologia matemática. Para determinarmos os pontos fixos desta função, para um certo valor de k, resolva-se a equação kz(1 z) = z. (2.13) É fácil verificar que esta equação tem 2 raizes: z 1 = 0 e z 2 = 1 1/k. Consideremos o caso de k = 1.5. Nesse caso, os dois pontos fixos de g são z 1 = 0 e z 2 = 1/3. Para os classificarmos, observemos que g (x) = 1.5 3x. Logo g (0) = 1.5 e g (1/3) = 1.5 1 = 0.5, ou seja, z 1 é repulsor e z 2 é atractor. Isto significa que a) nenhuma sucessão gerada pela função g poderá convergir para 0 (excepto a sucessão constante, igual a 0, ou a sucessão {1, 0, 0,... }); b) se x 0 for suficientemente próximo de 1/3, a sucessão gerada por g converge para z 2 = 1/3. Mais precisamente pode provar-se que, se 0 < x 0 < 1, então a sucessão {x k } converge para z 2. As figuras 6 e 7 ilustram esta afirmação. Exemplo 2.7. Seja g(x) = x 2 + x. Esta função tem um ponto fixo (único) em z = 0. Visto que g (z) = 2z + 1 = 1, este ponto fixo é neutro. Vejamos qual é o comportamento das sucessões geradas por esta função. Seja x 0 = 0.12. Então, temos que x 1 = x 2 0 + x 0 = 0.1344; x 2 = x 2 1 + x 1 = 0.152463, etc. É fácil verificar que, neste caso, a sucessão é crescente e tende para +. 24
0.5 0.45 0.4 0.35 0.3 0.3 0.35 0.4 0.45 0.5 Figure 7: Iterações da função g(x) = 1.5x(1 x), com x 0 = 0.5 Mas se escolhermos como iterada inicial x 0 = 0.12, já teremos x 1 = x 2 0 +x 0 = 0.1056;x 2 = x 2 1 +x 1 = 0.0945. Neste caso, a sucessão é crescente e converge para o ponto fixo z = 0. As figuras 8 e 9 ilustram este exemplo. 2.3.6 Monotonia das iteradas do método do ponto fixo Suponhamos que z é um ponto fixo atractor da função g. Como vimos no parágrafo anterior, isto verifica-se sempre que g (z) < 1, isto é, 1 < g (z) < 1. Como vimos, neste caso, qualquer sucessão gerada pela função g, com x 0 suficientemente próximo de z, converge para z. Neste parágrafo, vamos investigar em que condições essa sucessão é monótona (crescente ou decrescente). Tal como antes, admitimos que g é continuamente diferenciável numa vizinhança de z. Caso 1. Suponhamos que 0 < g (z) < 1. Então, da continuidade da derivada de g, resulta que existe uma vizinhança V ɛ (z) = (z ɛ, z + ɛ), tal que, se x V ɛ (z), então 0 < g (x) < 1. Suponhamos que x k é um termo de uma sucessão, gerada pela função g, tal que x k V ɛ (z). Para sermos mais específicos admitamos que z < x k < z + ɛ. Nesse caso, uma vez que x k+1 = g(x k ), aplicando o teorema de Lagrange, existe um ponto ξ k, z ξ k x k, tal que x k+1 z = g(x k ) g(z) = g (ξ k )(x k z). (2.14) Por construção, temos x k z > 0 e g (ξ k ) > 0. Logo, x k+1 > z. Concluimos que, se x k > z, então também x k+1 > z. Por outro lado, uma vez que z é um ponto atractor (g (ξ k ) < 1), x k+1 deve estar mais próximo de z do que x k, de onde se conclui que x k+1 < x k. Como o mesmo raciocínio se 25
0.2 0.15 0.1 0.05 0.05 0.1 0.15 0.2 Figure 8: Iterações da função g(x) = x 2 + x, com x 0 = 0.12-0.14-0.12-0.1-0.08-0.06-0.04-0.02-0.02-0.04-0.06-0.08-0.1-0.12-0.14 Figure 9: Iterações da função g(x) = x 2 + x, com x 0 = 0.12 26
0.46 0.44 0.42 0.4 0.4 0.42 0.44 0.46 Figure 10: Iterações da função g(x) = cosx 2, com x 0 = 0.39. aplica a todas as iteradas subsequentes, podemos concluir que, neste caso, a sucessão {x n } é decrescente (pelo menos, a partir da ordem k). Esta situação é ilustrada pelo gráfico da fig. 7. Se tivermos x k < z, o mesmo raciocínio leva-nos a conlusão que x k+1 > x k. Nesse caso, a sucessão das iteradas será crescente. Esta situação é a que está representada na fig. 6 e na fig. 9. Em qualquer das duas situações, as sucessões são monótonas. Caso 2. Suponhamos agora que 1 < g (z) < 0. Então, da continuidade da derivada de g, resulta que existe uma vizinhança V ɛ (z) = (z ɛ, z + ɛ), tal que, se x V ɛ (z), então 1 < g (x) < 0. Admitindo que x k pertence a essa vizinhança, a igualdade (2.14) é aplicável. Neste caso, admitindo que x k > z, dessa igualdade resulta que x k+1 < z (uma vez que g (ξ k ) < 0). Se aplicarmos o mesmo raciocínio às iteradas seguintes, concluímos que x k+2 > z, x k+3 < z, etc. Se, pelo contrário, tivermos x k < z, então x k+1 > z, x k+2 < z, etc. Ou seja, neste caso, as iteradas vão ser alternadamente maiores ou menores que z (uma sucessão deste tipo diz-se alternada). Uma propriedade interessante das sucessões alternadas é que o limite da sucessão está sempre entre dois termos consecutivos, isto é x k < z < x k+1 ou x k+1 < z < x k. Isto permite-nos obter um majorante do erro absoluto de x k+1 além daqueles que foram obtidos em 2.3.4: x k+1 z < x k+1 x k. (2.15) A sucessão das iteradas do exercício 2.3, em que g (z) < 0, é um exemplo de uma sucessão alternada. Na fig. 10 estão representados graficamente alguns termos desta sucessão. 27
2.3.7 Divergência do método do ponto fixo O estudo dos pontos repulsores no parágrafo 2.3.5 permite-nos formular o seguinte critério de divergência do método do ponto fixo. Teorema 2.6 Se g for continuamente diferenciável em [a, b] e se g (x) > 1, x [a, b], então nenhuma sucessão gerada pela função g pode convergir para qualquer ponto do intervalo [a, b](excepto a sucessão constante {z, z,...} ou qualquer sucessão da forma {..., x, z, z,...}, onde z é ponto fixo de g e x é tal que g(x) = z). Demonstração. De acordo com as condições do teorema e com a classificação dos pontos fixos, se a função g tiver algum ponto fixo em [a, b] esse ponto fixo é repulsor. Por outro lado, se uma sucessão gerada pela função g convergir, ela converge para um ponto fixo de g ( Teorema 2.3). Da conjugação destes dois factos resulta a afirmação do teorema. 2.3.8 Ordem de convergência Um dos conceitos fundamentais da teoria dos métodos iterativos é o conceito de ordem de convergência. Este conceito permite-nos comparar a rapidez com que diferentes métodos convergem e escolher, em cada caso, o método mais eficiente. Nas definições que se seguem representaremos por {x n },n N, um sucessão convergente de números reais e por z o seu limite. Definição. Diz-se que uma sucessão {x n } tem convergência, pelo menos, linear (pelo menos,de ordem 1) se existir uma constante k < 1 tal que k = lim n z x n+1 ; z x n este limite designa-se coeficiente assimptótico de convergência. Sempre que k 0, a ordem de convergência é exactamente 1. Se k = 0, a ordem de convergência é superior a 1, caso que estudaremos mais adiante. Note-se que o coeficiente assimptótico de convergência nos permite comparar, quanto à rapidez de convergência, métodos diferentes que tenham convergência linear. Com efeito, quanto mais pequeno (mais próximo de 0) for k mais rápida será a convergência. Exemplo 2.8. Consideremos a sucessão {x n }, tal que x n+1 = x n /a, a > 1, com x 0 IR. É fácil verificar que esta sucessão converge para z = 0, qualquer que seja x 0 IR, já que este é o único ponto fixo da função iteradora g(x) = x/a. Além disso, este ponto é atractor, já que g (x) = 1/a < 1, x IR. Verifiquemos que esta sucessão tem convergência linear. Para isso, 28
calculemos o quociente: z x n+1 x n+1 k = lim = lim = 1 < 1. (2.16) n z x n n x n a Concluímos assim que temos convergência linear. Além disso, o coeficiente assimptótico de convergência é k = 1 a. Assim, a convergência será tanto mais rápida quanto maior for a. Analisemos agora os casos em que a ordem de convergência é superior a 1 (convergência supralinear). Definição. Diz-se que uma sucessão {x n } tem convergência, pelo menos, de ordem p > 1 se existir uma constante k tal que z x n+1 k = lim n z x n p ; esta constante designa-se coeficiente assimptótico de convergência. Se k 0, então a ordem de convergência é exactamente p. Exemplo 2.9. Consideremos a sucessão {x n }, tal que x n+1 = bx α n, onde b 0, α > 1, com x 0 < b 1 α 1. É fácil verificar que esta sucessão converge para z = 0, se x 0 satisfizer a condição indicada. De facto, o ponto z = 0 é um ponto fixo da função iteradora g(x) = bx α. Além disso, este ponto é atractor, já que g (0) = 0. Por outro lado, se x 0 < b 1 α 1, então x1 < x 0 e, de um modo geral, teremos que x n+1 < x n, n, pelo que a sucessão é decrescente em módulo. Verifiquemos qual é a ordem de convergência desta sucessão. Para isso calculemos o limite: z x n+1 lim n z x n p = lim x n+1 n x n p = lim bx α n n x n p. (2.17) Para que este limite seja finito, devemos ter p = α. Neste caso, verifica-se k = b. Logo, a ordem de convergência é α e o coeficiente assimptótico de convergência é b. A ordem de convergência do método do ponto fixo depende das propriedades da função iteradora g. O teorema que se segue diz-nos quais as condições que a função g deve satisfazer para garantir que o método do ponto fixo tenha ordem de convergência p 1. Teorema 2.6 (ordem de convergência do método do ponto fixo). Suponhamos que g satisfaz as condições do teorema do ponto fixo em [a, b] e que, além disso, g C p [a, b], com p 1. Seja ainda g (z) = g (z) =... = g (p 1) (z) = 0, g (p) (z) 0, onde z [a, b] é um ponto fixo de g. Então 1. g tem um único ponto fixo z em [a, b]; 29
2. se x 0 [a, b], então a sucessão gerada pela função g converge para z com ordem p; 3. o coeficente assimptótico de convergência é k = g(p) (z) p!. Demonstração. A primeira afirmação resulta do teorema 2.4 (teorema do ponto fixo). Resta-nos provar os pontos 2 e 3. Com esse fim, escreva-se o desenvolvimento de g em série de Taylor, em torno de z: g(x) = g(z) + g (z)(x z) + g (z) 2 (x z)2 + + g(p) (ξ) (x z) p, (2.18) p! onde ξ int(z, x). Em particular, se escrevermos a fórmula (2.18) com x = x m, atendendo às condições do teorema, obtém-se g(x m ) = g(z) + g(p) (ξ m ) (x m z) p, (2.19) p! onde ξ m int(z, x m ). Da fórmula (2.19) resulta imediatamente que x m+1 z = g(p) (ξ m ) (x m z) p. (2.20) p! Dividindo ambos os membros de (2.20) por (x m z) p e tomando o módulo, obtém-se x m+1 z x m z p = g(p) (ξ m ). (2.21) p! Calculando o limite quando m em ambos os membros de (2.21), obtémse x m+1 z lim m x m z p = g(p) (z). (2.22) p! Da igualdade (2.22) resulta imediatamente que a sucessão {x m } tem ordem de convergência p e que k = g(p) (z) p!. Observe-se que, como caso particular do Teorema 2.6, com p = 1, se obtém a seguinte afirmação: se g satisfizer as condições do teorema do ponto fixo em [a, b] e se g (z) 0, então, qualquer que seja x 0 [a, b], a sucessão gerada pela função g converge linearmente para z e o coeficiente assimptótico de convergência é k = g (z). Exercício 2.10 Considere a função iteradora g(x) = 1 2 ( x + 1 x). 30
1. Mostre que os pontos fixos de g são z 1 = 1,z 2 = 1. Resolução. Da equação g(z) = 1 ( ) 2 z + 1 z = z, multiplicando ambos os membros por 2z, obtém-se z 2 + 1 = 2z 2. daqui resulta que z 2 = 1, pelo que os pontos fixos de g são z 1 = 1,z 2 = 1. 2. Mostre que estes pontos são atractores. Resolução. Visto que g (x) = 1 2 1 2x 2, obtém-se g (1) = g ( 1) = 0. Logo, estes pontos são atractores. 3. Seja x 0 [1, 2]. Mostre que a sucessão gerada pela função g converge para z 1 = 1, determine a ordem e o coeficiente assimptótico de convergência. Resolução. Em primeiro lugar, mostremos que a função g satisfaz as condições do teorema do ponto fixo em [1, 2]. Já sabemos que g (x) = 1 2 1, logo g é continuamente diferenciável em [1, 2]. Além 2x 2 disso, é fácil verificar que g (x) 0, x [1, 2]. Logo, g é crescente em [1, 2]. Então, para mostrar que g([1, 2]) [1, 2], basta-nos verificar que g(1) = 1 [1, 2] e g(2) = 5/4 [1, 2]. Por outro lado, temos max x [1,2] g (x) = g(2) = 3 8 < 1. Para determinar a ordem de convergência e o coeficiente assimptótico de convergência da sucessão considerada, vamos aplicar o teorema 2.6. Para isso, analisemos as derivadas de g. Já sabemos que g (1) = 0. Quanto à segunda derivada, temos g (x) = 1. Logo,g é contínua x 3 em [1, 2] e g (1) = 1 0. Daqui resulta que o teorema 2.6 é aplicável com p = 2 e a ordem de convergência é 2. Quanto ao coeficiente assimptótico de convergência, temos k = g (1) 2 = 1 2. 2.4 Método de Newton No parágrafo anterior vimos que o método do ponto fixo tem um vasto domínio de aplicação e permite, na maioria dos casos, obter boas aproximações de raizes de equações. No entanto, vimos também que, em geral, aquele método garante apenas primeira ordem de convergência (ordens superiores só se obtêm, de acordo com o teorema 2.6, se algumas derivadas da função iteradora se anularem no ponto fixo). O método de Newton, que vamos estudar neste prarágrafo, tem a importante vantagem de proporcionar, em geral, convergência de segunda ordem (quadrática). É um dos métodos mais frequentemente utilizados, já que combina a rapidez de convergência com a simplicidade do processo iterativo. 31
Mais adiante, veremos que o método de Newton pode ser encarado como um caso particular do método do ponto fixo. Por agora, vamos introduzi-lo através da sua interpretação geométrica. 2.4.1 Interpretação geométrica do método de Newton Seja f uma função continuamente diferenciável num certo intervalo [a, b]. Suponhamos que nesse intervalo a função f tem uma única raiz e que a sua derivada não se anula ( f (x) 0, x [a, b]). Sendo x 0 um ponto arbitrário de [a, b], podemos traçar a tangente ao gráfico de f que passa pelo ponto (x 0, f(x 0 )) (ver fig. 11). Sendo f (x 0 ) 0, por condição, essa recta intersecta o eixo das abcissas num certo ponto (x 1, 0). Para determinar x 1, comecemos por escrever a equação da tangente ao gráfico de f: y f(x 0 ) = f (x 0 )(x x 0 ). (2.23) Igualando y a 0 na equação (2.23), obtém-se a abcissa x 1 procurada: x 1 = x 0 f(x 0) f (x 0 ). (2.24) As iteradas seguintes obtêm-se do mesmo modo. Mais precisamente, para determinar x 2, traça-se a tangente ao gráfico de f que passa pelo ponto (x 1, f(x 1 )) e procura-se o ponto onde essa recta intersecta o eixo das abcissas; e assim sucessivamente. Obtém-se deste modo uma sucessão de pontos {x k }, k = 0, 1, 2,..., que podem ser calculados pela fórmula de recorrência x k+1 = x k f(x k) f (x k ). (2.25) A interpretação geométrica, representada na Fig.11, sugere-nos que esta sucessão converge para a raiz z da equação considerada. Nos parágrafos seguintes, vamos demonstrar analiticamente que de facto assim é. 2.4.2 Estimativa do erro do método de Newton Em primeiro lugar, vamos deduzir uma fórmula que nos permite majorar o erro de cada iterada do método de Newton, admitindo que é conhecido um majorante do erro da iterada anterior. Vamos supor que a função f satisfaz no intervalo [a, b] as condições formuladas no parágrafo anterior (f é continuamente diferenciável em [a, b] e a sua derivada não se anula neste intervalo). Além disso, vamos supor que a segunda derivada de f também 32
15 12.5 10 7.5 5 2.5 z x3 x2 x1 x0 3.5 4 4.5 5 Figure 11: Interpretação geométrica do método de Newton. é contínua neste intervalo. Seja {x n }, n = 0, 1, 2,... a sucessão das iteradas do método de Newton (que se consideram pertencentes ao intervalo [a, b]). Se desenvolvermos f em série de Taylor, em torno de x k, obtém-se f(x) = f(x k ) + (x x k )f (x k ) + (x x k) 2 f (ξ k ), (2.26) 2 onde ξ k int(x k, x). Escrevendo o desenvolvimento (2.26) com x = z, obtém-se f(z) = f(x k ) + (z x k )f (x k ) + (z x k) 2 f (ξ k ) = 0, (2.27) 2 onde ξ k int(x k, z). Uma vez que, por condição, f (x k ) 0, podemos dividir ambos os membros de (2.27) por f (x k ), obtendo assim f(x k ) f (x k ) + (z x k) + (z x k) 2 2f (x k ) f (ξ k ) = 0. (2.28) Atendendo à fórmula iteradora do método de Newton (2.25), da equação (2.28) resulta que z x k+1 = (z x k) 2 2f (x k ) f (ξ k ). (2.29) A igualdade (2.29) dá-nos a relação que procurávamos entre o erro de x k+1 (e k+1 ) e o erro de x k (e k ). No segundo membro desta desigualdade aparece o valor f (ξ k ), o qual não podemos calcular exactamente, já que sabemos apenas que ξ k é um ponto situado entre x k e z. Por isso, para podermos majorar o erro absoluto de x k ( e k ), precisamos de majorar o módulo da segunda derivada de f (que se supõe contínua). Introduzindo a notação M = max x [a,b] f (x) (2.30) 33
da igualdade (2.29) obtem-se a seguinte relação: e k+1 e k 2 M 2 f (x k ). (2.31) Saliente-se que na desigualdade (2.31) e k+1 é comparado com o quadrado de e k, o que indica um rápido decrescimento do erro. Seja µ = min x [a,b] f (x). (2.32) Então, a desigualdade (2.31) pode ser reforçada, substituindo f (x k ) por µ: e k+1 e k 2 M 2µ. (2.33) Nesta última desigualdade o segundo membro não depende de k. Na prática, usam-se frequentemente as fórmulas (2.31) e (2.33) para obter uma estimativa de e k+1. Exemplo 2.10. Consideremos a equação f(x) = cosx 2x = 0, que já foi analisada no Exercício 2.3. Vamos obter aproximações da raiz desta equação, situada no intervalo [0.4, 0.5], aplicando o método de Newton, e majorar o erro dessas aproximações. Sendo x 0 = 0.4, da fórmula (2.25) obtém-se que x 1 = 0.45066547 e x 2 = 0.45018365. Vamos agora obter majorantes de e 1 e e 2. Em primeiro lugar, note-se que e 0 0.5 0.4 = 0.1. Para podermos aplicar a desigualdade (2.31) é necessário majorar f (x) e minorar f (x). Temos f (x) = sin x 2 e f (x) = cos x, logo µ = min f (x) = min 2 + sin x = 2 + sin 0.4 = 2.389; x [0.4,0.5] x [0.4,0.5] M = max f (x) = max cos x = cos 0.4 = 0.921. x [0.4,0.5] x [0.4,0.5] Por conseguinte, da desigualdade (2.33) resulta a seguinte majoração para o erro absoluto de x 1 : e 1 M 2µ e 0 2 0.921 0.01 = 0.001927. 2 2.389 Em relação ao erro de x 2, obtem-se, do mesmo modo: e 2 M 2µ e 1 2 0.921 2 2.389 0.001927 = 0.696 10 7. Vemos assim que, com duas iteradas apenas, conseguiu-se obter um resultado de alta precisão. Para terminar este exemplo apresentamos na Tabela 34
2.2 uma comparação dos resultados obtidos para esta equação pelos métodos de Newton e do ponto fixo. k x k (Ponto Fixo) e k x k (Newton) e k 0 0.4 0.0501 0.4 0.0501 1 0.46053 0.0105 0.45066547 0.48 10 3 2 0.44791 0.0022 0.45018365 0.4 10 7 Tabela 2.2.Resultados numéricos do método de Newton e do método do ponto fixo (Exemplo 2.10). 2.4.3 Condições suficientes de convergência do método de Newton Até agora, analisámos o erro do método de Newton, partindo do princípio que a aproximação inicial é tal que as iteradas convergem para a raiz procurada. No entanto, nem sempre é fácil prever, para uma dada aproximação inicial, se o método de Newton vai convergir, e para que raiz ele vai convergir (se a equação tiver várias raizes). Neste parágrafo, vamos enunciar um conjunto de condições que, uma vez satisfeitas, garantem que, se a aproximação inicial x 0 do método de Newton, pertencer a um certo intervalo, então o método converge para a raiz da equação que se encontra nesse intervalo. Teorema 2.7 Seja f uma função de variável real que satisfaz as seguintes condições: 1. f f é contínua em [a, b];f(a)f(b) < 0. 2. f C 1 ([a, b]),f (x) 0 em [a,b]. 3. f C 2 ([a, b]),f (x) 0 ou f (x) 0 em [a, b]. 4. f(a) f(b) f (a) < b a, f (b) < b a. Então, qualquer que seja a aproximação inicial x 0 [a, b], o método de Newton converge para a única raiz z de f em [a, b]. Nalgumas situações tem interesse também a seguinte variante deste teorema: Teorema 2.8 Suponhamos que f satisfaz as primeiras 3 condições do teorema 2.7. Então, se a aproximação inicial x 0 for tal que f(x 0 )f (x) 0, x [a, b], o método de Newton converge para a única raiz z de f em [a, b] e a sucessão das iteradas é monótona. Não iremos fazer a demonstração completa destes teoremas, mas apenas investigar o significado e a razão de ser de cada uma das condições. As 35
primeiras condições, como sabemos pelos Teoremas 2.1 e 2.2, garantem que a função considerada tem um único zero em [a, b]. Além disso, a segunda condição é essencial para o método de Newton, pois se ela não se verificar (isto é, se a derivada de f se anular nalgum ponto de [a, b]), o método de Newton pode não ser aplicável. Quanto à terceira condição, ela significa que no domínio considerado a segunda derivada de f não muda de sinal ou, por outras palavras, a função não tem pontos de inflexão no intervalo considerado. Para entendermos a razão de ser desta condição, analisemos o seguinte exemplo. Exemplo 2.11. Consideremos f(x) = x 3 x, no intervalo [ 0.5, 05]. Neste intervalo, a função é continuamente diferenciável, com f (x) = 3x 2 1. Além disso, f tem sinais opostos nos extremos do intervalo (f( 0.5) = 3/8, f(0.5) = 3/8) e f não se anula (é sempre negativa). Por conseguinte, as duas primeiras condições do teorema 2.8 estão satisfeitas no intervalo [ 0.5, 0.5]. Em relação à terceira condição, temos f (x) = 6x, logo, f (x) muda de sinal em x = 0, pelo que esta condição não é satisfeita. Vejamos agora através de um exemplo que a convergência do método de Newton não está garantida para qualquer aproximação inicial no intervalo [ 0.5, 0.5]. Seja x 0 = 1/ 5. Embora este ponto pertença ao intervalo considerado, verifica-se imediatamente que as iteradas do método de Newton, neste caso, formam uma sucessão divergente: x 1 = 1/ 5, x 2 = 1/ 5, x 3 = 1/ 5,.... Vejamos agora um exemplo que ilustra a importância da condição 4. Exemplo 2.12. Seja f(x) = ln x, que tem uma única raiz em z = 1. Se considerarmos, por exemplo, o intervalo [0.5, 3] vemos que neste intervalo estão satisfeitas as primeiras 3 condições dos teoremas 2.7 e 2.8: 1. f(0.5)f(3) < 0; 2. f (x) = 1/x 0, x [0.5, 3]; 3. f (x) = 1/x 2 < 0, x [0.5, 3]. No entanto, a convergência do método de Newton não está assegurada para qualquer aproximação inicial neste intervalo. Se tomarmos, por exemplo, x 0 = 3, temos x 1 = 3 3 ln(3) < 0, pelo que o método de Newton não pode ser aplicado (f(x) não está definida para x < 0). Neste caso, é fácil ver que falha a condição 4 do teorema 2.7. Com efeito, temos f(3) f = 3ln(3) > 3 0.5 = 2.5. (3) 36
Para que o método de Newton convergisse para a raiz procurada, neste caso, deveríamos escolher, por exemplo, x 0 = 0.5. Nesse caso, a convergência resultaria do Teorema 2.8, já que se verifica f(0.5)f (x) > 0, x [0.5, 3]. Sobre o significado geométrico da condição 4 podemos dizer o seguinte: se ela se verificar, então, tomando x 0 = a, a iterada x 1 satisfaz x 1 a = f(a) f (a) < b a (ou seja, a distância de x 1 a a é menor que o comprimento do intervalo [a, b]). Logo, x 1 pertence a esse intervalo. Continuando este raciocínio, pode mostrar-se que todas as iteradas seguintes continuam a pertencer ao intervalo [a, b]. Se começarmos o processo iterativo a partir de x 0 = b e utilizarmos a condição f(b) f (b) < b a, um raciocínio semelhante leva-nos à mesma conlusão, isto é, a condição 4 garante que se x 0 [a, b], todas as iteradas do método de Newton se mantêm dentro desse intervalo. 2.4.4 Ordem de convergência do método de Newton O método de Newton também pode ser encarado como um caso particular do método do ponto fixo. Essa abordagem tem a vantagem de nos permitir analisar a convergência do método de Newton com base nos resultados teóricos sobre o método do ponto fixo. Consideremos a equação f(x) = 0 e suponhamos que ela tem uma única raiz num certo intervalo [a, b]. Admitamos ainda que f C 1 ([a, b]) e que f (x) 0, x [a, b]. Então a equação considerada é equivalente a Se definirmos a função iteradora x f(x) f = x. (2.34) (x) g(x) = x f(x) f (x), podemos dizer que a equação (2.34) é a equação dos pontos fixos de g. Logo, as raizes de f, que também são pontos fixos de g, podem ser aproximadas pelo processo iterativo x k+1 = g(x k ) = x k f(x k) f (x k ). (2.35) Verificamos portanto que este método é idêntico ao método Newton, aplicado à função f(x). Logo, para determinar a ordem de convergência do método de Newton, basta determinar, com base no teorema 2.6, a ordem 37
de convergência da sucessão gerada por esta função iteradora. Para isso, comecemos por calcular as suas derivadas. Temos g (x) = f(x)f (x) f (x) 2. Daqui, tomando em consideração que f(z) = 0 e f (z) 0, resulta que g (z) = 0. Quanto à segunda derivada de g, temos Logo, g (x) = (f (x)f (x) + f(x)f (x)) f (x) 2 f(x)f (x)(f (x) 2 ) f (x) 4. g (z) = f (z) f (z). Podemos assim concluir o seguinte: a) Se f (z) 0, então g (z) 0 (uma vez que, por condição, f (z) 0). Nesse caso, de acordo com o teorema 2.6, o método de Newton (ou seja, ) tem ordem de convergência 2 (convergência quadrática). Além disso, o coeficiente assimptótico de convergência é dado por o método do ponto fixo com a função iteradora g(x) = x f(x) f (x) k = f (z) 2 f (z). b) Se f (z) = 0, então g (z) = 0 e o método de Newton tem ordem de convergência, pelo menos, 3 (para saber qual a ordem concreta é necessário analisar as derivadas de ordem superior de g. Exemplo 2.13. Consideremos a equação f(x) = x 3 x = 0. Uma das suas raizes é z = 0. Se aplicarmos o método de Newton ao cálculo aproximado desta raiz, isso equivale a utilizar o método do ponto fixo com a função iteradora g(x) = x f(x) f (x) = 2x3 3x 2 1. Analisemos a ordem do método neste caso. Para isso comecemos por verificar que f (0) = 1 0 e f (0) = 0. Então, de acordo com a análise que acabámos de realizar, o método deve ter ordem, pelo menos, 3. Vejamos qual é, de facto, a ordem de convergência. Sabemos que g (0) = f (0) f (0) = 0. Para determinar g (0), observemos que a função g admite, em torno de z = 0, um desenvolvimento em série de Taylor da forma g(x) = 2x3 1 3x 2 = 2x3 + O(x 5 ), 38
de onde se conclui que g (x) = 12 + O(x 2 )(quando x 0), pelo que g (0) = 12. Temos, portanto, convergência de ordem 3. O coeficente assimptótico de convergência, de acordo com o Teorema 2.6, é k = g (0) 3! = 2. 2.5 Método da Secante Terminaremos este capítulo com a análise do método da secante. Tal como no caso do método de Newton, a fórmula iteradora deste método pode ser deduzida a partir da sua interpretação geométrica. 2.5.1 Interpretação geométrica do método da secante Seja f uma função de variável real, contínua num certo intervalo [a, b], e suponhamos que f tem nesse intervalo um único zero z. Para aplicar o método da secante, escolhem-se dois números, x 0 e x 1, no intervalo [a, b], e considera-se a recta que passa pelos pontos (x 0, f(x 0 )) e (x 1, f(x 1 )) (secante ao gráfico de f). A equação dessa recta é y f(x 1 ) = f(x 1) f(x 0 ) x 1 x 0 (x x 0 ). (2.36) Depois, determina-se o ponto onde esta recta intersecta o eixo das abcissas. Esse ponto existe, desde que f(x 0 ) f(x 1 ), condição que consideramos satisfeita. Desigando por x 2 a abcissa desse ponto, obtém-se a seguinte equação para x 2 : x 1 x 0 x 2 = x 1 f(x 1 ) f(x 0 ) f(x 1). (2.37) Deste modo, a nova aproximação da raiz x 2 fica definida a partir de x 0 e x 1. A fórmula que nos permite determinar cada aproximação x k+1 a partir das duas anteriores (x k e x k 1 ) é análoga a (2.37): x k+1 = x k x k x k 1 f(x k ) f(x k 1 ) f(x k), k = 1, 2,... (2.38) Um exemplo de aplicação do método da secante está representado na fig.12. 39
2.5 2 1.5 1 0.5 x0 x2 x3 z x4 x1 2.5 2.75 3.25 3.5 3.75 4-0.5 Figure 12: Interpretação geométrica do método da secante. 2.5.2 Estimativa do erro do método da secante No caso do método de Newton, vimos que o erro de cada iterada pode ser estimado a partir do erro da iterada anterior e das propriedades da função f. No caso do método da secante, é de realçar uma diferença fundamental: é que cada iterada depende das duas iteradas anteriores, e não apenas da última. Neste caso, diz-se que temos um método iterativo a dois passos. Sendo assim, é natural que o erro de cada iterada do método da secante possa ser determinado a partir dos erros das duas últimas iteradas. Suponhamos então que x m 1 e x m são duas iteradas consecutivas do método da secante. A iterada seguinte, x m+1, pode ser determinada através da fórmula (2.38). Representemos os erros de x m 1 e x m por e m 1 e e m, respectivamente; isto é, e m 1 = z x m 1 e e m = z x m. Além disso, suponhamos que a função f é duas vezes continuamente diferenciável num intervalo I [a, b] que contém x m 1, x m, x m+1 e z e que f não se anula em I. Então, usando resultados da teoria da interpolação (ver, por exemplo, [2]), pode mostrar-se que e m+1 (erro de x m+1 ) satisfaz a desigualdade: e m+1 = f (ξ m ) 2f (η m ) e me m 1, (2.39) onde ξ m e η m representam pontos que pertencem ao intervalo I acima referido. Note-se que a fórmula (2.39) é muito parecida com a fórmula (2.29) para o erro do método de Newton. A diferença é que, como seria de esperar, neste caso, o erro da nova iterada do método da secante é avaliado a partir do produto dos erros das duas últimas iteradas, enquanto que no método de Newton o erro da nova iterada é avaliado a partir do quadrado do erro da iterada anterior. Na prática, para usar a fórmula (2.39), à semelhança do que fizemos no caso do método de Newton, convém majorar em I o módulo da segunda 40
derivada de f e minorar o módulo da sua primeira derivada. Para simplificar, suponhamos que I = [a, b] e seja M = max x [a,b] f (x), µ = min x [a,b] f (x). Então, da fórmula (2.39) resulta imediatamente a seguinte majoração para o erro absoluto do método da secante: e m+1 M 2µ e m e m 1. (2.40) Normalmente, os erros absolutos das suas iteradas iniciais, e 0 e e 1, são majorados pelo comprimento do intervalo [a, b], isto é, são evidentes as desigualdades e 0 < b a e e 1 < b a. A partir daí, os erros das sucessivas iteradas são majorados por recorrência, isto é: o erro e 2 majora-se a partir dos erros e 0 e e 1 ; o erro e 3 majora-se a partir dos erros e 1 e e 2 ; e assim sucessivamente. Exemplo 2.14. Consideremos mais uma vez a equação f(x) = cos(x) 2x = 0, que tem uma raiz no intervalo [0.4, 0.5]. Para aproximar essa raiz pretende-se usar o método da secante. 1. Tomando como aproximações iniciais os pontos x 0 = 0.5 e x 1 = 0.4, calcule as iteradas x 2 e x 3 pelo método da secante. Aplicando a fórmula (2.38), temos x 2 = x 1 x 3 = x 2 x 1 x 0 f(x 1 ) f(x 0 ) f(x 1) = 0.449721; (2.41) x 2 x 1 f(x 2 ) f(x 1 ) f(x 2) = 0.450188. (2.42) 2. Obtenha majorantes do erro absoluto de x 0, x 1, x 2 e x 3. O caminho mais fácil seria majorar e 0 e e 1 pelo comprimento do intervalo: b a = 0.5 0.4 = 0.1. O majorante pode, no entanto, ser um pouco melhorado, se tivermos em conta o sinal de f em cada um dos pontos x i calculados. Para tal, observemos a tabela: i x i f(x i ) 0 0.5 0.122 1 0.4 0.121 2 0.449721 0.0011 3 0.450188 0.00001 41
Da observação da tabela conclui-se que os pontos x 1 e x 2 se encontram à esquerda da raiz z (onde f é positiva), enquanto x 0 e x 3 se encontram à direita (onde f é negativa). Sendo assim, para os erros de x 0 e x 1 obtêm-se os seguintes majorantes: e 0 = z x 0 x 2 x 0 = 0.449721 0.5 = 0.050258, e 1 = z x 1 x 3 x 1 = 0.450188 0.4 = 0.050188. Recordemos do exemplo 2.10 que neste caso se tem M = 0.921, µ = 2.389. Daqui, pela estimativa (2.40), obtém-se e 2 M 2µ e 1 e 0 0.193 0.050188 0.050258 = 0.4868 10 3, (2.43) e 3 M 2µ e 2 e 1 0.193 0.4868 10 3 0.050188 = 0.4715 10 5. (2.44) Vemos assim que, ao fim de duas iterações, o método da secante nos proporciona uma aproximação com um erro da ordem de 10 5. No caso de método de Newton, com o mesmo número de iterações, obtém-se um erro da ordem de 10 7 (ver exemplo 2.10). Assim, este exemplo sugere que o método de Newton converge mais rapidamente que o da secante. Por outro lado, no mesmo exemplo, a precisão que se consegue obter com duas iteradas do método do ponto fixo é da ordem de 10 2. Logo, a julgar por este exemplo, é de esperar que a ordem de convergência do método da secante esteja entre a ordem do método do ponto fixo no caso geral(1) e a do método de Newton (2). Esta conjectura é confirmada pelos resultados que vamos expor na próxima secção. 2.5.3 Convergência do método da secante Com base na estimativa do erro que foi deduzida no parágrafo anterior pode provar-se o seguinte teorema sobre a convergência do método da secante (ver demonstração em [2] ). Teorema 2.9 Seja f uma função duas vezes continuamente diferenciável numa vizinhança de z e tal que f (z) 0. Então, se os valores iniciais x 0 e x 1 forem suficientemente próximos de z, a sucessão {x m } gerada pelo método da secante converge para z. O exemplo numérico que foi analisado na secção anterior sugere que o método da secante é mais rápido que o método do ponto fixo (que, no caso geral, tem ordem 1), mas menos rápido que o de Newton, que tem convergência quadrática. Assim, se {x m } for uma sucessão gerada pelo 42
método da secante, existe um número real p, tal que 1 < p < 2, para o qual se verifica z x m+1 lim m z x m p = K, (2.45) onde K é uma constante positiva. (De acordo com a designação introduzida na secção 2.3.8, esta constante designa-se coeficiente assimptótico de convergência.) Mais precisamente, pode provar-se (ver detalhes em [1]) que, no caso do método da secante, temos p = 1 + 5 2 1.6, isto é, a ordem de convergência é dada pelo chamado número de ouro (sobre a importância dessse número e as suas numerosas aplicações ver, por exemplo, [3] ). O Teorema 2.9, acima enunciado, tem a desvantagem de não ser facilmente aplicável. Na realidade, o que significa a condição se x 0 e x 1 forem suficientemente próximos de z? Para a prática, são bastante mais úteis proposições, do tipo dos Teoremas 2.7 e 2.8, que nos dêm condições suficientes para a convergência do método da secante, desde que as aproximações iniciais pertençam a um dado intervalo. Passamos a enunciar tais teoremas. Teorema 2.10. Se forem satisfeitas as condições do teorema 2.7, então o método da secante converge para a raiz z de f em [a, b], quaisquer que sejam as aproximações iniciais x 0,x 1, pertencentes a [a, b]. Teorema 2.11. Se forem satisfeitas as primeiras 3 condições do teorema 2.7, e se as aproximações iniciais satisfizerem f(x 0 )f (x) 0,f(x 1 )f (x) 0, x [a, b], então o método da secante converge para a raiz z de f em [a, b]. 3 Métodos Numéricos para Sistemas de Equações 3.1 Normas Matriciais Neste capítulo trataremos de métodos computacionais para a resolução de sistemas de equações (lineares e não lineares). Para a análise do erro destes métodos, necessitaremos frequentemente de recorrer a normas vectoriais e matriciais, pelo que começaremos por fazer uma breve introdução sobre este tema. Seja E um espaço linear. Tipicamente, teremos E = IR n (vectores reais de dimensão n) ou E = IR n n (matrizes reais de n linhas e n colunas). 43
Definição 3.1. Uma aplicação φ de E em IR 0 + satisfizer as seguintes condições: 1. φ(x) 0, x E, sendo φ(x) = 0, se e só se x = 0. 2. φ(λx) = λ φ(x), x E, λ IR. 3. φ(x + y) φ(x) + φ(y), x, y E. diz-se uma norma se Começaremos por rever alguns exemplos de normas em IR n. Como habitualmente, representaremos qualquer elemento de IR n por x = (x 1, x 2,..., x n ), onde x i IR. 1. Norma do máximo. φ(x) = x = max i=1,...,n x i. 2. Norma 1. φ(x) = x 1 = n i=1 x i. 3. Norma euclidiana. φ(x) = x 2 = n i x i 2. 4. Norma p. φ(x) = x p = ( n i x i p ) 1 p, p 1. Note-se que a norma 1 e a norma euclidiana são casos particulares das normas p, respectivamente, com p = 1 e p = 2. A norma do máximo é um caso limite, quando p. Pode provar-se que todos os exemplos indicados definem normas, isto é, satisfazem as 3 condições acima formuladas. Passamos agora a considerar o caso de E = IR n n. Neste caso, os elementos de E são matrizes de n linhas e n colunas, por exemplo: A = a 11 a 12... a 1n a 21 a 22... a 2n............ a n1 a n2... a nn. Represente-se por. v uma norma qualquer em IR n. definir uma norma. M em E pela seguinte igualdade: Então podemos A x v A M = sup x IR n,x 0. (3.1) x v Neste caso, diz-se que a norma. M é a norma matricial,induzida pela norma vectorial. v. Esta forma de construir normas matriciais permite-nos associar uma norma matricial a cada uma das nomas vectoriais introduzidas. As normas matriciais introduzidas deste modo gozam de duas propriedades muito úteis: 1. A norma. M é compatível com a norma. v, isto é, A x v A M x v, x IR n, A IR n n. (3.2) 44
Esta propriedade é uma consequência imediata da fórmula (3.1). 2. A norma. M é regular, isto é, A B M A M B M, A, B IR n n. (3.3) São as seguintes as normas matriciais, induzidas pelas normas vectoriais mais correntes. 1. A norma matricial induzida pela norma do máximo chama-se norma por linha e é definida pela seguinte fórmula: A = max i=1,...,n j=1 n a ij. (3.4) 2. A norma matricial induzida pela norma 1 chama-se norma por coluna e é definida pela seguinte fórmula: A 1 = max j=1,...,n n a ij. (3.5) 3. A norma matricial induzida pela norma euclidiana é definida pela seguinte fórmula: A 2 = ρ(a T A). (3.6) Na fórmula (3.6) o símbolo ρ(a) representa o raio espectral de A, que se define como o máximo dos módulos dos valores próprios de A: ρ(a) = i=1 max λ i. (3.7) i=1,...,n Note-se que, se A for uma matriz simétrica, isto é, se A T = A, então verifica-se A 2 = ρ(a T A) = ρ(a 2 ) = ρ(a), (3.8) isto é, o raio espectral de A coincide com a sua norma euclidiana. Exemplo 3.1. Consideremos a matriz 2 1 3 A = 1 3 4. 2 1 3 45
Neste caso, as normas de A são A = max(6, 8, 6) = 8; A 1 = max(5, 5, 10) = 10; A 2 = 36.3 6.02; (3.9) Para calcular A 2, foram necessários os seguintes cálculos auxiliares: 9 3 4 B = A T A = 3 11 6. (3.10) 4 6 34 Os valores próprios de B são λ 1 = 6.8,λ 2 = 10.9, λ 3 = 36.3. Para terminar este exemplo, calculemos o raio espectral de A. Os valores próprios de A são λ 1 = 3.69, λ 2,3 = 2.15 ± i3.07. Logo, λ 2 = λ 3 = 3.75. Por conseguinte, ρ(a) = max(3.69, 3.75) = 3.75. Note-se que, no exemplo 3.1, qualquer das normas de A é maior que o raio espectral da matriz. Tal não acontece por acaso. Para terminar este parágrafo, vamos verificar uma relação existente entre as normas e o raio espectral das matrizes. Teorema 3.1. Seja A IR n n. Então, qualquer que seja a norma matricial p, associada a uma certa norma vectorial em IR n, verifica-se r σ (A) A p. (3.11) Demonstração. Seja x um vector próprio de A, associado ao valor próprio λ, tal que λ = r σ (A). Então Então podemos afirmar que A x p = λ x p = λ x p. (3.12) A p = de onde resulta a afirmação do teorema. A x p sup λ, (3.13) x IR n,x 0 x p 46
3.2 Condicionamento de Sistemas Lineares Como vimos no capítulo 1, um dos aspectos mais importantes a ter em consideração quando se quando se analisam métodos numéricos para a solução de um determinado problema é a sensibilidade desses métodos em relação a pequenos erros nos dados. Se for dado um certo sistema linear A x = b os dados são o segundo membro do sistema ( b IR n ) e a matriz (A IR n n ), que se supõe não singular. Vamos, portanto, analisar até que ponto um pequeno erro, em termos relativos, do vector b ou da matriz A, pode afectar a solução do sistema. Para isso, representemos por à uma perturbação da matriz A. à A. (3.14) Analogamente, representemos por b uma perturbação do segundo membro do sistema: b b. (3.15) Se substituirmos A por à e b por b no sistema inicial, obteremos um novo sistema, cuja solução representaremos por x. Como vimos no capítulo 1, para medir a precisão dos resultados numéricos é essencial o conceito de erro relativo. Vamos, portanto, designar por erro relativo de um vector x (numa certa norma vectorial p) o quociente δx p = x x p x p ; (3.16) analogamente, designaremos por erro relativo de uma matriz à (na norma matricial p)o quociente δa p = à A p A p. (3.17) O nosso objectivo é, escolhendo uma certa norma vectorial e a norma matricial associada, estimar o erro relativo δx p em função dos erros relativos δb p e δa p. Definição 3.2. Um sistema linear diz-se bem condicionado se e só se a pequenos erros relativos do segundo membro e da matriz correspondem pequenos erros relativos da solução. 47
Para analisarmos o problema do condicionamento, comecemos por considerar o caso mais simples em que δa p = 0. Nesse caso, temos De (3.18) obtém-se A x = b (3.18) x x = A 1 ( b b) (3.19) Por conseguinte, qualquer que seja a norma vectorial escolhida, é válida a seguinte estimativa para o erro absoluto de x: x x p A 1 p b b p. (3.20) Por outro lado, da igualdade A x = b obtém-se logo b p A p x p, (3.21) 1 x p A p b p. (3.22) Multiplicando cada um dos membros de 3.20 pelo membro correspondente de 3.22, obtém-se x x p x p A p A 1 p b b p b p. (3.23) Obtivemos assim a estimativa que procurávamos para o erro relativo da solução, em função do erro relativo do segundo membro. A desigualdade (3.23) leva-nos à definição de número de condição de uma matriz. Definição 3.3. Seja A uma matriz invertível. Chama-se número de condição de A (na norma p) o seguinte valor cond p (A) = A p A 1 p. (3.24) Como resulta da desigualdade 3.23, o número de condição da matriz A dá -nos a relação entre o erro relativo da solução de um sistema linear e o erro relativo do seu segundo membro. Assim, se o número de condição de A for alto, daí resulta que pequenos erros relativos do segundo membro podem provocar erros muito significativos na solução, o que significa, por definição, que o sistema é mal condicionado. 48
Note-se, entretanto, que o número de condição de uma matriz é sempre maior ou igual a 1, desde que consideremos normas matriciais induzidas (ver problema 3-b no fim desta secção). Por conseguinte, um sistema bem condicionado é aquele que tem o número de condição não muito maior que 1. Também se usa a definição do número de condição através do raio espectral, sendo nesse caso dado pela expressão cond (A) = r σ (A) r σ (A 1 ). (3.25) De acordo com o teorema 3.1, podemos escrever cond (A) cond p (A), (3.26) qualquer que seja a norma matricial p considerada (p 1). Daqui resulta que, se o número de condição cond (A) for alto, todos os números de condição da matriz são altos, pelo que o sistema é mal condicionado. No entanto, pode acontecer que o sistema seja mal condicionado, mesmo que o número de condição cond (A) seja pequeno (ver problema 1 desta secção). Atendendo a que os valores pró prios de A 1 são os inversos dos valores pró prios de A, o número de condição cond (A) pode escrever-se sob a forma cond (A) = max λ i σ(a) λ i min λi σ(a) λ i. (3.27) No caso de a matriz A ser simétrica, então, como foi observado, a sua norma euclidiana coincide com o raio espectral, pelo que podemos escrever: cond 2 (A) = cond (A). (3.28) Consideremos agora o caso mais geral em que o sistema linear pode estar afectado de erros, não só no segundo membro, mas também na própria matriz. Sobre este caso, é conhecido o seguinte teorema. Teorema 3.2. Consideremos o sistema linear A x = b, onde A é uma matriz invertível. Sejam δa e δb definidos pelas igualdades (3.17) e (3.16), respectivamente, e suponhamos que A Ã p Então verifica-se a seguinte desigualdade: δx p 1 A 1 p. (3.29) cond(a) 1 cond p (A) δa p { δa p + δb p }. (3.30) 49
Observação. Note-se que a desigualdade 3.23, obtida anteriormente, é um caso particular de 3.30, que se obtém fazendo δa p = 0. A demonstração do teorema 3.2 encontra-se, por exemplo, em [1]. A desigualdade (3.30) confirma a nossa conclusão de que os sistemas lineares com números de condição altos são mal condicionados. O exemplo que se segue mostra como os problemas de mau condicionamento podem surgir mesmo em sistemas de pequenas dimensões, com matrizes aparentemente bem comportadas. Exemplo 3.2 Consideremos o sistema linear A x = b, onde 10 7 8 7 32 A = 7 5 6 5 8 6 10 9, b = 23 33. (3.31) 7 5 9 10 31 Verifica-se imediatamente, por substituição, que a solução deste sistema é x = (1, 1, 1, 1) T. Sabe-se que a matriz A é não singular. Além disso, ela é, evidentemente, simétrica e a sua norma, por linhas ou por colunas, é A = A 1 = max(32, 23, 33, 31) = 33. Entretanto, se substituirmos o vector b por um vector b, tal que a solução do sistema passa a ser b = (32.1, 22.9, 33.1, 30.9) T, x = (9.2, 12.6, 4.5, 1.1) T, o que é totalmente diferente da solução do sistema inicial. palavras, uma perturbação do segundo membro, tal que Por outras δb = 0.1 33 0, 3% leva-nos a uma nova solução, cuja norma é cerca de 13 vezes maior que a da solução original. 50
Observemos ainda o que acontece se a matriz A sofrer uma ligeira perturbação das suas componentes, sendo substituída por 10 7 8.1 7.2 Ã = 7.08 5.04 6 5 8 5.98 9.89 9, (3.32) 6.99 5 9 9.98 mantendo-se o segundo membro inalterado. Neste caso, a solução do sistema passa a ser x = ( 81, 137, 34, 22) T. Neste caso, a diferença em relação à solução inicial é ainda mais acentuada. Entretanto, a norma da perturbação é relativamente pequena: A Ã = max(0.3, 0.12, 0.13, 0.03) = 0.3, de onde resulta δa = 0.3 0, 9%. 33 Vejamos como interpretar estes factos, com base na teoria do condicionamento que expusemos nesta secção. Para isso, precisamos de conhecer a inversa de A : 25 41 10 6 A 1 = 41 68 17 10 10 17 5 3. (3.33) 6 10 3 2 Podemos imediatamente constatar que A 1 = max(82, 136, 35, 21) = 136. Assim, o número de condição de A, segundo a norma (que coincide com a norma 1 neste caso), tem o valor cond (A) = cond 1 (A) = 33 136 = 4488. Conhecendo o valor do número de condição, já não nos surpreende o facto de as pequenas perturbações que introduzimos no segundo membro e na matriz terem alterado completamente a solução. Com efeito, a estimativa (3.23), aplicada a este caso, diz-nos que δx 4488 0, 3% = 1346%, 51
o que explica inteiramente os resultados obtidos, no que diz respeito à perturbação do segundo membro do sistema. No caso das alterações produzidas na matriz A, não se pode aplicar a estimativa 3.30, uma vez que, para a perturbação considerada, não se verifica a condição A Ã 1 A 1. No entanto, dado o alto valor do número de condição, seria de esperar, de qualquer modo, que a solução do sistema ficasse muito alterada, tal como se verificou. 3.2.1 Problemas sobre Condicionamento 1. Seja A uma matriz quadrada, de dimensão n, com a forma 1 1...... 1 0 1 1... 1 A =............... 0... 0 1 1. 0...... 0 1 (a) Calcule A 1. (b) Determine os números de condição cond 1 (A) e cond (A). (c) Sejam b 1 e b 2 dois vectores de IR n tais que δb = b 1 b 2 b 1 10 5. Sejam x 1 e x 2, respectivamente, as soluções dos sitemas A x = b 1 e A x = b 2. Determine um majorante de no caso de n = 20. Comente. δx = x 1 x 2 x 1 2. Seja A a matriz real A = 1 0 1 1 1 0 a 0 3, 52
onde a IR. Suponhamos que, ao resolver o sistema A x = b, com um certo valor de a, se obteve a solução x = (1, 1, 1). Supondo que o valor de a está afectado de um certo erro, de valor absoluto não superior a ɛ, determine um majorante de x, onde x é a diferença entre a solução obtida e a que se obteria se fosse conhecido o valor exacto de a. 3.3 Métodos Directos Para resolver um sistema linear, podemos optar por dois caminhos diferentes: 1. ou procuramos a solução por um método de aproximações sucessivas, utilizando um método iterativo; 2. ou optamos por reduzir o sistema a uma forma mais simples, de modo a obter a solução exacta através de simples substituições. Nesse caso, dizemos que estamos a aplicar um método directo. Neste parágrafo, falaremos de métodos directos. Quando se utiliza um método directo, sabe-se que o erro do método é nulo, visto que o método conduz teoricamente à solução exacta do problema. Isto, porém não quer dizer que a solução que se obtém, de facto, seja exacta, visto que, como sabemos, quando se efectuam cálculos numéricos são inevitáveis os erros de arredondamento. 3.3.1 Método da Eliminação de Gauss Um dos métodos mais simples e mais conhecidos para a solução de sistemas lineares é o método da eliminação de Gauss. A ideia básica deste método consiste em reduzir o sistema dado, A x = b, a um sistema equivalente, U x = b, onde U é uma matriz triangular superior. Este último sistema pode ser resolvido imediatamente, por substituição, começando pela última equação. Assim, podemos dizer que a resolução de um sistema pelo método de Gauss se divide em três etapas: 1. Redução da matriz A à forma triangular superior; 2. Transformação do segundo membro do sistema; 3. Resolução do sistema com a matriz triangular superior. Vejamos com mais pormenor em que consiste cada uma destas etapas e avaliemos, em termo de número de operações aritméticas, o volume dos cálculos correspondentes. 53
1.Redução da matriz A à forma triangular superior. Suponhamos que a matriz dada tem a forma a 11 a 12... a 1n A = a 21 a 22... a 2n............. (3.34) a n1 a n2... a nn Admitindo que a 11 0, esta matriz pode ser transformada, somando a cada linha (a começar pela 2 a ), um múltiplo da 1 a. Assim, obtém-se uma nova matriz A (1), com a forma: a 11 a 12... a 1n A (1) 0 a (1) = 22... a (1) 2n............. (3.35) 0 a (1) n2... a (1) nn. As componentes de A (1) obtêm-se através da fórmula: onde a (1) ij = a ij m i1 a 1j, (3.36) m i1 = a i1 a 11. (3.37) Continuando este processo, podemos a seguir transformar a matriz A (1) numa nova matriz A (2), que será triangular superior, até à 2 a coluna. Generalizando, vamos efectuar uma sucessão de transformações, em que cada transformada A (k) tem a forma a 11 a 12......... a 1n 0 a (1) 22......... a (1) 2n A (k).................. = 0... 0 a (k 1) kk... a (k 1). (3.38) kn.................. 0... 0 a (k) nk... a (k) nn As componentes de A (k) obtêm-se a partir das de A (k 1) através da fórmula: a (k) ij onde = a (k 1) ij m ik a (k 1) kj, i = k + 1,..., n; j = k + 1,..., n; (3.39) m ik = a(k 1) ik a (k 1) kk 54 (3.40)
(neste caso, pressupõe-se que a (k 1) kk 0). Ao fim de n 1 transformações obtém-se a 11 a 12......... a 1n 0 a (1) 22......... a (1) 2n A (n 1).................. = 0... 0 a (k 1) kk... a (k 1). (3.41) kn.................. 0......... 0 a (n 1) nn No caso de algum dos coeficientes a (k 1) kk ser igual a 0, para se poder aplicar a eliminação de Gauss torna-se necessário alterar a ordem das linhas. Esse caso será visto em detalhe mais adiante, durante a resolução do Exemplo 3.3. Note-se que, se a matriz A for não singular, existe sempre uma permutação das suas linhas, depois da qual ela pode ser reduzida à forma (3.41), com todos os elementos da diagonal principal diferentes de 0. 2. Transformação do segundo membro. O segundo membro do sistema é sujeito a transformações análogas às que se operam sobre a matriz, de modo a garantir a equivalência do sistema resultante ao inicial. Assim, a transformação do vector b também se realiza em n 1 passos, sendo a primeira transformada, b (1), obtida segundo a fórmula: b (1) i = b i m i1 b 1, i = 2, 3,..., n. (3.42) Analogamente, a k-ésima transformada do segundo membro é obtida pela fórmula: b (k) i = b i m ik b (k 1) k, i = k + 1,..., n. (3.43) Os coeficientes m ik são dados pelas fórmulas (3.37) e (3.40). 3. Resolução do sistema triangular superior. Depois de reduzido o sistema inicial à forma triangular superior, com a matriz (3.41), a sua solução 55
obtém-se facilmente, mediante um processo de substituições sucessivas: x n = x n 1 = b(n 2) n 1 b (n 1) n a (n 1) nn ; a (n 2) a (n 2) n 1,n 1......... n 1,n x n ; (3.44) x 1 = b 1 n i=2 a 1,i x i a 1,1. Vejamos agora qual o número de operações aritméticas necessárias para efectuar cada uma das etapas que acabámos de descrever. 1. Redução da matriz à forma triangular superior. O número de operações necessárias para a transformação da matriz A está relacionado com o número de vezes que são aplicadas as fórmulas (3.36) e (3.39). No 1 o passo, a fórmula (3.36) é aplicada (n 1) 2 vezes. Isto implica que se realizem (n 1) 2 multiplicações e outras tantas adições (ou subtracções). Entretanto, para calcular os quocientes da fórmula (3.37), efectuam-se n 1 divisões. Todas estas operações continuam a efectuar-se nos passos seguintes da transformação, mas em menor número, de acordo com a quantidade de componentes que são alteradas em cada passo. Em geral, no k-ésimo passo efectuam-se (n k) 2 multiplicações e outras tantas adições (ou subtracções), assim como n k divisões. Assim, o número total de multiplicações efectuadas durante a transformação da matriz, igual ao número de adições (ou subtracções), é M(n) = AS(n) = n 1 (n k) 2 = k=1 n(n 1)(2n 1), (3.45) 6 Quanto às divisões, o número total é D(n) = n 1 (n k) = k=1 n(n 1). (3.46) 2 56
Assim, o número total de operações efectuadas durante a transformação da matriz é, em termos assimptóticos, para valores altos de n, T O(n) = M(n) + AS(n) + D(n) 2n3 3 + O(n2 ). (3.47) 2. Transformação do segundo membro. Quando transformamos o vector b, aplicamos a fórmula (3.43) às suas componentes. Esta fórmula é aplicada n k vezes durante o k-ésimo passo da transformação, o que implica n k multiplicações e outras tantas adições (ou subtracções). Assim, o número total de multiplicações efectuadas durante a transformação do segundo membro, igual ao número de adições (ou subtracções), é M(n) = AS(n) = n 1 (n k) = k=1 n(n 1), (3.48) 2 Por conseguinte, o número total de operações exigidas por esta etapa dos cálculos é, em termos assimptóticos, T O(n) = M(n) + AS(n) n 2. (3.49) 3. Resolução do sistema triangular. Para resolver o sistema triangular, efectuamos a série de substituições (3.44). Como resulta destas fórmulas, o número total de multiplicações para resolver o sistema é n(n 1)/2, igual ao número total de adições (ou subtracções). Quanto ao número de divisões, é igual a n. Assim, o número total de operações efectuadas para resolver o sistema triangular é, em termos assimptóticos, T O(n) = M(n) + AS(n) + D(n) n 2. (3.50) Exemplo 3.3. Consideremos o sistema linear A x = b, onde 2 1 3 5 A = 2 1 1, b = 1. (3.51) 2 4 2 4 Pretende-se reslolver este sistema pelo método da eliminação de Gauss. Comecemos por reduzir A à forma triangular superior. O primeiro passo 57
para isso, como vimos, consiste em transformar a matriz A na matriz A (1). Neste caso, usando as fórmulas (3.36) e (3.37), obtém-se: a (1) 22 = a 22 m 21 a 12 = 0, a (1) 23 = a 23 m 21 a 13 = 4, (3.52) onde m 21 = a 21 a 11 = 1. (3.53) Verifica-se que o novo elemento da diagonal principal, a (1) 22, é nulo. Como sabemos, neste caso não é possível aplicar o método da eliminação de Gauss directamente à matriz A. Vamos então proceder a uma troca de linhas; mais precisamente, troquemos a segunda linha com a terceira. Obtém-se assim o novo sistema A x = b, onde 2 1 3 5 A = 2 4 2, b = 4. (3.54) 2 1 1 1 Aplicando o método da eliminação de Gauss a este sistema, usemos de novo as fórmulas (3.36) e (3.37), que nos dão a (1) 22 = a 22 m 21 a 12 = 4 1 = 3 a (1) 23 = a 23 m 21 a 13 = 2 3 = 1, a (1) 32 = a 32 m 31 a 12 = 1 + 1 = 0, a (1) 33 = a 33 m 31 a 13 = 1 + 3 = 4, (3.55) onde m 21 = a 21 a 11 = 1, (3.56) m 31 = a 31 a 11 = 1. (3.57) Obtemos assim a matriz transformada da forma 2 1 3 A = 0 3 1. (3.58) 0 0 4 Como esta matriz é triangular superior, não é necessário transformá-la mais. 58
A segunda etapa da aplicação do método da eliminação de Gauss consiste em transformar o segundo membro do sistema, isto é, o vector b. Para isso, utilizamos a fórmula (3.42), que neste caso nos dá b (1) 2 = b 2 m 21 b 1 = 4 5 = 1; b (1) 3 = b 3 m 31 b 1 = 1 + 5 = 4. (3.59) Obtemos assim o vector transformado b (1) = (5, 1, 4) T. Por último, resta-nos resolver o sistema triangular superior A (1) x = b (1). Para isso, usamos a substituição ascendente, isto é, começamos por determinar x 3 a partir da última equação, para depois determinar x 2 da segunda, e x 1 da primeira. Usando as fórmulas (3.44), obtém-se x 3 = b(1) 3 a (1) 33 x 2 = b(2) 2 a (1) 23 x 3 a (1) 22 = 1; x 1 = b 1 a 13 x 3 a 12 x 2 a 1,1 = 1+1 2 = 0; = 5 3 2 = 1. Assim, obtemos a solução do sistema: x = (1, 0, 1) T. (3.60) 3.3.2 Influência dos erros de arredondamento Até agora, ao falarmos do método de Gauss, não entrámos em consideração com com os erros cometidos durante os cálculos. Na secção 3.2 já vimos que pequenos erros nos dados iniciais do sistema podem afectar muito a solução, se a matriz for mal condicionada. Além dos erros dos dados iniciais, que são inevitáveis, há que ter em conta também o erro computacional, resultante dos arredondamentos efectuados durante os cálculos. Um dos inconvenientes do método de Gauss, assim como de outros métodos directos, de que falaremos adiante, consiste em que esses erros têm frequentemente tendência para se propagar durante os cálculos, de tal modo que podem adquirir um peso muito grande na solução, mesmo que o sistema seja bem condicionado. No entanto, o efeito destes erros pode ser muito atenuado, se durante os cálculos for usada uma estratégia adequada, a chamada estratégia de pivot. Vamos ver em que consiste esta estratégia. Ao falarmos da transformação da matriz A, vimos que, para que ela se pudesse efectuar, é necessário que todos os elementos da diagonal principal da matriz triangular superior U sejam diferentes de 0. Estes elementos são 59
representados por a (k 1) kk e são chamados geralmente os pivots, dada a sua importância para a aplicação do método de Gauss 1. Vimos também que, no caso de um dos pivots ser nulo, se podia mesmo assim aplicar o método, desde que se efectuasse uma troca de linhas na matriz. Se o pivot não for nulo, mas próximo de 0, o método continua a ser teoricamente aplicável, mesmo sem trocas de linhas. Só que, ao ficarmos com um denominador muito pequeno no segundo membro de (3.40), cria-se uma situação em que os erros de arredondamento podem propagar-se de uma forma desastrosa. A estratégia de pivot tem por objectivo evitar que isto aconteça. Assim, em cada passo da transformação da matriz, verifica-se o pivot e, caso se considere conveniente, efectua-se uma troca de linhas que substitui o pivot por outra componente maior. A estratégia de pivot tem diversas variantes, das quais falaremos aqui de duas: a pesquisa parcial e a pesquisa total de pivot. Pesquisa parcial de pivot. Neste caso, em cada passo da transformação da matriz, é inspeccionada a coluna k da matriz A (k 1), mais precisamente, as componentes dessa coluna que se situam da diagonal principal para baixo. Seja c k = max a (k 1). (3.61) k i n Se o máximo no segundo membro de (3.61) for atingido para i = k, isso significa que o actual pivot é, em módulo, a maior componente daquela coluna. Nesse caso, continuam-se os cálculos normalmente. Se o máximo for atingido para um certo i k, então troca-se de lugar a linha k com a linha i e só depois se prosseguem os cálculos. Evidentemente, ao fazer esssa troca, também se efectua uma permutação correspondente nas componentes do vector b. ik Pesquisa total de pivot. De acordo com esta estratégia, mais radical, é inspeccionada não só a coluna k da matriz A (k 1), mas também todas as colunas subsequentes. Seja c k = max a (k 1). (3.62) k i,j n Sejam i e j, respectivamente, os valores dos índices i e j para os quais é atingido o máximo no segundo membro de (3.62). Se i não coincidir com 1 em francês, pivot tem o significado de base, apoio ij 60
k, a linha i troca de lugar com a linha k. Se, além disso, j não coincidir com k, então a coluna j também vai trocar de lugar com a coluna k (o que corresponde a uma troca de lugar entre as incógnitas x j e x k ). Comparando as duas variantes acima mencionadas da pesquisa de pivot, vê-se que a pesquisa total é bastante mais dispendiosa do que a parcial, uma vez que exige um número de comparações muito maior. Entretanto, a prática do cálculo numérico tem demonstrado que, na grande maioria dos casos reais, a pesquisa parcial conduz a resultados praticamente tão bons como os da total. Isto explica que, hoje em dia, a pesquisa parcial seja mais frequentemente escolhida quando se elaboram algoritmos baseados no método de Gauss. O exemplo que se segue mostra até que ponto os erros de arredondamento podem influir na solução de um sistema linear, quando é aplicado o método da eliminação de Gauss. Vamos ver também como a pesquisa parcial de pivot pode contribuir para melhorar esta situação. Exemplo 3.4. Consideremos o sistema linear A x = b, onde 10 6 0 1 1 A = 1 10 6 2, b = 3. (3.63) 1 2 1 2 Se procurarmos resolvê -lo, utilizando o método da eliminação de Gauss, chegamos ao sistema equivalente U x = b,onde 10 6 0 1 1 U = 0 10 6 2 10 6, b = 3 10 6 0 0 2 10 12 5 10 6 1 2 10 12 7 10 6 + 2 (3.64) Na realidade, a matriz U e o vector b que vamos obter não são exactamente os da fórmula (4.71), devido aos erros de arredondamento. Suponhamos que os cálculos são efectuados num computador em que os números são representados no sistema decimal, com seis dígitos na mantissa. Então, em vez de U e b, teremos a seguinte matriz e o seguinte vector: Ũ = 1.00000 10 6 0 1.00000 0 1.00000 10 6 0.999998 10 6 0 0 1.99999 10 12 61, b =. 1 0.999997 10 6 1.99999 10 12 (3.65).
Assim, ao resolvermos o sistema (3.65) por substituição ascendente, obtemos sucessivamente: x 3 = 1.99999 10 12 1.99999 10 12 = 1.00000; x 2 = 0.999997 106 + 0.999998 10 6 x 3 1.00000 10 6 = 1.00000 10 6 ; [0.5cm] x 1 = 1.00000 1.00000 x 3 1.00000 10 6 = 0. (3.66) Substituindo os valores assim obtidos no sistema dado, verifica-se que eles estão longe de o satisfazer, o que indica que este resultado apresenta um erro relativo muito grande. Este erro, no entanto, não tem a ver com o condicionamento do sistema, visto que o número de condição de A tem o valor cond (A) = A A 1 3 4 = 12; logo, o sistema não se pode considerar mal condicionado. Nestas condições, temos razões para pensar que o mau resultado obtido resulta da instabilidade numérica do método, a qual, como vimos, pode ser contrariada através da pesquisa de pivot. Vejamos então que resultado obteríamos, se aplicássemos a pesquisa parcial de pivot. Neste caso, começaríamos por trocar a primeira linha de A com a segunda, visto que a 21 > a 11. Depois da primeira transformação, obteríamos a matriz A (1), com a seguinte forma: A (1) = 1 10 6 2 0 10 12 1 2 10 6 0 2 10 6 3. (3.67) Neste caso, a pesquisa de pivot leva-nos trocar a segunda linha com a terceira, visto que a 32 > a 22. Depois de efectuar esta troca, realiza-se a segunda transformação da matriz, que nos leva ao sistema A (2) x = b (2). Se os cálculos forem realizados com a precisão acima referida, obtemos a seguinte matriz e o seguinte vector: 1.00000 1.00000 10 6 2.00000 3.00000 A (2) = 0 2.00000 3.00000, b (2) = 1.00000 0 0 9.99998 10 1 9.99997 10 1 (3.68). 62
Resolvendo o sistema (3.68), obtém-se a seguinte solução: x 3 = 9.99997 10 1 1.00000 [0.5cm]x 2 = 1.00000 + 3.00000 x 3 2.00000 = 9.99999 10 1 ; = 1.00000; x 1 = 3.00000 2.00000 x 3 1.00000 10 6 x 2 = 9.99999 10 1. (3.69) Esta solução é bastante diferente da que obtivemos, quando não foi utilizada a pesquisa de pivot. Se substituirmos estes valores no sistema (3.63), veremos que a nova solução está correcta, dentro dos limites da precisão utilizada. Este exemplo mostra-nos como a pesquisa de pivot pode desempenhar um papel essencial na eliminação dos problemas da instabilidade numérica quando se resolvem sistemas lineares pelo método da eliminação de Gauss. 3.3.3 Métodos de Factorização Neste parágrafo, vamos tratar de métodos directos que se baseiam na factorização da matriz do sistema linear. Definição 3.4.Chama-se factorização LU de uma matriz A à sua representação sob a forma do produto de de duas matrizes: A = L U, onde L é triangular inferior e U é triangular superior. Se for conhecida a factorização LU de uma matriz A, então o sistema linear A x = b reduz-se a dois sistemas lineares com matrizes triangulares: L g = b, U x = g, onde g é um vector auxiliar. Além da solução de sistemas lineares, a factorização LU tem outras aplicações, como por exemplo o cálculo de determinantes. Com efeito, o determinante de A é igual ao produto dos determinantes de L e U, os quais se calculam imediatamente, dado estas matrizes serem triangulares: det L = l 11 l 22... l nn, det U = u 11 u 22... u nn. 63
Note-se que, para calcularmos o determinante a partir da definição, teríamos de somar, para uma matriz de ordem n, n! parcelas, cada uma das quais é um produto de n componentes da matriz A. Tal cálculo significaria, só para uma matriz de ordem 10, efectuar mais de 30 milhões de multiplicações! Compreende-se portanto que tal maneira de calcular um determinante não é aplicável na prática. Em compensação, se utilizarmos a factorização, o mesmo determinante pode ser calculado apenas com algumas centenas de operações aritméticas. Uma vantagem dos métodos de factorização consiste em que, uma vez factorizada uma matriz, se pretendermos resolver vários sistemas diferentes com essa matriz, basta resolver os sistemas triangulares correspondentes (as matrizes L e U só precisam de ser determinadas uma vez). Isto é muito importante, dado que, como vamos ver, nos métodos de factorização a determinação das matrizes L e U é precisamente a etapa mais dispendiosa, em termos de número de operações. O problema da factorização LU de uma matriz A L n, não singular, admite sempre múltiplas soluções. Com efeito, podemos abordar o problema como um sistema de n 2 equações : a ij = n l ik u kj ; i = 1,..., n; j = 1,..., n; (3.70) k=1 onde l ik e u kj são as incógnitas e representam as componentes das matrizes L e U, respectivamente. Uma vez que cada uma destas matrizes tem n(n+1) 2 componentes não nulas, o número total de incógnitas do sistema é n(n + 1), superior, portanto, ao número de equações. Isto explica que o sistema seja indeterminado, isto é, que ele admita muitas soluções diferentes. A cada uma dessas soluções corresponde uma certa factorização, que se caracteriza por um conjunto de condições suplementares. Vamos analisar alguns tipos particulares de factorização, com maior interesse prático. 3.3.4 Factorização de Doolittle Este tipo de factorização caracteriza-se pelo conjunto de condições : l ii = 1; i = 1,..., n. (3.71) Vamos mostrar como, a partir destas condiçoes, se podem deduzir as fórmulas para as componentes das matrizes L e U, que ficam assim completamente determinadas. 64
Seja a ij uma componente da matriz A, com i j. Então, atendendo à forma das matrizes L e U, bem como à condição 3.71, podemos escrever: a ij = i i 1 l ik u kj = l ik u kj + u ij ; i = 1,..., n; j = i,..., n. (3.72) k=1 k=1 Da fórmula 3.72 resulta imediatamente que i 1 u ij = a ij l ik u kj. (3.73) A fim de deduzir uma fórmula análoga para a matriz L, consideremos o caso de uma componente a ij, com i > j. Neste caso, em vez da fórmula 3.72, temos a ij = k=1 Daqui resulta k=1 j j 1 l ik u kj = l ik u kj + l ij u jj, i = 1,..., n; j = i,..., n. (3.74) k=1 l ij = a ij j 1 k=1 l ik u kj u jj. (3.75) Utilizando as fórmulas 3.73 e 3.75, podem calcular-se todas as componentes das matrizes L e U. Para isso, basta que todas as componentes da diagonal principal de U sejam diferentes de 0. Se, durante processo de cálculo, se obtiver alguma dessas componentes igual a 0, então, tal como acontece no método da eliminação de Gauss, deve-se proceder a alterações na matriz U. Neste caso, podemos, por exemplo alterar a ordem das colunas de U, mantendo a matriz L sem alteração. Isto corresponde a trocar a ordem das colunas de A, ou seja, a trocar a ordem das incógnitas. Neste caso, ao calcular o determinante de A com base na factorização, deve-se entrar em conta com as permutações efectuadas. Assim, det A = ( 1) Nt det L det U, (3.76) onde Nt é o número de trocas de colunas efectuadas. A troca de colunas de L também pode ser aplicada para atenuar os problemas de instabilidade numérica que podem ocorrer durante a factorização. Para isso, usa-se a mesma estratégia da pesquisa parcial de pivot que acima descrevemos, para o método de Gauss. É interessante notar que o método da eliminação de Gauss é idêntico ao método de Doolittle, podendo, neste sentido, ser considerado também um 65
método de factorização. Para verificar isso, recordemos que no método da eliminação de Gauss se obtém uma matriz triangular superior U, dada pela fórmula 3.41. Além disso, durante o cálculo da matriz U são utilizados os coeficientes m ik, k = 1,..., n; i = k + 1,..., n, definidos pela fórmula 3.40. Se dispusermos estes coeficientes numa matriz de ordem n, preenchermos a sua diagonal principal com 1 e as restantes posições com 0, obtemos a seguinte matriz triangular inferior: L = 1 0... 0 m 21 1... 0............... m n 1,n 2 1 0... m n,n 2 m n,n 1 1. (3.77) Teorema 3.3. As matrizes L e U, dadas, respectivamente, pelas fórmulas 3.77 e 3.41,formam uma factorização LU da matriz A, idêntica à factorização de Doolittle. Demonstração. Vamos demonstrar as igualdades a (i 1) ij = u ij, i = 1,..., n; j = i,..., n; (3.78) m ij = l ij, j = 1,..., n; i = j,..., n. (3.79) Para isso, basta comparar as fórmulas do método de Gauss com as da factorização de Doolittle. Em primeiro lugar, sabemos que a 1j = u 1j, j = 1,..., n; m i1 = a i1 a 11, i = 2,..., n. (3.80) Vamos agora supor, por indução, que a igualdade 3.78 se verifica para as linhas da matriz U, com índice k = 1,..., i 1, e que a igualdade 3.79 se verifica para todas colunas de L, com índice k = 1,..., j 1. Verifiquemos que, nesse caso, as mesmas identidades se mantêm válidas para a i-ésima linha de U e para a j-ésima coluna de L. De facto, de acordo com a fórmula 3.39 do método de Gauss, temos a (k) ij = a (k 1) ij m ik a (k 1) kj, (k = 1,..., n 1), (3.81) 66
onde se subentende que a (0) ij = a ij, i = 1,..., n; j = 1,..., n. Aplicando a fórmula 3.81, sucessivamente, com k = 1,..., i 1 obtém-se: a (1) ij = a ij m i1 a 1j ; a (2) ij = a (1) ij m i2 a (1) 2j = a ij m i1 a 1j m i2 a (1) 2j ;............... a (i 1) ij = a (i 2) ij m i,i 1 a (i 2) i 1,j = a ij i 1 k=1 m ik a (k 1) kj. (3.82) Se, de acordo com a hipótese da indução, substituirmos os coeficientes m i,k e a (k 1) k,j, no segundo membro de 3.82, por l ik e u kj, obtemos a fórmula 3.73, de onde se conclui que a (i 1) ij = u ij, com j = i,..., n. Considerando agora a j-ésima coluna de L, as suas componentes, de acordo com 3.40, têm a forma m ij = a(j 1) ij a (j 1) jj ; i = j,..., n. (3.83) Do mesmo modo como deduzimos a fórmula 3.82, podemos mostrar que a (j 1) ij j 1 = a ij m ik a (k 1) kj. (3.84) Se, no segundo membro da fórmula 3.83, substituirmos o numerador de acordo com 3.84, obtemos k=1 m ij = a ij j 1 k=1 m ik a (k 1) kj ; i = j,..., n. (3.85) a (j 1) jj Mas, de acordo com a hipótese da indução, podemos substituir, no segundo membro de 3.85, a (k 1) kj por u kj,k = 1,..., j e m ik por l ik,k = 1..., i. Então o segundo membro de 3.85 fica igual ao segundo membro de 3.75, de onde se conclui que m ij = l ij, para todas as componentes da j-ésima coluna da matriz L. Fica assim provada, por indução, a afirmação do teorema. Do teorema que acabamos de demonstrar resulta que os métodos de Gauss e de Doolittle são idênticos, no sentido em que, dado um certo sistema linear, para o resolver segundo cada um desses métodos, efectuam-se 67
exactamente as mesmas operações aritméticas. Em particular, as três etapas que distinguimos no método de Gauss coincidem com as etapas do método de Doolittle (ou de qualquer outro método de factorização ): 1. factorização da matriz A (redução da matriz à forma triangular); 2. resolução do sistema L g = b (transformação do segundo membro); 3. resolução do sistema U x = g (resolução do sistema triangular superior). Então, de acordo com o que dissemos em relação ao método de Gauss, podemos concluir que a etapa mais dispendiosa dos cálculos, quando se aplica o método de Doolittle, é a primeira, exigindo cerca de 2n 3 /3 operações aritméticas. As outras duas etapas exigem cerca de n 2 operações cada uma. Estes números também se aplicam à factorização de Crout, de que falaremos a seguir. 3.3.5 Factorização de Crout Outro tipo, bastante comum, de factorização (a factorização de Crout) baseia-se nas condições u ii = 1, i = 1,..., n. (3.86) As fórmulas para as componentes das matrizes L e U da factorização de Crout deduzem-se da mesma maneira que no caso da factorização de Doolittle. Assim no caso de i j, é válida a igualdade a ij = j l ik u kj = k=1 j 1 l ik u kj + l ij, j = 1,..., n; i = j,..., n. (3.87) k=1 Daqui obtém-se imediatamente l ij = a ij j 1 l ik u kj. (3.88) k=1 No que diz respeito à matriz L, partimos da igualdade a ij = i l ik u kj = k=1 i 1 l ik u kj + l ii u ij ; i = 1,..., n; j = 1,..., i. (3.89) k=1 68
Da igualdade 3.89 resulta u ij = a ij i 1 k=1 l ik u kj l ii. (3.90) As fórmulas 3.88 e 3.90, aplicadas alternadamente (começando com a primeira coluna de L e acabando com a última linha de U) permitem-nos determinar completamente as matrizes L e U da factorização de Crout, desde que se verifique l ii 0, i = 1,..., n. Se, durante o processo de factorização, se verificar que l ii = 0, para um certo i, procede-se a uma troca de linhas na matriz L, mantendo U sem alteração. Esta troca é acompanhada por uma permutação análoga das linhas da matriz A e das entradas do segundo membro do sistema. Tal como no caso da factorização de Doolittle, estas permutações implicam uma troca de sinal no determinante, de acordo com a fórmula 3.76. Também no caso da factorização de Crout é conveniente aplicar a pesquisa parcial de pivot, conduzindo a trocas de linhas quando os elementos diagonais l ii forem pequenos em módulo. Exemplo 3.5. Consideremos o sistema A x = b, onde 2 1 3 5 A = 2 1 1, b = 1. (3.91) 2 4 2 4 Comecemos por factorizar A segundo o método de Doolittle. Como resulta da fórmula 3.73, neste caso a primeira linha de U é igual à primeira linha de A, ou seja, u 11 = 2, u 12 = 1, u 13 = 3. (3.92) Calculando os elementos da primeira coluna de L, de acordo com a fórmula 3.75, obtemos l 11 = 1, l 21 = a 21 u 11 = 1, l 31 = a 31 u 11 = 1. (3.93) Passemos ao cálculo da segunda linha de U. Temos u 22 = a 22 l 21 u 12 = 0; u 23 = a 23 l 21 u 13 = 4. (3.94) Como sabemos, sendo u 22 = 0, não é possível prosseguir os cálculos sem alterar a matriz A. Assim, e uma vez que u 23 0, vamos trocar de lugar 69
a segunda com a terceira coluna de U, fazendo simultaneamente a mesma troca em A. Sejam U e A, respectivamente, as matrizes resultantes destas permutações. Então podemos escrever u 22 = u 23, u 23 = u 22. (3.95) Continuando o processo de factorização com as matrizes U e A, obtém-se l 32 = a 32 l 31 u 12 u 22 = a 33 l 31 u 13 u 23 = 1 4 ; u 33 = a 33 l 31 u 13 l 32 u 23 = a 32 l 31 u 12 l 32 u 22 = 3. (3.96) Recapitulando, obtivemos a seguinte factorização de A: L = 1 0 0 1 1 0 1 1 4 1, U = 2 3 1 0 4 0 0 0 3. (3.97) Para obter a solução do sistema dado, comecemos por resolver o sistema com a matriz triangular inferior L g = b, de acordo com o método habitual: g 1 = b 1 = 5; g 1 + g 2 = b 2 g 2 = 4; g 1 g 2 /4 + g 3 = b 3 g 3 = 0. (3.98) Ao resolver depois o sistema U x = g, temos de ter em conta que a segunda coluna de U trocou de lugar com a terceira. Isto equivale a uma troca de lugares entre x 2 e x 3. Assim, temos 3x 2 = g 3 x 2 = 0; 4x 3 = g 2 x 3 = 1. 2x 1 + 3x 3 + x 2 = g 1 x 1 = 1. (3.99) Se, em vez do método de Doolittle, quisermos aplicar a factorização de Crout, teremos de basear os cálculos nas fórmulas 3.88 e 3.90. Nesse caso, a primeira coluna de L fica igual à primeira coluna de A. Para a primeira linha de U, obtém-se u 11 = 1; u 12 = a 12 l 11 = 1 2 ; u 13 = a 13 l 11 = 3 2. (3.100) Na segunda coluna de L, obtemos: l 22 = a 22 l 21 u 12 = 0; l 32 = a 32 l 31 u 12 = 3. 70 (3.101)
Uma vez que l 22 = 0, torna-se necessário trocar a segunda com a terceira linha de L (e, consequentemente, de A). Feita esta permutação, obtemos l 22 = l 32 = 3; l 32 = l 22 = 0. (3.102) Resta calcular as componentes da segunda linha de U e terceira coluna de L : u 23 = a 23 l 21 u 13 l 22 = 1 3 ; l 33 = a 33 l 31 u 13 l 32 u 23 = 4. (3.103) Consequentemente, a factorização de Crout da matriz dada tem a forma: 1 3 2 0 0 1 L 2 2 = 2 3 0, U = 0 1 1 3. (3.104) 2 0 4 0 0 1 A partir de qualquer uma das factorizações de A obtidas, utilizando a fórmula 3.76, calcula-se facilmente o determinante de A det A = det L ( 1) 1 = det U ( 1) 1 = 24. Se quisermos resolver o sistema dado, com base na factorização de Crout, basta considerar o segundo membro b = (5, 4, 1) T (uma vez que foi trocada a segunda com a terceira linha de U), após o que se resolvem os sistemas L g = b e U x = g, utilizando, como sempre, a substuição descendente (para o primeiro sistema) e a substituição ascendente (para o segundo). 3.3.6 Factorização de Cholesky Os dois tipos de factorização de que falámos acima existem para qualquer matriz não singular (ainda que seja necessário efectuar uma troca de linhas ou colunas). Quanto à factorização de Cholesky, de que vamos falar a seguir, só existe para matrizes simétricas e definidas positivas. Embora se trate de uma restrição muito forte, este tipo de factorização não deixa de ter interesse prático, visto que estas propriedades são satisfeitas pelas matrizes que surgem em muitos problemas de cálculo numérico, por exemplo, no método dos mínimos quadrados e em certos problemas de valores de fronteira para equações diferenciais. A grande vantagem desta factorização consiste em 71
que só temos de calcular uma matriz, L, visto que uma matriz simétrica e definida positiva pode ser representada sob a forma: A = L L T. (3.105) Isto significa que o número de operações para resolver um sistema linear fica reduzido a cerca de metade, quando se compara o método de Cholesky com outros métodos de factorização ou com o método de Gauss. Para estudar melhor as propriedades da factorização de Cholesky, comecemos por demonstrar o seguinte teorema. Teorema 3.4. Seja A uma matriz simétrica e definida positiva. Então existe uma matriz real, triangular inferior, L, tal que se verifica a factorização 3.105. Demonstração. Provemos esta afirmação por indução em n (ordem da matriz). Para o caso de n = 1, a afirmação é trivial, visto que, nesse caso, A é um número positivo e L, a sua raiz quadrada. Suponhamos agora que a afirmação do teorema é verdadeira para qualquer matriz de ordem não superior a n 1. Seja  o menor principal de A, de ordem n 1. Verifiquemos que  também é uma matriz definida positiva. Na realidade, se A é definida positiva, então verifica-se n a ij x i x j > 0, x IR n, x 0. (3.106) i=1,j=1 Em particular, se considerarmos x = (x 1, x 2,..., x n 1, 0), onde x i, i = 1,..., n 1 são números reais arbitrários, de 3.106 resulta n 1 i=1,j=1 a ij x i x j > 0; (3.107) o que significa que  também é definida positiva. Vamos procurar uma matriz triangular inferior L, de ordem n, com a forma [ ] ˆL 0 L = γ T, (3.108) z onde ˆL é uma matriz de ordem n 1, γ IR n 1, z IR. Queremos provar que, para essa matriz L, se verifica [ ] [ ] [ ] ˆL L L T 0 ˆLT γ  c = γ T = A = z 0 z c T, (3.109) d 72
onde c IR n 1 e d = a nn IR. Por hipótese da indução, existe uma matriz real, triangular inferior ˆL, tal que  = ˆL ˆL T. (3.110) Resta provar que existe um vector γ IR n 1 e um número real z, para os quais se verifica a igualdade 3.109. Quanto à existência de γ, ela resulta de o sistema ˆL γ = c ter solução.de facto, a matriz ˆL é não singular, uma vez que (det ˆL) 2 = det  > 0 (visto que  é definida positiva).mostremos agora que existe um número real z, para o qual a igualdade 3.109 é verdadeira. Para que a igualdade 3.109 seja verdadeira, deve verificar-se det A = ( det ˆL) 2 z 2 > 0. (3.111) Uma vez que det A > 0,a equação 3.111 tem duas raizes e o valor de z pode ser determinado, escolhendo a raiz positiva. Assim, o teorema fica demonstrado, por indução. Observação. Note-se que o problema da factorização de Cholesky admite mais do que uma solução. Isso verifica-se pela equação 3.111, a qual admite duas raizes reais: det A z 1,2 = ± det ˆL (3.112) Por convenção, escolhe-se sempre a raiz positiva desta equação, o que significa que todos os elementos da diagonal principal de L são positivos. Vejamos agora, em termos práticos, como se pode calcular a matriz L da factorização de Cholesky. Seja a ij uma componente de A, com i j. Então, da igualdade 3.105 resulta a ij = j j 1 l ik l jk = l ik l jk + l ij l jj, j = 1,..., n; i = j,..., n. (3.113) k=1 k=1 No caso de i = j, da igualdade 3.113 obtém-se a fórmula para os elementos da diagonal principal de L: i 1 l ii = aii lik 2 ; i = 1,..., n. (3.114) k=1 73
De acordo com o teorema 3.2, todos os elementos da diagonal principal de L são reais, pelo que o segundo membro de 3.114 é sempre real. Uma vez calculado l jj, podemos obter as restantes componentes da j-ésima coluna de L. Da fórmula 3.113 resulta: l ij = a ij j 1 k=1 l ik l jk l jj ; i = j + 1,..., n. (3.115) Assim, usando as fórmulas 3.114 e 3.115, alternadamente, pode ser obtida a factorização de Cholesky da matriz A. Exemplo 3.6. Consideremos a matriz de ordem n com a forma geral 4 2 0... 0 2 5 2... 0 A = 0 2 5... 0................ (3.116) 0... 2 5 2 0... 0 2 5 Trata-se de uma matriz simétrica tridiagonal, isto é a ij 0 i j 1. Matrizes com estas características aparecem frequentemente nas aplicações. Vamos tentar obter a sua factorização de Cholesky. Como não é simples determinar, à partida, se a matriz dada é definida positiva, vamos tentar utilizar as fórmulas 3.114 e 3.115 e verificar se elas são aplicáveis. Comecemos, como sempre, pela componente l 11. De acordo com 3.114, o seu valor é o seguinte: l 11 = a 11 = 2. (3.117) As restantes componentes desta coluna são dadas pela fórmula 3.115: l 21 = a 21 l 11 = 1; l k1 = a k1 l 11 = 0; k = 3,..., n. (3.118) Vamos provar agora, por indução, que as restantes colunas da matrix L têm a mesma estrutura, isto é para a coluna j, verifica-se: l jj = 2; l j+1,j = 1; l i,j = 0; i = j + 2,..., n. 74 (3.119)
Para a primeira coluna, as fórmulas 3.119 já estão provadas. Suponhamos agora que estas fórmulas são válidas para todas as colunas, até à j 1. Vejamos o que acontece com a coluna j. De acordo com a fórmula 3.114, podemos escrever j 1 l jj = ajj ljk a 2 = jj lj,j 1 2 = 2. (3.120) k=1 Depois, aplicando a fórmula 3.115, obtemos l j+1,j = a j+1,j l jj = 1; l i,j = 0; i = j + 2,..., n. (3.121) Fica assim provado que a factorização de Cholesky da matriz dada é definida por uma matriz triangular inferior com a forma 2 0 0... 0 1 2 0... 0 L = 0 1 2... 0................ (3.122) 0... 1 2 0 0... 0 1 2 O determinante de A pode ser calculado com base nesta factorização : det A = (det L) 2 = (l 11 l 22... l nn ) 2 = (2 n ) 2 = 4 n. (3.123) Uma vez que a fórmula 3.123 é válida para qualquer n, ela pode servir para calcularmos os menores principais da matriz A dada. Assim, temos A 1 = 4, A 2 = 4 2..., A n = det A = 4 n. Fica assim provado que todos os menores principais de A são positivos, de onde resulta que A é definida positiva. 3.4 Nétodos Iterativos para Sistemas Lineares Neste parágrafo, vamos estudar alguns métodos iterativos, utilizados no cálculo aproximado de soluções de sistemas lineares. Antes disso, porém, vamos apresentar alguns conceitos gerais, relativos aos métodos iterativos, e que nos voltarão a ser úteis nos capítulos posteriores. 75
3.4.1 Noções Básicas sobre Métodos Iterativos Em muitos problemas matemáticos, quando se revela impossível ou muito difícil calcular a solução exacta de uma certa equação, opta-se por obter um valor aproximado dessa solução. Esse valor aproximado é geralmente obtido por um método de aproximações sucessivas, ou método iterativo, em que cada nova aproximação é obtida a partir da anterior (ou das anteriores), através de um algoritmo conhecido, pretendendo-se deste modo tornar o erro de aproximação cada vez mais pequeno. Definição 3.5. Seja E um espaço normado e X um subconjunto de E. Chama-se método iterativo a p passos em E (definido sobre X) a qualquer aplicação Ψ, que a cada sucessão de p elementos (ξ 0,..., ξ p 1 ) X p, faz corresponder uma sucessão infinita {x (k) } k=0, x (k) E, com as seguintes propriedades: 1. Os primeiros p termos da sucessão {x (k) } k=0 são os dados: x (i) = ξ i, i = 0,..., p 1. 2. Os restantes elementos elementos de {x (k) } k=0 destes, de acordo com a fórmula são obtidos a partir x (k+p) = φ(x k, x k+1,..., x k+p 1 ), onde φ é uma função conhecida (chamada a função iteradora) com domínio em X p e valores em E. Naturalmente, na prática só se calcula um número finito de termos da sucessão {x (k) } k=0 (também chamados iteradas), tantos quantos necessários para alcançar a precisão pretendida. Por isso, a cada método iterativo estão geralmente associados critérios de paragem, isto é, regras que nos permitem verificar se uma dada iterada tem ou não a precisão exigida. Definição 3.6. Dizemos que um método iterativo a p passos, definido sobre X, é convergente para um certo x IR n, se, para quaisquer valores iniciais (ξ 0,..., ξ p 1 ) A se verificar x (k) x, quando k (segundo a norma considerada em IR n ). 76
Note-se que a convergência em espaços de dimensão finita não depende da norma considerada. Daí que, no caso dos métodos iterativos para sistemas lineares, que vamos estudar nos próximos parágrafos, a convergência numa certa norma é equivalente à convergência noutra norma qualquer. Além da convergência, outra propriedade importante dos métodos iterativos é a sua estabilidade. Definição 3.7. Um método iterativo Ψ a p passos, definido no conjunto X, diz-se estável em A X, se existir uma constante C > 0, tal que max n N x(n) y (n) C max ξ i η i ξ, η A p, (3.124) i=1,...,p onde {x (n) } e {y (n) } são, respectivamente, as sucessões geradas a partir de ξ = (ξ 0, ξ 1,..., ξ p 1 ) e η = (η 0, η 1,..., η p 1 ). Para representar o erro da k-ésima iterada usaremos a notação e (k), ou seja, e (k) = x (k) x. Nos próximos parágrafos, vamos analisar alguns métodos iterativos para o cálculo aproximado da solução do sistema linear A x = b, (3.125) onde A IR n n e b IR n. Suponhamos, como habitualmente, que a matriz A é não singular, pelo que o sistema (3.125) tem uma única solução. Com o objectivo de construir um método iterativo, começamos por reduzir o sistema (3.125) à forma equivalente x = G(x) = Cx + g, (3.126) onde C é uma certa matriz (a que chamaremos matriz de iteração), e g é um vector auxiliar (g IR n ). Uma vez escrito o sistema na forma (3.126), podemos dizer que a sua solução é um ponto fixo da função G (função definida em IR n e com valores no mesmo espaço). A ideia é determinar o ponto fixo de G por um método análogo ao método do ponto fixo, utilizado no capítulo anterior para aproximar os pontos fixos de funções de uma variável. Assim, dada uma certa aproximação inicial x (0) IR n,vamos construir uma sucessão de vectores através da seguinte fórmula de recorrência: x (k+1) = G(x (k) ) = Cx (k) + g, k = 0, 1,... (3.127) Naturalmente, esta transformação do sistema pode ser feita de muitas maneiras diferentes, dando origem a diferentes métodos iterativos. Vamos descrever dois deles. 77
3.4.2 Método de Jacobi Para deduzir a fórmula do método de Jacobi, começamos por reescrever o sistema (3.125) do seguinte modo: x 1 = b 1 a 12 x 2 a 13 x 3 a 1n x n a 11 x 2 = b 2 a 21 x 1 a 23 x 3 a 2n x n a 22 x n = bn a n1x 1 a n2 x 2 a n,n 1 x n 1 a nn. (3.128) Ficamos asim com o sistema escrito na forma (3.126), de tal modo que o sistema (3.128) é equivalente ao inicial. Para poder escrever o sistema nesta forma, basta que todos os elementos da diagonal principal da matriz A sejam diferentes de 0 (a ii 0,i = 1,..., n). Se iterarmos agora a função G correspondente ao sistema (3.128), obtém-se a seguinte fórmula iteradora: x (k+1) 1 = b 1 a 12 x (k) 2 a 13x (k) 3 a 1nx (k) n a 11 x (k+1) 2 = b 2 a 21 x (k) 1 a 23x (k) 3 a 2nx (k) n a 22, k = 0, 1, 2,... (3.129) x (k+1) n = bn a n1x (k) 1 a n2x (k) 2 a n,n 1x (k) n 1 a nn A fórmula (3.129) pode escrever-se na seguinte forma compacta: x (k+1) i = b n i j=1,...,n,j i a ijx (k) j, (3.130) a ii a ii i = 1,..., n, k = 0, 1, 2,... Exemplo 3.7. Consideremos o sistema A x = b, onde 2 1 0 2 A = 1 2 1, b = 2. (3.131) 0 1 2 1 1. Efectuar uma iteração do método de Jacobi, tomando como aproximação inicial x (0) = (0.5, 0.8, 1). 78
Resolução: x (1) 1 = b 1 a 12 x (0) 2 a 13x (0) 3 a 11 = 1 2 (2 0.8 0) = 0.6; x (1) 2 = b 2 a 21 x (0) 1 a 23x (0) 3 a 22 = 1 2 (2 + 0.5 1) = 0.75;. (3.132) x (1) 3 = b 3 a 31 x (0) 1 a 32x (0) 2 a 33 = 1 2 (1 0 + 0.8) = 0.9; 2. Sabendo que a solução exacta do sistema é x = (0.583, 0.833, 0.917), calcule e (0) 1 e e (1) 1. Resolução: e (0) = x x (0) = (0.083, 0.033, 0.083) e (0) 1 = 0.199; e (1) = x x (1) = ( 0.017, 0.083, 0.017) e (1) 1 = 0.117. (3.133) A norma do erro da primeira iterada é menor, o que significa que ela está mais próxima da solução exacta do que a aproximação inicial. No entanto, daqui nada podemos concluir sobre a convergência do método. Esta será analisada mais tarde, segundo os métodos que vamos estudar nos próximos parágrafos. 3.4.3 Método de Gauss-Seidel O método de Gauss-Seidel é um dos métodos iterativos mais comuns para resolução de sistemas lineares. Para deduzirmos a sua forma iteradora, partimos de novo do sistema na forma (3.128). Neste caso, porém, a fórmula iteradora tem o seguinte aspecto: x (k+1) 1 = b 1 a 12 x (k) 2 a 13x (k) 3 a 1nx (k) n a 11 x (k+1) 2 = b 2 a 21 x (k+1) 1 a 23 x (k) 3 a 2nx (k) n a 22, k = 0, 1, 2,... (3.134) x (k+1) n = bn a n1x (k+1) 1 a n2 x (k+1) 2 a n,n 1 x (k+1) n 1 a nn A diferença em relação ao método de Jacobi está em que, para determinar a componente x (k+1) i da iterada (k+1) (com i > 1) utilizamos as componentes x (k+1) 1,..., x (k+1) i 1 dessa mesma iterada, enquanto que no método de Jacobi 79
as componentes de x (k+1) eram calculadas apenas a partir das componentes de x (k) (iterada anterior). A fórmula (3.134) pode ser escrita na seguinte forma compacta: x (k+1) i = b i 1 i j=1 a i,jx (k+1) j + n j=i+1 a i,jx (k) j, (3.135) a ii a ii i = 1,..., n, k = 0, 1, 2,.... Vejamos um exemplo de aplicação. Exemplo 3.8. Consideremos de novo o sistema (3.131). 1. Efectuar uma iteração do método de Gauss-Seidel, tomando como aproximação inicial x (0) = (0.5, 0.8, 1). Resolução: x (1) 1 = b 1 a 12 x (0) 2 a 13x (0) 3 a 11 = 1 2 (2 0.8 0) = 0.6; x (1) 2 = b 2 a 21 x (1) 1 a 23x (0) 3 a 22 = 1 2 (2 + 0.6 1) = 0.8;. (3.136) x (1) 3 = b 3 a 31 x (1) 1 a 32x (1) 2 a 33 = 1 2 (1 0 + 0.8) = 0.9; 2. Sabendo que a solução exacta do sistema é x = (0.583, 0.833, 0.917), calcule e (0) 1 e e (1) 1. Resolução: e (0) = x x (0) = (0.083, 0.033, 0.083) e (0) 1 = 0.199; e (1) = x x (1) = ( 0.017, 0.033, 0.017) e (1) 1 = 0.067. (3.137) Tal como acontecia no caso do método de Jacobi, também aqui a norma do erro diminui da aproximação inicial para a primeira iterada, o que significa que esta está mais próxima da solução exacta do que a aproximação inicial. Na caso do método de Gauss-Seidel, a diferença entre os dois erros é mais acentuada. Embora, como já foi dito, nada se possa concluir destes factos, eles estão de acordo com a análise que vamos fazer mais adiante sobre a convergência dos métodos iterativos. 3.4.4 Forma Matricial dos Métodos Iterativos Para podermos escrever as fórmulas iteradoras dos métodos iterativos de um modo mais compacto e estudar a sua convergência, convém representá-los 80
na forma matricial. Para isso, dada uma certa matriz A, começamos por definir as matrizes L, D, U, tais que L = 0 0... 0 a 21 0... 0............ a n1 a n2... 0, D = a 11 0... 0 0 a 22... 0............ 0 0... a nn, U = (3.138) Obviamente, verifica-se A = L + D + U. Nesta secção, vamos supor que todas as entradas diagonais da matriz A são diferentes de zero, ou seja, a ii 0, i = 1,..., n. Daqui resulta que a matriz D é invertível. Método de Jacobi na Forma Matricial Utilizando estas notações, vejamos como se pode escrever a fórmula iteradora do método de Jacobi na forma (3.127), identificando o vector g e a matriz de iteração correspondentes. Começamos por escrever a fórmula (3.130) com o auxílio das matrizes L, D e U: x (k+1) = D 1 ( b Lx (k) Ux (k)). (3.139) Esta equação também pode ser escrita na seguinte forma: x (k+1) = D 1 b D 1 (L + U)x (k). (3.140) Comparando esta equação com a fórmula geral para os métodos iterativos (3.127), concluímos que, no caso do método de Jacobi, o vector auxiliar g e a matriz de iteração têm a forma g j = D 1 b, C j = D 1 (L + U). (3.141) Uma vez que a matriz D é diagonal e que todas as entradas da sua diagonal são diferentes de zero, a sua inversa pode ser determinada imediatamente: 1 a 11 0... 0 D 1 1 = 0 a 22... 0............. (3.142) 1 0 0... a nn Por conseguinte, a matriz de iteração C j tem a seguinte forma: 0 a 12 a 11... a 1n a 11 C j = D 1 (L + U) = a 21 a 22 0... a 2n a 22............. (3.143) a n2 a nn... 0 a n1 a nn 81 0 a 12... a 1n 0 0... a 2n............ 0 0... 0.
Método de Gauss-Seidel na Forma Matricial Vejamos agora como se pode escrever a fórmula iteradora do método de Gauss-Seidel na forma (3.127). Com o auxílio das matrizes L, D e U, a fórmula (3.135) tem o seguinte aspecto: x (k+1) = D 1 ( b Lx (k+1) Ux (k)). (3.144) Multiplicando ambos os membros de (3.144) à esquerda por D, obtém-se: Dx (k+1) = b Lx (k+1) Ux (k). (3.145) Juntando no primeiro membro os termos que contêm x (k+1), temos a seguinte equação: (L + D)x (k+1) = b Ux (k). (3.146) Uma vez que a matriz D, por condição, é invertível, L + D também o é (o seu determinante é igual ao determinante de D). Assim, podemos escrever x (k+1) = (L + D) 1 b (L + D) 1 Ux (k). (3.147) Finalmente, comparando a equação (3.147) com a fórmula geral para os métodos iterativos, concluímos que, no caso do método de Gauss-Seidel, o vector auxiliar g e a matriz de iteração têm a forma g gs = (L + D) 1 b, C gs = (L + D) 1 U. (3.148) Neste caso, não é possível encontrar uma forma explícita para a inversa de (L + D). Tudo o que se pode dizer é que é uma matriz triangular inferior e que os seus elementos diagonais são os inversos dos elementos diagonais de A. Logo, também não é possível encontrar uma forma explícita para a matriz de iteração C gs. Exemplo 3.9. Determinemos os vectores g e as matrizes de iteração dos métodos de Jacobi e do método de Gauss-Seidel para o sistema do exemplo 3.7. No caso do método de Jacobi, o vector g tem a forma g gs = D 1 b = ( b 1, b 2, b 3 ) = (1, 1, 1 ). (3.149) a 11 a 22 a 33 2 A matriz C J obtém-se da aplicação directa da fórmula (3.143): 0 1 C J = D 1 2 0 (L + U) = 1 2 0 1 2. (3.150) 1 0 2 0 82
No caso do método de Gauss-Seidel, para poder determinar o vector g e a matriz de iteração começamos por calcular a inversa de L + D: 1 (L + D) 1 2 0 0 = 1 1. (3.151) 4 1 8 Daqui, pelas fórmulas (3.148), resulta que g gs = (1, 3 2, 5 4 ), C gs = 2 0 1 1 4 2 0 1 2 0 0 1 4 1 2 0 1 8 1 4. (3.152) 3.4.5 Convergência dos Métodos Iterativos para Sistemas Lineares Uma vez definido um método iterativo para a aproximação da solução de um sistema, é fundamental saber em que condições esse método gera uma sucessão que converge para a solução exacta. Nos teoremas que se seguem, estabelecem-se condições sobre a matriz A que garantem a convergência dos métodos iterativos considerados. Conforme resulta das fórmulas (3.126) e (3.127), os erros das iteradas, que representaremos por e (k), k = 0, 1,..., satisfazem a igualdade e (k+1) = x (k+1) x = C(x (k) x); k = 0, 1, 2,... (3.153) A igualdade (3.153) também pode ser escrita na forma e (k+1) = C e (k) ; k = 0, 1, 2,... (3.154) onde C é a matriz de iteração do método considerado. No parágrafo anterior já foi analisada a forma das matrizes de iteração dos métodos de Jacobi e Gauss-Seidel. Vejamos agora que propriedades deve apresentar a matriz C para garantir a convergência de um método iterativo. Em primeiro lugar, notemos que da igualdade (3.154) resulta imediatamente uma fórmula que exprime o erro de qualquer iterada através do erro da aproximação inicial: e (k) = C k e (0) ; k = 0, 1, 2,... (3.155) Definição 3.7 Uma matriz C IR n n, que representa uma aplicação linear no espaço vectorial IR n, diz-se convergente se e só se lim k Ck x = 0, x IR n. (3.156) 83
Estamos agora em condições de formular o teorema que nos dá uma condição necessária e suficiente para a convergência dos métodos iterativos baseados na fórmula (3.127). Teorema 3.5. Seja {x (k) } k=0 uma sucessão em IRn, gerada pela fórmula (3.127), com uma certa matriz C. Então esta sucessão converge para a solução do sistema Ax = b, qualquer que seja a aproximação inicial x 0, se e só se a matriz C for convergente. Demonstração.Condição suficiente. Seja C uma matriz convergente e seja e (k) o erro da k-ésima iterada. Então, de acordo com as fórmulas (3.155) e (3.156), temos lim k e(k) = lim k Ck e (0) = 0, (3.157) qualquer que seja o vector e (0) IR n, independentemente da norma considerada. Isto significa que o método iterativo converge, qualquer que seja a aproximação inicial x (0) IR n. Condição necessária. Suponhamos que C não é convergente. Então existe um vector v IR n tal que a sucessão {C k v} k=0 não converge para o vector nulo. Seja x (0) = x+v, onde x é a solução exacta do sistema. Então, de acordo com (3.155), temos e (k) = C k v e, de acordo com a definição de v, a sucessão {e (k) } k=0 não tende para o vector nulo. Isto, por sua vez, significa que o método iterativo não é convergente, no caso da aproximação inicial x (0) = x + v. Na prática, pode não ser fácil averiguar se a matriz C é ou não convergente. Vamos a seguir apresentar dois teoremas que nos ajudam a verificar esta propriedade. Teorema 3.6. Seja C IR n n. Se existir uma norma matricial M, associada a uma certa norma vectorial V, tal que C M < 1 (3.158) então a matriz C é convergente. Demonstração. Seja x um vector arbitrário de IR n. Então, de acordo com as propriedades das normas matriciais, temos C k x V C k M x V ( C M ) k x V. (3.159) 84
Da desigualdade (3.159) resulta imediatamente que, se C M < 1, então lim k Ck x V = 0, (3.160) o que significa, por definição, que a matriz C é convergente. Teorema 3.7. Para que a matriz C IR n n seja convergente é necessário e suficiente que r σ (C) < 1. (3.161) Demonstração.Condição suficiente. Se tivermos r σ (C) = ρ < 1, de acordo com o teorema 2.1.31 de [4], para qualquer ɛ > 0, existe uma norma matricial N(ɛ) tal que C N(ɛ) ρ + ɛ. (3.162) Se considerarmos ɛ = 1 ρ 2, obtemos C N(ɛ) ρ + 1 < 1. (3.163) 2 Da desigualdade (3.163) resulta, pelo teorema 3.5, que a matriz C é convergente. Condição necessária. Suponhamos que a condição (3.161) não se verifica, isto é, que r σ (C) 1. Então existe, pelo menos, um valor próprio λ de C, tal que λ = ρ 1. Seja v um vector próprio de C, associado ao valor próprio λ. Então, para qualquer norma vectorial, verifica-se C k v = λ k v = λ k v. (3.164) Da igualdade (3.164), visto que λ = ρ 1, resulta que a sucessão {C k v} k=0 não converge para o vector nulo, pelo que a matriz C não é convergente. Se aplicarmos os teoremas 3.5 e 3.6 aos métodos de Jacobi e Gauss-Seidel, podemos obter outros critérios de convergência para estes métodos. A fim de formularmos estes critérios numa forma mais concisa, vamos introduzir mais algumas definições. Definição 3.8. Diz-se que a matriz A IR n n tem a diagonal estritamente dominante por linhas, se forem satisfeitas as condições : n a ij < a ii, i = 1,..., n. (3.165) j=1,j i 85
Definição 3.9. Diz-se que a matriz A IR n n tem a diagonal estritamente dominante por colunas, se forem satisfeitas as condições : n i=1,i j a ij < a jj, j = 1,..., n. (3.166) Do teorema 3.6 resulta o seguinte critério de convergência para o método de Jacobi. Teorema 3.8. Se a matriz A tiver a diagonal estritamente dominante por linhas, então o método de Jacobi converge para a solução do sistema A x = b, qualquer que seja a aproximação inicial x (0) IR n. Demonstração. Se a matriz A tiver a diagonal estritamente dominante por linhas, das desigualdades (3.165) resulta n j=1,j i a ij a ii < 1 i = 1,..., n. (3.167) De acordo com a forma da matriz C J, dada por (3.141), as desigualdades (3.167) implicam C J = max n i=1,...,n j=1,j i a ij a ii < 1, (3.168) De acordo com o teorema 3.6, a condição (3.168) garante que a matriz C J é convergente. Isto, por sua vez, implica, de acordo com o teorema 3.5, que o método de Jacobi é convergente, qualquer que seja a aproximação inicial. Um critério análogo é válido no caso de a matriz A ter a diagonal estritamente dominante por colunas. Teorema 3.9. Se a matriz A tiver a diagonal estritamente domi nante por colunas, então o método de Jacobi converge para a solução do sistema A x = b, qualquer que seja a aproximação inicial x (0) IR n. Demonstração. Suponhamos que a matriz A satisfaz as condições (3.166). Seja D uma matriz diagonal com a forma D = diag(a 11,..., a nn ). 86
Então podemos definir uma norma matricial M pela igualdade C M = D C D 1 1, C L n. (3.169) Das condições (3.166) obtem-se facilmente que C J M = D C J D 1 1 < 1. (3.170) De acordo com o teoremas 3.5 e 3.6, da desigualdade (3.170) resulta que o método de Jacobi converge para a solução do sistema A x = b, qualquer que seja a aproximação inicial x (0) IR n.. Exemplo 3.10 Voltemos ao sistema do exemplo 3.7. Recordemos que a matriz A daquele sistema tem a forma 2 1 0 A = 1 2 1. (3.171) 0 1 2 Verifica-se facilmente que esta matriz não tem a diagonal estritamente dominante por linhas, uma vez que, neste caso, a 21 + a 23 = 2 = a 22. Do mesmo modo se pode verificar que aquela matriz também não tem a diagonal estritamente dominante por colunas. Por conseguinte, os teoremas 3.8 e 3.9 não são, neste caso, aplicáveis. Vejamos se é possível aplicar directamente o teorema 3.7. A matriz C J, neste caso, tem a forma: C J = 0 1/2 0 1/2 0 1/2 0 1/2 0 Os valores próprios desta matriz são as raizes da equação Determinando estas raizes, obtém-se λ 3 + λ 2 = 0.. (3.172) λ 1 = 0, λ 2 = i 2, λ 3 = i 2. 87
Por conseguinte, o raio espectral de C J é r σ (C J ) = λ 2 = 1 2 < 1. Logo, pelo teorema 3.7, podemos concluir que o método de Jacobi converge para a solução do sistema considerado, qualquer que seja a aproximação inicial. Vamos agora averiguar as condições que garantem a convergência do método de Gauss-Seidel. Representemos por C gs a matriz C gs = (L + D) 1 U (3.173) De acordo com o teorema 3.5, o método de Gauss-Seidel converge, qualquer que seja a aproximação inicial, se e só se a matriz C S for convergente. Para isso, de acordo com o teorema 3.7, é necessário e suficiente que o raio espectral daquela matriz seja menor que 1. Por outro lado, pode mostrar-se que o método de Gauss-Seidel, tal como o de Jacobi, converge sempre que a matriz do sistema tem a diagonal estritamente dominante por linhas. Para isso, comecemos por introduzir as seguintes notações : i 1 α i = j=1 a ij a ii max i=1,...,n, β i = n j=i+1 1 α i a ij a ii. (3.174) Sendo conhecidos α i e β i,i = 1,..., n, define-se a grandeza η através da fórmula ( ) βi η =. (3.175) Note-se que, se a matriz A tiver a diagonal estritamente dominante, por linhas, então α i + β i < 1, i = 1,..., n, de onde resulta que η < 1. Teorema 3.10. Seja A uma matriz com a diagonal estritamente dominante por linhas. Então o método de Gauss-Seidel converge, qualquer que seja a aproximação inicial e é válida a estimativa do erro e (k) η k e (0). (3.176) 88
Demonstração. Da fórmula (3.135) deduz-se facilmente que o erro da k-ésima iterada do método de Gauss-Seidel satisfaz a igualdade e (k+1) i = 1 i 1 n a ij e (k+1) j a ij e (k) j, i = 1, 2,..., n; k = 0, 1,.... a ii j=1 j=i+1 (3.177) Tomando o módulo de ambos os membros da igualdade (3.177) e entrando em conta com as definições das grandezas α i e β i, obtém-se e (k+1) i α i e (k+1) + β i e (k), i = 1, 2,..., n; k = 0, 1,.... (3.178) Seja m o índice para o qual se verifica e (k+1) m = e (k+1). Então, escrevendo a desigualdade (3.178), com i = m, obtém-se e (k+1) α m e (k+1) + β m e (k), k = 0, 1,.... (3.179) Daqui resulta e (k+1) (1 α m ) β m e (k), k = 0, 1,.... (3.180) Visto que α m < 1, podemos dividir ambos os membros de (3.180) por 1 α m e obter e (k+1) β m 1 α m e (k) η e (k), k = 0, 1,.... (3.181) Da desigualdade (3.181) resulta a estimativa do erro (3.176). Por outro lado, uma vez que a matriz tem a diagonal estritamente dominante, por linhas, η < 1. Logo, a desigualdade (3.176) implica que lim k e(k) = 0, o que garante a convergência do método de Gauss-Seidel, qualquer que seja a aproximação inicial. Exemplo 3.11 Consideremos o mesmo sistema linear dos exemplos anteriores. Neste caso, iremos debruçar-nos sobre o convergência do método de Gauss-Seidel. Já vimos que a matriz deste sistema não tem a diagonal estritamente dominante por linhas. Por conseguinte, o teorema 3.10 não é, neste caso, aplicável. Vejamos se é possível aplicar directamente o teorema 3.7. 89
A matriz C gs, de acordo com (3.151), tem a forma: C gs = 0 1/2 0 0 1/4 1/2 0 1/8 1/4 Os valores próprios desta matriz são as raizes da equação Determinando estas raizes, obtém-se λ 3 + λ2 2 = 0. λ 1 = λ 2 = 0, λ 3 = 1 2. Por conseguinte, o raio espectral de C gs é r σ (C gs ) = λ 3 = 1 2.. (3.182) Logo, pelo teorema 3.7, podemos concluir que o método de Gauss-Seidel converge para a solução do sistema considerado, qualquer que seja a aproximação inicial. 3.4.6 Rapidez de Convergência dos Métodos Iterativos. Análise do Erro Nos parágrafos anteriores, estudámos as condições que garantem a convergência dos métodos iterativos de Jacobi e de Gauss-Seidel. Atendendo aos resultados já obtidos, vamos agora classificar estes métodos e compará-los quanto à rapidez de convergência. Considerando qualquer norma vectorial V e a norma matricial M, a ela associada, podemos afirmar que, para qualquer método iterativo que verifique a igualdade (3.154), se verifica e (k+1) V C M e (k) V. (3.183) A rapidez de convergência depende, naturalmente, das propriedades da matriz C e da aproximação inicial escolhida. Nalguns casos especiais, pode acontecer que a solução exacta seja obtida com um número finito de iterações. No entanto, na maioria dos casos com interesse prático, verifica-se que a ordem de convergência dos métodos aqui analisados é precisamente 1, ou seja, a convergência é linear. Como sabemos, a rapidez de convergência 90
de métodos da mesma ordem é caracterizada pelo factor assimpótico de convergência. Para avaliar esse factor, recorre-se frequentemente ao limite e (k+1) V c 1 = lim k e (k). (3.184) V A existência do limite c 1 depende das propriedades da matriz C e da norma V considerada. Além disso, para a mesma matriz C, o limite pode ter diferentes valores, conforme a aproximação inicial escolhida. Pode-se mostrar que, se a matriz C tiver um único valor próprio λ IR, tal que λ = r σ (C), então, para a maioria das aproximações iniciais, o limite c 1 existe e verificase c 1 = r σ (C). Logo, se o limite c 1 existir e o método iterativo convergir, então 0 < c 1 < 1 e este valor pode ser tomado como o factor assimptótico de convergência. Isto significa que, para valores de c 1 próximos de 0, teremos convergência rápida, enquanto que para valores de c 1 próximos de 1 teremos convergência lenta (isto é, são necessárias muitas iterações para atingir uma dada precisão ). Na prática, o valor de c 1 não pode ser obtido directamente da fórmula (3.184), uma vez que os valores e (k+1) V e e (k) V não são, em geral, conhecidos para nenhuma iterada. Por isso, recorre-se frequentemente à igualdade x (k+1) x (k) = e (k+1) + e (k) = C e (k) + C e (k 1) = C(x (k) x (k 1) ). (3.185) Desta igualdade depreende-se que a diferença entre iteradas sucessivas varia com k do mesmo modo que o erro e (k) (ambas estas grandezas satisfazem uma relação do tipo (3.154). Logo, se o limite (3.184) existir, também existe o limite c x (k+1) x (k) V 1 = lim k x (k) x (k 1). (3.186) V e os dois limites (c 1 e c 1 ) têm o mesmo valor, para a maioria das aproximações iniciais. A fórmula (3.186) pode ser utilizada na prática para avaliar c 1 e, logo, c 1. Com esse fim, calcula-se, para sucessivos valores de k, a razão r (k) = x(k+1) x (k) V x (k) x (k 1) V, até que o seu valor estabilize. O número assim obtido é tomado como uma estimativa de c 1. Por outro lado, os valores de r (k) também podem ser utilizados para obter estimativas do erro e (k). Na realidade, se considerarmos um valor c 2 tal que r (k) c 2, k > k 0 (aqui k 0 representa a ordem a partir 91
da qual o valor de r (k) estabiliza), podemos esperar que, para k > k 0, se verifique e (k+1) V = x (k+1) x V c 2 x (k) x V. (3.187) Por outro lado, da desigualdade triangular, temos x (k) x V x (k) x (k+1) V + x (k+1) x V (3.188) Das desigualdades (3.188) e (3.187) resulta de onde x (k) x V x (k) x (k+1) V + c 2 x (k) x V, (3.189) x (k) x V (1 c 2 ) x (k) x (k+1) V. (3.190) Uma vez que c 2 < 1, por construção, da desigualdade (3.190) obtém-se e (k) V = x (k) x V x(k) x (k+1) V 1 c 2. (3.191) De (3.191), utilizando (3.187), obtém-se também e (k+1) V = x (k+1) x V c 2 1 c 2 x (k) x (k+1) V. (3.192) A desigualdade (3.192) permite-nos majorar o erro de uma dada iterada, bastando para isso conhecer a diferença entre as duas últimas iteradas e o valor de c 2. Exemplo 3.12. Regressando, mais uma vez, ao sistema linear que foi analisado no exemplo 3.10, vamos efectuar uma análise do erro, para os métodos de Jacobi e de Gauss-Seidel. Com este fim, foi aplicado cada um destes métodos ao sistema considerado. Partindo da aproximação inicial x (0) = (0.5, 0.8, 1.0), foram efectuadas iterações até que fosse satisfeita a condição x (k) x (k+1) 2 0.01. Em cada iteração foi avaliada a norma x (k) x (k+1) 2 e, a partir da 2 a iteração, a razão r (k) correspondente. Os resultados obtidos no caso do método de Jacobi são dados na tabela 3.1, enquanto os resultados obtidos para o método de Gauss-Seidel se encontram na tabela 3.2. Nestas tabelas verifica-se nitidamente que os valores de r (k) tendem para c 1 = 0.7071, no 92
k x (k) 1 x (k) 2 x (k) 3 x (k+1) x (k) 2 r (k) 1 0.6 0.75 0.9 0.15 2 0.625 0.85 0.875 0.106066 0.7071064 3 0.575 0.875 0.925 0.07500 0.7071066 4 0.5625 0.825 0.9375 0.05303 0.7071069 5 0.5875 0.8125 0.9125 0.03750 0.7071068 6 0.59375 0.8375 0.90625 0.02652 0.7071083 7 0.58125 0.84375 0.91875 0.01875 0.7071075 8 0.578125 0.83125 0.921875 0.01326 0.7071061 9 0.584375 0.828125 0.915625 0.00938 0.7071068 Table 1: Resultados do método de Jacobi para o exemplo 3.12 k x (k) 1 x (k) 2 x (k) 3 x (k+1) x (k) 2 r (k) 1 0.6 0.8 0.9 0.141421 2 0.6 0.85 0.925 0.055902 0.3952846 3 0.575 0.825 0.9125 0.037500 0.6708187 4 0.5875 0.8375 0.91875 0.018750 0.5 5 0.58125 0.83125 0.915625 0.009375 0.5 Table 2: Resultados do método de Gauss-Seidel para o exemplo 3.12 93
caso do método de Jacobi, e para c 1 = 0.5, no caso do método de Gauss- Seidel. Estes valores coincidem com os raios espectrais das matrizes C J e C gs, respectivamente (ver exemplos 3.10 e 3.11). Com base nestes valores, podemos obter estimativas do erro para cada um dos métodos. Para o método de Jacobi, de acordo om a fórmula (3.191), considerando c 2 = 0.70711, temos e (9) 2 c 2 1 c 2 x (9) x (8) 2 0.0242. No caso do método de Gauss-Seidel, tomando c 2 = 0.5, temos e (5) 2 c 2 1 c 2 x (5) x (4) 2 0.01. No exemplo que acabámos de ver, constatámos que o método de Gauss- Seidel convergia mais rapidamente que o de Jacobi, o que resulta de o raio espectral da matriz C gs ser inferior ao da matriz C J. Vamos ver que este caso não é uma excepção, no que diz respeito à relação entre os dois métodos. A fim de compararmos o método de Gauss-Seidel com o de Jacobi, quanto à rapidez de convergência, consideremos o caso em que a matriz A do sistema tem a diagonal estritamente dominante por linhas. Neste caso, de acordo com os teoremas 3.8 e 3.10, ambos os métodos convergem para a solução exacta, qualquer que seja a aproximação inicial escolhida. Além disso, para o método de Jacobi é válida a estimativa do erro e (k) µ k e (0), k = 1, 2,... (3.193) onde µ = C J. Recordando a forma da matriz C J, dada por (3.143), e as definições das grandezas α i e β i, dadas por (3.174), podemos concluir que µ = max i=1,...,n (α i + β i ). (3.194) Por outro lado, para o método de Gauss-Seidel, segundo o teorema 3.10, é válida a estimativa do erro e (k) η k e (0), k = 1, 2,... (3.195) Para estabelecer uma relação entre a rapidez de convergência dos dois métodos, basta-nos portanto comparar o parâmetro µ da fórmula (3.193) com o parâmetro η da fórmula (3.195). 94
Exemplo 3.13. Consideremos o sistema A x = b, onde A é uma matriz de ordem n com a forma geral 5 2 0... 0 2 5 2... 0 A =............... 0... 2 5 2. 0... 0 2 5 Neste caso, verifica-se imediatamente que a matriz A tem a diagonal estritamente dominante, por linhas, pelo que tanto o método de Gauss-Seidel como o de Jacobi convergem, qualquer que seja a aproximação inicial. Além disso, atendendo às fórmulas (3.174), temos α i = β i = 2/5, i = 1, 2,..., n. Daqui, pelas fórmulas (3.194) e (3.175), obtém-se imediatamente µ = 4/5, η = 2/3. Assim, neste exemplo verifica-se η < µ. Por conseguinte, é de esperar que, no caso deste sistema, o método de Gauss-Seidel convirja mais rapidamente que o de Jacobi. Note-se, porém, que esta comparação entre os dois métodos só é válida para matrizes com a diagoal estritamente dominante por linhas. No caso geral, nem sempre o método de Gauss-Seidel é mais rápido que o de Jacobi, havendo mesmo casos particulares em que o segundo é convergente e o primeiro não. Um aspecto importante a salientar é que os métodos iterativos para sistemas lineares, quando convergem para qualquer aproximação inicial, são estáveis (ver Definição 3.7). Ou seja, partindo de dois vectores iniciais próximos, ξ 0 e η 0, obtêm-se sempre duas sucessões {x (n) } e {y (n) } igualmente próximas, convergindo para o mesmo vector x (solução exacta). Esta propriedade é de grande importância prática, uma vez que no cálculo numérico são inevitáveis os erros se arredondamento, os quais, como já vimos, podem propagar-se ao longo de uma sucessão de operações, conduzindo a erros muito grandes no resultado final. Esta situação verifica-se, por exemplo, na resolução de sistemas lineares por métodos directos, mesmo que eles sejam bem condicionados. Os métodos iterativos, desde que sejam aplicados a sistemas bem condicionados, são sempre estáveis, ou seja, quando se usam estes métodos não há perigo de os erros de arredondamento cometidos nos cálculos poderem resultar em erros significativos no resultado final. 95
Isto representa, portanto, uma importante vantagem dos métodos iterativos sobre os directos, sobretudo quando se trata de resolver sistemas de grandes dimensões. 3.4.7 Método das relaxações sucessivas (SOR) Neste parágrafo estudaremos uma generalização do método de Gauss-Seidel, muito utilizada no cálculo numérico, que é conhecida como método das relaxações sucessivas ou método SOR (sucessive over-relaxations). Neste caso, estamos mais propriamente a falar de uma família de métodos, que depende de um parâmetro (ω), cuja matriz de iteração é dada pela seguinte fórmula: C(ω) = M 1 (ω)n(ω), onde M(ω) = L + 1 ω D, N(ω) = U + (1 1 )D, (3.196) ω sendo as matrizes L,D e U definidas como no caso dos métodos de Jacobi e de Gauss-Seidel. É fácil verificar que, no caso de ω = 1, se obtém M(1) = L + D e N(1) = U, pelo que C(1) = (L + D) 1 U, ou seja, neste caso o método SOR reduz-se ao método de Gauss-Seidel. Na prática, cada iterada x (k+1) do método SOR calcula-se através da seguinte fórmula: x (k+1) = ωz (k+1) + (1 ω)x (k), (3.197) onde z (k+1) = D 1 ( b Lx (k+1) Ux (k)). (3.198) Comparando as fórmulas, verifica-se que z (k+1) coincide com a (k +1)-ésima iterada do método de Gauss-Seidel. Assim, podemos dizer que cada iterada do método SOR é uma média ponderada entre a nova iterada (pelo método de Gauss-Seidel) e a iterada anterior, sendo ω o peso da nova iterada. Mais uma vez se confirma que, no caso de ω = 1, o método SOR se reduz ao método de Gauss-Seidel. Ao introduzir o parâmetro ω, isso permite-nos acelerar a convergência do método iterativo, pois é possível, para cada sistema em particular, escolher esse parâmetro de tal modo que a convergência seja a mais rápida possível. Isso consegue-se teoricamente (estudando o raio espectral da matiz C(ω) como função de ω) ou experimentalmente, testando diferentes valores de ω. Pode ser demonstrado o seguinte teorema sobre a convergência do método SOR, no caso de um sistema linear Ax = b: 96
Teorema 3.11. Sendo A uma matriz simétrica e definida positiva, o método SOR converge para a solução do sistema se e só se ω ]0, 2[. Deste teorema resulta, em particular, que o método de Gauss-Seidel (ω = 1) é sempre convergente para matrizes simétricas e definidas positivas. 3.5 Métodos Iterativos para Sistemas Não- lineares Consideremos agora um sistema de n equações não lineares, da forma F 1 (x 1, x 2,..., x n ) = 0, F 2 (x 1, x 2,..., x n ) = 0, (3.199)... F n (x 1, x 2,..., x n ) = 0, onde cada uma das funções F i é uma função real de n variáveis reais. Este sistema pode ser escrito na forma vectorial: F(x) = 0, onde F = (F 1, F 2,..., F n ), x = (x 1, x 2,..., x n ). O ponto z IR n diz-se solução (ou raiz) do sistema (3.199) se F(z) = 0. O problema da determinação das razes de um sistema não linear é complexo (muito mais complexo do que no caso de sistemas lineares). Em primeiro lugar, não há nenhum critério simples que nos permita verificar se o sistema (3.199) tem ou não solução. No caso de várias soluções, não é fácil isolar cada uma, isto é, definir um conjunto em IR n que contenha essa raiz, e não contenha outras. Uma das abordagens para conseguir localizar raizes de um sistema não linear é baseada no teorema do ponto fixo (que pode ser reformulado para funções de IR n em IR n ). O mesmo teorema permite-nos definir um método iterativo (método do ponto fixo em IR n ) para aproximar as raizes do sistema. Finalmente, veremos que o método de Newton (estudado em 2.4, no caso de uma equação) também pode ser generalizado para sistemas de n equações. 3.5.1 Método do Ponto Fixo em IR n A fim de investigar as condições que garantem a convergência do método do ponto fixo em IR n, vamos formular uma generalização do teorema do ponto fixo, estudado em 2.3. Com esse objectivo, necessitamos de introduzir algumas definições. 97
Definição 3.9. Seja E um espaço normado, X E e G uma função de X em E. A função G diz-se lipschitziana em X, se e só se existir uma constante q, tal que G(x 1 ) G(x 2 ) q x 1 x 2, x 1, x 2 X. (3.200) Ao ínfimo de todas as constantes q, para as quais a desigualdade (3.200) se verifica, chama-se constante de Lipschitz de G em X e representa-se por L G,X. Definição 3.10. Diz-se que G é uma contracção (ou uma função contractiva) em X se e só se G for lipschitziana em X e L G,X < 1. Exemplo 3.14. Seja E = IR e G(x) = x 2. Verifiquemos para que valores de r a função G é contractiva em X = [ r, r]. Temos G(x 1 ) G(x 2 ) = x 2 1 x 2 2 = x 1 x 2. x 1 + x 2. (3.201) Se x 1 e x 2 pertencerem a X, podemos escrever Substituindo (3.202) em (3.201), obtém-se x 1 + x 2 r + r = 2r. (3.202) G(x 1 ) G(x 2 ) 2r x 1 x 2, (3.203) donde se conclui que G é lipschitziana em X, com a constante L G,X = 2r. Por conseguinte, se r < 1/2, podemos afirmar que G é contractiva em X. No caso de funções de uma variável real, a condição de contractividade pode ser expressa noutros termos, tornando-se mais fácil a sua verificação. Teorema 3.12. Seja G uma função com domínio em X = [a, b] e valores reais e suponhamos que G C 1 ([a, b]). Então G é contractiva em X se e só se max x [a,b] G (x) < 1. (3.204) 98
Demonstração. Pelo teorema de Lagrange, quaisquer que sejam x 1 e x 2, pertencentes a [a, b], existe ξ [x 1, x 2 ], tal que G(x 1 ) G(x 2 ) = G (ξ) x 1 x 2. (3.205) Então podemos afirmar que a constante de Lipschitz de G é L G = max x [a,b] G (x) < 1, (3.206) donde se conclui que G é contractiva em [a, b]. Demonstremos agora a inversa. Suponhamos que existe em [a, b] um certo y, tal que G (y) 1. Entretanto, pelo teorema de Lagrange, para qualquer h > 0, existe θ [0, 1] tal que G(y + h) G(y) = G (y + θh) h. (3.207) Visto que G é contínua em [a, b],para qualquer ρ < 1, existe h 0 tal que G (y + θh 0 ) > ρ. Escrevendo a desigualdade (3.207) com h = h 0, obtém-se G(y + h 0 ) G(y) = G (y + θh 0 ) h 0 > ρ h 0. (3.208) A desigualdade (3.208) implica que G não é contractiva em [a, b], ficando assim demonstrado o teorema. O teorema 3.12 permite-nos substituir a condição de contractividade pela condição (3.204), quando se consideram funções de uma variável. Foi isso precisamente o que fizemos na sec. 2.3. No caso em que G é uma função de IR n em IR n, com derivadas parciais contínuas, a contractividade pode ser verificada através da sua matriz jacobiana. Definição 3.11. Seja G uma função vectorial, tal que G(x) = (G 1 (x), G 2 (x),..., G n (x)), onde G i é uma função escalar com domínio em X IR n. Se em X existirem as derivadas parciais G i x j, i, j {1,..., n} chama-se jacobiana de G e representa-se por J G a matriz G 1 G x 1... 1 x n G 2 G J G (x) = x 1... 2 x n.......... (3.209) G n x 1... 99 G n x n
Teorema 3.13. Seja X um conjunto convexo 2 em IR n e G uma função vector com domínio em X e valores em IR n. Então, se as derivadas parciais G i x j, i, j {1,..., n} forem contínuas em X e se sup x X J G (x) < 1, (3.210) G é contractiva em X (segundo a norma do máximo). Demonstração. Sejam x 1 e x 2 dois elementos de X. Segundo o teorema de Lagrange para funções de n variáveis, para cada função G i existe um ponto ξ i, pertencente ao segmento [x 1, x 2 ], tal que onde G i (x 1 ) G i (x 2 ) = ( G i (ξ i ), x 1 x 2 ), (3.211) G i (x) = ( Gi,..., G ) i, i {1,..., n}, (3.212) x 1 x n e os parêntesis curvos no segundo membro de (3.211) denotam o produto interno de vectores. Note-se que todos os pontos ξ i pertencem a X, uma vez que este conjunto é convexo. De (3.211) e (3.212) obtém-se G i (x 1 ) G i (x 2 ) max j=1,...,n x 1,j x 2,j n j=1 G i x j (ξ i ) = G i (ξ i ) 1 x 1 x 2, Seja i o índice para o qual se verifica i {1,..., n}. (3.213) G i (x 1 ) G i (x 2 ) = G(x 1 ) G(x 2 ). No caso de i = i, a desigualdade (3.213) toma o aspecto Atendendo a que G(x 1 ) G(x 2 ) G i (ξ i ) 1 x 1 x 2. (3.214) G i (ξ i ) 1 max 1 i n j=1 n G i (ξ i ) x j = J G(ξ i ) < 1, (3.215) 2 Um conjunto X diz-se convexo se, para quaisquer x 1, x 2 pertencentes a X, todos os pontos do segmento [x 1, x 2] também pertencerem a X. 100
de (3.214) resulta que G é contractiva em X, segundo a norma do máximo. Nalguns casos, pode ser mais cómodo considerar em IR n outras normas que não a do máximo, por exemplo, a norma. 1. Por isso enunciamos aqui o seguinte teorema, análogo a 3.13. Teorema 3.14. Seja X um conjunto convexo em IR n e G uma função vectorial com domínio em X e valores em IR n. Então, se as derivadas parciais G i x j, i, j {1,..., n} forem contínuas em X e se G é contractiva em X (segundo a norma 1 ). sup x X J G (x) 1 < 1, (3.216) Para não nos tornarmos repetitivos, não apresentamos a demonstração deste teorema, que pode ser obtida por um raciocínio semelhante ao do teorema anterior. Estamos agora em condições de formular o teorema do ponto fixo, para espaços normados de dimensão finita, por exemplo, os espaços IR n. Teorema 3.15 (Teorema do ponto fixo em R n ). Seja E um espaço normado de dimensão finita e X um sub-conjunto fechado de E. Seja G uma função contractiva em X, tal que G(X) X. Então são verdadeiras as afirmações 1. G tem um único ponto fixo z em X. 2. Se {x (k) } k IN for uma sucessão de termos em E tal que x (0) X e x (k+1) = G(x (k) ), k IN, então x (k) z. 3. Se G satisfaz em X a desigualdade (3.200) com a constante q < 1, então são válidas as desigualdades x (n+1) z q x (n) z, n IN. (3.217) e x (m) z qm 1 q x(1) x (0), m IN. (3.218) 101
Demonstração. Em primeiro lugar, note-se que se x (0) X, então x (k) X, k, visto que G(X) X. Comecemos por provar que a sucessão de que se fala no ponto 2 é convergente. Para tanto, basta provar que ela é uma sucessão de Cauchy. Uma vez que G é contractiva em X, existe uma constante q < 1, tal que G(x 1 ) G(x 2 ) q x 1 x 2, x 1, x 2 X. (3.219) Em particular, se tivermos dois termos consecutivos da sucessão considerada verifica-se x (k+1) x (k) q x (k) x (k 1), k IN. (3.220) Sejam agora x (m) e x (n) dois termos quaisquer da sucessão, com n > m. Então podemos escrever x (n) x (m) = x (n) x (n 1) + x (n 1) x (n 2) +... + x (m+1) x (m) x (n) x (n 1) + x (n 1) x (n 2) + + x (m+1) x (m). (3.221) Das desigualdades (3.220) e (3.221) obtém-se x (n) x (m) ( q n m 1 + + q + 1 ) x (m+1) x (m) q m ( q n m 1 + + q + 1) ) x (1) x (0). (3.222) A soma que figura no segundo membro de (3.222) é a soma de uma progressão geométrica de razão q. Como q < 1, podemos escrever n m 1 q m k=0 q k < qm, n IN. (3.223) 1 q Substituindo (3.223) em (3.222), obtém-se x (m) x (n) < qm 1 q x(1) x (0), n > m. (3.224) Da desigualdade (3.224) resulta que ɛ > 0, existe n 0 IN tal que x (m) x (n) < ɛ, m, n > n 0. (3.225) Daqui resulta, por definição que a sucessão considerada é uma sucessão de Cauchy e, logo, converge. Representemos por z o seu limite. Uma vez que X é fechado, z X. Provemos agora que z é um ponto fixo de G. Utilizando o facto de G ser contractiva, podemos escrever x (m+1) G(z) = G(x (m) ) G(z) q x (m) z, m. (3.226) 102
Logo x (m+1) G(z) 0, de onde resulta que x (m) G(z), quando m. Por conseguinte, G(z) = z, tal como se pretendia demonstrar. Fica assim demonstrado o ponto 2 do teorema. A desigualdade (3.217), por sua vez, resulta de (3.226). Quanto à desigualdade (3.218), ela obtém-se de (3.224), se fizermos n tender para infinito. Resta-nos provar que z é o único ponto fixo de G em X. Suponhamos que existem dois pontos fixos de G em X e representemo-los por z e z. Uma vez que G é contractiva, temos donde G(z ) G(z) = z z q z z, (3.227) z z (1 q) 0. (3.228) Uma vez que 1 q > 0, de (3.228) resulta que z = z. Exemplo 3.15. Consideremos o sistema de duas equações { 3x1 + x 2 2 = 0 x 2 1 + 3x 2 = 1 (3.229) Vamos utilizar o teorema do ponto fixo para provar que este sistema tem uma única raiz no conjunto X = {(x 1, x 2 ) IR 2 : 1/3 x 1 0; 0 x 2 1/3} (3.230) Com esse fim, o sistema (3.229) pode ser reescrito na forma x = G(x), onde G 1 (x 1, x 2 ) = x2 2 3 G 2 (x 1, x 2 ) = 1 x2 1 3. (3.231) Verifiquemos se a função G, definida por (3.231), satisfaz as condições do teorema do ponto fixo em X. Em primeiro lugar, constata-se que o conjunto X é um quadrado, contendo a sua fronteira, pelo que é convexo e fechado. Além disso, vemos que as derivadas parciais de G 1 e G 2 são contínuas em X, de tal modo que a jacobiana de G tem a forma J G (x 1, x 2 ) = 0 2x 2 3 2x 1 3 0 (3.232) 103
Assim, podemos escrever J G (x 1, x 2 ) = max ( 2 x2 3, 2 x ) 1 3 (3.233) de onde resulta que J G (x 1, x 2 ) 2 9 < 1 (x 1, x 2 ) X. (3.234) Com base no teorema 3.13 podemos, portanto, afirmar que G é contractiva em X (segundo a norma do máximo) com a constante q = 2 9. Para podermos aplicar o teorema do ponto fixo, precisamos também de verificar que G(X) X. Seja x = (x 1, x 2 ) X. Então G 1 (x 1, x 2 ) = x2 2 3 [ 1/3, 0] G 2 (x 1, x 2 ) = 1 x2 1 3 [0, 1/3]. (3.235) Por conseguinte, temos (G 1 (x 1, x 2 ), G 2 (x 1, x 2 )) X, de onde se conclui que G(X) X. Logo, a função G satisfaz as condições do teorema do ponto fixo em X. Assim, podemos garantir que aquela função tem um único ponto fixo em X, que, por construção, será a única raiz do sistema (3.229) no referido conjunto. Podemos também aplicar o método do ponto fixo para aproximar a raiz considerada. Tomemos como aproximação inicial qualquer ponto do conjunto X, por exemplo, a origem das coordenadas: x (0) = (0, 0). Então obtêm-se as seguintes aproximações sucessivas: x (1) 1 = G 1 (0, 0) = 0 x (1) 2 = G 2 (0, 0) = 1 3 x (2) 1 = G 1 (0, 1/3) = 1 27 x (2) 1 2 = G 2 (0, 1/3) = 3, (3.236). (3.237) Tentemos agora obter uma estimativa do erro da iterada x (2). De acordo com a desigualdade (3.218), podemos escrever x (2) z q2 1 q x(1) x (0), (3.238) 104
onde q = 2 9. Neste caso, temos x(1) x (0) = 1/3; logo x (2) z 4 63 1 3 = 4 189. (3.239) Esta última estimativa poderia ser refinada se, em vez da desigualdade (3.218), aplicássemos a desigualdade x (m+1) z q 1 q x(m+1) x (m), (3.240) que também se pode deduzir do teorema do ponto fixo. Nesse caso obteríamos x (2) z q 1 q x(2) x (1) = 2 189. (3.241) 3.5.2 Método de Newton para Sistemas de Equações Como vimos em 2.3, o método de Newton pode ser considerado como um caso particular do método do ponto fixo. No caso de uma função f (de uma variável real), a função iteradora do método d Newton, como sabemos, tem a forma: g(x) = x f(x) f (x). (3.242) Ao considerar o sistema (3.199), em vez da função f temos uma função vectorial F (de n variáveis). Admitindo que todas as derivadas parciais de F existem e são contínuas num certo conjunto D, onde se procura a raiz do sistema, podemos definir do seguinte modo a matriz jacobiana de F : J F (x) = F 1 F 1 x 1 F n x 1 F 1 x 2... x n F 2 F 2 F x 1 x 2... 2 x n............ F n x 2... F n x n. (3.243) Admitamos ainda que J F é invertível no domínio considerado. Quando se generaliza o método de Newton para sistemas de equações, é natural substituir na fórmula (3.242) a expressão 1/f (x) pela inversa da matriz jacobiana. Obtém-se assim formalmente a seguinte função iteradora para o método de Newton, aplicado a sistemas não-lineares: G(x) = x J 1 F (x).f (x). (3.244) Daqui resulta a fórmula iteradora do método de Newton para sistemas nãolineares: x (k+1) = G(x (k) ) = x (k) J 1 F (x(k) ).F (x (k) ), (3.245) 105
onde x (k) IR n representa, como habitualmente, a k-ésima iterada do método (k = 0, 1, 2... ). A fórmula (3.245), embora definindo o método de Newton para sistemas, não é a que geralmente se aplica nos cálculos. Do ponto de vista computacional, não é vantajoso aplicar directamente esta fórmula, já que isso nos obrigaria, em cada iteração do método, a inverter uma matriz de ordem n (a jacobiana de F ), o que seria muito dispendioso em termos de número de operações. Na realidade, isso pode ser evitado, como vamos ver. Comecemos por rescrever a fórmula iteradora na forma x (k+1) x (k) = J 1 F (x(k) ).F (x (k) ), (3.246) Introduzindo a notação x (k) = x (k+1) x (k) e multiplicando ambos os membros de (3.246), à esquerda, por J F (x (k) ), obtém-se Esta fórmula, juntamente com J F (x (k) ) x (k) = F (x (k) ). (3.247) x (k+1) = x (k) + x (k), (3.248) define um processo iterativo, equivalente ao da fórmula (3.246), mas onde não aparece a inversa da jacobiana. Na prática, em vez de inverter a Jacobiana de F, basta-nos em cada iteração resolver o sistema linear (3.247), cuja matriz é essa jacobiana. Esse sistema linear pode ser resolvido por qualquer dos métodos directos ou iterativos que estudámos nas secções anteriores e, como sabemos, a sua resolução implica muito menos operações do que a inversão da matriz correspondente. Uma vez resolvido o sistema, a sua solução x (k) dá-nos a correcção que, somada à iterada anterior, permite obter a nova iterada x (k+1) (fórmula 3.248). Este processo é repetido até que se verifique uma das seguintes condições (ou as duas): x (k) < ɛ, F (x (k) ) < ɛ, sendo ɛ uma margem de erro previamente estabelecida. Nestas condições de paragem pode usar-se qualquer das normas vectoriais estudadas. Exemplo 3.16. Consideremos de novo o sistema de duas equações { 3x1 + x 2 2 = 0 x 2 (3.249) 1 + 3x 2 = 1 Partindo da aproximação inicial x (0) = (0, 0), vamos efectuar duas iterações do método de Newton para aproximar a sua solução. Neste caso, temos F 1 (x 1, x 2 ) = 3x 1 + x 2 2, F 2 (x 1, x 2 ) = x 2 1 + 3x 2 1. (3.250) 106
A matriz jacobiana de F tem a forma [ 3 2x2 J F (x 1, x 2 ) = 2x 1 3 Logo, para a primeira iteração, temos ]. (3.251) onde J F (x (0) ) x (0) = F (x (0) ), (3.252) J F (x (0) ) = [ 3 0 0 3 ], (3.253) F (x (0) ) = (F 1 (0, 0), F 2 (0, 0)) = (0, 1). (3.254) Resolvendo o sistema (3.252), obtém-se Logo, x (0) = (0, 1/3). (3.255) x (1) = x (0) + x (0) = (0, 1/3). (3.256) Passemos à segunda iteração, com o sistema linear onde J F (x (1) ) x (1) = F (x (1) ), (3.257) J F (x (1)) = [ 3 2 3 0 3 ], (3.258) F (x (1) ) = (F 1 (0, 1/3), F 2 (0, 1/3)) = (1/9, 0). (3.259) Resolvendo agora o sistema (3.257), obtém-se Finalmente, a segunda iterada obtém-se somando: x (1) = ( 1/27, 0). (3.260) x (2) = x (1) + x (1) = ( 1/27, 1/3). (3.261) Note-se que, embora neste caso as duas primeiras iterações do método de Newton coincidam com as do método do ponto fixo, isto não é o que acontece em geral. Em regra, tal como acontece no caso de n = 1, o método de Newton, quando converge, define uma sucessão de aproximações com convergência quadrática, enquanto o método do ponto fixo apresenta apenas convergência linear. Assim, de uma maneira geral, o método de Newton, com o mesmo número de iterações, permite atingir um resultado mais preciso. 107
4 Aproximação de funções 4.1 Interpolação Polinomial Neste capítulo dedicar-nos-emos à aproximação de funções. Um dos métodos mais clássicos e simples de aproximação de funções é a interpolação. O objectivo da interpolação é reconstruir num certo intervalo [a, b] uma função f, cujos valores são conhecidos apenas num núnmero finito de pontos desse intervalo. Esses pontos são os chamados nós de interpolação e vamos representá-los genericamente por x i (i = 0, 1, 2,..., n). Assim, pode dizer-se que os dados para a interpolação são sempre constituídos por uma tabela de valores de f: x 0 x 1... x n f 0 f 1... f n onde f i = f(x i ) representa o valor de f no nó de interpolação x i (i = 0, 1,..., n). Para exemplificar com uma aplicação bem simples, consideremos a seguinte tabela, que representa os valores da população de uma espécie (N i, em milhares) determinados em diferentes instantes t i : Tabela 4.1 t i 10 12 14 16 N i 10 15 22 18 Na fig. 13 está representada graficamente esta tabela. Suponhamos que o nosso objectivo é reconstruir a função N no intervalo [10, 16]. Claro que, de um modo geral, existem muitas diferentes maneiras de interpolar estes dados. Na mesma figura, estão representadas duas das possíveis funções interpoladoras. Se usarmos a função interpoladora N 1, por exemplo, a estimativa para a população em t = 15 é N 1 (15) = 20, enquanto que se usarmos a função N 2, o valor correspondente é N 2 (15) = 22.188. Como foi mencionado no início, neste capítulo iremos estudar um tipo específico de interpolação, a interpolação polinomial, o que significa que iremos considerar sempre como funções interpoladoras polinómios. Na próxima secção, definiremos polinómio interpolador e demonstraremos a existência e unicidade de tal polinómio. 4.1.1 Existência e Unicidade de Polinómio Interpolador Começamos por formular a seguinte definição: 108
22 20 18 16 14 12 t Figure 13: Exemplo de interpolação : função N 1 (cinzento), função N 2 (preto) Definição 4.1. Chama-se polinómio interpolador da função f nos nós x 0,..., x n o polinómio P, de grau não superior a n, que satisfaz as relações P (x i ) = f i, i = 0, 1,..., n. Dada esta definição, a primeira questão que se põe é saber se, para qualquer tabela, existe sempre um polinómio interpolador, e se este é único. No caso de dois pontos (x 0, x 1 ) é simples responder a esta questão. Com efeito, segundo a definição 4.1, neste caso o polinómio interpolador tem grau menor ou igual a um, ou seja, é uma função linear. Como o gráfico de uma função linear é uma recta, é óbvio que o polinómio interpolador neste caso existe e é único: é a função P 1 que tem como gráfico a recta que passa pelos pontos (x 0, f 0 ) e (x 1, f 1 ). Quando se considera um grau n arbitrário, o problema já não é tão simples, mas a resposta continua a ser positiva. Para analisarmos o caso geral, recordemos que um polinómio de grau não superior a n pode ser escrito na forma P n (x) = a 0 + a 1 x + a 2 x 2 + + a n x n, (4.1) onde os coeficientes a i (i = 0, 1,..., n) são certos números reais. Para construir o polinómio interpolador precisamos de calcular esses coeficientes. Recorrendo de novo à definição, podemos escrever que o polinómio P n satisfaz as igualdades P n (x 0 ) = a 0 + a 1 x 0 + a 2 x 2 0 + + a nx n 0 = f 0, P n (x 1 ) = a 0 + a 1 x 1 + a 2 x 2 1 + + a nx n 1 = f 1,... P n (x n ) = a 0 + a 1 x n + a 2 x 2 n + + a n x n n = f n. (4.2) 109
Observando o conjunto das igualdades (4.2), verificamos que elas formam um sistema de n + 1 equações lineares em ordem às incógnitas a 0,a 1,...,a n. Escrevendo esse sistema na forma matricial, obtém-se 1 x 0 x 2 0... x n 0 1 x 1 x 2 1... x n 1............... 1 x n x 2 n... x n n a 0 a 1... a n = f 0 f 1... f n. (4.3) A matriz deste sistema é conhecida como a matriz de Vandermonde. Vamos representá-la por V (x 0, x 1,..., x n ). Para nos certificarmos de que o sistema (4.3) tem sempre solução única, basta verificar que esta matriz é invertível, ou seja, que o seu determinante é diferente de zero. Mais uma vez, comecemos pelo caso de n = 1. Neste caso, é evidente que Det V (x 0, x 1 ) = x 1 x 0 0, já que, por construção, os nós de interpolação são distintos. Passando ao caso geral, pretendemos mostrar que Det V (x 0, x 1,..., x n ) 0, para n = 1, 2,.... Para isso, recorremos a um resultado auxiliar da álgebra (ver, por exemplo, [?], p.45) que nos diz o seguinte: Det V (x 0, x 1,..., x n ) = n (x i x j ) (4.4) i,j=0 (consideram-se todos os pares x i, x j tais que i > j). Mais uma vez se verifica que o determinante da matriz de Vandermonde é não nulo, para qualquer n, e por conseguinte o sistema (4.3) tem sempre uma única solução (desde que os nós de interpolação sejam distintos entre si). Daqui se conclui também que, para qualquer tabela de valores de uma função f, existe um único polinómio interpolador. 4.1.2 Fórmula Interpolaora de Lagrange Uma vez esclarecida a questão teórica da existência de polinómio interpolador, põe-se a questão prática de o calcular. Para isso, são conhecidas diferentes fórmulas, que iremos estudar e comparar, do ponto de vista da eficiência computacional. Nunca é demais lembrar que o polinómio interpolador, para cada tabela, é único (como acabámos de provar). Por isso, independentemente da fórmula que usarmos para o construir, o resultado final será sempre o mesmo (desprezando eventuais erros de arredondamento). 110
Uma das fórmulas mais simples para a construção do polinómio interpolador é a fórmula interpoladora de Lagrange. Esta fórmula baseia-se no facto de que os polinómios de grau não superior a n formam um espaço linear de dimensão n + 1 (o espaço P n ). Como sabemos da álbegra linear, isto significa que, sendo dados n + 1 polinómios de grau não superior a n, linearmente independentes, qualquer outro polinómio do mesmo espaço se exprime como uma combinação linear dos primeiros. Sendo assim, o método de Lagrange para construir o polinómio interpolador começa com a definição de n + 1 polinómios que formam uma base em P n. Vamos representar esses polinómios por L i (x), i = 0, 1,..., n e designá-los polinómios de Lagrange. Os polinómios de Lagrange são construídos para um certo conjunto de nós de interpolação x i, i = 0, 1..., n (distintos entre si), de tal modo que é natural estabelecer uma correspondência entre x i e L i, para cada i. Esta correspondência estabelece-se do seguinte modo: designamos L i o polinómio de grau n, tal que L i (x i ) = 1, e L i (x j ) = 0, se j {0, 1,..., n},j i. Como como construir tal polinómio? Uma vez que ele se anula nos pontos x 0,..., x i 1, x i+1,..., x n, é fácil concluir que ele tem a forma: L i (x) = A i (x x 0 )... (x x i 1 )(x x i+1 )... (x x n ), i = 0,..., n. (4.5) onde A i é uma certa constante real (não depende de x). Para definir o valor desta constante, basta ter em conta a condição L i (x i ) = 1. De acordo com (4.5), temos L i (x i ) = A i (x i x 0 )... (x i x i 1 )(x i x i+1 )... (x i x n ) = 1, i = 0,..., n. (4.6) Daqui imediatamente se conclui 1 A i =, i = 0,..., n. (x i x 0 )... (x i x i 1 )(x i x i+1 )... (x i x n ) (4.7) Introduzindo (4.7) em (4.6) e escrevendo tudo numa forma mais compacta, obtém-se finalmente L i (x) = (x x 0)... (x x i 1 )(x x i+1 )... (x x n ) (x i x 0 )... (x i x i 1 )(x i x i+1 )... (x i x n ) = n j=0,j i (x x j) n j=0,j i (x i x j ), (4.8) i = 0,..., n. É óbvio que cada uma das funções L i é um polinómio de grau n. Para provar que eles formam uma base no espaço dos polinómios de grau menor ou igual a n, basta verificar que são linearmente independentes. 111
Considere-se uma combinação linear com a forma n C j L j (x) (4.9) j=0 onde C j são coeficientes reais arbitrários. Queremos provar que, quaisquer que sejam estes coeficientes (não simultaneamente nulos), a soma (4.9) não se transforma numa função nula. Admitamos o contrário. Isto é, suponhamos que, para um certo conjunto de valores de C j, se tem n C j L j (x) 0, x IR. (4.10) j=0 Nesse caso teremos, em particular n C j L j (x i ) = 0, i = 0, 1,..., n. (4.11) j=0 Por outro lado, temos, por definicão de L i, n C j L j (x i ) = C i, i = 0, 1,..., n. (4.12) j=0 Comparando (4.11) com (4.12), conclui-se que C i = 0,i = 0, 1,.., n, isto é, a identidade (4.10) só se verifica se todos os coeficentes C i se anularem simultaneamente. Logo, os polinómios de Lagrange são linearmente independentes, e formam, portanto uma base em P n. Sendo assim, dada uma tabela de valores de uma certa função f nos pontos x i, o polinómio interpolador de f nesses pontos, P n, também pode ser representado (de uma única maneira) na forma n P n (x) = d j L j (x). (4.13) j=0 Resta-nos determinar o valor dos coeficientes d j nesta fórmula, o que é bastante fácil, dada a definição dos polinómios de Lagrange. Com efeito é fácil verificar que, para que o polinómio P n, dado por (4.13), seja o polinómio interpolador de f, basta escolher d j = f(x j ),j = 0,..., n, isto é, tem-se P n (x) = n f(x j )L j (x). (4.14) j=0 112
Para provar a fórmula (4.14), basta recordar a definição dos polinómios de Lagrange. De facto, calculando P n em x i, pela fórmula (4.14), obtém-se P n (x i ) = n f(x j )L j (x i ) = f(x i )L i (x i ) = f(x i ), i = 0, 1,..., n. (4.15) j=0 A igualdade (4.15), verificada em todos os nós x i, comprova que o polinómio P n, definido por (4.14), é o polinómio interpolador de f nestes nós. A fórmula (4.14) é conhecida como a fórmula interpoladora de Lagrange, sendo os polinómios de Lagrange definidos por (4.8). 4.1.3 Escolha dos nós de interpolação Por vezes, ao resolver um problema, dispomos de mais informação do que a estritamente necessária para aplicar um determinado método. Por exemplo, se quisermos aproximar uma função por um polinómio de grau 2 e conhecermos os seus valores em quatro pontos, é óbvio que teremos de descartar um dos pontos. São possíveis vários critérios para a selecção de pontos. Em primeiro lugar, se a função considerada apresentar uma ou mais descontinuidades, faz sentido aproximá-la por troços. Isto é, se por exemplo ela for descontínua em x = 0, a interpolação deve ser feita separadamente para valores de x positivos e negativos. Não faria sentido aproximar uma tal função usando dois nós de sinais opostos. Se não for este o caso, isto é, se a função a interpolar for contínua em todo o domínio considerado, então o critério mais comum para a escolha dos nós de interpolação é a proximidade. Isto é, se quisermos aproximar a função num certo ponto x, devem escolher-se primeiro os dois pontos mais próximos de x, sendo os pontos seguintes escolhidos pelo mesmo critério. Embora o erro de interpolação, como veremos mais adiante, dependa de vários factores, na ausência de outras informações sobre a função, esta é a melhor escolha possível para o minimizar. No final do capítulo da interpolação, refrir-nosemos a outros possíveis critérios de escolha dos pontos, relacionados com a minimização do erro de interpolação. Exemplo 4.1. Consideremos a função f, dada pela tabela 4.1. O nosso objectivo é obter valores aproximados de N(15) (valor da população no instante t = 15), por interpolação polinomial, aplicando a fórmula interporadora de Lagrange. 1. Obter um valor aproximado de N(15), por interpolação linear. 113
Resolução. Para aplicar interpolação linear (isto é, por um polinómio de grau não superior a 1) devemos considerar os valores de N em dois pontos. De acordo com o que ficou dito, neste caso os pontos deverão ser os nós mais próximos de x = 15: x 0 = 14 e x 1 = 16. Note-se que a ordem dos pontos escolhidos é arbitrária, não influindo no resultado da interpolação. Seja então P 1 o polinómio que interpola N em x 0 e x 1. Para o calcularmos, começamos por construir os respectivos polinómios de Lagrange. De acordo com a fórmula (4.8), temos L 0 (x) = x x 1 = x 16 x 0 x 1 2, L 1(x) = x x 0 = x 14. (4.16) x 1 x 0 2 Então, de acordo com a fórmula interpoladora de Lagrange, temos P 1 (x) = f(x 0 )L 0 (x) + f(x 1 )L 1 (x) = 22 x 16 2 Logo, a aproximação procurada é P 1 (15) = 11 + 9 = 20. + 18 x 14. (4.17) 2 2. Obter uma nova aproximação de N(15), por interpolação quadrática. Resolução. Neste caso, são necessários 3 nós de interpolação. Usando de novo o critério de proximidade, o terceiro ponto a considerar é x 2 = 12. Os polinómios de Lagange correspondentes são L 0 (x) = (x x 1)(x x 2 ) (x 0 x 1 )(x 0 x 2 ) = (x 16)(x 12) ( 2)(2), L 1 (x) = (x x 0)(x x 2 ) (x 1 x 0 )(x 1 x 2 ) = (x 14)(x 12) (2)(4), L 2 (x) = (x x 0)(x x 1 ) (x 2 x 0 )(x 2 x 1 ) = (x 14)(x 16) ( 2)( 4). (4.18) Aplicando de novo a fórmula interpoladora de Lagrange, temos P 2 (x) = f(x 0 )L 0 (x) + f(x 1 )L 1 (x) + f(x 2 )L 2 (x) = 22 (x 16)(x 12) 4 + 18 (x 14)(x 12) 8 + 15 (x 14)(x 16) 8. (4.19) Logo, a aproximação procurada é P 2 (15) = 22 3/4 + 18 3/8 + 15 ( 1/8) = 21.375. 3. Obter uma nova aproximação de N(15), usando todos os pontos da tabela. Resolução. Se usarmos todos os pontos da tabela, estaremos a fazer interpolação cúbica (de grau 3). Uma vez que, como já foi dito, a ordem dos pontos é irrelevante para o resultado, designemos x 3 = 10, 114
mantendo as designações dos restantes pontos de interpolação. polinómios de Lagange correspondentes, neste caso, são Os L 0 (x) = (x x 1)(x x 2 )(x x 3 ) (x 0 x 1 )(x 0 x 2 )(x 0 x 3 ) = (x 16)(x 12)(x 10) ( 2)(2)(4), L 1 (x) = (x x 0)(x x 2 )(x x 3 ) (x 1 x 0 )(x 1 x 2 )(x 1 x 3 ) = (x 14)(x 12)(x 10) (2)(4)(6), L 2 (x) = (x x 0)(x x 1 )(x x 3 ) (x 2 x 0 )(x 2 x 1 )(x 2 x 3 ) = (x 14)(x 16)(x 10) ( 2)( 4)2, L 3 (x) = (x x 0)(x x 1 )(x x 2 ) (x 3 x 0 )(x 3 x 1 )(x 3 x 2 ) = (x 14)(x 16)(x 12) ( 2)( 6)( 4). (4.20) Neste caso, aplicando a fórmula interpoladora de Lagrange, temos 22 (x 16)(x 12)(x 10) 16 P 3 (x) = f(x 0 )L 0 (x) + f(x 1 )L 1 (x) + f(x 2 )L 2 (x) + f(x 3 )L 3 (x) = + 18 (x 14)(x 12)(x 10) 48 + 15 (x 14)(x 16)(x 10) 16 + 10 (x 14)(x 16)(x 12) 48. (4.21) Logo, a aproximação por interpolação cúbica é P 3 (15) = 22.1875. 4.1.4 Fórmula Interpoladora de Newton No exemplo anterior a fórmula interpoladora de Lagrange foi utilizada para calcular uma sucessão de aproximações do mesmo valor. Deste cálculo ressalta uma desvantagem da fórmula de Lagrange: cada vez que se determina uma nova aproximação, é necessário calculá-la do princípio, sem aproveitar nada dos cálculos efectuados anteriormente. Vamos agora estudar uma fórmula de cálculo alternativa, em que o polinómio interpolador de um certo grau é obtido como uma correcção do polinómio do grau anterior. Numa sucessão de cálculos como a que acabámos de efectuar, este método, conhecido como fórmula interpoladora de Newton, é nitidamente mais eficiente, diminuindo substancialmente o número total de operações aritméticas necessárias. Para estudar a fórmula interpoladora de Newton, comecemos por formular o seguinte problema. Seja P n o polinómio de grau menor ou a igual a n que interpola uma certa função f nos nós x 0,x 1,..,x n. Se à tabela considerada de f acrescentarmos mais um nó, x n+1, o resultado da interpolação passará a ser o polinómio P n+1, que interpola f também neste ponto. Vamos construir P n+1 a partir de P n. Comecemos por escrever P n+1 (x) = P n (x) + C n+1 (x). (4.22) Nesta fórmula, assumindo que P n+1 é diferente de P n, C n+1 é um polinómio de grau n + 1 (o mesmo grau de P n+1 ). Facilmente se verifica que as raizes 115
deste polinómio coincidem com os nós de interpolação x 0,x 1,...,x n. efeito, da igualdade (4.22) resulta imediatamente Com C n+1 (x i ) = P n+1 (x i ) P n (x i ) = f(x i ) f(x i ) = 0, i = 0, 1,... n. (4.23) Por conseguinte, C n+1 pode ser escrito na forma C n+1 (x) = A n (x x 0 )(x x 1 )... (x x n ), (4.24) onde A n não depende de x. Podemos então rescrever a fórmula (4.22) como P n+1 (x) = P n (x) + A n+1 (x x 0 )(x x 1 )... (x x n ). (4.25) O problema de calcular P n+1 ficou pois reduzido a determinar A n+1, uma constante que depende dos valores de f em x 0, x 1,...,x n. Note-se que, no caso de P n+1 (x) coincidir com P n (x) (o que acontece se tivermos P n (x n+1 ) = f(x n+1 )), resulta que A n+1 = 0. Se excluirmos este caso, P n+1 é um polinómio de grau n + 1, que se pode escrever na forma P n+1 (x) = A n+1 x n+1 +..., (4.26) ou seja, A n+1 é o coeficiente do termo em x n+1 (termo principal) de P n+1. Podemos assim introduzir a seguinte definição: Definição 4.2 Chama-se diferença dividida de ordem k da função f nos nós x 0, x 1,..., x k o coeficiente A k = f[x 0, x 1,..., x k ] do termo em x k do polinómio P k que interpola f nos nós considerados. Vamos deduzir agora uma fórmula para calcular as diferenças divididas. Para facilitar, comecemos por considerar as diferenças divididas de primeira ordem. Seja P 0 o polinómio que interpola f em x 0, P 0 (x) f(x 0 ). Sendo x 1 um novo ponto de interpolação, de acordo com a fórmula (4.25), o polinómio P 1, que interpola f em x 0 e x 1, é dado por P 1 (x) = P 0 (x) + A 1 (x x 0 ) = f(x 0 ) + A 1 (x x 0 ). (4.27) Neste caso, o valor de A 1 = f[x 0, x 1 ] (diferença dividida de f em x 0 e x 1 ) deduz-se facilmente a partir da condição P 1 (x 1 ) = f(x 1 ). De acordo com (4.27), obtém-se Assim, resulta que P 1 (x 1 ) = f(x 0 ) + A 1 (x 1 x 0 ) = f(x 1 ). (4.28) A 1 = f[x 0, x 1 ] = f(x 1) f(x 0 ) x 1 x 0. (4.29) 116
No caso de f(x 0 ) = f(x 1 ), temos A 1 = 0. Este é o único caso em que o polinómio P 1 coincide com P 0, ou seja, tem grau 0. Generalizando a fórmula (4.29) para quaisquer dois nós de interpolação x i, x j podemos escrever a fórmula da diferença dividida de primeira ordem: f[x i, x j ] = f(x j) f(x i ) x j x i. (4.30) Esta fórmula justifica a razão da designação diferença dividida. A diferença dividida de primeira ordem tem um significado geométrico simples: é o declive da recta que passa pelos pontos (x 0, f(x 0 )) e (x 1, f(x 0 )) (e que é também o gráfico do polinómio P 1 ). Para construir as diferenças divididas de ordem superior (correspondentes aos polinómios interpoladores de grau maior que um) torna-se necessário deduzir uma fórmula de recorrência. Suponhamos que é conhecido o polinómio P n, que interpola f em x 0, x 1,..., x n. Isto significa que é conhecida a diferença dividida f[x 0, x 1,..., x n ], já que ela é o coeficiente do termo principal de P n. Para construir o polinómio P n+1 precisamos de introduzir mais um nó de interpolação x n+1. Em geral, temos P n+1 (x n+1 ) = f(x n+1 ), mas P n (x n+1 ) f(x n+1 ), já que P n+1 interpola f neste ponto (ao contrário de P n ). 3 Vamos definir o polinómio auxiliar Q n do seguinte modo: Q n interpola f em x 1, x 2,..., x n+1. Logo, Q n é um polinómio de grau não superior a n, tal como P n, mas cujo termo termo principal tem o coeficiente f[x 1, x 2,..., x n+1 ]. Vamos mostrar que P n+1 pode ser obtido a partir de P n e Q n, através da fórmula P n+1 (x) = P n(x)(x n+1 x) + Q n (x)(x x 0 ) x n+1 x 0. (4.31) Para tanto, basta provar que P n+1 (x i ) = f(x i ), i = 0, 1,..., n + 1. Se i = 0, temos P n+1 (x 0 ) = f(x 0)(x n+1 x 0 ) x n+1 x 0 = f(x 0 ). (4.32) Por outro lado, se i {1, 2,..., n}, verifica-se P n+1 (x i ) = f(x i)(x n+1 x i ) + f(x i )(x i x 0 ) x n+1 x 0 = f(x i)(x n+1 x 0 ) x n+1 x 0 = f(x i ). (4.33) 3 Pode dar-se o caso de P n(x n+1) = f(x n+1). Nesse caso, P n+1 coincide com P n e a diferença dividida f[x 0, x 1,..., x n+1] é nula. 117
Finalmente, para i = n + 1, obtém-se P n+1 (x n+1 ) = f(x n+1)(x n+1 x 0 ) x n+1 x 0 = f(x n+1 ). (4.34) Com isto, acabamos de provar que P n+1, definido pela fórmula (4.31), é o polinómio que interpola f nos pontos x 0, x 1,..., x n+1. Por definição, a diferença dividida f[x 0, x 1,..., x n+1 ] é o coeficiente do termo principal deste polinómio. Assim, ela pode ser calculada através da fórmula f[x 0, x 1,..., x n+1 ] = f[x 0, x 1,..., x n ] + f[x 1, x 2,..., x n+1 ] x n+1 x 0, (4.35) onde, como já sabemos, f[x 0, x 1,..., x n ] é o coeficiente do termo principal de P n e f[x 1,..., x n+1 ] é o coeficiente do termo pricipal de Q n. Assim, a fórmula (4.35) permite-nos calcular uma diferença dividida de ordem n + 1 a partir de duas diferenças divididas de ordem n. Aplicando sucessivamente esta fórmula de recorrência, podemos calcular diferenças divididas de qualquer ordem (desde que, evidentemente, se diponha de valores suficentes da função f). Recapitulando, para construir o polinómio interpolador P n pela fórmula de Newton, num certo conjunto de nós, devemos proceder do seguinte modo: 1. Calcular as diferenças divididas de f nos pontos considerados, até à ordem n, com base na fórmula (4.35); 2. Determinar P 0 (x) f(x 0 ); 3. Obter os polinómios P 1, P 2,..., P n, através da aplicação sucessiva da fórmula (4.25), onde A n+1 representa uma diferença dividida da ordem correspondente. Este processo pode ser facilmente programado e realizado num computador. Quando os cálculos são efectuados manualmente, para facilitar, é costume representar as diferenças divididas numa tabela. Apresentamos a seguir um exemplo. Exemplo 4.2 Construir a tabela de diferenças divididas correspondente à tabela 4.1, ordenando os nós de interpolação segundo a sua proximidade ao ponto x = 4 (á semelhança do exemplo 4.1). Resolução. Uma tabela de diferenças divididas tem a forma de um triângulo e a sua construção começa sempre pela base, que neste caso, consiste em duas colunas que contêm os dados do problema: uma com os valores de x i, e outra, com os de f(x i ) = f i. Na coluna seguinte, são calculadas 118
as diferenças divididas de primeira ordem. No caso concreto da tabela 4.1, temos 4 pontos, logo podemos calcular três destas diferenças: f[x 0, x 1 ] = f 1 f 0 x 1 x 0 f[x 1, x 2 ] = f 2 f 1 x 2 x 1 f[x 2, x 3 ] = f 3 f 2 x 3 x 2 = 18 22 16 14 = 2. = 15 18 12 16 = 3 4. = 10 15 10 12 = 5 2. Segue-se a coluna com as diferenças de segunda ordem: f[x 0, x 1, x 2 ] = f[x 1,x 2 ] f[x 0,x 1 ] x 2 x 0 = 11 8. f[x 1, x 2, x 3 ] = f[x 2,x 3 ] f[x 1,x 2 ] x 3 x 1 = 7 24. Finalmente, o vértice do triângulo é constituído pela diferença dividida de terceira ordem: f[x 0, x 1, x 2, x 3 ] = f[x 1, x 2, x 3 ] f[x 0, x 1, x 2 ] x 3 x 0 = 13 48. (4.36) O aspecto gráfico da tabela é o seguinte x i f i ordem1 ordem2 ordem3 14 22 2 16 18 11 8 3 4 13 48 12 15 7 24 5 2 10 10 A localização de cada entrada da tabela sugere-nos a maneira como ela se calcula: o numerador da fracção da fórmula (4.35) é a diferença entre as duas entradas adjacentes da coluna anterior; o denominador dessa fracção é a diferença entre os extremos da base do triângulo cujo vértice se encontra na entrada a calcular. Exemplo 4.3 Obter aproximaçãoes de N(15) por interpolação linear, quadrática e cúbica, recorrendo à fórmula interpoladora de Newton. Resolução. A tabela de diferenças divididas para este problema já foi calculada no exemplo anterior. Logo, para calcular as aproximações pedidas, basta utilizar sucessivamente a fórmula (4.25). Para começar P 0 (x) f(x 0 ) = 22. Logo, aplicando a fórmula (4.25) com n = 0 obtém-se o polinómio interpolador de primeiro grau: P 1 (x) = P 0 (x) + f[x 0, x 1 ](x x 0 ) = 22 2(x 14). (4.37) 119
ano 1991 1992 1993 1994 2004 2010 P 6.5 220 320 415 792.5 996.85 S 200 222.5 237 246.5 374 475 Table 3: P - valor médio das propinas das licenciaturas (em euros), S- salário mínimo nacional (em euros) Utilizando este polinómio, obtém-se a aproximação por interpolação linear: N(15) P 1 (15) = 22 2(15 14) = 20. (4.38) Aplicando agora a fórmula (4.25) com n = 1 obtém-se o polinómio interpolador de segundo grau: P 2 (x) = P 1 (x)+f[x 0, x 1, x 2 ](x x 0 )(x x 1 ) = 22 2(x 14) 11/8(x 14)(x 16). (4.39) Usando este polinómio, obtém-se agora a aproximação por interpolação quadrática: N(15) P 2 (15) = 20 11/8(15 14)(15 16) = 171/8 = 21.375. (4.40) Finalmente, para obter o polinómio interpolador de grau 3, aplica-se a mesma fórmula com n = 2: P 3 (x) = P 2 (x) + f[x 0, x 1, x 2, x 3 ](x x 0 )(x x 1 )(x x 2 ) = 22 2(x 14) 11/8(x 14)(x 16) 13/48(x x 0 )(x x 1 )(x x 2 ). (4.41) Obtém-se assim a aproximação por interpolação cúbica: N(15) P 3 (15) = 21.375 13/48(15 14)(15 16)(15 12) = 22.1875. (4.42) Exemplo 4.4. Na tabela 3, é dada a evolução do valor médio das propinas das Licenciaturas em Portugal, no período entre 1991 e 2010, bem como da evolução do salário mínimo nacional no mesmo período. Para simplificar, quando nos referimos às propinas no ano lectivo N/N + 1, consideramos que as mesmas correspondem ao ano N. Vamos ilustrar a aplicação da interpolação polinomial com alguns cálculos baseados nesta tabela. 1. Em primeiro lugar, vamos responder à seguinte questão: será que a evolução do valor das propinas entre 1991 e 1994 permitia prever o valor que elas iriam atingir em 2004 e em 2010? Responderemos a esta pergunta por etapas. 120
(a) Utilizando interpolação quadrática e aplicando a fórmula de Newton, obter uma estimativa do valor das propinas em 2004, ou seja P (2004) (baseado apenas nos valores das propinas em anos anteriores). Resolução. Para realizar interpolação quadrática, devemos basearnos nos valores da função P em 3 anos anteriores a 2004; como devemos escolher os 3 anos mais próximos de 2004, temos 1992, 1993 e 1994. Calculemos as diferenças divididas: P [1992, 1993] = (P (1993) P (1992))/(1993 1992) = 100, P [1993, 1994] = (P (1994) P (1993))/(1994 1993) = 95, P [1992, 1993, 1994] = (P [1993, 1994] P [1992, 1993])/(1994 1992) = 2.5. Aplicando a fórmula interpoladora de Newton, tem-se: P 2 (t) = P (1992)+P [1992, 1993](t 1992)+P [1992, 1993, 1994](t 1992)(t 1993). Finalmente, substituindo t pelo ano em causa, 2004, obtém-se P 2 (2004) = 1090. (b) Aplicando de novo a fórmula de Newton,obtenha uma estimativa de P (2010), também por interpolação quadrática. Resolução. Para realizar interpolação quadrática, neste caso, devemos basear-nos nos valores da função P nos 3 anos mais recentes, anteriores a 2010: 1993, 1994 e 2004. Calculemos as diferenças divididas: P [1994, 2004] = (P (2004) P (1994))/(2004 1994) = 37.76; P [1993, 1994, 2004] = (P [1994, 2004] P [1993, 1994])/(2004 1993) = 5.20364. Aplicando a fórmula interpoladora de Newton, tem-se: Q 2 (t) = P (1993)+P [1993, 1994](t 1993)+P [1993, 1994, 2004](t 1993)(t 1994). Finalmente, substituindo t pelo ano em causa, 2010, obtém-se Q 2 (2010) = 519.611. 121
(c) Compare as estimativas obtidas com os valores reais dados na tabela. Resolução. A primeira estimativa, comparada com o valor de P (2004) = 792.5, tem um erro por excesso de 297.5, enquanto que a segunda, comparada o valor de P (2010) = 996.85, tem um erro por defeito de 273.5. Erros tão significativos não são de estranhar, já que neste caso estamos a fazer uma extrapolação, isto é, estamos a basear-nos em valores da função P em certos intervalos para obter estimativas do valor dessa função em pontos exteriores a esses intervalos. 2. Utilizando interpolação cúbica, e com base na mesma tabela, que previsão se pode fazer para o valor das propinas em 2012? Resolução. Para realizar interpolação cúbica, neste caso, devemos basear-nos nos valores da função P nos 4 anos tabelados anteriores a 2012: 1993, 1994, 2004 e 2010. Vamos aproveitar as diferenças divididas que já calculamos: as que não envolvem 2010. Além disso, preciso de calcular mais três diferenças: P [2004, 2010] = (P (2010) P (2004))/(2010 2004) = 34.0417; P [1994, 2004, 2010] = (P [2004, 2010] P [1994, 2004])/(2010 1994) = 0.232396. P[1993,1994,2004,2010]=(P[1994,2004,2010]-P[1993,1994,2004])/(2010-1993)=0.292426. Aplicando a fórmula interpoladora de Newton, temse: P 3 (t) = Q 2 (t)+p [1993, 1994, 2004, 2010](t 1993)(t 1994)(t 2004). Finalmente, substituindo t pelo ano em causa, 2012, obtém-se P 3 (2012) = 1145.43. Nas restantes perguntas desta série sugere-se que use a fórmula interpoladora de Lagrange. 3. Atendendo a que a razão P/S é um importante índice sobre o grau de acesso ao ensino superior, analise a evolução desta razão a partir da tabela dada e, por interpolação quadrática, obtenha uma previsão do valor que esse índice atingirá em 2012. 122
Resolução. Comecemos por calcular as razões P/S nos anos considerados: P (1991)/S(1991) = 0.0325, P (1992)/S(1992) = 0.988764, P (1993)/S(1993) = 1.35021, P (1994)/S(1994) = 1.68357, P (2004)/S(2004) = 2.11925, P (2010)/S(2010) = 2.09863. Ou seja, durante o período considerada o valor das propinas passou de cerca de 3 por cento para mais do dobro do valor do salário mínimo. Para fazer a interpolação pedida, tenhamos em conta os três últimos valores da tabela, correspondentes a t 0 = 1994, t 1 = 2004 e t 2 = 2010. Os polinómios de Lagrange para estes pontos são: l 0 (t) = (t t 1)(t t 2 ) (t 0 t 1 )(t 0 t 2 )) = (t 2004)(t 2010) (1994 2004)(1994 2010), l 1 (t) = (t t 0)(t t 2 ) (t 1 t 0 )(t 1 t 2 )) = (t 1994)(t 2010) (2004 1994)(2004 2010), l 2 (t) = (t t 0)(t t 1 ) (t 2 t 0 )(t 2 t 1 ) = (t 1994)(t 2004) (2010 1994)(2010 20004). Para construir o polinómio interpolador, basta então usar a fórmula: Π 2 (t) = P (t 0 )/S(t 0 )l 0 (t) + P (t 1 )/S(t 1 )l 1 (t) + P (t 2 )/S(t 2 )l 2 (t) = = 1.68357l 0 (t) + 2.11925l 1 (t) + 2.09863l 2 (t). Finalmente, para responder à pergunta, basta calcular Π 2 (2012) = 2.04475. 4. Com base na evolução do salário mínimo nacional, obtenha, por interpolação quadrática, uma previsão do salário mínimo nacional em 2012. Resolução. Aproveitando os polinómios de Lagrange já calculados, podemos escrever a seguinte fórmula para o polinómio S 2, que interpola a função S(t) em 1994, 2004 e 2010: S 2 (t) = S(1994)l 0 (t) + S(2004)l 1 (t) + S(2010)l 2 (t). Substituíndo então t por 2012, obtém-se a previsão pedida: S 2 (2012) = 512.75. 123
5. Com base nas respostas às duas últimas alíneas, obtenha uma nova previsão do valor das propinas em 2012 e compare com a previsão obtida na alínea 2. Resolução. Neste caso, baseamo-nos na previsão do valor do salário S 2 (2012) e na da relação propinas/salário para o mesmo ano Π 2 (2012) = 2.04475. Nesse caso, obtém-se P (2012) = S 2 (2012)Π 2 (2012) = 1048.45. 6. Admitindo agora que o valor das propinas é uma função do salário mínimo nacional, obtenha, por interpolação quadrática e cúbica, estimativas do valor das propinas quando o salário mínimo nacional atingir 500 euros. Resolução. Neste caso, devemos considerar a seguinte tabela: P (237) = 320,P (246.5) = 420,P (374) = 792.5 e P (475) = 976.85. Para obter as estimativas pedidas, é necessário interpolar essa tabela. No caso da interpolação quadrática, utilizam-se os 3 últimos valores de P (aqueles cuja abcissa é mais próxima de 500). Representando por P 2 o polinómio interpolador correspondente (que se pode obter por qualquer uma das fórmulas já utilizadas) obtém-se P 2 (2012) = 1034.46. No caso da interpolação cúbica, utilizam-se todos os pontos da tabela acima representada. Neste caso obtém-se 4.1.5 Erro de Interpolação P 3 (2012) = 1193.04. Nesta secção vamos debruçar-nos sobre o erro de interpolação. Chama-se erro de interpolação à diferença e n (x) = f(x) P n (x), (4.43) onde P n é o polinómio que interpola f em n+1 pontos (x 0, x 1,..., x n.) Este estudo permite-nos, entre outras coisas, decidir qual o grau do polinómio interpolador que melhor aproxima a função considerada num certo ponto. Para começar, assumindo que se pretende aproximar f num certo intervalo [a, b] (ao qual pertencem os nós de interpolação), seja x um ponto genérico deste intervalo. Naturalmente, se x coincidir com um dos nós de 124
interpolação x i teremos e n ( x) = e n (x i ) = f(x i ) P n (x i ) = 0. Suponhamos agora que x não é nenhum dos nós. Para avaliar e n ( x), neste caso, vamos construir o polinómio P n+1 que interpola f em x 0, x 1,..., x n, x. De acordo com a fórmula inerpoladora de Newton, temos Em particular, P n+1 (x) = P n (x) + f[x 0, x 1,..., x n, x] P n+1 ( x) = P n ( x) + f[x 0, x 1,..., x n, x] n (x x i ). (4.44) i=0 n ( x x i ). (4.45) Visto que, por construção, P n+1 ( x) = f( x), temos e n ( x) = P n+1 ( x) P n ( x). Logo, de (4.45) resulta que e n ( x) = P n+1 ( x) P n ( x) = f[x 0, x 1,..., x n, x] i=0 n ( x x i ). (4.46) Visto que x é um ponto genérico de [a, b], a fórmula (4.46) pode ser utilizada para estimar o erro de interpolação em qualquer ponto deste intervalo. Contudo, esta fórmula não é facilmente aplicável, já que a estimativa do erro que ela proporciona depende depende de f[x 0, x 1,..., x n, x], grandeza que geralmente não é conhecida (aliás, em geral, nem a função f é supostamente conhecida no ponto x). Assim, para que a fórmula (4.46) possa ter alguma utilidade prática, é necessário relacionar as diferenças divididas de uma função f com as suas derivadas (assumindo que estas são conhecidas). No caso de n = 1 existe uma relação simples entre as diferenças divididas de uma função e a sua primeira derivada. De facto, se f for uma função continuamente diferenciável em [x 0, x 1 ], de acordo com o teorema de Lagrange, verifica-se f[x 0, x 1 ] = f(x 1) f(x 0 ) x 1 x 0 = f (ξ), (4.47) onde ξ [x 0, x 1 ]. Surge naturalmente a pergunta: será que existe uma relação semelhante entre as difernças divididas de uma certa ordem k e a derivada de f da mesma ordem? A resposta a esta pergunta é positiva e é dada pelo seguinte teorema, que constitui uma generalização do teorema de Lagrange. Teorema. Seja f C k ([a, b]) uma função dada e sejam x 0, x 1,..., x k um conjunto de k + 1 pontos distintos de [a, b](k 1). Então existe ξ [a, b] i=0 125
tal que Demonstração. Seja f[x 0, x 1,..., x k ] = f (k) (ξ). (4.48) k! e k (x) = f(x) P k (x) (4.49) o erro de interpolação de f por P k, onde P k representa o polinómio interpolador de f em x 0, x 1,..., x k. Por definição, temos e k (x i ) = 0, i = 0, 1,..., k, (4.50) ou seja, e k tem, pelo menos, k + 1 zeros distintos em [a, b]. Além disso, e k tem k derivadas contínuas em [a, b], segundo resulta das condições do teorema. Aplicando k vezes o teorema de Rolle, conclui-se que e (k) k se anula, pelo menos, uma vez em [a, b]. Logo, existe ξ [a, b], tal que e (k) k (ξ) = 0. Mostremos que para este ponto ξ é válida a igualdade (4.48). Com efeito, pela definição de diferença dividida de ordem k, temos e (k) k (ξ) = f (k) (ξ) P (k) k (ξ) = f (k) (ξ) k!f[x 0,..., x k ] = 0. (4.51) De (4.51) resulta que f[x 0, x 1,..., x k ] = f (k) (ξ), (4.52) k! como se pretendia demonstrar. Da igualdade (4.52) resulta imediatamente que f[x 0, x 1,..., x k ] 1 k! max x [a,b] f (k) (x). (4.53) Combinando esta fórmula com (4.46) obtém-se que e n (x) = f[x 0, x 1,..., x n, x] n x x i i=0 1 (n + 1)! max x [a,b] f (n+1) (x) n x x i. (4.54) Exemplo 4.5. Suponhamos que se aproxima a função f(x) = cos(x) no intervalo [ 1, 1] por um polinómio interpolador nos nós x 0 = 1, x 1 = 0, x 2 = 1. 1. Determine o polinómio interpolador P 2 (x). i=0 126
A fim de aplicar a fórmula interpoladora de Newton, comecemos por calcular as diferenças divididas de f: f[x 0, x 1 ] = cos(x 1) cos(x 0 ) x 1 x 0 = 1 cos( 1); f[x 1, x 2 ] = cos(x 2) cos(x 1 ) x 2 x 1 = cos(1) 1. f[x 0, x 1, x 2 ] = f[x 1, x 2 ] f[x 1, x 2 ] = 2 cos(1) 2 = cos(1) 1. x 2 x 0 2 De acordo com a fórmula (4.25), o poli nómio interpolador é dado por: P 2 (x) = f( 1) + f[ 1, 0](x + 1) + f[ 1, 0, 1](x + 1)x = cos( 1) + (1 cos( 1))(x + 1) + (cos(1) 1)(x + 1)x. (4.55) 2. Determine um majorante de e 2 ( x) sendo x [ 1, 1]. De acordo com (4.54), temos Além disso, Por conseguinte, e 2 (x) 1 3! max f (3) (x) x + 1 x x 1. x [ 1,1] max f (3) (x) = max sin(x) = sin(1). x [ 1,1] x [ 1,1] e 2 (x) sin(1) x + 1 x x 1. (4.56) 3! 3. Determine um majorante do máximo de erro de interpolação no intervalo [ 1, 1]. Pretende-se majorar max x [ 1,1] e 2 ( x). Para isso, baseando-nos na resposta anterior, basta obter max ω( x), x [ 1,1] onde ω(x) = x(x 1)(x + 1) = x 3 x. 127
0.05 0.04 0.03 0.02 0.01 1.0 Figure 14: Gráfico relativo ao Exemplo 4.5. O erro de interpolação absoluto de facto cometido está representado a preto. A cinzento está representado o majorante do erro dado pela fórmula (4.56). Para determinar os pontos de extremo de ω(x) resolve-se a equação ω (x) = 3x 2 1 = 0, a qual tem duas raizes: y 1 = 1 3, y 2 = 1 3. É fácil verificar que a primeira destas raizes corresponde a um máximo local de ω, enquanto a segunda, a um mínimo local. Por outro lado, sendo ω uma função ímpar, facilmente se deduz que o mínimo local é o simétrico do máximo local. Concluíndo, temos max ω( x) = ω(y 1) = ω(y 2 ) = y 2 (y 2 1)(y 2 +1) = 2 x [ 1,1] 3 3. (4.57) Finalmente, combinando (4.56) com (4.57), obtém-se max e 2( x) sin(1) x [ 1,1] 3! max x [ 1,1] ω( x) = sin(1) 3! 2 3 3 0.054 (4.58) Este exemplo é ilustrado pela Fig. 14. 4.2 Método dos Mínimos Quadrados A interpolação polinomial, estudada na secção anterior, tem o inconveniente de ser extremamente sensível a erros nos dados iniciais. Na realidade, a matriz de Vandermonde, de que falámos na Sec. 4.1.1 torna-se mal condicionada com o aumento de n, podendo o seu número de condição atingir valores muito elevados, mesmo para valores de n não muito altos. Isto 128
significa que um pequeno desvio num dos valores de f pode resultar num polinómio interpolador totalmente diferente. Esta propriedade é altamente indesejável para as aplicações, já que na vida real é frequente trabalharmos com tabelas de valores que são afectados de erros (resultantes de medições ou de arredondamentos). Por outro lado, como foi observado quando estudámos o erro de interpolação, este erro pode, nalgun casos, aumentar com o aumento do grau do polinómio (recorde-se o exemplo de Runge). Tudo isto nos alerta para o facto de que a interpolação polinomial pode não ser, nalguns casos, uma boa forma de aproximar funções, sobretudo quando o número de dados é elevado. Nesta secção, vamos estudar um método alternativo para aproximação de funções. o método dos mínimos quadrados. Entre as vantagens deste método contam-se: 1) permmitir uma grande variedade de funções ajustadoras, sem que a forma da função dependa do número de dados; 2) ser menos sensível aos erros dos dados (em comparação com a interpolação); 3) com o aumento do número de dados, a qualidade da aproximação tende a aumentar. Por outro lado, a soma dos quadrados dos desvios, sendo o critério para a escolha da função ajustadora, constitui um índice para avaliar a qualidade da aproximação. Na próxima secção iremos descrever o método dos mínimos quadrados, com ajustamentos lineares, no caso discreto. Nas secções seguintes abordaremos ajustamentos não lineares e o caso contínuo. 4.2.1 Ajustamentos lineares no caso discreto O caso discreto caracteriza-se pela forma como é dada a função a aproximar: através de uma tabela de pontos (tal como no caso da interpolação polinomial). Seja pois f i = f(x i ) o valor de f no ponto x i (i = 0, 1,..., n). O nosso objectivo é construir uma função g de uma certa foma (dita a função ajustadora), definida num intervalo que contém esses pontos e que constiui, num certo sentido, a melhor aproximação de f entre as funções da forma considerada. A função ajustadora depende de um certo número de parâmetros, que representaremos genericamente por a 0,a 1,...,a m. No caso dos ajustamentos lineares, de que trataremos em primeiro lugar, a função ajustadora pertence a um espaço linear de dimensão m + 1, podendo ser escrita na forma m g(x) = a i φ i (x), (4.59) i=0 onde φ são funções dadas, chamadas as funções de base. Essas funções devem estar definidas em todos os pontos x i e devem, além disso, ser linear- 129
mente independentes, no seguinte sentido. Se fizermos corresponder a cada função φ i um vector φ i tal que φ i = (φ i (x 0 ),..., φ i (x n )), os vectores φ i são linearmente independentes em IR n+1,i = 0,..., m. Nos problemas da vida real as funções de base são escolhidas de acordo com as propriedades conhecidas da função a aproximar. Exemplo 4.6. Se a função a aproximar for uma função linear, então as funções de base deverão ser φ 0 (x) = 1,φ 1 (x) = x, de tal modo que o espaço linear onde se procura a função ajustadora é o espaço das funções da forma g(x) = a 0 + a 1 x, ou seja, o dos polinómios de grau não superior a 1. Num contexto mais geral, se quisermos usar como função ajustadora um polinómio de grau m, então as funções de base a utilizar serão φ i (x) = x i, i = 0,..., m. Note-se que estas funções são linearmente independentes no sentido acima mencionado, quaisquer que sejam os pontos x i,i = 0, 1,..., n, já que os vectores φ i neste caso têm a forma φ i = (x i 0, xi 1,..., xi n), i = 0,..., m que formam sempre um sistema linearmente independente. Exemplo 4.7 No caso da aproximação de funções periódicas é comum também usarem-se bases de funções trigonométricas, como por exemplo φ 0 (x) = 1,φ i (x) = cos(ix),i = 0, 1,..., m. Com funções deste tipo, o sistema poderá ser ou não linearmente independente, consoante a escolha dos pontos x j e o número de funções de base. Se tivermos, por exemplo,x j = jπ/4, j = 0,.., 4, os vectores φ i neste caso têm a forma φ 0 = (1, 1, 1, 1, 1), phi i = (1, cos(i π/4), cos(2i π/4), cos(3i π/4) cos(i π)), o que garante que são linearmente independentes, para m 4. Uma vez escolhidas as funções de base, determinar a função ajustadora corresponde a determinar os coeficientes a i da fórmula (4.59). Estes coeficientes são determinados com base no critério dos mínimos quadrados, ou seja, de forma a minimizar a soma Q(a 0, a 1,..., a m ) = n (f(x i ) g(x i )) 2. (4.60) Visto que Q é uma função de m + 1 variáveis, a solução deste problema de minimização obtém-se resolvendo o sistema Q a 0 = 0, Q a 1 = 0,, (4.61)... Q a m = 0. dito o sistema normal. i=0 130
Para construir o sistema normal e discutir as suas propriedades, é conveneiente, antes de mais, introduzir a notação de produto interno. Para os nossos fins, o produto interno de duas funções u, v, definidas nos pontos x i da tabela é dado por n (u, v) = u(x i )v(x i ). (4.62) i=0 Nesta notação a função Q pode ser dada pelo produto Q(a 0, a 1,..., a m ) = (f g, f g). (4.63) Por outro lado, usando as propriedades do produto interno, as derivadas parciais de Q podem ser representadas do seguinte modo: ( ) Q (f g, f g) (f g) = = 2, f g. (4.64) a i a i a i Além disso, utilizando a expressão (4.59) para g, de (4.64) obtém-se ( Q = 2 m ) j=0 a jφ j, f g = 2(φ i, f g). (4.65) a i a i Sendo assim, cada uma das equações do sistema (4.61) pode ser escrita simplesmente na forma: ou seja, (φ i, f g) = 0, i = 0,..., m, (4.66) (φ i, g) = (φ i, f), i = 0,..., m. (4.67) Usando mais uma vez a represententação (4.59) e a propriedade distributiva do produto interno, obtém-se finalmente m a j (φ i, φ j ) = (φ i, f), i = 0,..., m, (4.68) j=0 que constitui a forma compacta do sistema normal. Conluímos assim que o sistema normal é um sistema linear de m + 1 equações lineares que pode ser escrito na forma (φ 0, φ 0 ) (φ 0, φ 1 )... (φ 0, φ m ) (φ 1, φ 0 ) (φ 1, φ 1 )... (φ 1, φ m )............ (φ m, φ 0 ) (φ m, φ 1 )... (φ m, φ m ) 131 a 0 a 1... a m = (φ 0, f) (φ 1, f)... (φ m, f). (4.69)
Este sistema tem solução única se e só se a sua matriz, que representaremos por S, for invertível. Pode provar-se (ver, por exemplo, [2]), que a inversibilidade da matriz S resulta do facto de as funções de base formarem um sistema linearmente independente, no sentido acima referido. Sendo assim, nessas condições,o sistema normal tem sempre solução única. Além disso, verifica-se facilmente que S é uma matriz simétrica, dado que S ij = (φ i, φ j ) = (φ j, φ i ) = S ji, i, j {0,..., m}. Isto facilita o cálculo de S, pois basta calcular as entradas da diagonal principal e as que se encontram acima delas. Vale a pena também referir que, nas condições dadas, S é uma matriz definida positiva. Em geral, o sistema (4.69) é resolvido numericamente usando, por exemplo, um dos métodos estudados no capítulo 3. O conhecimento das propriedades de S é pois útil para a escolha do método a aplicar. Uma das escolhas mais frequentes é o método de Cholesky, já que é aplicável a matrizes simétricas e definidas positivas. O exemplo seguinte ilustra a aplicação do método acima descrito. Exemplo 4.8 Consideremos a função f, dada pela seguinte tabela: x i 1 2 3 4 f i 7 4.5 3 2 Pretende-se aproximar f através de uma função ajustadora da forma g(x) = a 0 + a 1 x. Da forma da função ajustadora resulta que se trata de um ajustamento linear com duas funções de base: φ 0 (x) = 1, φ 1 (x) = x. Para resolver o problema, os valores de a 0 e a 1 devem ser obtidos pela resolução do sistema normal, que neste caso é um sistema de duas equações: [ ] [ ] [ ] (φ0, φ 0 ) (φ 0, φ 1 ) a0 (φ0, f) =. (4.70) (φ 1, φ 0 ) (φ 1, φ 1 ) (φ 1, f) Calculemos os produtos internos necessários: a 1 (φ 0, φ 0 ) = 3 φ 0 (x i ) 2 = 1 + 1 + 1 + 1 = 4; i=0 132
(φ 0, f) = (φ 1, f) = (φ 0, φ 1 ) = (φ 1, φ 1 ) = 3 i=0 3 i=0 φ 0 (x i )φ 1 (x i ) = 1 1 + 1 2 + 1 3 + 1 4 = 25 12 ; φ 1 (x i ) 2 = 1 1 + 1 2 2 + 1 3 2 + 1 4 2 = 205 144 ; 3 φ 0 (x i )f(x i ) = f(1) + f(2) + f(3) + f(4) = 16.5; i=0 3 i=0 φ 1 (x i )f(x i ) = f(1) + f(2) 2 + f(3) 3 Substituindo estes valores no sistema (4.70) obtém-se [ ] [ ] [ 4 25/12 a0 16.5 = 25/12 205/144 10.75 a 1 + f(4) 4 = 10.75. ]. (4.71) A solução do sistema (4.71) é a 0 = 0.8077,a 1 = 6.369, pelo que a função ajustadora procurada é g(x) = 0.8077 + 6.369 x. Para concluir este exemplo, vamos calcular o mínimo min Q(a 0, a 1 ) = min (a 0,a 1 ) IR 2 (a 0,a 1 ) IR 2 3 (f(x i ) g(x i )) 2 = i=0 3 (f(x i ) a 0 a 1 /x i ) 2. De acordo com os cálculos já efectuados, este mínimo é atingido quando a 0 = 0.8077,a 1 = 6.369, pelo que basta calcular Q(0.8077, 6.369). O resumo dos cálculos é apresentado na tabela que se segue. x i f i g(x i ) (f i g(x i )) 2 1 7 7.177 0.031 2 4.5 3.992 0.258 3 3 2.931 0.005 4 2 2.400 0.160 O valor procurado é a soma dos valores da última coluna da tabela: Q(0.8077, 6.369) = 0.454. Conforme resulta da definição do método, quaisquer que sejam a 0, a 1 IR verifica-se Q(a 0, a 1 ) 0.454. Este Exemplo é ilustrado pela Fig. 15. 133 i=0
7 6 5 4 3 2 1 Figure 15: Gráfico relativo ao Exemplo 4.8. Os pontos representam os valores de f e a linha contínua é o gráfico da função ajustadora. References [1] K.E. Atkinson, An Introduction to Numerical Analysis, John Wiley & sons, New York, 1978. [2] M. Carpentier,Análise Numérica, Secção de Folhas, IST, 1993. [3] M. Graça, P. Lima, Matemática Experimental, ISTPress, 2007. [4] P.Lima, Métodos Numéricos da Álgebra, disponível em www.math.ist.utl.pt/ plima/lmac/mna.pdf. [5] H. Pina, Métodos Numéricos, Mc Graw Hill, 1995. 134