DEPARTAMENTO DE ENGENHARIA MECÂNICA Matemática Computacional Colectânea de Exercícios Propostas de resolução Conceitos fundamentais Algoritmos básicos Gráficos ilustrativos Leonel Fernandes Miguel Matos Neves Virgínia Infante José Viriato Licenciaturas em Engenharia Mecânica, Engenharia Aeroespacial e Engenharia e Arquitectura Naval - Ano Lectivo 007/08
ÍNDICE TERMINOLOGIA v 1.1 NÚMEROS INTEIROS: Conversão da base b para a base 10.................... 1. NÚMEROS INTEIROS: Conversão da base b 1 para a base b....................3 NÚMEROS REAIS: Conversão da base 10 para a base b < 10................. 3.4 NÚMEROS REAIS: Conversão da base b 1 para a base b (b 1 10, b 10 e ambas )...................... 4.5 NÚMEROS REAIS: Conversão da base 10 para base b > 10.................. 6.6 SISTEMAS DE PONTO FLUTUANTE: Erros de representação, Unidade de arredondamento, Overflow e Underflow.................................... 7 3 11 3.1 ARITMÉTICA EM SISTEMAS FP: Cancelamento subtractivo......................... 11 3. FORMATO SIMPLES IEEE 754: Erros de representação........................... 14 3.3 FORMATO SIMPLES IEEE 754: Erros de representação e Operações 0/0 e 1/0.............. 17 4 19 4.1 CONDICIONAMENTO DE UMA FUNÇÃO.............. 19 4. CONDICIONAMENTO DE UMA FUNÇÃO E CANCELAMENTO SUBTRACTIVO.................. 0 4.3 INTERPOLAÇÃO POLINOMIAL: Formas de Lagrange e Newton...................... 4.4 INTERPOLAÇÃO POLINOMIAL: Algoritmo de Horner............................ 4 5 7 5.1 INTERPOLAÇÃO POLINOMIAL: Máximos e mínimos locais, Pontos de inflexão.............. 7
ii ÍNDICE 5. INTERPOLAÇÃO POLINOMIAL: Interpolação de Hermite, Nós duplos e diferença dividida confluente. 31 5.3 INTERPOLAÇÃO POLINOMIAL: Interpolação de Hermite, Nós triplos e diferença dividida confluente.. 33 6 35 6.1 INTERPOLAÇÃO POLINOMIAL: Spline quadrático.............................. 35 6. INTERPOLAÇÃO POLINOMIAL: Spline cúbico................................ 37 6.3 INTERPOLAÇÃO POLINOMIAL: Erros em splines cúbicos.......................... 41 7 43 7.1 DIFERENCIAÇÃO NUMÉRICA: Diferenças finitas de primeira e segunda ordens............. 43 7. DIFERENCIAÇÃO NUMÉRICA: Majorante do erro............................. 45 7.3 DIFERENCIAÇÃO NUMÉRICA: Espaçamento óptimo............................ 47 7.4 DIFERENCIAÇÃO NUMÉRICA: Ponto de inflexão.............................. 49 7.5 DIFERENCIAÇÃO NUMÉRICA: Espaçamento desigual........................... 54 8 57 8.1 INTEGRAÇÃO NUMÉRICA: Regras do trapézio simples e de Simpson simples e composta..... 57 8. INTEGRAÇÃO NUMÉRICA: Regra de Gauss-Legendre e de Gauss-Legendre-Lobatto........ 60 8.3 INTEGRAÇÃO NUMÉRICA: Regras de Gauss-Legendre e do trapézio composta........... 61 9 65 9.1 INTEGRAÇÃO NUMÉRICA: Dedução e grau de regras de integração................. 65 9. INTEGRAÇÃO NUMÉRICA: Regra do trapézio corrigida........................ 66 9.3 INTEGRAÇÃO NUMÉRICA: Regra de Simpson adaptativa iterativa.................. 68 10 75 10.1 DETERMINAÇÃO DE ZEROS DE EQUAÇÕES NÃO-LINEARES: Métodos da Bissecção, Falsa Posição e Secante............. 75 10. EQUAÇÕES NÃO-LINEARES: Método da Bissecção e zeros múltiplos.................. 79
ÍNDICE iii 10.3 EQUAÇÕES NÃO-LINEARES: Método da Falsa Posição.......................... 80 11 83 11.1 EQUAÇÕES NÃO-LINEARES: Natureza e localização de zeros de polinómios (metodologia)...... 83 11. EQUAÇÕES NÃO-LINEARES: Método de Newton-Raphson........................ 86 11.3 EQUAÇÕES NÃO-LINEARES: Método do Ponto Fixo. Localização de zeros de polinómios e aceleração de Aitken.................................. 88 1 95 1.1 SISTEMAS DE EQUAÇÕES LINEARES: Método de Gauss.............................. 95 1. SISTEMAS DE EQUAÇÕES LINEARES: Método de Gauss com escolha de pivot total............... 97 1.3 SISTEMAS DE EQUAÇÕES LINEARES: Método de Gauss com escolha de pivot parcial............. 101 13 107 13.1 SISTEMAS DE EQUAÇÕES LINEARES: Métodos de Doolittle e Crout. Factorização LU............. 107 13. SISTEMAS DE EQUAÇÕES LINEARES: Factorização LU. Cálculo do determinante............... 111 13.3 SISTEMAS DE EQUAÇÕES LINEARES: Método de Choleski e factorização LDL T................ 113 13.4 SISTEMAS DE EQUAÇÕES LINEARES: Método de Doolittle. Inversa, determinante e número de condição... 115 REFERÊNCIAS 119
TERMINOLOGIA Listamos seguidamente as principais abreviaturas, símbolos e notação matemática usados neste texto. No que respeita a matrizes e vectores, ambos são grafados a negro: os primeiros em maiúsculas e os segundos em minúsculas. Também incluímos uma tabela com as funções elementares, seus significados e respectivas expressões usadas pela maior parte das linguagens de cálculo científico, nomeadamente em MATLAB. Tabela de funções elementares SÍMBOLO SIGNIFICADO EXPRESSÃO exp x e x Exponencial de x exp(x) ln x log e x Logaritmo natural (base e) de x log(x) ou ln(x) cos x Co-seno de x cos(x) cosh x (e x + e x )/ Co-seno hiperbólico de x cosh(x) sin x sen x Seno de x sin(x) sinh x (e x e x )/ Seno hiperbólico de x sinh(x) tan x tg x Tangente de x tan(x) x x 1/ Raiz quadrada de x sqrt(x) x Valor absoluto de x abs(x)
TÓPICOS: Números Inteiros: Conversão da base b para a base 10; Conversão da base b 1 para a base b. Números Reais: Conversão da base 10 para a base b < 10; Conversão da base b 1 para a base b (b 1 10, b 10 e ambas ); Conversão da base 10 para base b > 10. Sistemas de Ponto Flutuante: Erros de representação, Unidade de arredondamento, Overflow e Underflow. LEITURAS RECOMENDADAS: Capítulo 1 (pp. 1 1) do livro [Pina(1995)].1 NÚMEROS INTEIROS: Conversão da base b para a base 10 Ache a representação decimal dos seguintes números inteiros: a) (101101) ; b) (1) 3 ; c) (47) 8 CONCEITOS TEÓRICOS Números inteiros positivos: Conversão da base b para a base 10 (exp. (1..), p. 4, [Pina(1995)]): (d n d n 1... d 1 d 0 ) b = d n b n + d n 1 b n 1 + + d 1 b 1 + d 0 b 0 com 0 d i < b 1, i = 0, 1,..., n. Assim, existem (n + 1) dígitos. RESOLUÇÃO a) d 0 (101101) = 1 5 + 0 4 + 1 3 + 1 + 0 1 + 1 0 = 3 + 8 + 4 + 1 = (45) 10 = 45 No MATLAB escrevemos bindec( 101101 ), resultando ans = 45. b) (1) 3 = 3 + 3 1 + 1 3 0 = 5 Para representar os inteiros de 0 a 10 necessitamos de quantos bits? Necessitamos de 4 bits ou 16 configurações, pois 3 < 10 < 4.
SEMANA No MATLAB escrevemos basedec( 1,3), resultando ans = 5. c) (47) 8 = 4 8 + 8 1 + 7 8 0 = 4 64 + 16 + 7 = 56 + 3 = 79 No MATLAB escrevemos basedec( 47,8), resultando ans = 79.. NÚMEROS INTEIROS: Conversão da base b 1 para a base b Obtenha a representação octal (base 8) dos números inteiros: a) (101001) ; b) (1000111) CONCEITOS TEÓRICOS Números inteiros positivos: Conversão da base 10 para a base b (p. 5, [Pina(1995)]): d n b n + d n 1 b n 1 + + d 1 b + d 0 b = d n b n 1 + d n 1 b n + + d 1 + d 0 b sendo d 0 o resto da divisão. RESOLUÇÃO a) Apresentamos duas resoluções alternativas: Resolução 1: Converter da base para a base 10 e posteriormente para a base octal, ou seja, (101001) ( ) 10 ( ) 8. ( ) ( ) 10 : Aplicamos a exp. (1..), p. 4, [Pina(1995)], pelo que (101001) = (41) 10 = 41. ( ) 10 ( ) 8 : (101001) = 41 = (51) 8, pois efectuamos as divisões (inteiras) e tomamos os restos na ordem inversa: 41 8 1 5 8 5 0 Resolução : Converter da base para a base n, com n e inteiro, através de agrupamentos de n dígitos. Neste caso n = 3, pois na base 8 temos os dígitos 0, 1,,..., 6, 7, que se representam na base como (000), (001), (010),..., (110), (111), respectivamente. Por outras palavras, necessitamos de 3 bits para representar os algarismos 0 a 7. Esquematicamente temos (101001) ( ) 8.
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 3 Assim, (101 001) ( + 0 0 ) 8 (5 1) 8, ou seja, (101001) = (51) 8 b) À semelhança do que fizemos na alínea a), obtemos Resolução 1: (1000111) ( 6 + + 1 + 0 ) 10 = 64 + 4 + + 1 = 71 71 8 7 8 8 0 1 8 1 0 (1000111) = (107) 8 Resolução : (001 000 111) ( 0 0 + 1 + 0 ) 8 (1 0 7) 8, ou seja (101001) = (107) 8.3 NÚMEROS REAIS: Conversão da base 10 para a base b < 10 Determine a representação binária do número real (0.5) 10. CONCEITOS TEÓRICOS Números reais: Conversão da base 10 para a base b (p. 7, [Pina(1995)]): Para converter um real da base 10 para a base b procede-se segundo 4 passos: i) Separar a parte inteira da parte não-inteira; ii) Converter a parte inteira; iii) Converter parte não-inteira, multiplicando sucessivamente por b, usando a componente não-inteira do resultado para continuar e guardando a parte inteira para a representação; iv) Reunir as duas partes. RESOLUÇÃO Aplicando os conceitos teóricos acima, teremos i) Parte inteira: 0; Parte não-inteira:.5 ii) Converter a parte inteira: (0) 10 = (0) iii) Converter parte não-inteira: 0.5 = 1.0 1 0.0 = 0. Portanto, obtemos (.1) como representação de (0.5) 10 = 1 iv) Reunindo vem (0.5) 10 = (0) + (.1) = (.1) Facilmente de verifica que (0.1) = 0 0 + 1 1 = 1 = (0.5) 10
4 SEMANA.4 NÚMEROS REAIS: Conversão da base b 1 para a base b (b 1 10, b 10 e ambas ) Dado o número real 437.15 na base octal, determine a sua representação binária com 7 dígitos após a vírgula. CONCEITOS TEÓRICOS Ver pp. 7 8, [Pina(1995)] e resolução do Exercício.3. Números reais: Conversão da base b para a base 10 (exp. (1.3.), p. 7, [Pina(1995)]): (d n d n 1... d 1 d 0.d 1 d... d k ) b =d n b n + d n 1 b n 1 + + d 1 b 1 + d 0 b 0 +d 1 b 1 + d b + + d k b k, sendo (d n d n 1... d 1 d 0 ) b e (d 1 d... d k ) b os dígitos das parte inteira e não-inteira do número, respectivamente. RESOLUÇÃO Este Exercício pode ser resolvido de duas formas, indicadas de seguida. Resolução 1: Esquematicamente, temos dois passos principais (437.15) 8 ( ) 10 ( ) Conversão da base octal para a base 10: Aplica-se a exp. (1.3.), p. 7, [Pina(1995)], ou seja 4 8 + 3 8 1 + 7 8 0 + 1 8 1 + 8 + 5 8 3 = 87 + 0.16601565 = 87.16601565 Dado que devemos considerar somente 7 dígitos após a vírgula (437.15) 8 87.1660156. Conversão da base 10 para a base binária: i) Parte inteira: 87; Parte não-inteira:.1660156 ii) Converter a parte inteira:
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 5 87 1 143 1 71 1 35 1 17 1 8 0 4 0 0 1 1 0 87 = (100011111) iii) Converter a parte não-inteira: 0.1660156 = 0.33031 0 0.33031 = 0.664064 0 0.664064 = 1.38148 1 0.38148 = 0.656496 0 0.656496 = 1.31499 1 0.31499 = 0.649984 0 0.649984 = iv) (0.15) 8 = (0.0010101...) (437.15) 8 = (100011111.0010101...) Considerando 7 dígitos após a vírgula, o resultado é (437.15) 8 (100011111.0010101) Resolução : Uma vez que necessitamos de 3 bits para representar os números 0 a 7 (ver Resolução do Exercício.), cada dígito do número (437.15) 8 corresponde a um grupo de 3 dígitos (3 bits) na base. Assim, (437.15) 8 = (4 3 7. 1 5) 8 (100 011 111. 001 010 101) Como são pedidos 7 dígitos após a vírgula, ficamos com (437.15) 8 (100011111.0010101) Verificação da parte não-inteira: (.0010101) = 1 3 + 1 5 + 1 7 = 0.164065. Existe então um erro na representação da parte não-inteira, que deveria ser 0.16601565. Isto deve-se a termos truncado após o dígito d 7, quando seriam necessários 9 dígitos.
6 SEMANA.5 NÚMEROS REAIS: Conversão da base 10 para base b > 10 Dado o número real 539.15 na base decimal, achar a sua representação na base hexadecimal. CONCEITOS TEÓRICOS Quando a base é tal que b > 10, há que recorrer a outros símbolos para representar os dígitos 10, 11, 1,... Uma possibilidade é recorrer às letras do alfabeto latino A, B, C,... No caso da base hexadecimal ou base 16, resulta, 0, 1,..., 9, A, B, C, D, E, F, correspondendo as letras aos dígitos A = 10, B = 11, C = 1, D = 13, E = 14, F = 15. Após esta ressalva, a conversão da base 10 para a base b > 10 processa-se segundo os quatro passos referidos nos Conceitos Teóricos do Exercício.3. RESOLUÇÃO Esquematicamente (539.15) 10 ( ) 16 i) Parte inteira: 539; Parte não-inteira:.15 ii) Converter a parte inteira: 539 16 59 33 16 11 1 16 0 539 = (1B) 16 iii) Converter a parte não-inteira: 0.15 16 =.0 0.000 16 = 0.0 0 (0.15) 10 = (0.) 16 iv) Reunindo a parte inteira à parte não-inteira fica (539.15) 10 = (1B.) 16 obtendo-se uma representação exacta.
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 7.6 SISTEMAS DE PONTO FLUTUANTE: Erros de representação, Unidade de arredondamento, Overflow e Underflow Considere os sistemas de ponto flutuante F P (10, 5,, A) e F P (10, 5,, T ). a) Represente o número 37.58 nesses sistemas. b) Qual o maior número em módulo representável nesses sistemas? c) Qual o menor número em módulo representável nesses sistemas? c) Calcule os erros relativos de representação e compare-os com as respectivas unidades de arredondamento. CONCEITOS TEÓRICOS Um sistema F P (b, p, q) é constituído por todos os números reais x da forma ([Pina(1995)], pp. 9-10) x = ±mb t e ainda x = 0. Portanto, em que b 1 m 1 b p t b q 1 x = ±(.d 1 d d 3... d p )b ±(t q 1...t 1 t 0 ), sendo p um número finito de dígitos para a mantissa e q um número finito de dígitos para o expoente, denominando-se b por base. Salvo indicação em contrário, considera-se que a mantissa é normalizada, i.e., d 1 0, exceptuando a representação do zero. Truncatura (T ): Desprezam-se os dígitos do número real x que não cabem na mantissa, i.e., os dígitos para além dos p primeiros não são incluídos na representação. ([Pina(1995)], p. 10) Arredondamento (A): O número real x é representado pelo número do sistema que lhe está mais próximo. ([Pina(1995)], pp. 10-11) Limite de overflow: Maior número em módulo representável nesses sistemas, ou seja, em termos computacionais, maior número que posso guardar em memória. Este número não depende de se fazer arredondamento ou truncatura. Limite de underflow: Menor número em módulo representável nesses sistemas. Este número depende de se considerar a mantissa normalizada ou não. Unidade de arredondamento, u: Majorante do erro relativo na representação de um número num dado sistema F P (b, p, q), tal que ([Pina(1995)], p. 1) u = 1 b1 p em F P (b, p, q, A) b 1 p em F P (b, p, q, T )
8 SEMANA RESOLUÇÃO a) Concretizando para o caso em análise ficamos com F P (10, 5, ) : fl(x) = ±mb ±t = ±(.d 1 d d 3 d 4 d 5 )10 ±(t 1t 0 ) com 0 d i 9, para i = 1,, 3, 4, 5. Normalizando o número dado obtemos x = (.3758)10 +3 verificando-se que tem 6 dígitos na mantissa. Nos sistemas de ponto flutuante referidos teremos fl( 37.58) = (.376)10 +03 em F P (10, 5,, A) fl( 37.58) = (.375)10 +03 em F P (10, 5,, T ) b) O número limite de overflow é (0.99999)10 +99 em F P (10, 5,, A) (0.99999)10 +99 em F P (10, 5,, T ) sendo igual para T ou A. c) Para o formato normalizado, o número limite de underflow é (0.10000)10 99 em F P (10, 5,, A) (0.10000)10 99 em F P (10, 5,, T ) sendo igual para T ou A. Se tivermos um formato não normalizado este número é (0.00001)10 99. caso falamos em underflow gradual. Neste d) Atendendo à definição de unidade de arredondamento teremos neste caso u = 1 101 5 = (0.50000)10 4 em F P (10, 5,, A) 10 1 5 = (0.10000)10 3 em F P (10, 5,, T ) O erro relativo de representação é e = x x x,
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 9 onde x = fl(x) é a representação no sistema de ponto flutuante e x é o número real a representar. Assim, os erros relativo neste caso são (0.376)103 ( 37.58) 37.58 (0.375)103 ( 37.58) 37.58 = (.61114)10 7 < (0.50000)10 4 em F P (10, 5,, A) = (.4446)10 6 < (0.10000)10 3 em F P (10, 5,, T )
3 TÓPICOS: Aritmética em Sistemas FP: Cancelamento Subtractivo. Formato Simples IEEE 754: Erros de representação; Erros de representação e Operações 0/0 e 1/0. LEITURAS RECOMENDADAS: Capítulo 1 (pp. 1 7) do livro [Pina(1995)] 3.1 ARITMÉTICA EM SISTEMAS FP: Cancelamento subtractivo Determine no sistema F P (10, 4,, T ) as raízes da equação x + 0.7341x + (0.600)10 4 = 0 considerando que não existem dígitos de guarda no processamento das operações em ponto flutuante. a) Usando a fórmula resolvente. Indique os erros absolutos E x1 e E x. b) Justifique a origem do erro relativo obtido na menor raiz (em módulo) e sugira uma forma de melhoria numérica para a resolução deste problema. CONCEITOS TEÓRICOS As operações aritméticas no sistema de ponto flutuante FP desenvolvem-se de acordo com os seguintes passos (DAONA): 1. Decomposição dos operandos nas respectivas mantissas e expoentes: (mb t );. Alinhamento das mantissas, no caso de soma ou subtracção. Por exemplo, para t 1 > t m 1 b t 1 + m b t = (m 1 + m b t t 1 )b t 1 (.1)10 1 + (.5)10 = [(.1) + (.5)10 +1 ]10 1 ; 3. Operação com mantissas e expoentes; 4. Normalização da mantissa. Por exemplo, (1.1)10 1 = (0.11)10 0 ; 5. Arredondamento ou truncatura na mantissa. O processador pode ter mais dígitos que a memória, designando-se os dígitos adicionais por dígitos de guarda. Em geral, as operações em FP não respeitam as propriedades comutativa, distributiva ou associativa.
1 SEMANA 3 Cancelamento subtractivo: Verifica-se quando se subtraem números muito próximos no sistema de ponto flutuante utilizado. RESOLUÇÃO a) Sabemos que ax + bx + c = 0 x 1, = b ± b 4ac a e para a = 1, é matematicamente equivalente utilizar x + bx + c = 0 x 1, = b ± b 4c. A sequência de realização deste cálculo em ponto flutuante é: fl(b) = (.7341)10 0 fl(b ) = (.7341.7341) (10 0 10 0 ) = (.538908)10 Truncar 0 = (.5389)10 0 fl(c) = (.6000)10 4 fl(4) = (.4000)10 +1 fl() = (.000)10 +1 fl(4c) = (.4000.6000) (10 4 10 +1 ) = (.400)10 3 fl(b 4c) = (.5389)10 0 (.400)10 3 = (.5389.000 100 em evidencia e truncar 400)10 0 = (.5387)10 0 ( ) fl b 4c = [(.5387)10 0 ] 1/ Truncar = (.7339618519)10 0 = (.7339)10 0 No cálculo de b 4c assumimos que x = x 1/ é uma função implementada, não sendo necessário decompô-la em funções elementares. Para a primeira raiz: fl ( fl b ) b 4c = (.7341)10 0 (.7339)10 0 ( Normalizar e truncar = (1.4680) 10 0 = (.1468)10 1 b ) b 4c = (.1468)101 (.000)10 1 = (.7340)10 0 = fl(x 1 )
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 13 Para a segunda raiz: fl ( fl b + ) b 4c = (.7341)10 0 + (.7339)10 0 ( Normalizar = (0.000) 10 0 = (.000)10 3 b + ) b Normalizar 4c = (.000)10 3 (.000)10 1 = (1.) 10 4 = (.1000)10 3 = fl(x ) Para calcular os erros cometidos em aritmética FP é necessário conhecermos os valores exactos das raízes, com 5 dígitos na mantissa: x 1, = b ± b 4c = 0.7341 ± 0.7341 4 0.00006 x 1 = (0.7340)10 0 x = (0.8174)10 4 pelo que os erros absolutos e relativos efectivamente cometidos são: E x1 = (0.7340)10 0 [ (0.7340)10 0 ] = (0.0000)10 4 E x = (0.1000)10 3 [ (0.8174)10 4 ] = (0.1858)10 4, e x1 = E x1 x 1 e x = E x x = (0.000)10 4 (0.7340)10 0 = (0.747)10 4 = (0.1858)10 4 (0.8174)10 4 = (0.336)100.3%. Apesar dos erros absolutos serem praticamente iguais, verificamos que o mesmo não acontece com o erro relativo. A segunda raiz apresenta um erro relativo superior em quatro ordens de grandeza ao correspondente erro da primeira raiz. b) Onde ocorreu o erro? Não aplicamos nós o mesmo processo a x 1 e a x!? Então, o que terá sucedido? Sabemos que entre as operações +,,,, em FP existe um cálculo perigoso que é a subtracção de valores muito próximos, já que os primeiros dígitos da mantissa se anulam e após a normalização surgem zeros à direita que, possivelmente, o não seriam caso se utilizasse um maior número de dígitos. De facto, há uma subtracção de valores muito próximos quando calculamos x em F P (10, 4,, T ), ( fl b + ) b 4c = (.7341)10 0 + (.7339)10 0 = (0.000)10 0 = (.000)10 3
14 SEMANA 3 Mas em aritmética com um maior número de dígitos na mantissa teríamos ( fl b + ) b 4c =.7341 +.7341 4 0.0006 = (0.16348)10 3 Dividindo este número por obteríamos um valor mais próximo do valor exacto. Portanto, a origem do problema no cálculo de x foi o cancelamento subtractivo, que se verifica quando subtraímos números muito próximos em FP. Como contornar o problema? Sabendo nós que o problema é a subtracção, o que há a fazer é evitá-la. Existem duas alternativas: Alternativa 1: Manipulando simbolicamente a equação de segundo grau genérica, obtemos ax + bx + c = a(x x 1 )(x x ) = a(x x 1 x x x + x 1 x ) = ax a(x 1 + x )x + ax 1 x, e concluímos que c = ax 1 x x = c ax 1. Substituindo pelos valores conhecidos, c, a e x 1, no sistema FP dado, obtemos ( ) c fl = (.6000)10 4 x 1 (.7340)10 0 = (.8174 38)10 Truncar 4 = (.8174)10 4 = x. Alternativa : Neste caso manipulamos a fórmula resolvente, tal que x = b + b 4c = c b b 4c = c. x 1 = b + b 4c b b 4c b b 4c = b (b 4c) ( b b 4c) Notar que obtemos a mesma expressão da alternativa 1, pois a = 1. 3. FORMATO SIMPLES IEEE 754: Erros de representação a) Represente o número 51.15 em formato simples IEEE 754 com truncatura. b) Determine o erro de representação cometido na alínea anterior. Se preferir indique um majorante adequado do erro cometido. c) Será possível representar 10 3 e 10 +4 no formato simples? Justifique. CONCEITOS TEÓRICOS Na norma IEEE 754 a mantissa é normalizada, ou seja, o primeiro bit é sempre 1 e diz-se implícito. O expoente é enviesado, isto é, é dado por e 17.
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 15 O maior expoente é 11111110 e o menor 00000001, estando os expoentes 11111111 e 00000000 reservados para: 00000000 Número desnormalizado, prevendo underflow gradual. x = ( 1) s (0.d 1... d 3 ) e 16 Limite de underflow gradual : 3 16 = 149 = 1.4 10 45 11111111 Ocorrência de overflow. Neste caso podem surgir duas mensagens: Se m = 0 NaN Se m 0 +INF RESOLUÇÃO a) Esquematicamente (51.15) 10 F P (, 4, 8, T ) pois segundo a norma IEEE 754, no formato simples, b =, p = 4 e q = 8. Representar a parte inteira da mantissa: 51 0 56 0 18 0 64 0 3 0 16 0 8 0 4 0 0 1 1 0 51 = (1000000000) Representar a parte fraccionária da mantissa: 0.15 = 0.30 0 0.30 = 0.60 0 0.60 = 1.0 1 0.0 = 0.40 0 0.40 = 0.80 0 0.80 = 1.60 1 0.60 = 1.0 1
16 SEMANA 3 0.15 = (0.001001...) Representar toda a mantissa: 51.15 = (1 000 000 000.00 1001 1001 1001...) A norma IEEE 754 requer um bit implícito de valor 1 e o expoente enviesado: x = ( 1) s e 17 (1.d 1 d d 3... d 3 ) Assim, 51.15 = (1.000 000 000 00 1001 1001 1001 = (1.000 000 000 00 1001 1001 1001) 9 Truncar 1001...) 9 Representar o expoente (enviesado): e 17 = 9 e = 136 136 0 68 0 34 0 17 1 8 0 4 0 0 1 1 0 136 = (10001000) Temos então a seguinte alocação dos 3 bits, no formato simples IEEE 754: 0 10001000 00000000000100110011001 Sinal Expoente Mantissa 1 bit 8 bits 3 bits b) Erro de representação cometido: O valor exacto é (51.15) = (1.000 000 000 00 1001 1001 1001 1001 1001 1001 1001...) 9 Na norma IEEE 754 teremos o valor (51.15) IEEE 754 = ( 0 + 1 + 15 + 16 + 19 + 0 + 3 ) 9 = 51.1499634
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 17 e o erro em valor absoluto é E = 51.1499634 51.15 = (3.7)10 5 ou, em alternativa, podemos realizar o cálculo estimando o valor truncado E = ( 4 + 7 + 8 + 31 + 3 +...) 9 = (3.7)10 5 O majorante do erro cometido em truncatura é E maj = b t p = 10 4 = 14 = (6.10)10 5 c) Para responder à pergunta colocada temos que determinar os limites de overflow e underflow: Limite de overflow : (1.111... 1) (11111110) 17 = (1.111... 1) (54 17) = ( 3 ) 17 = (3.4)10 +38 Limite de underflow : (1.000... 0) (00000001) 17 = (1.000... 0) (1 17) = 0 16 = (1.)10 38 Portanto, 10 3 tem representação aproximada no formato simples IEEE 754, dado que 1. 10 38 < 10 3 < (3.4)10 +38. 10 +4 não tem representação aproximada no formato simples IEEE 754, originando overflow, pois 10 +4 > (3.4)10 +38. 3.3 FORMATO SIMPLES IEEE 754: Erros de representação e Operações 0/0 e 1/0 a) Estime o erro cometido na representação do número (0.1) 10 no sistema de ponto flutuante F P (, 4, 8, T ). b) Determine o número limite de overflow e a unidade de arredondamento do sistema de ponto flutuante em formato simples na norma IEEE 754. Indique a mensagem gerada em aritmética IEEE 754 pelas operações 0/0 e 1/0. RESOLUÇÃO O expoente t refere-se à representação em FP. Não esquecer que o formato IEEE 754 considerado tem um bit implícito, o que não acontece em FP. Por essa razão o expoente é 10 e não 9.
18 SEMANA 3 Representação de (0.1) 10 em F P (, 4, 8, T ): 0.1 = 0. 0 0. = 0.4 0 0.4 = 0.8 0 0.8 = 1.6 1 0.6 = 1. 1 0. = 0.4 0 Detectamos a presença de um padrão repetitivo, ou seja, 0.1 = (0.0 0011 0011 0011 0011 0011...) = (0.1100 1100 1100 1100 1100 1100) 3 e pelo facto de truncar no dígito 4 obtemos um erro de representação de: E = fl(x) x b t p = 3 4 = (7.4506)10 9 b) Limite de overflow : ( 0 + 1 +... + 3 ) (7 + 6 +... 1 + 0 17) = ( u) 17 18 = (3.4083)10 +38 Unidade de arredondamento para truncatura : u = 1 4 = (1.1909)10 7 A 0/0 corresponde a mensagem NaN (Not a Number) e a 1/0 corresponde a mensagem INF. A resposta na janela de comando do MATLAB para cada um dos casos é:» 0/0 Warning: Divide by zero. (Type "warning off MATLAB:divideByZero" to suppress this warning.) ans = NaN» 1/0 Warning: Divide by zero. (Type "warning off MATLAB:divideByZero" to suppress this warning.) ans = Inf
4 TÓPICOS: Condicionamento de uma Função. Condicionamento de uma Função e Cancelamento Subtractivo. Interpolação Polinomial: Formas de Lagrange e Newton; Algoritmo de Horner. LEITURAS RECOMENDADAS: Capítulo 1 (pp. 3 7) e Capítulo (pp. 35 5) do livro [Pina(1995)] 4.1 CONDICIONAMENTO DE UMA FUNÇÃO Estime o número de condição da função f (x) = tg(x ) na origem. A função é bem ou mal condicionada nesse ponto? Justifique. CONCEITOS TEÓRICOS Número de condição da função f (x): Para analisar em aritmética de Ponto Flutuante a influência do erro de representação do argumento x no cálculo de uma dada função f (x), a Análise de Erros Directa pode não ser a mais adequada. A alternativa é uma Análise de Erros Indirecta, a qual fornece uma indicação do factor de amplificação dos erros relativos baseada no número de condição de uma função num dado ponto. Considerando que x sofre um erro de representação, o argumento utilizado no cálculo será x e o erro de representação (erro absoluto) será E = x x. Do teorema do valor médio, e dado que x e x podem considerar-se suficientemente próximos e f suficientemente regular, obtém-se a seguinte relação: f ( x) f (x) = f (ξ) ( x x) f ( x) f (x) f (x) = f (ξ) ( x x) f (x) x x ξ {[x min x max ] : x min = min ( x, x) e x max = max ( x, x)} f ( x) f (x) f (x) f (x) x f (x) x x x ou, por outras palavras, e f condf (x) e x,
0 SEMANA 4 considerando-se geralmente no lugar de e x o valor da unidade de arredondamento u. Diz-se que uma função é bem condicionada se condf (x) for pequeno e diz-se mal condicionada nos restantes casos. Para exemplificar melhor a distinção, recorre-se à seguinte comparação baseada num cálculo em F P (, 4, 8, A) onde a unidade de arredondamento é: u = 1 b1 p = 1 1 4 (0.6) 10 7. Com este valor de erro relativo de representação, obtém-se no caso de condf (x) = 10 4 um e f = 10 3 ou seja 0.1% (f(x) é bem condicionada) e no caso de condf (x) = 10 6 um e f = 10 1 ou seja 10% (f(x) é mal condicionada). Portanto, uma função ser bem condicionada ou mal condicionada é uma característica relativa. RESOLUÇÃO condf (x) = f (x) x f (x) = x ( 1 + tg (x ) ) x tg(x ) Lembrando-nos que na vizinhança de x = 0 se tem tg(x ) (x) facilmente se conclui que condf(x = 0) =. Uma via mais trabalhosa é fazer o que se segue! Em x = 0, teremos 0 ( 1 + tg (0 ) ) condf (x = 0) = tg(0 ) = 0 0 A indeterminação pode ser levantada aplicando sucessivamente a Regra de L Hôpital- Cauchy: condf (x = 0) = lim x 0 = lim x 0 = 4 = x + x tg (x ) tg(x ) 4x + 4xtg (x ) + 8x 3 tg(x ) ( 1 + tg (x ) ) x ( 1 + tg (x ) ) A função é bem condicionada em torno da origem, pois os erros são apenas ampliados para o dobro. Por exemplo, em precisão simples onde o majorante do erro relativo de representação de x é de aproximadamente u = (0.6)10 7 o erro relativo no cálculo da função em F P será cerca de (1.)10 7, ou seja, aproximadamente 0.00001%. 4. CONDICIONAMENTO DE UMA FUNÇÃO E CANCELAMENTO SUBTRACTIVO a) Mostre que f(x) = sin(x) x é bem condicionada na vizinhança da origem.
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 1 b) Calcule o valor de f(10 ) em F P (10, 3,, T ). c) Determine os erros absolutos e relativos cometidos. d) Em face do resultado da alínea c) proponha uma forma alternativa para o cálculo de f(10 ). RESOLUÇÃO a) A aplicação directa da expressão origina uma indeterminação que se pode levantar aplicando sucessivamente a regra de L Hôpital-Cauchy, em três aplicações. Uma alternativa é utilizar a expansão em série ([ cond (f) = f (x) x f (x) = (cos (x) 1) x sin (x) x = 1 x! + O ( x 4)] ) 1 x [ x x 3 3! + O (x 5 ) ] x x 3! + O ( x 5) 1 = x 3 3! + O (x 5 ) = + O ( x ) 1 1 6 + O (x ) 1 = 3 6 A função é bem condicionada em torno da origem pois os erros são apenas ampliados para o triplo. Por exemplo, em precisão simples onde o majorante do erro relativo de representação de x é de u = (0.6)10 7 o erro relativo no cálculo da função em FP será cerca de (1.8)10 7, ou seja, aproximadamente 0.000018%. b) Para calcular f(x) = sin(x) x no ponto x = 10 em F P (10, 3,, T ) tem-se: fl(x) = fl(10 ) = +(0.100)10 01 Assumindo que sin(x) esteja implementada computacionalmente como função: fl(sin(x)) = sin(0.100 10 01 ) = 0.999 Truncar 9833 10 0 = +(0.999)10 0 fl(sin(x) x) = 0.999 10 0 0.100 10 01 = (0.099 0.100) Alinhar 10 01 = 0.001 10 01 = (0.100)10 03 Como iremos ver de seguida, a truncatura para um número reduzido de dígitos, seguidamente agravada por um alinhamento das mantissas, é potencialmente perigosa para a precisão dos resultados, ocorrendo cancelamento subtractivo. c) O valor exacto, na precisão da calculadora, é f(10 ) = sin(10 0 ) 10 0 = (0.16666)10 6 pelo que E = 0.100 10 03 ( 0.166 10 06 ) = 0.000099834 Não esquecer de efectuar os cálculos em radianos e não em graus ou grados!
SEMANA 4 e = E f(10 ) = 0.000099834/(0.16666 10 06 ) = 599.03 59903% Obtemos, assim, um valor muito elevado. Observa-se que f ser bem condicionada na vizinhança deste ponto não significa imune ao cancelamento subtractivo, realçando-se neste exemplo que se tratam de dois conceitos diferentes. d) Para evitar o cancelamento subtractivo quando x é pequeno, pode utilizarse neste caso a expansão em série da função seno: sin (x) x = [x x3 3! + x5 5! O ( x 7) ] x x3 6 fl(sin(x) x) = fl( x 3 /6) = (0.100 10 01 )/(0.600 10 +01 ) = 0.166 10 06 obtendo-se a máxima precisão em F P (10, 3,, T ). No caso de f(x) = ln(1+x) com x < u, para evitar erros de FP usa-se o primeiro termo da expansão ln(1 + x) = x x / + x 3 /3 x 4 /4 +... Em MATLAB temos os logaritmos natural, log, de base 10, log10 e de base, log, enquanto u é obtido por eps. 4.3 INTERPOLAÇÃO POLINOMIAL: Formas de Lagrange e Newton Determine o polinómio interpolador dos valores (0, 1); (1, 3) e (, ). a) Na forma de Lagrange. b) Na forma de Newton com centros nos nós. RESOLUÇÃO a) Na forma de Lagrange este polinómio obtém-se como se segue: n é o número de pontos, ou nós, menos 1, ou seja o grau do polinómio (desde que os pontos (x k, y k ) dados não sejam colineares). p n (x) = n L k (x) y k com L k = k=0 n i=0 i k x x i x k x i L 0 = x x 1 x 0 x 1 x x x 0 x = ( x 1 1 L 1 = x x 0 x 1 x 0 x x x 1 x = x (x ) L = x x 0 x x 1 = x (x 1) x x 0 x x 1 ) ( ) x
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 3 Obtemos: p (x) = L 0 y 0 + L 1 y 1 + L y p (x) = (x 1) (x ) 3x (x ) + x (x 1) Podemos verificar rapidamente que p (0) = 1 sendo L 1 = L = 0; p (1) = 3 com L 0 = L = 0 e p () = com L 0 = L 1 = 0. Tal é ilustrado pela representação gráfica dos polinómios na Figura 4.3.1. 3.5 3 p(x).5 1.5 1 L 0 (x) L 1 (x) L (x) 0.5 0 0.5 0 0. 0.4 0.6 0.8 1 1. 1.4 1.6 1.8 Figura 4.3.1: Polinómio interpolador e polinómios de Lagrange b) Na forma de Newton com centros nos nós o polinómio é obtido por: p n (x) = y [x 0 ] + y [x 0, x 1 ] W 0 + y [x 0, x 1, x ] W 1 +... + y [x 0, x 1,..., x n ] W n 1 com y [x k ] = y k e y [x i, x i+1,..., x k 1, x k ] = y [x i+1,..., x k ] y [x i,..., x k 1 ] x k x i onde as diferenças divididas se obtêm como indicado na tabela seguinte: x y[ ] y[, ] y[,, ] 0 1 1 3 3/ 1 e W i = (x x 0 )... (x x i 1 ) são os polinómios nodais.
4 SEMANA 4 O polinómio que se obtém na forma de Newton com centros nos nós é p (x) = 1 + x 3 x(x 1) Podemos verificar rapidamente que p (0) = 1 sendo W 0 = W 1 = 0, p (1) = 3 com W 1 = 0 e p () = 1 + 4 3 =. Na Figura 4.3. observa-se a representação de p(x) e dos polinómios nodais W i. 4 3 p(x) x 1 1 0 3 x(x 1) 1 3 0 0. 0.4 0.6 0.8 1 1. 1.4 1.6 1.8 Figura 4.3.: Polinómio interpolador e respectivas parcelas As diferentes representações polinomiais obtidas nas alíneas a) e b) são exactamente o mesmo polinómio interpolador, pois este é único (ver Teorema... da Unicidade, na p. 44 em [Pina(1995)]). 4.4 INTERPOLAÇÃO POLINOMIAL: Algoritmo de Horner Determine o polinómio interpolador dos valores (0, -1); (1, 1); (, 4) e (3, ). a) Na forma de Newton com centros nos nós. b) Na forma de Lagrange. c) Calcule p(4) pelo algoritmo de Horner. ALGORITMOS Cálculo do valor do polinómio num dado ponto x através de 3 algoritmos distintos Algoritmo 1 - Cálculo do valor de polinómios num dado ponto x: Ler/Introduzir valor de n, a 0, a 1,..., a n Ler/Introduzir valor de x Inicializar p = a 0 Ciclo de i = 1 até n p = p + a i x i (1 flop soma + 1 flop produto + (i 1) flops potência) Repetir ciclo Escrever p Logo o número de flops é ( + 3 + 4 +... + (n + )) = n[(n + ) + ]/ = n / + n.
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 5 Algoritmo - dado ponto x: Técnica de Horner para cálculo do valor de um polinómio num Ler/Introduzir valor de n, a 0, a 1,..., a n Ler/Introduzir valor de x Inicializar p = a n Ciclo de i = n - 1 até 0 p = a i + p x (1 flop soma + 1 flop produto) Repetir ciclo Escrever p Logo o número de flops é [(n 1) + 1] = n, o que torna o algoritmo 1 «impróprio» em termos de métodos computacionais, porque sendo o número de operações aritméticas maior, considera-se também menos preciso. Algoritmo 3 - Algoritmo de Horner para polinómios na forma de Newton com centros nos nós: Ler/Introduzir valor de n, a 0, a 1,..., a n, c 1,..., c n Ler/Introduzir valor de x Inicializar p = a n Ciclo de i = n - 1 até 0 p = a i + p (x - c i+1 ) ( flops soma + 1 flop produto) Repetir ciclo Escrever p Logo o número de flops é 3[(n 1) + 1] = 3n. RESOLUÇÃO a) O polinómio interpolador na forma de Newton determina-se recorrendo à tabela de diferenças divididas x y[ ] y[, ] y[,, ] y[,,, ] 0 1 1 1 1/ 3 1 4 5/ 3 p 3 (x) = 1 + x + 1 x(x 1) x(x 1)(x ) b) A expressão para determinar o polinómio interpolador na forma de Lagrange é p n (x) = n L k (x) y k com L k = k=0 n i=0 i k x x i x k x i
6 SEMANA 4 pelo que L 0 = ( x 1 1 ) ( x ) ( ) x 3 3 L 1 = x (x )(x 3) L = x (x 1) (x 3) L 3 = x (x 1) (x ) 6 obtendo-se p 3 (x) = (x 1)(x )(x 3) 6 + x (x )(x 3) x(x 1)(x 3) + x (x 1)(x ) 3 c) Aplica-se aqui o Algoritmo 3 ao polinómio da alínea a) p 3 (x) = 1 + x + 1 x (x 1) x (x 1) (x ) Logo n = 3 e x = 4. Precisamos também de C 1 = 0, C = 1 e C 3 =. Os centros contam-se de 1 a n, não existindo C 0. Seguindo o algoritmo, obtém-se sucessivamente: p = a 3 = 1 p = a + p(x C 3 ) = (1/) + ( 1)(4 ) = (3/) p = a 1 + p(x C ) = (3/)(4 1) = (5/) p = a 0 + p(x C 1 ) = 1 (5/)(4 0) = 11 Pelo que, o valor de p em x = 4 é p(4) = 11.
5 TÓPICOS: Interpolação Polinomial: Máximos e mínimos locais, Pontos de inflexão; Interpolação de Hermite, Nós duplos e triplos e diferença dividida confluente. LEITURAS RECOMENDADAS: Capítulo (pp. 5 73 excepto secção.5 e pp. 77 80) do livro [Pina(1995)] 5.1 INTERPOLAÇÃO POLINOMIAL: Máximos e mínimos locais, Pontos de inflexão Considere a tabela de valores de uma função y = f(x): x 0 1 3 4 y 1 5 15 35 a) Determine as aproximações no intervalo [0, 4] para a localização de um máximo local, um mínimo local e um ponto de inflexão da função. b) Obtenha uma interpolante de f(x) na forma de Newton com centros em x 0 = 1/, x 1 = 1 e x = 3/. c) Se a tabela tivesse um maior número de pontos, por exemplo superior a 5, o método da alínea a) seria recomendável? Justifique. RESOLUÇÃO a) As aproximações são aqui obtidas por interpolação polinomial na forma de Newton, com centros nos nós. x y[ ] y[, ] y[,, ] y[,,, ] 0 1 6 1 5 1 10 8 3 15 0 50 4 35 O polinómio obtido é p 3 (x) = 1 + 6(x 0) 1(x 0)(x 1) + 8(x 0)(x 1)(x 3) = 1 + 6x 44x + 8x 3
8 SEMANA 5 Há que ter cuidado em colocar como coeficientes do polinómio os elementos da primeira diagonal (a negro), na ordem indicada. Por exemplo, se escolhêssemos os elementos da diagonal inferior 35, 50, 0, 8 obteríamos o polinómio 35 + 50(x 4) + 0(x 3)(x 4) + 8(x 3)(x 4)(x 1) que é uma interpolante correcta (Porquê? Que centros foram agora utilizados?). Deste modo, se pretendermos que os centros sejam 1, 3 e 4, deixando de fora o 0, teremos de construir uma nova tabela de diferenças divididas, tal que x y[ ] y[, ] y[,, ] y[,,, ] 1 5 10 3 15 0 50 8 4 35 1 14 0 1 obtendo-se o polinómio: p 3 (x) = 5 10(x 1)+0(x 1)(x 3)+8(x 1)(x 3)(x 4), que após expansão na forma de potências simples fica p 3 (x) = 1 + 6x 44x + 8x 3. Como esperávamos, o polinómio é o mesmo. Podemos verificar rapidamente que as condições de interpolação são verificadas para o polinómio obtido, pois, por exemplo, p 3 (0) = 1 e p 3 (1) = 70 65 = 5. 40 30 0 10 0 10 0 30 0 0.5 1 1.5.5 3 3.5 4 Figura 5.1.1: Polinómio interpolador As primeira e segunda derivadas do polinómio interpolador são: p 3(x) = 6 88x + 4x, p 3(x) = 88 + 48x
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 9 Donde se conclui que os pontos de estacionaridade são: p 3(x) = 6 88x + 4x = 0 x = 88 ± 88 4 4 6 4 x 1 = 0.9514 x =.715 O ponto de inflexão é: p 3(x) = 88 + 48x = 0 x = 1.8333 Como p 3 é de grau 3 e p 3 é negativa para x < 1.8333 e positiva para x > 1.8333 então 0.9514 corresponde a um máximo local e.715 a um mínimo local. b) Na alínea a) obteve-se o polinómio na forma de Newton com centros nos nós da tabela. Para considerar a sua representação nos nós 1/, 1 e 3/ há que proceder a uma mudança de nós. Alternativa 1 - Aplicar um algoritmo de mudança de nós. Algoritmo de Horner para mudança de centros de um polinómio (Algoritmo.., p. 4 de [Pina(1995)]): Introduzir o centro c e retirar o centro c n Ler/Introduzir valor de n, a 0, a 1,..., a n, c 1,..., c n Inicializar a n = a n Ciclo de i = n - 1 até 0 a i = a i + a i+1 (c - c i+1 ) ( flops soma + 1 flop produto) Repetir ciclo Escrever a Utilize-se a representação com centros na origem: p 3 (x) = 1 + 6x 44x + 8x 3 e introduzam-se sucessivamente os centros pretendidos. Tal é feito introduzindo estes centros por ordem inversa à definida. Introdução do centro c = 3/ (n = 3) a 3 = 8 a 3 = 8 a = 44 c 3 = 0 c = 3/ 44 + 8 (3/ 0) a = 3 a 1 = +6 c = 0 c = 3/ +6 3 (3/ 0) a 1 = 14 a 0 = 1 c 1 = 0 c = 3/ 1 + 14 (3/ 0) a 0 = 0 p 3 (x) = 0 + 14 (x 3/) 3 (x 3/) (x 0) + 8 (x 3/) (x 0) O polinómio inicial deve estar na forma de potências simples.
30 SEMANA 5 Introdução do centro c = 1 (n = 3) a 3 = 8 a 3 = 8 a = 3 c 3 = 0 c = 1 3 + 8 (1 0) a = 4 a 1 = +14 c = 0 c = 1 +14 4 (1 0) a 1 = 10 a 0 = 0 c 1 = 3/ c = 1 0 10 (1 3/) a 0 = 5 p 3 (x) = 5 10(x 1) 4(x 1)(x 3/) + 8(x 1)(x 3/)(x 0) Introdução do centro c = 1/ (n = 3) a 3 = 8 a 3 = 8 a = 4 c 3 = 0 c = 1/ 4 + 8 (1/ 0) a = 0 a 1 = 10 c = 3/ c = 1/ 10 0 (1/ 3/) a 1 = 10 a 0 = 5 c 1 = 1 c = 1/ 5 + 10 (1/ 1) a 0 = 0 p 3 (x) = 0 + 10(x 1/) 0(x 1/)(x 1) + 8(x 1/)(x 1)(x 3/) Alternativa - Como a representação polinomial é única, podemos fazer: p 3 (x) = 1 + 6x 44x + 8x 3 p 3 (0.5) = 1 + 6 0.5 44 0.5 + 8 0.15 = 1 + 31 11 + 1 = 0 p 3 (1.0) = 1 + 6 44 + 8 = 5 p 3 (1.5) = 1 + 6 1.5 44 1.5 + 8 1.5 3 = 0 Utilizamos, então, estes pontos para construir a nova representação, usando como ponto auxiliar x = 3: x y[ ] y[, ] y[,, ] y[,,, ] 0.5 0 10 1 5 0 10 8 1.5 0 0 10 3 15 Obtemos exactamente a representação esperada devido à unicidade acima referida: p 3 (x) = 0 + 10(x 1/) 0(x 1/)(x 1) + 8(x 1/)(x 1)(x 3/) O mesmo sucede com o ponto auxiliar x = 4, pois, neste caso, a tabela de diferenças divididas é x y[ ] y[, ] y[,, ] y[,,, ] 0.5 0 10 1 5 0 10 8 1.5 0 8 14 4 35 ou o ponto auxiliar x = 0:
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 31 x y[ ] y[, ] y[,, ] y[,,, ] 0.5 0 10 1 5 0 10 8 1.5 0 4 14 0 1 d) Se a tabela tivesse um maior número de pontos, por exemplo superior a 5, o método da alínea a) não seria recomendável porque: - obteríamos uma equação polinomial de elevado grau cuja derivada seria morosa de resolver. - as oscilações são maiores em polinómios interpoladores de elevado grau. Nesse caso seria preferível utilizar um método de diferenças finitas apropriado seguido de interpolação. 5. INTERPOLAÇÃO POLINOMIAL: Interpolação de Hermite, Nós duplos e diferença dividida confluente a) Construa o polinómio de menor grau que interpola a função f(x) = ln(1 + x) e a sua primeira derivada f (x) nos extremos do intervalo [0, 1]. b) Majore o erro cometido. RESOLUÇÃO a) Interpolar com valores de f e f em cada nó corresponde à interpolação de Hermite, a qual se obtém aplicando as expressões do Exemplo.6.1, pp. 71 7 de [Pina(1995)], [U 0, U 1, V 0 e V 1 ] com f(0) = 0, f(1) = ln(), f (0) = 1 e f (1) = 1/. Contudo, podemos também utilizar a tabela de diferenças divididas com a técnica de nós múltiplos. De facto, da definição de diferença dividida podemos constatar que f [x 0, x 1,..., x k ] = 1 k! f (k) (ξ) f [x 0, x 1 ] = f (x 0) f (x 1 ), (x 0 x 1 ) obtendo-se a diferença dividida confluente lim f [x 0, x 1 ] = f [x 0, x 0 ] = f (x 0 ). x 1 x 0 De igual modo, obtemos f [x 0, x 0, x 0 ] = f (x 0 ).! Podemos então construir a tabela seguinte:
3 SEMANA 5 x y[ ] y[, ] y[,, ] y[,,, ] 0 0 1 0 0 ln() 1 ln() 3/ ln() 1 ln() 1/ ln() 1/ 1 ln() [ ] 3 p 3 (x) = x + [ln() 1] x + ln() x (x 1) 0.7 1 0.6 0.95 0.9 0.5 0.85 0.4 0.8 0.75 0.3 0.7 0. 0.65 0.6 0.1 0.55 0 0 0.1 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 (a) Polinómio 0.5 0 0.1 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 (b) Primeira derivada Figura 5..1: Polinómio interpolador e respectiva primeira derivada b) Análise de Erros de Interpolação - Quanto é que no máximo um polinómio interpolador se afasta da respectiva função. Pelo Teorema.4.1, p. 55, [Pina(1995)], sabemos que e n (x) f(x) p n (x) = 1 (n + 1)! f (n+1) (ξ) W n (x) Com base neste Teorema obtemos o majorante do erro dado por (.4.3): e n 1 (n + 1)! f (n+1) W n A estimativa do erro (.4.4) e n 1 4 (n + 1) f (n+1) h n+1 1 = 4 (3 + 1) 6 1 = 6 16 = 3 8 = 0.3750, não deve ser utilizada quando se pede um majorante, porque, tratando-se de uma interpolação da função e da derivada, i.e., uma interpolação de Hermite, considera-se o número de pontos apenas, logo n = 1, e o grau do polinómio é n + 1, podendo mostrar-se que o erro é dado, neste caso, por (p. 73, [Pina(1995)]):
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 33 e n (x) = (W n(x)) (n + )! f (n+) (ξ) max W n (x) [x min,x max ] f (n+). (n + )! pois Concretizando para o caso presente, obtemos e (x) = W 1 max [(x 0) (x 1) ] (x) [ ( + )! f (+) x [0,1] (ξ) 6 (1 + x) 4] 4 = 1 16 4 6 = 1 64 = 0.1565 10 1, f(x) = ln(1 + x) f (x) = (1 + x) 1.. f (iv) = 6(1 + x) 4 sendo f (iv) monótona decrescente em [ 1, + ] e, logo, no intervalo [0, 1] tem máximo em x = 0. 5.3 INTERPOLAÇÃO POLINOMIAL: Interpolação de Hermite, Nós triplos e diferença dividida confluente Construa o polinómio de menor grau que satisfaz as seguintes condições de interpolação: p(1) =, p (1) = 0, p (1) =, p() = e p(3) = 3. RESOLUÇÃO a) Tendo por base a definição de diferença dividida: f [x 0, x 1,..., x k ] = 1 k! f (k) (ξ), verificamos que f [x 0, x 0, x 0 ] = f (x 0 ).! Utilizando a tabela de diferenças finitas com a técnica de nós múltiplos (neste caso, nó triplo):
34 SEMANA 5 x y[ ] y[, ] y[,, ] y[,,, ] y[,,,, ] 1 0 1 1 0 1 1 0 5/8 0 1/4 1/ 1 3 3 obtemos a representação p 4 (x) = + (x 1) (x 1) 3 + 5 8 (x 1)3 (x ) Como suplemento à resolução do problema, mostramos o gráfico do polinómio e as suas primeira e segunda derivadas, obtidas analiticamente (Figuras 5.3.1 e 5.3. ). Observamos que as condições de interpolação são respeitadas. 3.8.6.4. 1.8 1 1. 1.4 1.6 1.8..4.6.8 3 Figura 5.3.1: Polinómio interpolador 4.5 14 4 1 3.5 10 3.5 8 6 1.5 4 1 0.5 0 0 0.5 1 1. 1.4 1.6 1.8..4.6.8 3 (a) Primeira derivada 1 1. 1.4 1.6 1.8..4.6.8 3 (b) Segunda derivada Figura 5.3.: Derivadas analíticas do polinómio interpolador
6 TÓPICOS: Interpolação Polinomial: Spline quadrático; Spline cúbico; Erros em splines cúbicos. LEITURAS RECOMENDADAS: Capítulo (pp. 77 87) do livro [Pina(1995)] 6.1 INTERPOLAÇÃO POLINOMIAL: Spline quadrático Construa o spline quadrático para f(x) = sin(π/ x) em [0, 1] com malha uniforme de 4 nós. Determine uma aproximação para f (0.5) e f (0.5). Obtenha os respectivos erros absoluto e relativo. CONCEITOS TEÓRICOS Os splines correspondem a aproximações de funções por troços. No caso de um spline quadrático esta aproximação é obtida entre cada dois pontos consecutivos através da expressão para cada subintervalo ou, mais prosaicamente, troço (Exp. (.7.3), p. 80, [Pina(1995)]): S i (x) = y i 1 + m i 1 (x x i 1 ) + M i (x x i 1) x [x i 1, x i ], i = 1,,..., n M i = m i m i 1 h i h i = x i x i 1 m i = ( yi 1 y i h i ) m i 1 RESOLUÇÃO Construção do spline: Neste caso, f é contínua e continuamente diferenciável. Uma malha uniforme, isto é, nós igualmente espaçados, com quatro pontos no intervalo [0, 1] terá os nós 0, 1/3, /3 e 1. Para uma definição mais rigorosa de splines ver p. 77 de [Pina(1995)].
36 SEMANA 6 Podemos calcular os momentos m i se conhecermos o valor de um deles. Em geral m 0 define-se como m 0 = f (x 0 ). Neste problema temos m 0 = f (x 0 ) = π/ cos(π/ x 0 ) = π/ = 1.5708. Obtemos os restantes m i aplicando a fórmula recorrente m i = ( yi 1 y i h i ) m i 1. i x i 1 y i 1 x i y i m i 1 m i M i 1 0 0 1 3 0.5 1.5708 1.49 0.4478 1 3 0.5 3 0.8660 1.49 0.76695 1.9868 3 3 0.8660 1 1 0.76695 0.036899.1901 Então, ficamos com o spline: x [0, 1/3] : S 1 = 0 + 1.5708(x 0) + 0.4478 (x 0) = 1.5708x 0.14x ( x [1/3, /3] : S = 0.5 + 1.49 x 1 ) + 1.9868 3 ( = 0.5 + 1.49 x 1 ) 0.99340 3 ( x 1 ) 3 ( x 1 ) 3 ( x [/3, 1] : S 3 = 0.8660 + 0.76695 x ) +.1901 3 ( = 0.8660 + 0.76695 x ) 1.0950 3 ( x ) 3 ( x ) 3 A Figura mostra graficamente o spline. 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0. 0.1 0 0 0.1 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figura 6.1.1: Spline constituído por três troços
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 37 Determinação de uma aproximação para f (x): E (0.5) = f (0.5) S (0.5) = f (0.5) S (0.5) = π/ cos(π/ 1/) 1.0981 = 0.0161 E (0.5) = f (0.5) S (0.5) = f (0.5) S (0.5) = (π/) sin(π/ 1/) + 1.9868 = 0.408 e (0.5) = E (0.5)/f (0.5) = 0.0161/(π/ cos(π/ 1/)) = 1.1363 10, ou seja, 1.14%. e (0.5) = E (0.5)/f (0.5) = 0.408/( (π/) sin(π/ 1/)) = 0.13875, ou seja, 13.9%. f(x) e S(x) são praticamente coincidentes. Justifica-se um erro maior em S (0.5) do que em S (0.5), porque nos splines quadráticos S (x) é linear e S (x) é constante por troços (Ver Figura 6.1.). 1.6 1.4 1.5 1. 1 1 0.5 0 0.8 0.5 0.6 1 0.4 1.5 0. 0 0 0.1 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 (a) Primeira derivada.5 0 0.1 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 (b) Segunda derivada Figura 6.1.: Derivadas dos três troços do spline 6. INTERPOLAÇÃO POLINOMIAL: Spline cúbico Construir o spline cúbico que interpole os pontos: (0, 0); (0.5, 0.065); (1, 1); (1.5, 5.065) e (, 16). CONCEITOS TEÓRICOS Os splines correspondem a aproximações de funções por troços. No caso de um spline cúbico esta aproximação é obtida entre cada dois pontos consecutivos através da expressão para cada subintervalo ou, mais prosaicamente, troço (Exp. (.7.10), Para uma definição mais rigorosa de splines ver p. 77 de [Pina(1995)].
38 SEMANA 6 p. 8, [Pina(1995)]): x [x i 1, x i ], i = 1,,..., n S i (x) = M i 1 (x i x) 3 6h i + M i (x x i 1 ) 3 6h i + ( y i 1 M i 1 h i 6 ) xi x h i + ( y i M i h i 6 ) x xi 1 h i h i = x i x i 1 M i = S i (x i) = S (x i ) Os M i, designados momentos, são dados pela exp. (.7.13), p. 8 de [Pina(1995)] obtida impondo S (x i ) = S (x i +), isto é, impondo continuidade da primeira derivada nos nós: h i 6 M i 1 + h i + h i+1 M i + h i+1 3 6 M i+1 = y i+1 y i y i y i 1, h i+1 h i com i = 1,,..., n 1 Obtemos então n 1 equações com n + 1 incógnitas M i, i. e., M 0,..., M n, pelo que são necessárias duas condições suplementares. Há várias possibilidades, embora as três a seguir descritas sejam as mais usadas: 1) Spline completo: S 1(x 0 ) = y 0, S n(x n ) = y n. ) Spline natural: S 1 (x 0 ) = M 0 = 0, S n(x n ) = M n = 0. Este tipo de spline é indicado quando não conhecemos as derivadas y 0 e y n. No entanto, estas condições podem reduzir a precisão do spline. 3) Spline periódico: y 0 = y n, S (x 0 ) = S (x n ), M 0 = M n. RESOLUÇÃO Construção do spline: Neste caso vamos recorrer ao spline natural, n = 4 e h i = h = 0.5. Como o espaçamento h é constante, a expressão simplifica-se e com i = 1,, 3, ficamos com: M 0 = 0 1 M 0 + M 1 + 1 ( ) M y y 1 + y 0 = 3 h 1 M 1 + M + 1 ( ) M y3 y + y 1 3 = 3 h 1 M + M 3 + 1 ( ) M y4 y 3 + y 4 = 3 h M 4 = 0
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 39 ou, na forma matricial, 1 0 0 0 0 1/ 1/ 0 0 0 1/ 1/ 0 0 0 1/ 1/ 0 0 0 0 1 M 0 M 1 M M 3 M 4 = 0 3 [ (y y 1 + y 0 )/h ] 3 [ (y 3 y + y 1 )/h ] 3 [ (y 4 y 3 + y )/h ] 0 Substituindo os valores de y i, i = 0, 1,, 3, 4 e eliminando as primeiras e últimas linhas e colunas obtemos sucessivamente, 1/ 0 10.5 1/ 1/ 37.5 0 1/ 8.5 0.5 0 10.5 0 1.875 0.5 34.875 0 0.5 8.5 0.5 0 10.5 0 1.875 0.5 34.875 0 0 1.8667 73. Portanto, os momentos são M 3 = 73./1.8667 = 39.14 M = (34.875 0.5M 3 )/1.875 = 8.149 M 1 = (10.5 0.5M )/ = 3.143 O leitor poderá consultar o Capítulo 1 referente a Sistemas de Equações Lineares para compreender a obtenção dos valores M 1, M e M 3.
40 SEMANA 6 O primeiro troço do spline corresponde a x [x 0, x 1 ], sendo S 1 (x) = M 0 (x 1 x) 3 6h (x x 0 ) 3 + M 1 + 6h h (y ) x1 x 0 M 0 + 6 h h (y ) x x0 1 M 1 6 h = 0 + 3.143 (x 0)3 6 1 + (0 0) 0.5 x 1 + (0.065 3.143 ( 1 ) ) x 0, 6 1 ou seja, S 1 (x) = 1.0714x 3 0.1486x para 0 x 0.5. Os restantes troços determinam-se da mesma forma, obtendo-se S = 1.648x 3 0.85714x + 0.857x 0.07148 para 0.5 x 1 S 3 = 10.357x 3 6.999x + 6.48x 8.7857 para 1 x 1.5 S 4 = 13.071x 3 78.48x 131.71x + 70.86 para 1.5 x 16 14 1 10 8 6 4 0 0 0. 0.4 0.6 0.8 1 1. 1.4 1.6 1.8 Figura 6..1: Spline cúbico natural resultante
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 41 6.3 INTERPOLAÇÃO POLINOMIAL: Erros em splines cúbicos Pretende-se interpolar por um spline cúbico numa malha uniforme no intervalo [0, 1] a função f(x) = exp(1 + x). Determine o número de nós necessário para obter um erro relativo em valor absoluto inferior a 10 3. CONCEITOS TEÓRICOS O cálculo de erros de interpolação com splines cúbicos tem por base o Teorema.7.4, p. 86, [Pina(1995)]: Teorema.7.4: Seja f C 4 ( Ω) e S o spline cúbico satisfazendo qualquer das condições suplementares referidas nesta subsecção [pp. 8 83, [Pina(1995)]]. Então, D 4 f h 4 f S 5 ( 384 3 D(f S) 16 + 1 4 D (f S) ( 1 D 3 (f S) 1 ) D 4 f h3 ) D 4 f h 1 + 1 3 (h/h) ( 1 + (h/h) ) D 4 f h em que h = min 1 i n h i RESOLUÇÃO O erro relativo em valor absoluto é tal que e(x) = f(x) S(x) f(x) sendo maj f(x) S(x) f S. Pelo Teorema.7.4, fica 5 384 D 4 f h 4 ɛ = 10 3 min f(x) maj f(x) S(x) min f(x) 5 384 exp(1 + x) h4 ɛ = 10 3 min exp(1 + x) 5 384 max exp(1 + x) h4 x [0,1] min exp(1 + x) x [0,1] ɛ = 10 3 5 384 exp()h4 ɛ = 10 3, exp(1) pois, D 4 f = exp(1 + x) é monótona crescente no intervalo [0, + ] e, logo, tem um mínimo em x = 0 e um máximo em x = 1 no intervalo [0, 1].
4 SEMANA 6 Assim, resulta ( 10 3 exp(1) h < 5 384 exp() ) 1/4 h < 0.40998 h = b a N = 1 0 < 0.40998 N >.43914, N ou seja, 3 intervalos. Assim, são necessários pelo menos 4 nós.
7 TÓPICOS: Diferenciação Numérica: Diferenças finitas de primeira e segunda ordens; Majorante do erro; Espaçamento óptimo; Ponto de inflexão; Espaçamento desigual. LEITURAS RECOMENDADAS: Capítulo 3 (pp. 97 111) do livro [Pina(1995)] 7.1 DIFERENCIAÇÃO NUMÉRICA: Diferenças finitas de primeira e segunda ordens Considere a seguinte tabela de valores para a função y = cosh x: x 0.1 0. 0.3 0.4 y 1.0050 1.001 1.0453 1.0811 Determine os valores de f (0.) e f (0.) pelas várias fórmulas de diferenças finitas e compare os resultados com os valores exactos. CONCEITOS TEÓRICOS Consultar as Secções 3. e 3.3 de [Pina(1995)]. 15 10 5 0 5 10 15 4 3 1 0 1 3 4 Figura 7.1.1: Funções cosh(x) ( ) e sinh(x) (- - -)
44 SEMANA 7 RESOLUÇÃO Valores exactos: y = cosh x = ex + e x, y = sinh x = ex e x, y = cosh x = ex + e x = y y (0.) = sinh(0.) = 0.0134, y (0.) = cosh(0.) = 1.001 Valores por diferenças finitas: Para o cálculo da primeira derivada, vamos usar diferenças finitas de primeira e segunda ordens. Diferenças finitas de 1. a ordem D h f(x) com h = 0.1: Progressiva (exp. (3..8)) Regressiva (exp. (3..10)) Central (exp. (3..1)) f(x+h) f(x) h f(x) f(x h) h f(x+h) f(x h) h = f(0.+0.1) f(0.) 0.1 = 0.50 = f(0.) f(0. 0.1) 0.1 = 0.1510 = f(0.+0.1) f(0. 0.1) 0.1 = 0.015 Diferenças finitas de. a ordem D h f(x) com h = 0.1: Progressiva (Exp. (3..16)) Regressiva (Exp. (3..0)) 3f(x)+4f(x+h) f(x+h) h =... = 0.1990 3f(x) 4f(x h)+f(x h) h =... = 0.0150 Central (Exp. (3..1)) Expressão e valor iguais a 1. a ordem Para calcular a diferença finita regressiva de. a ordem precisamos de saber o valor da função em x = 0, que neste caso é f(0) = cosh(0) = 1. A Figura abaixo mostra as tangentes, isto é, polinómios de ordem um, dados pelas diferenças finitas de primeira ordem.
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 45 1.1 1.08 1.06 C P 1.04 1.0 R 1 0.98 0.96 0 0.05 0.1 0.15 0. 0.5 0.3 0.35 0.4 Figura 7.1.: Diferenças Finitas: (P) Progressiva, (R) regressiva e (C) central A melhor aproximação foi obtida com a Diferença Finita Central, e com a Diferença Regressiva de. a ordem, mas esta última requer um maior número de pontos e inclusive um valor de f(x) que não está na tabela dada. Para a segunda derivada, vamos considerar apenas a diferença finita central (obviamente de segunda ordem). Exp. (3.3.1) com h = 0.1: Dhf(x) f(x + h) f(x) + f(x h) = = h f(0.3) f(0.) + f(0.1) 0.1 = 1.0453 1.001 + 1.005 0.1 = 1.0100, ou seja, sendo o valor exacto y (0.) = 1.001, esta aproximação dispõe de dois dígitos correctos. 7. DIFERENCIAÇÃO NUMÉRICA: Majorante do erro Obtenha o valor de f (1.0) para a função f(x) = exp( x) usando diferenças finitas progressivas e passo h = 0.001. Determine o erro efectivamente cometido e compare-o com o majorante teórico. CONCEITOS TEÓRICOS Consultar as Secções 3. e 3.3 de [Pina(1995)].
46 SEMANA 7 RESOLUÇÃO Valores aproximado e exacto: f(x + h) f(x) D h f(x) = h f(1.001) f(1.0) = 0.001 = e 1.001 e 1 0.001 = 0.3676956 f (x) = e x f (1.0) = e 1.0 = 0.3678794 Erro efectivamente cometido: E(1.0) = f (1.0) D h f(1.0) = 0.3678794 ( 0.3676956) = 0.0001838 = (1.838)10 4 O majorante teórico do erro (erro devido apenas à aproximação da derivada) é dado pela exp. (3..9), p. 100 de [Pina(1995)]: e 1(x) = 1 hf (ξ) em que ξ [x 0, x 1 ] = Ω e 1(x) 1 h f (x) Neste problema, f (x) = e x em Ω = [1.0, 1.0 + h]. Concretizando, e atendendo a que a função é monótona, o máximo encontra-se num extremo do intervalo (ver Figura 7..1), fica f (x) Ω = f (1.0) = f(1.0) = 0.367879 e 1(1.0) 1 0.001 0.367879 = (1.839)10 4 Constatamos que, de facto, E(1.0) e 1(1.0), sendo praticamente igual. Utiliza-se para o erro de interpolação a letra minúscula e de forma a manter a coerência com a nomenclatura utilizada no livro de [Pina(1995)]. Note-se no entanto que se trata de um erro absoluto e por isso deveríamos utilizar uma letra maiúscula.
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 47 4.5 4 3.5 3.5 1.5 1 0.5 0 1.5 1 0.5 0 0.5 1 1.5 Figura 7..1: Funções exp( x) ( ) e exp(x) (- - -) 7.3 DIFERENCIAÇÃO NUMÉRICA: Espaçamento óptimo Dada a seguinte tabela de tempos e posições: t 0 1/3 /3 1 y(t) 0 sen(π/6) sen(π/3) 1 a) Determine uma aproximação da velocidade e da aceleração nos nós interiores usando diferenças finitas centrais. b) Deduza uma estimativa para o espaçamento óptimo no cálculo da aceleração por diferenças finitas centrais. RESOLUÇÃO a) Antes de mais, devemos observar que h = 1/3 e que os pontos interiores são t = 1/3 e t = /3. Expressão para cálculo das velocidades por diferenças finitas centrais (p. 101, exp. (3..1)): D h f(x) = f(x + h) f(x h) h Expressão para cálculo das acelerações por diferenças finitas centrais (p. 103, exp. (3.3.1)): D hf(x) = f(x h) f(x) + f(x + h) h
48 SEMANA 7 Concretizando para os valores dados na tabela e recorrendo à calculadora, obtemos, sucessivamente: f(1/3 + 1/3) f(1/3 1/3) D h f(1/3) = 1/3 = sen(π/3) 0 = 1.99 1/3 f(/3 + 1/3) f(/3 1/3) D h f(/3) = 1/3 = 1 sen(π/6) = 0.75 1/3 = = f(/3) f(0) 1/3 f(1) f(1/3) 1/3 D hf(1/3) = = D hf(/3) = f(1/3 1/3) f(1/3) + f(1/3 + 1/3) (1/3) f(0) f(1/3) + f(/3) 0 sen(π/6) + sen(π/3) (1/3) = (1/3) = 1.057 = f(/3 1/3) f(/3) + f(/3 + 1/3) (1/3) f(1/3) f(/3) + f(1) sen(π/6) sen(π/3) + 1 (1/3) = (1/3) =.088457 b) Neste caso, o espaçamento h óptimo é desconhecido. O valor exacto da segunda derivada f (x) relaciona-se com o valor por diferenças finitas centrais e o erro de aproximação, e (x), inerente ao cálculo por este processo, do seguinte modo: f f(x h) f(h) + f(x + h) (x) = 1 1 h f (4) (η) = h f(x h) f(h) + f(x + h) h e (x) Em representação em ponto flutuante, temos de contar ainda com os erros de arredondamento, ẽ(x), no cálculo do valor da própria função, ou seja, onde f(x) = f(x) + ẽ(x) e, portanto f (x) = f(x h) f(h) + f(x + h) E = + h ẽ(x h) ẽ(h) + ẽ(x + h) h = f(x h) f(h) + f(x + h) h ẽ(x h) ẽ(h) + ẽ(x + h) h 1 1 h f (4) (η) + E 1 1 h f (4) (η)
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 49 Considerando f (4) M 4 e ẽ(x h) ẽ(h) + ẽ(x + h) 4ɛ onde M 4 é o majorante das quartas derivadas e ɛ é um parâmetro que depende da forma como a função f é calculada, ou seja, é da ordem de grandeza da unidade de arredondamento do computador utilizado, podemos fazer E 4ɛ h + M 4h 1 O segundo membro é mínimo quando a sua primeira derivada, em ordem a h, for nula, isto é, quando 8ɛ h 3 + M 4h = 0 h = 6 ( 48ɛ M 4 ) 1/4 Portanto, o valor de h deduzido será a estimativa para o espaçamento óptimo no cálculo da aceleração por diferenças finitas centrais. Como complemento teórico à resolução deste problema, sugerimos a observação atenta da Figura 3.5.1, na p. 108. do livro [Pina(1995)]. 7.4 DIFERENCIAÇÃO NUMÉRICA: Ponto de inflexão Obtenha o ponto de inflexão de uma função f no intervalo [0, 1] sendo conhecidos os seguintes valores: x 0.00 0.5 0.50 0.75 1.00 f(x) 0.00 0.56 0.7 1.34 4.00 RESOLUÇÃO Podemos considerar os seguintes processos para resolver o problema: i) Determinar o polinómio interpolador e depois derivar analiticamente; ii) Determinar as derivadas aproximadas Dh f(x) pela tabela e interpolar os valores obtidos; iii) Determinar os splines, seguido de derivação analítica. Em qualquer dos casos obtemos uma equação polinomial a solucionar. De notar que existem outros processos, igualmente válidos para resolver este problema. Processo i: Esquematicamente temos p n (x) p n(x) p n(x) = 0 Assim, primeiro determinamos o polinómio interpolador p 4 (x) por diferenças divididas:
50 SEMANA 7 x y[ ] y[, ] y[,, ] y[,,, ] y[,,,, ] 0.00 0.00.4 0.5 0.56 3. 0.64 9.17(3) 0.50 0.7 3.68 7.68.48 16.85(3) 0.75 1.34 16.3 10.64 1.00 4.00 O polinómio é então p(x) =.4x 3.x(x 0.5) + 9.17(3)x(x 0.5)(x 0.50) + 7.68x(x 0.5)(x 0.50)(x 0.75) que, desenvolvido e agrupado na forma de potências simples de x corresponde a p(x) = 3.4(6)x 4.8x.34(6)x 3 + 7.68x 4. Derivando sucessivamente, obtemos p (x) = 3.4(6) 9.6x 7.04x + 30.7x 3 p (x) = 9.6 14.08x + 9.16x O ponto de inflexão é tal que p (x) = 0 x = b ± b 4ac a ou seja, x = 0.408054 x = 0.5576 Portanto, o ponto de inflexão no intervalo [0, 1], obtido por este processo, é x 0.40805. Processo ii: Esquematicamente temos D h f(x) p n(x) p n(x) = 0 A segunda derivada é obtida por diferenças finitas centrais: D hf(x) = f(x h) f(x) + f(x + h) h tal que h = 0.5. Assim, obtemos x 0.00 0.5 0.50 0.75 1.00 y 0.00 0.56 0.7 1.34 4.00 y 6.4 7.36 3.64 e a correspondente tabela de diferenças divididas para determinar a interpolação de D h f(x):
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 51 x y [ ] y [, ] y [,, ] 0.5 6.4 55.04 0.50 7.36 9.16 101.1 0.75 3.64 O polinómio que interpola a segunda derivada é, então p (x) = 6.4 + 55.04(x 0.5) + 9.16(x 0.5)(x 0.50) que, desenvolvido e agrupado em potências de x corresponde a p (x) = 8.64 14.08x + 9.16x O ponto de inflexão é tal que p (x) = 0 x = b ± b 4ac a ou seja, x = 0.391960 x = 0.3918 Portanto, o ponto de inflexão no intervalo [0, 1], obtido por este processo, é x 0.39196. Processo iii: Esquematicamente temos M i S i (x) S i (x) = 0 Reparar que não necessitamos de determinar o próprio spline cúbico S i (x), bastando, para o que pretendemos, calcular S i (x). Dado que desconhecemos as derivadas y nos extremos x 0 e x 4, temos M 0 = M 4 = 0, isto é, impomos S 1 (x 0 ) = 0 = M 0 e S 4 (x 4 ) = 0 = M 4. Para determinar M 1, M 3 e M 3 faz-se h 6 M i 1 + h 3 M i + h 6 M i+1 = y i+1 y i + y i 1 h com i = 1,, 3 1 M i 1 + M i + 1 M i+1 = 3 h (y i+1 y i + y i 1 ) com i = 1,, 3 o que origina, na forma matricial, 1/ 0 1/ 1/ 0 1/ M 1 M M 3 = 3 h y y 1 + y 0 y 3 y + y 1 y 4 y 3 + y = 19..08 97.9 Como veremos, ao impor estas igualdades, os resultados deterioram-se.
5 SEMANA 7 Resolvendo o sistema de equações, por exemplo, através do método de Gauss e substituição descendente, obtemos M 1 M M 3 = 48.6171 1.3714 9.948 Dado que S i = M i, é de esperar que o ponto de inflexão esteja no segundo troço, pois M e M 3 têm sinais diferentes. Então, como a segunda derivada do i-ésimo troço de spline é tal que (Exp. (.7.7), p. 81, [Pina(1995)]) S i x i x x x i 1 (x) = M i 1 + M i h h obtemos para o segundo troço, isto é, para o subintervalo [0.5, 0.5] S x x x x 1 (x) = M 1 + M h h = 9.948 0.50 x 0.5 O ponto de inflexão é tal que + 1.3714 x 0.5 0.5 S (x) = 0 9.948 0.50 x + 1.3714 x 0.5 = 0 x = 0.469697. 0.5 0.5 Portanto, o ponto de inflexão no intervalo [0, 1], obtido por este processo, é x 0.46970. Comparação entre os três processos: Observando as Figuras 7.4.1(a) e 7.4.1(b), que mostram o polinómio obtido pelo processo i), é possível concluirmos que o ponto de inflexão positivo se encontra na vizinhança de 0.4. No entanto, existe um outro ponto de inflexão negativo, perto de 0.5. 5 4.5 4 4 3 3.5 3.5 1 0 1.5 1 1 0.5 3 1 0.8 0.6 0.4 0. 0 0. 0.4 0.6 0.8 1 (a) 0 0 0.1 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figura 7.4.1: Polinómio de quarta ordem obtido pelo processo i (b) Os valores do ponto de inflexão obtidos pelos processos i e ii são bastante semelhantes, pois os polinómios de grau obtidos são quase coincidentes (Figura 7.4.).
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 53 O resultado com o processo iii não será o melhor, dado que impusemos um valor nulo às segundas derivadas nas extremidades do intervalo (S i (0) = 0 = M 0 e S i (1) = 0 = M 4). 70 60 50 40 30 0 Processo ii Processo i 10 0 10 Processo iii 0 0 0.1 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figura 7.4.: Polinómios obtidos por derivação analítica (Processos i e ii) e por spline cúbico natural (Processo iii) ) A título comparativo e para reflexão, mostramos o polinómio obtido pelo processo i e o spline cúbico natural na Figura 7.4.3. Porque se verificam grandes discrepâncias nos intervalos [0, 0.5] e [0.75, 1]? 4 3.5 3 Processo iii.5 1.5 Processo i 1 0.5 0 0 0.1 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figura 7.4.3: Polinómios de quarta ordem (Processo i) e spline cúbico (Processo iii) Relembramos que não é necessário construir o spline para calcular o ponto de inflexão.
54 SEMANA 7 7.5 DIFERENCIAÇÃO NUMÉRICA: Espaçamento desigual Dados 3 pontos, (x 1, y 1 ), (x, y ), (x 3, y 3 ), com espaçamento desigual entre as suas abcissas, deduza uma fórmula para calcular uma aproximação da segunda derivada num ponto qualquer do intervalo [x 1, x 3 ]. Considerando os pontos (1, 1), (, 4), (5, 5), utilize a fórmula para calcular y () e y (3). Em qual dos pontos, x ou (x 1 + x 3 )/, é de esperar um erro absoluto menor? Justifique (admita que as derivadas de y = f(x) se mantêm na mesma ordem de grandeza em [x 1, x 3 ]). RESOLUÇÃO Pretendemos deduzir uma fórmula para calcular Dh f f (x) = y. De entre as várias possibilidades, a dedução da diferença finita com espaçamento desigual é a mais simples. De notar que o recurso a splines não é o mais adequado, pois não se conhece a função e estes requerem o conhecimento de m 0 (splines quadráticos) ou M 0 e M n (splines cúbicos). Assim, Dh = p (x) = f [x 1, x, x 3 ] = f [x 1, x ] f [x, x 3 ] x 1 x 3 f(x 1) f(x ) x = 1 x f(x) f(x3) x x 3 x 1 x 3 Como Dh não depende de x, temos 1 4 f () f 1 (3) 4 5 5 1 5 A expressão do erro de D h é e = f [x 1, x, x 3, x, x, x] W (x) onde, usando vem + f [x 1, x, x 3, x, x] W (x) + f [x 1, x, x 3, x] W (x) f [x 1, x, x 3,..., x k ] = f (k) (ξ) k! e = f (5) (r) 10 W (x) + f (4) (ξ) W 1 (x) + f (3) (η) W (x) 6 = 4 3
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 55 onde Como as derivadas mantêm a mesma ordem de grandeza, ficamos com e M ( ) 1 1 10 W (x) + W (x) + W (x) W = (x x 1 )(x x )(x x 3 ) = (x 1)(x )(x 5) W = (x x )(x x 3 ) + (x x 1 )(x x 3 ) + (x x 1 )(x x ) W = (x x 3 ) + (x x ) + (x x 1 ) = 6x 16 Compilando os valores numa tabela, obtemos x W (x) W (x) W (x) e 11 x = x = 0 3 4 1 M 8.4 x = (x 1 + x 3 )/ = 3 4 4 1 M Concluímos então que é de esperar um erro absoluto menor em x, embora em termos de majorante a diferença encontrada não seja significativa.
8 TÓPICOS: Integração Numérica: Regras de Newton-Cotes simples e compostas; Regra de Gauss-Legendre-Lobatto; Regras de Gauss-Legendre e do trapézio composta. Erros absoluto e relativo. Estimativa e majorante do erro. LEITURAS RECOMENDADAS: Capítulo 4 (pp. 115 139) do livro [Pina(1995)] 8.1 INTEGRAÇÃO NUMÉRICA: Regras do trapézio simples e de Simpson simples e composta (a) Calcule, pela regra do trapézio simples e pela regra de Simpson simples, o valor aproximado do integral I = 3 exp (1 + cos x)dx. (b) Idem pela regra de Simpson composta com subintervalos. (c) Estime o erro absoluto cometido na alínea anterior. RESOLUÇÃO (a) As regras referidas correspondem, respectivamente, às expressões (4..6) e (4..7), p. 10, de [Pina(1995)]: T I h (f) = b a [f(a) + f(b)] S I h (f) = b a [ f(a) + 4f( a + b ] 6 ) + f(b) onde a e b são os limites de integração. Concretizado para a função f(x) = exp (1 + cos x), com a = e b = 3 obtemos (b) T I h (f) = 3 [f() + f(3)] = 1.401495675 S I h (f) = 3 [ f() + 4f( + 3 ] 6 ) + f(3) = 1.8050305
58 SEMANA 8 Aplicação directa da exp. (4.5.10): A exp. para o cálculo com a regra de Simpson composta com N subintervalos é (Exp. (4.5.10), p. 138, de [Pina(1995)]): Sc I h (f) = h 6 [ onde h = (b a)/n. f(a) + f(b) + N 1 i=1 No caso presente, como N = teremos f(a i ) + 4 ] N f(a i 1 + h/) i=1 Sc I h (f) = h 6 [f(a) + f(b) + f(a 1) + 4(f(a 0 + h/) + f(a 1 + h/))] com a =, b = 3, h = (3 )/ = 0.5, a 0 = = a, a 1 = a 0 + h =.5, a = a 1 + h = b. Assim, vem, sucessivamente Sc I h (f) = 0.5 {f() + f(3) + f(.5) + 4[f( + 0.5/) + f(.5 + 0.5/)]} 6 = 0.5 {f() + f(3) + f(.5) + 4[f(.5) + f(.75)]} 6 = 1.799906 Resolução alternativa e justificação da exp. (4.5.10): Neste caso consideramos intervalos, usamos a regra de Simpson simples em cada um deles e somamos os valores obtidos, pois sabemos que I = b a f(x)dx = = a1 a a1 b f(x)dx + a 0 f(x)dx + a 1 f(x)dx a a 1 f(x)dx =.5 3 f(x)dx + f(x)dx..5 Portanto, aplicando a regra de Simpson simples a cada um dos integrais acima, obtemos Sc I h (f) =.5 [f() + 4f(.5) + f(.5)] 6 + 3.5 [f(.5) + 4f(.75) + f(3)] = 1.799906 6 (c) Antes de mais, há que notar que se pretende uma estimativa, pois desconhecemos o valor exacto do integral. Os erros de integração das regras de Simpson simples e composta são dados, respectivamente pelas expressões (4..18), p. 14 e (4.5.11), p. 138, de [Pina(1995)]: S E h (f) = 1 880 f (4) (ξ)(b a) 5 = I S I h (f) (8.1.1) Sc E h (f) = b a 880 f (4) (ξ)h 4 = I Sc I h (f) onde h = b a N A exp. (8.1.) pode escrever-se da seguinte forma: Sc E h (f) = b a 880 f (4) (ξ) ( b a N (8.1.) ) 4 = 1 N 4 1 880 f (4) (ξ) (b a) 5 (8.1.3)
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 59 pelo que, e como N =, fica I S I h (f) = 1 880 f (4) (ξ)(b a) 5 = c (8.1.4) I Sc I h (f) = 1 1 4 880 f (4) (ξ) (b a) 5 = 1 16 c (8.1.5) Subtraindo (4) a (5), membro a membro, fica ou seja, I S I h (f) I + Sc I h (f) = c + 1 4 c Sc I h (f) S I h (f) = ( ) 1 16 1 c (8.1.6) ( ) 1 1 c = 16 1 [ Sc I h (f) S I h (f) ] ( = 15 ) 1 [ Sc I h (f) S I h (f) ] 16 = 16 [ Sc I h (f) S I h (f) ] (8.1.7) 15 Substituindo c em (5), obtemos I Sc I h (f) = 1 16 ( 16 ) [Sc I h (f) S I h (f) ] Sc I h (f) S I h (f) = 15 15 (8.1.8) Então, substituindo os valores calculados nas alíneas anteriores, obtemos uma estimativa de erro absoluto cometido na alínea b) de 3.9 10 5. A Figura 8.1.1 mostra a negro a diferença entre as áreas abaixo da curva da função f(x) = exp(1+cos(x)) e dos polinómios de grau 1 (Figura 8.1.1(a): Regra do trapézio simples) e grau (Figura 8.1.1(b): Regra de Simpson simples). É notório o melhor desempenho da regra de Simpson que, recordamos, é de ordem 3..5.5 1.5 1.5 1 1 0.5 0.5 0.1..3.4.5.6.7.8.9 3 0.1..3.4.5.6.7.8.9 3 (a) Regra do trapézio simples (b) Regra de Simpson simples Figura 8.1.1: Diferenças entre integração exacta e com regras do trapézio e Simpson simples [, 3]. Admitimos que a estimativa de f (4) é válida em ambos os casos, sendo o máximo no intervalo
60 SEMANA 8 8. INTEGRAÇÃO NUMÉRICA: Regra de Gauss-Legendre e de Gauss-Legendre- Lobatto Pretende-se calcular o seguinte integral I = 0 sinh(x)dx. (a) Obtenha uma aproximação com pontos de Gauss-Legendre. (b) Idem, com 3 pontos de Gauss-Legendre-Lobatto. (c) Calcule o erro absoluto e relativo cometido em cada caso. RESOLUÇÃO (a) Mudança de coordenadas (exp. (4.1.), p. 116): a(1 ξ) T (ξ) = J(ξ) = b a Então, I = 0 + = = 1 sinh(x)dx = b(1 + ξ) 1 1 = 0(1 ξ) + sinh(1 + ξ) 1dξ = (1 + ξ) 1 1 = 1 + ξ sinh(1 + ξ)dξ. Com pontos, temos as abcissas e os pesos (Tabela 4.4.1, p. 13) ξ 1 = 0.57735069, A 1 = 1, ξ 1 = +0.57735069, A = 1. e, portanto I = 0 sinh(x)dx A 1 f(ξ 1 ) + A f(ξ ) = 0.43534578 +.317793457 =.75313939 (b) As regras de Gauss-Lobatto são tais que possuem os dois pontos dos extremos do intervalo (p. 135, de [Pina(1995)]) e os restantes no interior: I h (f) = Af(a) + Bf(b) + n A i f(x i ) i=1 Para n = 3 obtemos a regra de Simpson (ver Problema 4.1.11, p. 158, [Pina(1995)]): I h (f) = b a 6 [ f(a) + 4f( a + b ] ) + f(b) ou seja
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 61 I = 0 sinh(x)dx 0 6 [f(0) + 4f(1) + f()] = 1 (0 + 4 1.17501194 + 3.66860408) =.775888395 3 (c) O valor exacto do integral é I = 0 Alínea a) sinh(x)dx = cosh(x) 0 =.76195691 pelo que E = I(f) I h (f) = +0.00905645 e = Alínea b) E = +3.787 10 3 I(f) E = I(f) I h (f) = 0.01369704 e = E = 4.9571 10 3 I(f) 8.3 INTEGRAÇÃO NUMÉRICA: Regras de Gauss-Legendre e do trapézio composta Pretende-se calcular o seguinte integral I = 1 ln(x)dx. (a) Calcule uma aproximação pela regra de Gauss-Legendre com pontos. (b) Calcule outra aproximação pela regra do trapézio composta usando 5 valores da função integranda e um espaçamento uniforme. (c) Calcule um majorante do erro em cada caso. Obtenha também os erros absoluto e relativo cometidos em cada caso. RESOLUÇÃO (a) Mudança de coordenadas (exp. (4.1.), p. 116): a(1 ξ) T (ξ) = + J(ξ) = b a = 1 Então, I = 1 ln(x)dx = b(1 + ξ) 1 1 = 1(1 ξ) + (1 + ξ) = 1 (3 + ξ) [ ] 1 ln (3 + ξ) 1 dξ = 1 1 [ ] 1 ln (3 + ξ) dξ. 1
6 SEMANA 8 Com pontos, temos as abcissas e os pesos e, portanto ξ 1 = 1/3, A 1 = 1, ξ = + 1/3, A = 1. I = = 1 1 ln(x)dx A 1 f(ξ 1 ) + A f(ξ ) [ 1 (3 ] 1/3) + ln { ln [ 1 (3 + 1/3) ]} = 0.3865949441 (b) Considerando 5 valores da função e um espaçamento uniforme, temos sendo h = 1/4 = 0.5. Concretizando, (c) [ ln(1.00) I h (f) = h = 0.5 1.00 1.5 1.50 1.75.00 + ln(.00) ] + ln (1.5) + ln (1.50) + ln (1.75) ] [ 0.00 + ln(.00) + ln (1.5 1.50 1.75) = 0.3836995094 Um majorante do erro: Alínea a) Atendendo às expressões (4.4.9) e (4.4.10), p. 130, de [Pina(1995)], obtemos para a regra de Gauss-Legendre com pontos (n = ): E 1 f 430 ( 1) +1 ( ) Alínea b) [1,] = 1 430 ( 1) +1 max x [1,] = 1 430 ( 1) +1 6 = 0.1388888889 10 6 1 x 4 Atendendo à expressão (4.5.9), p. 137, de [Pina(1995)], obtemos para a regra do trapézio composta usando 5 valores da função (h = 1/4): E b a 1 f [1,] h = 1 1 max x [1,] 1 x = 1 1 1 1 = 0.508333333 10 4 Erros absolutos e relativo: O valor exacto do integral é I = 0 ( ) 1 4 ln(x)dx = x ln(x) x 1 = 0.38694361 pelo que
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 63 Alínea a) E = I(f) I h (f) = 0.0003005831 e = Alínea b) E I(f) = 0.0007781193058 E = I(f) I h (f) = +0.005948516 e = E I(f) = +0.00671790911
9 TÓPICOS: Integração Numérica (CONT.): Dedução e grau de regras de integração; Regra do trapézio corrigida; Regra de Simpson adaptativa iterativa. LEITURAS RECOMENDADAS: Capítulo 4 (pp. 135 15) do livro [Pina(1995)] 9.1 INTEGRAÇÃO NUMÉRICA: Dedução e grau de regras de integração Pretende-se deduzir uma regra de integração do tipo I(f) = +1 1 sinh(x)f(x)dx I h (f) = A 1 [f( 1) + f(+1)] + A [f( ξ) + f(+ξ)] a) Calcule os pesos A 1 e A de modo a que a regra tenha o maior grau de exactidão 1 possível para ξ = 3. b) Que polinómios são integrados exactamente por esta regra? c) Caracterize esta regra quanto à família, ao número de pontos usados, à estimativa de erro e ao grau de exactidão da regra justificando a resposta. RESOLUÇÃO a) Como a regra é referida a um intervalo simétrico em relação à origem, todos os integrais do tipo,: I m (f) = +1 1 x m dx, a que se dá o nome de momentos, com m ímpar anulam-se. Assim sendo, a regra de integração terá de integrar exactamente os dois primeiros momentos de ordem par, ou seja, I 0 (f) = +1 x 0 dx = e I (f) = +1 1 1 x dx = 3. Para estabelecer as duas equações que determinam os pesos A 1 e A, temos de obrigar a regra a um cálculo exacto das funções f(x) = 1 e f(x) = x. Substituindo, obtemos o seguinte sistema de equações
66 SEMANA 9 A 1 + A = A 1 + 3 A = 3 A solução deste sistema é A 1 = 0 e A = 1. b) Como os momentos ímpares são todos integrados exactamente devido à disposição simétrica dos pontos, é de esperar que pelo menos a regra integre exactamente as funções 1, x, x e x 3. Ou seja, para estabelecer que o grau de exactidão da regra é 3 há que comprovar que a função x 4 não é integrada exactamente. Com efeito, o valor exacto é I 4 = 5 enquanto que o valor calculado pela regra é I h(f) = 9 I(f) = 5. Então, são integrados exactamente todos os polinómios de grau 3, pelo que a regra é de grau de exactidão 3. c) Como A 1 = 0, a contribuição dos pontos nos extremos do intervalo é nula, pelo 1 que só há dois pontos interiores em ξ = ± 3. A regra obtida corresponde à regra de Gauss-Legendre com pontos a qual tem um grau de exactidão de 3. A estimativa de erro é dada pelas expressões (4.4.9) e (4.4.10) em [Pina(1995)], p. 130, com n = e b a =. 9. INTEGRAÇÃO NUMÉRICA: Regra do trapézio corrigida a) Calcular o integral I(f) = 1 0 f(x)dx com f(x) = ln ( 1 + x ) pela regra do trapézio corrigida. b) Obtenha um majorante para o erro cometido. Nota: f 4 (x) = 1 ( 6x x 4 1 ) / ( 1 + x ) 4. c) Há, neste caso, alguma vantagem particular em usar esta regra? RESOLUÇÃO a) A expressão desta regra é I h (f) = b a [f(a) + f(b)] + (b a) 1 Concretizando para o caso presente, isto é, [f (a) f (b)] obtemos a = 0, b = 1, f(0) = 0, f(1) = 0.6931471806, f (x) = I h (f) = 1 0 x 1 + x, f (0) = 0, f (1) = 1. [0 + 0.6931471806] + (1 0) 1 [0 1] = 0.634057
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 67 b) O erro é tal que E h (f) (b a)5 f (4) (ξ) 70 sendo o majorante dado por E h (f) (b a)5 70 Determinação do majorante: f (4) [0,1] (b a)5 = 70 max x [0,1] f (4) Os valores de f (4) (x) nos extremos do intervalo são: f (4) (0) = 1 e f (4) (1) = 3. O ponto intermédio é tal que f (5) (x) = 0, sendo f (5) (x) = 1(1x 4x3 )(1 + x ) 4 1(6x x 4 1) 4(1 + x ) 3 x (1 + x ) 8 = 48(3x x3 )(1 + x ) 4 48(6x x 4 1) (1 + x ) 3 x (1 + x ) 8 = 48[(3x x3 )(1 + x ) (6x x 4 1) x] (1 + x ) 5 Então, vem = 48(x5 10x 3 + 5x) (1 + x ) 5 = 48x(x4 10x + 5) (1 + x ) 5 ou seja, f (5) (x) = 0 z 10z + 5 = 0 z = b ± b 4ac a z = 9.47135955 z = 0.578640450 f (5) (x) = 0 x = ±3.077683537 x = ±0.7654580 O ponto de estacionaridade no intervalo [0, 1] é x = 0.7654580, sendo f (4) (0.7654580) = 4.15881378. Contudo, este não é o máximo em valor absoluto da função f (4) (x) para x [0, 1], mas sim f (4) (0) = 1. Portanto, o majorante do erro é E h (f) (1 0)5 70 1 = 0.0166666
68 SEMANA 9 Na Figura 9..1 podemos ver graficamente a quarta derivada. 6 4 0 4 6 8 10 1 0 0.1 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figura 9..1: f 4 (x) = 1 ( 6x x 4 1 ) / ( 1 + x ) 4 para x [0, 1] c) Neste caso, e como a função é tal que f(x) C 4 (Ω), a regra do trapézio corrigida tem como erro (exp. (4.5.13), p. 138, de [Pina(1995)]): E h (f) = b a 70 f (4) (ξ)h 4 dependendo de h à quarta e não ao quadrado como na regra do trapézio simples (exp. (4.5.9), p. 138, de [Pina(1995)]): E h (f) = b a 1 f (ξ)h Só não haverá vantagens quando f (a) = f (b), pois neste caso a regra do trapézio corrigida coincide com a regra do trapézio simples. 9.3 INTEGRAÇÃO NUMÉRICA: Regra de Simpson adaptativa iterativa Use uma regra de Simpson adaptativa iterativa para aproximar o integral I = 1 0 x dx com as tolerâncias de erro total ɛ = 0.005 e ɛ = 0.000. CONCEITOS TEÓRICOS O valor de um integral num dado troço [x i, x i+h ] de comprimento h pode ser aproximado por, Ĩh, x i x i + h/ x i + h
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 69 Ĩ h = h 6 [f(x i) + 4f(x i + h/) + f(x i + h)] (9.3.1) ou subintervalos, [x i, x i+h/ ] e [x i+h/, x i+h ], cada um com comprimento h/, I h : x i x i + h/4 x i + h/ x i + 3h/ x i + h I h = h/ 6 [f(x i) + 4f(x i + h/4) + f(x i + h/) + 4f(x i + 3h/4) + f(x i + h)] = h 1 [f(x i) + 4f(x i + h/4) + f(x i + h/) + 4f(x i + 3h/4) + f(x i + h)] (9.3.) Uma estimativa do erro para a integração num subintervalo de comprimento h é dada por E = I I h 1 15 ( ) I h Ĩh Considerando que cada troço contribui para o erro total, ɛ, com um erro proporcional ao seu comprimento (ler segundo parágrafo na p. 145 e enunciado do Problema 4.1.5, p. 160, de [Pina(1995)]), teremos E = I I h 1 15 ( ) I h Ĩh h ɛ b a onde a e b são os limites de integração de todo o integral. (9.3.3) Como complemento a estes Conceitos Teóricos, remetemos o leitor para as páginas 144 e 145 de [Pina(1995)]. RESOLUÇÃO A Figura 9.3.1 representa graficamente a função f(x) = x no intervalo [0, 1]. Observamos que o troço [1/, 1] apresenta menor variação da função, pelo que o escolhemos como primeiro subintervalo a analisar. Se iniciássemos o cálculo pelo troço [0, 1/] teríamos mais trabalho. Uma implementação computacional calcularia as estimativas de erro para saber onde começar. Ver resolução do Exercício 8.1, em particular a exp. (8.1.8), p. 59.
70 SEMANA 9 1 0.9 0.8 Elevada variação em f(x) 0.7 Pequena variação em f(x) 0.6 0.5 0.4 0.3 0. 0.1 0 0 0.1 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Figura 9.3.1: f(x) = x para x [0, 1] Troço [1/, 1]: Neste caso temos h = 1/. 1/ 5/8 3/4 7/8 1 1 subintervalo: Ĩ h1 [1/,1] = 1/ 6 ( 1/ + 4 3/4 + 1 ) = 0.4309340330703 subintervalos: I h[1/,1] = 1/ ( ) 1/ + 4 5/8 + 3/4 + 4 7/8 + 1 1 = 0.4309619315407 E (ɛ=0.005) [1/,1] = I h [1/,1] Ĩh 1 [1/,1] = 1.87734180316930 10 6 15 < 1/ 0.005 0.005 = = 0.0015 = 1.5 10 3 1 0 E (ɛ=0.000) [1/,1] = I h [1/,1] Ĩh 1 [1/,1] = 1.87734180316930 10 6 15 < 1/ 0.000 0.000 = = 0.0001 = 1.00 10 4 1 0 Ambos os critérios de erro são satisfeitos para este troço, pelo que passamos para o troço [0, 1/]. Troço [0, 1/]: Também neste caso temos h = 1/. 0 1/8 1/4 3/8 1/
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 71 1 subintervalo: Ĩ h1 [0,1/] = 1/ ( ) 0 + 4 1/4 + 1/ 6 = 0.5593176555 subintervalos: I h [0,1/] = 1/ ( ) 0 + 4 1/8 + 1/4 + 4 3/8 + 1/ 1 = 0.311708693095 E (ɛ=0.005) [0,1/] = I h [0,1/] Ĩh 1 [0,1/] = 4.349903443603494 10 4 15 < 1/ 0.005 = 0.0015 = 1.5 10 3 1 0 E (ɛ=0.000) [0,1/] = I h [0,1/] Ĩh 1 [0,1/] = 4.349903443603494 10 4 15 > 1/ 0.000 = 0.0001 = 1.00 10 4 1 0 O critério de erro ɛ = 0.005 é satisfeito para este troço, mas não o critério ɛ = 0.000. Para este último caso temos de subdividir o intervalo [0, 1/]. Ficaremos, então, com dois novos troços: [1/4, 1/] e [0, 1/4]. Troço [1/4, 1/]: Agora temos h = 1/4. 1/4 5/16 3/8 7/16 1/ 1 subintervalo: Ĩ h1[1/4,1/] = 1/4 ( ) 1/4 + 4 3/8 + 1/ 6 = 0.1535818849874 subintervalos: I h [1/4,1/] = 1/4 1 ( 1/4 + 4 5/16 + 3/8 + 4 7/16 + 1/ ) = 0.1536814460714 E (ɛ=0.000) [1/4,1/] = I h [1/4,1/] Ĩh 1 [1/4,1/] = 6.63740559814187 10 7 15 < 1/4 0.000 = 0.00005 = 5.00 10 5 1 0 Troço [0, 1/4]: À semelhança do troço [1/4, 1/] temos também h = 1/4.
7 SEMANA 9 0 1/16 1/8 3/16 1/4 1 subintervalo: Ĩ h1 [0,1/4] = 1/4 ( ) 0 + 4 1/8 + 1/4 6 = 0.079758898431 subintervalos: I h [0,1/4] = 1/4 ( ) 0 + 4 1/16 + 1/8 + 4 3/16 + 1/4 1 = 0.0806578309907 E (ɛ=0.000) [0,1/4] = I h [0,1/4] Ĩh 1[0,1/4] = 1.5379311139366 10 4 15 > 1/4 0.000 = 0.00005 = 5.00 10 4 1 0 Como vemos, para a tolerância ɛ = 0.000, é necessário subdividir o troço [0, 1/4] nos troços [1/8, 1/4] e [0, 1/8]. Em ambos os casos temos h = 1/8. Troço [1/8, 1/4]: 1/8 5/3 3/16 7/3 1/4 1 subintervalo: Ĩ h1[1/8,1/4] = 1/8 ( ) 1/8 + 4 3/16 + 1/4 6 = 0.0538667541838 subintervalos: I h [1/8,1/4] = 1/8 ( ) 1/8 + 4 5/3 + 3/16 + 4 7/3 + 1/4 1 = 0.053870741446 E (ɛ=0.000) [0,1/4] = I h [0,1/4] Ĩh 1 [0,1/4] =.34667753961538 10 7 15 < 1/8 0.000 = 0.00005 =.50 10 5 1 0 Troço [0, 1/8]: 0 1/3 1/16 3/3 1/8
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 73 1 subintervalo: Ĩ h1 [0,1/8] = 1/8 ( ) 0 + 4 1/16 + 1/8 6 = 0.081990897069 subintervalos: I h [0,1/8] = 1/8 ( ) 0 + 4 1/3 + 1/16 + 4 3/3 + 1/8 1 = 0.0901463586637 E (ɛ=0.000) [0,1/8] = I h [0,1/8] Ĩh 1 [0,1/8] = 5.437379304504368 10 5 15 > 1/8 0.000 = 0.00005 =.50 10 5 1 0 Verificamos que é ainda necessário subdividir este troço em dois e começamos a suspeitar que existe algures um problema na resolução deste exercício. A aproximação do integral é, nesta iteração e para o critério ɛ = 0.000, I h = I h [1/,1] + I h [1/4,1/] + I h [1/8,1/4] + I h [0,1/8] = 0.4309619315407 + 0.1536814460714 + 0.053870741446 + 0.0901463586637 = 0.666154777184 O valor exacto do integral é /3. Reflectindo um pouco, notamos que a estimativa do erro utilizada não tem suporte quando a derivada envolvida não é limitada, como acontece para x = 0 neste problema. Assim, no cálculo do integral dado existem problemas de convergência. Estes problemas também se encontram nos actuais programas comerciais como, por exemplo, na função QUAD do MATLAB que efectua a quadratura de Simpson adaptativa. Para verificar o que atrás foi dito, convidamos o leitor a emitir os comandos f = @(x)sqrt(x); (f(x) = x) a = 0; b = 1; (limites de integração) tolerancia_do_erro = 0.000; (ɛ = 0.000) I_S_adapt = quad(f,a,b,tolerancia_do_erro); (valor numérico) I_exacto = /3; (valor exacto) E = I_exacto - I_S_adapt; (erro absoluto) no MATLAB e a observar os resultados. Um utilizador menos avisado pode ver-se na situação de o resultado fornecido não cumprir a tolerância exigida, pois o MATLAB não o avisa de tal.
10 TÓPICOS: Equações Não-Lineares: Métodos da Bissecção, Falsa Posição e Secante; Método da Bissecção e zeros múltiplos; Método da Falsa Posição. LEITURAS RECOMENDADAS: Capítulo 5 (pp. 163 178) do livro [Pina(1995)] 10.1 DETERMINAÇÃO DE ZEROS DE EQUAÇÕES NÃO-LINEARES: Métodos da Bissecção, Falsa Posição e Secante Verifique que a função f(x) = x 3 exp( x) tem um zero no intervalo [0, 1]. Calcule este zero com 3 dígitos decimais correctos utilizando os métodos: i) da Bissecção, ii) da Falsa Posição e iii) da Secante. RESOLUÇÃO Pelo teorema do valor intermédio (p. 315 do livro [Ferreira(1985)]), sendo f(x) uma função contínua com mudança de sinal no valor da função nos pontos extremos do intervalo [0, 1], então entre estes existe um ponto z [0, 1] : f(z) = 0. Neste caso mostra-se que: ou seja, f(0) = f(x) = x 3 exp( x) f(1) 0.641 f(0) f(1) < 0, i.e., a função apresenta pelo menos um zero no intervalo. Sendo f(x) monótona crescente, só pode ter um zero. i) Método da Bisseção (Ordem de convergência 1): Há 3 etapas a considerar na determinação do zero: 1. Aproximação inicial ao zero. Considere-se um intervalo [a, b] tal que sendo f(x) uma função contínua, verifica-se obrigatoriamente f(a) f(b) < 0.
76 SEMANA 10. Processo iterativo: Começar com o intervalo [a, b] = [a 0, b 0 ] iterando da seguinte forma: x k+1 = a k + b k f(a k ) f(x k+1 ) < 0 a k+1 = a k, b k+1 = x k+1 f(a k ) f(x k+1 ) > 0 a k+1 = x k+1, b k+1 = b k O processo consiste em subdivisão sucessiva do intervalo em dois e escolha de um deles. 3. Critério de paragem: Se a k b k < ε, parar. O comprimento total do último intervalo escolhido é na pior das situações a medida de erro na aproximação ao zero. Por isso diz-se que mede a incerteza na localização do zero. É possível neste caso saber a priori o número de iterações (exp. (5..), [Pina(1995)]) necessário para garantir que o erro entre a aproximação e o zero exacto é menor que um determinado valor de desvio ε. Esse número de divisões pode ser calculado com base no comprimento do intervalo na última bissecção da seguinte forma: e k a b k, ou seja, expressando o critério de paragem em termos do número de iterações necessárias, vem ( ) a b a b a b e n n < ε < n n log > log ε ε ( ) log a b ε n >. log Pretendemos 3 dígitos decimais exactos no intervalo [a 0, b 0 ] = [0, 1] pelo que ε = 0.001 = 10 3. Assim, obtemos ( ) log a b ε n > = log ( ) log 1 0 10 3 log = 9.97 n > 10. A seguinte tabela apresenta os resultados em cada iteração. k a k f(a k ) b k f(b k ) x k+1 f(x k+1 ) 0 0 1 +0.64 0.5 1.088 1 0.5 1.088 1 +0.64 0.75 0.59 0.75 0.59 1 +0.64 0.875 0.1638 3 0.875 0.1638 1 +0.64 0.9375 +(.4076)10 1 4 0.875 0.1638 0.9375 +(.4076)10 1 0.9065 (.6378)10 1 5 0.9065 (.6378)10 1 0.9375 +(.4076)10 1 0.91875 (.109)10 1 6 0.91875 (.109)10 1 0.9375 +(.4076)10 1 0.99688 +(.1419)10 1 7 0.91875 (.109)10 1 0.99688 +(.1419)10 1 0.95781 +(.1017)10 8 0.91875 (.109)10 1 0.95781 +(.1017)10 0.9388 (.5544)10 9 0.9388 (.5544)10 0.95781 +(.1017)10 0.94805 (.66)10 10 0.94805 (.66)10 0.95781 +(.1017)10 0.9593 (.65)10 3
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 77 A aproximação ao zero obtida pelo método da Bissecção é z 0.9593. ii) Método da Falsa Posição (Ordem de convergência 1 para zeros simples): 1. Aproximação inicial ao zero. Considere-se um intervalo [a, b], tal que sendo f(x) uma função contínua, verificase obrigatoriamente f(a) f(b) < 0.. Processo iterativo: Começar com o intervalo [a, b]=[a 0, b 0 ] iterando da seguinte forma: x k+1 = a kf(b k ) b k f(a k ) f(b k ) f(a k ) f(a k ) f(x k+1 ) < 0 a k+1 = a k, b k+1 = x k+1 f(a k ) f(x k+1 ) > 0 a k+1 = x k+1, b k+1 = b k 3. Critério de paragem: Neste caso utiliza-se um critério universal baseado na série de Taylor. Numa vizinhança suficientemente pequena do zero pode considerar-se a seguinte aproximação f(x k+1 ) = f(z) + f (z) (x k+1 z). 1! Logo, f(x n ) f (x) = (x n z) = e n ε. Sendo m um minorante de f (x) no intervalo, tem-se f(x n ) mε. Por outro lado sendo M um majorante de f (x) no intervalo, tem-se f(x n ) M e n f(x n) m M z x n f(x n ) m z x n, Assim transforma-se um critério de paragem definido para as abcissas (mas cujo z é desconhecido), num definido para as ordenadas onde se conhece f(x n ). f(x n ) mε. Este é o critério de paragem universal que se vai utilizar. Neste problema a tolerância requerida é ε = 10 3 pois o intervalo onde está o zero z [0, 1]. Cálculo do minorante m:
78 SEMANA 10 sendo O valor de m minorante de f (x) no intervalo é obtido estudando f (x) no intervalo, f(x) = x 3 exp( x), f (x) = 3x + exp( x) e f (x) = 6x exp( x). Podemos observar que no intervalo [0, 1] a derivada f (x) será primeiro decrescente (até aproximadamente x = 0.6 e depois crescente. Uma forma expedita de estimar um minorante e um majorante para f (x) consiste em considerar a pior situação: 0 + exp( 1) f (x) = 3x + exp( x) 3 + 0.7358 f (x) 5 Então, m = 0.7358 e o critério de paragem vem f(x n ) 0.7358 10 3. Aproximação inicial: (a 0 = 0, b 0 = 1). Processo iterativo: Os valores obtidos no processo iterativo são apresentados na tabela a seguir, sendo o critério de paragem f(x n ) 0.7358 10 3 testado no fim de cada iteração (ver coluna da direita na tabela que se segue). Note-se que este critério de paragem foi deduzido na hipótese de a aproximação estar numa vizinhança suficientemente pequena do zero. Se o cálculo da derivada for simples de obter, pode ajustar-se em cada iteração o valor de m através da seguinte aproximação m f (x). k a k f(a k ) b k f(b k ) x k+1 f(x k+1 ) 0 0 1 +0.64 0.8839 0.1377 1 0.8839 0.1377 1 +0.64 0.937 (0.7404)10 0.937 (0.7404)10 1 +0.64 0.9536 (0.3843)10 3 A aproximação do zero obtida pelo método da Falsa Posição é z = 0.95365. O extremo b k imobilizou-se no ponto x = 1. A convergência nestas situações pode ser acelerada utilizando a variante de Illinois ([Pina(1995)]). iii) Método da Secante (Ordem de convergência ( 1 + 5 ) / 1.618 para zeros simples): 1. Aproximação inicial ao zero. Sejam (x 1, f(x 1 )), (x 0, f(x 0 )) duas estimativas iniciais.. Processo iterativo: Aplicar de forma sucessiva a seguinte expressão com k = 0, 1,,... x k+1 = x k f(x k ) f [x k 1, x k ] onde f [x k 1, x k ] = f(x k) f(x k 1 ) x k x k 1
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 79 3. Critério de paragem: i) f(x n ) mε, ou ii) x k+1 x k mε. Utiliza-se ii) caso z seja um zero simples. Caso não se saiba ou não o seja, utiliza-se o critério universal i) onde m é o minorante da primeira derivada, f (x), no intervalo. Deste modo, temos para este problema com o método da secante a mesma expressão f(x n ) 0.7358 10 3 utilizada no método da Falsa Posição. Aproximação inicial: (a 0 = 0, b 0 = 1). Processo iterativo: Os valores obtidos no processo iterativo são apresentados na tabela a seguir, sendo o critério de paragem f(x n ) 0.7358 10 3 testado no fim de cada iteração (ver coluna da direita na tabela que se segue). k x k f(x k ) x k+1 f(x k+1 ) 0 1 +0.644 0.8839 0.1377 1 0.8839 0.13767 0.937 (0.7404)10 0.937 (0.7404)10 0.9554 (0.36)10 3 A aproximação do zero obtida pelo método da Secante é z = 0.9554. Note-se que pelo critério ii) seria necessário continuar o processo iterativo até k = 3. Em ambiente de MATLAB encontram-se várias aplicações (funções do MATLAB) para a determinação de zeros de funções. No caso de funções de uma variável o algoritmo utilizado combina os métodos da bissecção, secante e interpolação inversa quadrática. Uma implementação em FORTRAN deste algoritmo encontra-se em Forsythe, G. E., M. A. Malcolm, and C. B. Moler, Computer Methods for Mathematical Computations, Prentice-Hall, 1976. A determinação de zeros de funções não-lineares com mais de uma variável está fora dos objectivos deste livro, apenas se referindo que em MATLAB se utiliza a função fsolve. Os algoritmos utilizados são os do método de Gauss-Newton, de Levenberg-Marquardt e em problemas de grande dimensão recorre-se a métodos dos mínimos quadrados. No caso particular de polinómios utiliza-se a função root que se baseia num algoritmo de cálculo de valores e vectores próprios de uma matriz associada ao problema. Para uma leitura mais detalhada sobre este assunto recomenda-se a consulta da respectiva parte do manual do MATLAB e as referências indicadas. 10. EQUAÇÕES NÃO-LINEARES: Método da Bissecção e zeros múltiplos Indique como se comporta o método da bissecção no caso de zeros múltiplos? Considere para a resposta, os casos de zeros de multiplicidade par e multiplicidade ímpar.
80 SEMANA 10 CONCEITOS TEÓRICOS A Figura 10..1 exemplifica alguns dos diferentes tipos de zeros e a tabela define as características de zeros simples, duplos e triplos (ver definição 5.1. e teorema 5.1.1 em Pina[1995]). 10 100 1000 8 80 800 6 60 600 4 40 400 0 00 0 0 0 0 00 4 40 400 6 60 600 8 80 800 10 10 8 6 4 0 4 6 8 10 100 10 8 6 4 0 4 6 8 10 1000 10 8 6 4 0 4 6 8 10 (a) f(x) = x: Zero simples (b) f(x) = x : Zero duplo (c) f(x) = x 3 : Zero triplo Figura 10..1: Exemplos de funções com zeros de diferentes multiplicidades Tabela 10..1: Características dos zeros simples, duplos e triplos. a) b) c) Zero simples Zero duplo Zero triplo f(z) = 0 f(z) = f (z) = 0 f(z) = f (z) = f (z) = 0 f (z) 0 f (z) 0 f (z) 0 Em termos geométricos, dizemos que ao zero simples corresponde um declive não nulo, ao zero duplo corresponde um declive nulo, mas curvatura não nula, e ao zero triplo um declive e uma curvatura nulos. RESOLUÇÃO No caso de multiplicidade par, o método da bissecção não pode iterar por não ser possível encontrar um intervalo I = [a, b] : f(a) f(b) < 0. No caso de multiplicidade ímpar o método da bissecção funciona num intervalo com mudança de sinal nos valores da função para os extremos do intervalo. 10.3 EQUAÇÕES NÃO-LINEARES: Método da Falsa Posição O cálculo da carga crítica de instabilidade de Euler de uma estrutura, conduziu à seguinte equação: f(x) = x(x 10) sin(x) 4(x + 1) cos(x) + 88 = 0. Da análise de casos-limite sabe-se que a solução da equação está situada no intervalo [π, π]. Usando este intervalo inicial, efectue 4 iterações pelo método da falsa posição
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 81 para obter uma solução aproximada x 4. Verifique, justificando, se o erro absoluto de x 4 na aproximação ao zero nesse intervalo é inferior a 10 4. RESOLUÇÃO Pelo teorema do valor intermédio, se f(x) for uma função contínua, existe um ponto z [π, π] : f(z) = 0. A função f(x) é contínua verificando-se que: f(π) = 81.87 f(x) = x(x 10) sin(x) 4(x + 1) cos(x) + 88 = 0 f(π) 947.48 f(π) f(π) < 0 Método da Falsa Posição (Ordem de convergência 1 para zeros simples): 1. Aproximação inicial ao zero. Sejam (a k, f(a k )), (b k, f(b k )) duas estimativas iniciais.. Processo iterativo: x k+1 = a kf(b k ) b k f(a k ) f(b k ) f(a k ) f(a k ) f(x k+1 ) < 0 a k+1 = a k, b k+1 = x k+1 f(a k ) f(x k+1 ) > 0 a k+1 = x k+1, b k+1 = b k tabela. A aproximação inicial é a 0 = π, b 0 = π. Os resultados do processo iterativo até obter x 4 são apresentados na seguinte k a k f(a k ) b k f(b k ) x k+1 f(x k+1 ) 0 (.31415)10 +1 +(.8187)10 +3 (.6831)10 +1 (.94748)10 +3 (.459)10 +1 +(.83411)10 +3 1 (.459)10 +1 +(.83411)10 +3 (.6831)10 +1 (.94748)10 +3 (.53839)10 +1 +(.59571)10 + (.53839)10 +1 +(.59571)10 + (.6831)10 +1 (.94748)10 +3 (.54371)10 +1 (.51381)10 +1 3 (.53839)10 +1 +(.59571)10 + (.54371)10 +1 (.51381)10 +1 (.5439)10 +1 +(.310)10 1 A aproximação obtida pelo método da Falsa Posição é x 4 = 5.439. A verificação do erro absoluto de x 4 faz-se da seguinte forma: E = z x 4 < 10 4 f(x 4 ) < mε sendo o valor de m obtido no ponto x 4 por: f (x) = (7x + 168) sin(x) + (x 3 168x) cos(x), f (x 4 ) = f (5.43901) = 11.5. Com este valor de m, verifica-se que: f(x 4 ) = 0.0310 < 11.5 10 4 = 0.115, confirmando-se de facto que o erro absoluto é E x4 < 10 4.
11 TÓPICOS: Equações Não-Lineares (cont.): Natureza e localização de zeros de polinómios (Regra de Descartes e de Budan); Método de Newton-Raphson; Método do ponto fixo e aceleração de Aitken. Localização de zeros de polinómios. LEITURAS RECOMENDADAS: Capítulo 5 (pp. 179 01) do livro [Pina(1995)] 11.1 EQUAÇÕES NÃO-LINEARES: Natureza e localização de zeros de polinómios (metodologia) Para o polinómio p(x) = x 3 + x + 10x 0: a) Determine a natureza dos seus zeros, b) Obtenha a localização do zero positivo, e c) Determine o zero positivo pelo método da secante com 3 decimais exactos. RESOLUÇÃO a) Natureza dos zeros Aplicando a regra dos sinais de Descartes I (p. 19, [Pina(1995)]) ao polinómio p(x) = x 3 + x + 10x 0, observa-se que o número V de mudanças de sinal dos coeficientes do polinómio permite concluir pela existência de um zero real positivo, i.e., N + V = 1 V N + é par N + = 1 (1 zero real positivo) Aplicando agora a regra dos sinais de Descartes II (p. 19-3, [Pina(1995)]) constróise o polinómio p( x): q(x) = p( x) q(x) = x 3 + x 10x 0 onde se observa que o número V de mudanças de sinal dos coeficientes do polinómio p( x) permite concluir pela existência de nenhum zero real negativo ou dois, i.e.,
84 SEMANA 11 V = N V N é par N = 0 N = (0 ou zeros reais negativos) Por fim, tratando-se de um polinómio de grau 3 pode concluir-se que o polinómio p(x) tem duas possibilidades: i) 1 zero real positivo e zeros reais negativos, ou ii) 1 zero real positivo e zeros complexos. b) Localização dos zeros do polinómio Pelo Teorema 5.9.1 (p. 193, [Pina(1995)]) os zeros do polinómio estão no interior de um círculo centrado na origem de raio: Ω = 1 + max 0 k n 1 a k a n. Com n = 3 e com os os coeficientes a k do polinómio obtém-se o valor: Ω = 1 + max 0 k a k a 3 = 1 + 0 = 1. Todos os zeros do polinómio p(x) estão situados no círculo do plano complexo centrado na origem e de raio 1. Verificação: Pode-se testar se existe mudança de sinal no valor do polinómio entre dois pontos do intervalo [0, 1], i.e. { p(x) = x 3 + x p(0) = 0 + 10x 0 p(1) = 10333 observando-se que p(0) p(1) < 0. Pelo teorema do valor intermédio, se f(x) for uma função contínua, existe um ponto z [0, 1] : f(z) = 0. Podemos ainda proceder ao refinamento do intervalo onde se encontra o zero real positivo utilizando a Regra de Budan (p. 195, [Pina(1995)]) num intervalo. para isso precisamos das derivadas até à ordem n do polinómio. p(x) = x 3 + x + 10x 0 p (x) = 3x + 4x + 10 p (x) = 6x + 4 p (x) = 6 Para um intervalo [a, b] = [0, ] tem-se:
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 85 a = 0 : p(0) = 0; p (0) = 10; p (0) = 4; p (0) = 6 b = : p() = 16; p () = 30; p () = 16; p () = 6 onde pela regra de Budan se concluí que N V a V b = 1 N = 1 (1 zero real positivo no intervalo [0, ]), (V a V b ) N é par i.e., o zero real está neste intervalo. Por fim sugere-se que aplique a regra de Budan ao intervalo [, 1]. c) Método da Secante (Ordem de convergência ( 1 + 5 ) / 1.618 para zeros simples): Aproximação inicial: Sejam os pontos (x 1, f(x 1 )), (x 0, f(x 0 )) duas estimativas iniciais. Processo iterativo:itera-se sucessivamente em k=0,1,,... x k+1 = x k f(x k ) f [x k 1, x k ] onde f [x k 1, x k ] = f(x k) f(x k 1 ) x k x k 1 Critério de paragem: f(x n ) M e n f(x n) m M z x n f(x n ) m z x n Logo f(x n ) mε onde m é o minorante da primeira derivada, f (x), no intervalo. Tratando-se de um zero simples pode utilizar-se também o seguinte critério de paragem: x k+1 x k ε Neste problema como pretendemos 3 decimais exactas no intervalo [0, ], então ε = 10 3. Para utilizar o critério universal calcula-se da seguinte forma o minorante, m: f(x) = p(x) = x 3 + x + 10x 0 f (x) = p (x) = 3x + 4x + 10 f (x) = p (x) = 6x + 4 > 0 no intervalo [0, ], logo aí f (x) é monótona crescente.
86 SEMANA 11 Conclui-se de 10 3x + 4x + 10 30, que o minorante m ocorre em x = 0, com valor m = 10 e por isso o critério de paragem será f(x n ) 10 10 3 = 10. Aproximação inicial: x 1 = 0, x 0 = Processo iterativo: Os resultados encontram-se na seguinte tabela. k x k f(x k ) x k+1 f(x k+1 ) 0 16 1.11111 5.0480 1 1.11111 5.0480 1.349 0.970 1.349 0.970 1.375 +0.077 3 1.375 +0.077 1.36876 0.0009 A aproximação do zero obtida pelo método da Secante é z = 1.36876, pois f(x 4 ) mε. 11. EQUAÇÕES NÃO-LINEARES: Método de Newton-Raphson a) Verifique que a função f(x) = 16 exp(x) 48+7 exp( x) tem um zero no intervalo [0.5, 1] e outro no intervalo [ 0.5, 0]. Verifique também que não existem mais zeros (justifique). b) Pretende-se obter uma aproximação do zero positivo da equação f(x) = 0. Partindo de x 0 = 1.0, efectue 3 iterações de Newton-Raphson. Verifique se o erro da aproximação de x 3 ao zero é inferior a 10 5. RESOLUÇÃO a) A função f(x) = 16 exp(x) 48 + 7 exp( x) tem os seguintes limites: lim f(x) = +, x ± e a sua derivada f (x) = 16 exp(x) 7 exp( x) anula-se no ponto f (x) = 0 16 exp(x) 7 exp( x) = 0 x = 0.616.
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 87 Se x ], 0.616[, f (x) < 0 f(x) é monótona decrescente. Se x ]0.616, + [, f (x) > 0 f(x) é monótona crescente. Logo, como f(0.616) = 6.43 < 0, então existe um único zero no intervalo ], 0.616[ e mais outro único zero no intervalo ]0.6164, + [. b) Método de Newton-Raphson (Ordem de convergência para zeros simples) 1. Aproximação inicial ao zero. Seja x 0 uma estimativa inicial do zero.. Processo iterativo: Itera-se sucessivamente em k=0,1,,... utilizando a seguinte expressão: x k+1 = x k f (x k) f (x k ) Aproximação inicial: x 0 = 1 Processo iterativo: São pedidas 3 iterações. Os resultados são apresentados na seguinte tabela. k x k f(x k ) f (x k ) 0 1 (.545)10 1 (.33559)10 1 0.83833 (.6760)10 0 (.534)10 0.81164 (.176)10 1 (.4034)10 3 0.81093 (.1881)10 4 A aproximação ao zero é z = 0.81093. Para a verificação do erro absoluto em x 3 faz-se: E = z x 3 < 10 5 f(x 3 ) < mε, f (x) = 16 exp(x) 7 exp( x), f (x 3 ) = f (0.81093) = (.3998)10, f(x 3 ) = (.1881)10 4 < (.3998)10 10 5 = (.3998)10 3. Confirma-se que E x3 < 10 5. Poderia ter utilizado o critério aplicável a converg encias supralineares já que se trata de um zero simples.
88 SEMANA 11 As Figuras 11..1 e 11.. mostram a função f(x) e a sua derivada no intervalo [ 1, 1]. 35 30 5 0 15 10 5 0 5 10 1 0.8 0.6 0.4 0. 0 0. 0.4 0.6 0.8 1 Figura 11..1: Função f(x) = 16 exp(x) 48 + 7 exp( x) no intervalo [ 1, 1] 40 0 0 0 40 60 80 1 0.8 0.6 0.4 0. 0 0. 0.4 0.6 0.8 1 Figura 11..: Função f (x) = 16 exp(x) 7 exp( x) no intervalo [ 1, 1] 11.3 EQUAÇÕES NÃO-LINEARES: Método do Ponto Fixo. Localização de zeros de polinómios e aceleração de Aitken Determine com 5 dígitos correctos o zero positivo da equação x 3 x x 1 = 0 utilizando o método do Ponto Fixo.
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 89 CONCEITOS TEÓRICOS Teorema 5.8.1 para a convergência do método do Ponto Fixo (p. 186, [Pina(1995)]): Se existir um intervalo I [a, b] tal que g(i) I e relativamente ao qual a função g é contractiva, g (x) < 1, então esta função possui um único ponto fixo neste intervalo, e a sucessão {x k } gerada por x k+1 = g(x k ), com k = 0, 1,... converge para este ponto fixo qualquer que seja a estimativa inicial x 0 I. Uma função g(x) contínua num intervalo I diz-se contractiva nesse intervalo se g (x) < 1 para todo x I. Observando a Figura 11.3.1 constatamos que o método do ponto fixo tem como base geométrica a determinação do ponto de intersecção de g(x) com a recta y = x, correspondendo este ponto ao zero da função f(x). Ou seja, transforma-se o problema de localização de zeros de f(x) no problema matematicamente equivalente de determinação da intersecção da g(x) com a recta y = x. A vantagem é, como veremos, em termos de algoritmo o mais simples que se pode obter. Dada uma aproximação inicial x 0 o processo iterativo consiste simplesmente em calcular sucessivamente para k = 0, 1,...: x k+1 = g (x k ) A prova de convergência pode tornar-se num problema de alguma dificuldade. Em termos práticos, podemos limitarmo-nos a verificar se existe convergência dos resultados numéricos para o ponto fixo da função no intervalo pretendido. Na Figura estão exemplificados os casos: a) processo iterativo convergente e b) processo iterativo divergente. Quer os casos convergentes, quer os divergentes, podem ocorrer em "escada"ou por "envolvente". (a) Convergência (b) Divergência Figura 11.3.1: Convergência e divergência do método do ponto fixo Aceleração de Aitken: Como escreve [Pina(1995)] na p. 188: Se g (z) 0, a convergência do método iterativo de ponto fixo é linear, o que, frequentemente significa que é lenta. No entanto, é possível acelerar a convergência por um processo devido a Aitken. A fórmula para proceder à aceleração de Aitken é: x k = x k ( x k) x k
90 SEMANA 11 onde se tem o operador de diferença progressiva: x k = x k+1 x k e x k = x k+ x k+1 + x k, ou seja, x k,m+1 = x k,m (x k+1,m x k,m ) x k+,m x k+1,m + x k,m com k, m = 0, 1,... O indíce m é para o cálculo com a aceleração de Aitken. RESOLUÇÃO Método do ponto fixo (Ordem de convergência 1): Como é pedido para aplicar o método do ponto fixo, considere-se a equação f(x) = 0 escrita na forma x = g(x). De imediato verificamos que podemos escolher várias funções g(x), mas como se verá nem todas são escolhas válidas para utilizar com este método. Para cada função escolhida verificam-se as condições de convergência. Escolha-se a seguinte função. Função 1: g(x) = x 3 x 1 = x(3x x) Para se garantir que o processo é convergente teremos desde já que verificar se g (x) < 1 num intervalo I que contenha a raiz e depois se g(i) I. Convergência: O processo não é convergente em todos os pontos, pois g (x) = 3x x = 3x(x ) dependendo do intervalo escolhido poderá em módulo ser maior do que 1. Neste problema não nos é indicado um intervalo que contenha o zero, pelo que temos de determinar uma localização dos zeros desta função polinomial. Localização dos zeros Pelo Teorema 5.9.1 (p. 193, [Pina(1995)]): Ω = 1 + max 0 k n 1 Com n = 3, fica Ω = 1 + max 0 k a k a 3 a k a n = 1 + 1 = Todos os zeros estão situados no círculo do plano complexo de raio. Verificação: { p(x) = x 3 x p(0) = 1 x 1 p() = 1 p(0) p() < 0 Pelo teorema do valor intermédio (p. 315 do livro [Ferreira(1985)]), se f(x) for uma função contínua, existe um ponto z [0, ] : f(z) = 0.
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 91 Um refinamento do intervalo onde se encontra o zero real positivo pode ser determinado pela Regra de Budan (p. 195, [Pina(1995)]): p(x) = x 3 x x 1, p (x) = 3x x 1, p (x) = 6x, p (x) = 6, onde para verificar se o zero está no intervalo [0, 1] basta fazer: a = 0 : p(0) = 1; p (0) = 1; p (0) = ; p (0) = 6 b = 1 : p(1) = ; p (1) = 0; p (1) = 4; p (1) = 6 N V a V b = 0 N = 0 (0 zeros reais positivo no intervalo [0, 1]) (V a V b ) N é par O zero real positivo está localizado no intervalo [1, ], pois não existe nenhum em [0, 1], como verificámos. Ora, para x > 1 facilmente se conclui que g (x) = 3x(x ) em módulo é maior do que 1. Temos por isso que escolher outra função que esta não possui as condições de convergência. Função : Como f(x) = x 3 x x 1, pode obter-se para g(x) a seguinte função: g(x) = (x + x + 1) 1/3 Como anteriormente referido, para se garantir que o processo é convergente tem que se assegurar que g (x) < 1 num intervalo que contenha a raiz. Ora g (x) = 1 x + 1 3 (x + x + 1), /3 não sendo óbvio que no intervalo [1, ] se tenha g (x) < 1. Para isso vai-se estudar a segunda derivada: g (x) = 1 (x + x + 1) /3 (x + 1) /3(x + x + 1) 1/3, 3 (x + x + 1) 4/3 onde, multiplicando a segunda parcela do numerador por (x + x + 1) (x + x + 1), permite obter a expressão:
9 SEMANA 11 (x+1) g (x) = (x + x + 1) /3 [1 1 3 (x +x+1) ], 3 (x + x + 1) /3 g (x) = 9 (x + x ) (x + x + 1). 5/3 Pode agora concluir-se que para x [1, ] se terá g (x) monotona decrescente. É agora suficiente conhecer os valores da derivada nos extremos deste intervalo. g (x) = 1 x + 1 g (1) 0.48075 < 1 3 (x + x + 1) /3 g () 0.45546 < 1 Falta verificar que g(i) I. Como no intervalo x [1, ] se verifica g (x) = 1 x + 1 3 (x + x + 1), /3 então a função g(x) é monotona. Basta agora verificar o que se passa nos extremos do intervalo. { g(x) = (x + x + 1) 1/3 g(1) 1.44 [1, ] g() 1.919 [1, ] Como [g(1), g()] [1, ] estão assim garantidas as condições de convergência para o ponto fixo no caso da segunda função. 1 0.5 0 0.5 1 1.5 1 1.1 1. 1.3 1.4 1.5 1.6 1.7 1.8 1.9 Figura 11.3.: Polinómio x 3 x x 1 no intervalo [1, ]
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 93 0.5 1.9 0.48 0.46 1.8 0.44 0.4 1.7 0.4 1.6 0.38 0.36 1.5 0.34 1.4 1 1.1 1. 1.3 1.4 1.5 1.6 1.7 1.8 1.9 (a) Função g(x) 0.3 1 1.1 1. 1.3 1.4 1.5 1.6 1.7 1.8 1.9 (b) Função g (x) Figura 11.3.3: Funções g(x) e g (x) no intervalo [1, ] A aproximação inicial pode agora ser escolhida como x 0 = 1.5. O processo iterativo consiste simplesmente em calcular sucessivamente para k=0,1,...: x k+1 = g (x k ) O critério de paragem de acordo com o enunciado do Problema 5.13.3 em [Pina(1995)] (sugere-se a resolução desse problema), para o método do ponto fixo prevê a seguinte condição: e k M 1 M x k x k 1 onde g (x) M < 1 em I = [a, b], onde, se M 1/ então e k x k x k 1 x k x k 1 < ε Como são pedidos 5 dígitos correctos e tendo em conta que o zero está localizado entre 1 e 10 (em ordem de grandeza) então ε = 10 5 10 1 = 10 4 ou seja quatro decimais correctos. k x k x k x k 1 0 1.5 1 1.6809 (.18)10 0 1.7658 (.85)10 1 3 1.8053 (.39)10 1 4 1.836 (.18)10 1 5 1.830 (.84)10 6 1.8359 (.39)10 7 1.8377 (.18)10 8 1.8385 (.83)10 3 9 1.8389 (.38)10 3 10 1.8391 (.18)10 3 11 1.839 (.80)10 4 Verifica-se que x 11 x 10 = (.80)10 4 < 10 4, pelo que a aproximação do zero obtida pelo método do ponto fixo é z = (.1839)10 1.
94 SEMANA 11 Aceleração de Aitken: Depois de calculados x 0, x 1 e x podemos usar a aceleração de Aitken, ou seja k x k x k x k 1 0 1.8409 1 1.8396 (.1)10 1.8393 (.8)10 3 3 1.839 (.90)10 4 4 1.8393 (.40)10 4 5 1.839 (.50)10 4 Verifica-se que x 5 x 4 = (.50)10 4 < 10 4, pelo que a aproximação do zero obtida pelo método do ponto fixo é z = (.1839)10 1. Bastava pararmos em k = 3, dado que x 3 x = (.90)10 4.
1 TÓPICOS: Sistemas de Equações Lineares: Método de Gauss; Método de Gauss com escolha de pivot total; Método de Gauss com escolha de pivot parcial. LEITURAS RECOMENDADAS: Capítulo 6 (pp. 11 40) do livro [Pina(1995)] 1.1 SISTEMAS DE EQUAÇÕES LINEARES: Método de Gauss Resolva pelo método de Gauss o seguinte sistema de equações lineares: x 1 + x + x 3 = 4 x 1 x + x 3 = 4 x 1 + x + x 3 = 5 ALGORITMO Transformar por n-1 etapas sucessivas a matriz A numa matriz triangular superior. Algoritmo para o método de condensação de Gauss: Ciclo de k = 1,,..., n-1 a (k+1) ij b (k+1) i (coluna a factorizar) Ciclo de i = k+1,,..., n (linhas abaixo do pivot a kk ) m ik = a (k) ik /a (k) kk (o pivot a kk não pode ser nulo) Ciclo de j = k+1,,..., n (colunas à direita do pivot a kk ) = a (k) ij m ik a (k) kj = b (k) i Continuar ciclo em j Continuar ciclo em i Continuar ciclo em k m ik b (k) k Algoritmo para as substituições ascendentes: Ciclo de i = n, n-1,...,1 sum=0 Ciclo de k = i+1,..., n sum = sum + a ik x k Continuar ( ciclo em ) k x (n 1) i = b (n 1) i sum Continuar ciclo em i /a ii (linhas)
96 SEMANA 1 RESOLUÇÃO Sistema de equações Ax = b escrito na forma matricial: 1 1 1 1 1 1 1 x 1 x x 3 = 4 4 5 Condensação: Procedendo sucessivamente, obtemos k = 1: 1 1 1 4 1 1 4 1 1 5 m 1 = a(1) 1 = 1 a (1) 1 = 1 11 a () = a(1) m 1a (1) 1 = 1 1 1 = a () 3 = a(1) 3 m 1a (1) 13 = 1 1 = 1 b () = b (1) m 1 b (1) 1 = 4 1 4 = 0 m 31 = a(1) 31 = a (1) 1 = 11 a () 3 = a(1) 3 m 31a (1) 1 = 1 1 = 1 a () 33 = a(1) 33 m 31a (1) 13 = 1 1 = 1 b () 3 = b (1) 3 m 31 b (1) 1 = 5 4 = 3 k = : 1 1 1 4 0 1 0 0 1 1 3
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 97 m 3 = a() 3 = 1 a () = 1 a (3) 33 = a() 33 m 3a () 3 = 1 1 1 = 3 b (3) 3 = b () 3 m 3 b () = 3 1 0 = 3 1 1 1 4 0 1 0 0 0 3/ 3 O sistema fica então, 1 1 1 0 1 0 0 3/ x 1 x x 3 = 4 0 3 Por substituição ascendente obtém-se: 3 x 3 = 3 x 3 =, x + x 3 = 0 x + = 0 x = 1, x 1 + x + x 3 = 4 x 1 + 1 + = 4 = 0 x 1 = 1. A solução do sistema de equações é: x 1 x x 3 = 1 1 1. SISTEMAS DE EQUAÇÕES LINEARES: Método de Gauss com escolha de pivot total Considere os sistemas de equações cujas matrizes A e segundos membros b são dados por: a ij = (i j) /(i + j), i, j = 1,..., n; b k = 1/k, k = 1,..., n Resolva o sistema em aritmética exacta para n = 3 pelo método de Gauss com escolha de pivot total.
98 SEMANA 1 CONCEITOS TEÓRICOS E ALGORITMOS Método de Gauss com escolha de pivot total: Consiste em transformar por etapas sucessivas a matriz A numa matriz triangular superior. De acordo com a técnica de pivot total, são candidatos a pivot todos os elementos a (k) ij, i, j = k,..., n, ou seja, todos os elementos abaixo e à direita de a (k) kk incluindo o póprio, i.e., todos os elementos da parte activa de A (k), determinando-se dois índices p k e q k tais que a (k) p k q k = max a ij k i,j n Se p k k trocam-se as linhas k e p k e se q k k efectua-se também uma troca das colunas k e q k. Trocadas as linhas e colunas no início da etapa, quando da escolha de pivot, a factorização prossegue como no método sem escolha de pivot. Apenas convém reter os índices de troca de colunas já que correspondem a troca de variáveis. Algoritmo para o método de condensação de Gauss com pivot total: Ciclo de k = 1,,..., n-1 Escolher pivot (total) tal que a (k) kk Trocar as linhas e colunas necessárias Registar as trocas de coluna efectuadas (coluna a condensar) = max k i,j n a ij Ciclo de i = k+1,,..., n (linhas abaixo do pivot a kk ) m ik = a (k) ik /a (k) kk (o pivot a kk não pode ser nulo) Ciclo de j = k+1,,..., n (colunas à direita do pivot a kk ) a (k+1) ij = a (k) ij m ik a (k) kj Continuar ciclo em j b (k+1) i = b (k) i m ik b (k) k Continuar ciclo em i Continuar ciclo em k Algoritmo para as substituições ascendentes: Ciclo de i = n, n-1,...,1 (linhas) sum=0 Ciclo de k = i+1,..., n sum = sum + a ik x k Continuar ciclo em k ( ) x (n 1) i = b (n 1) i sum Continuar ciclo em i /a ii Caso se tenha procedido a alguma troca de colunas repôr os indíces de acordo com as trocas realizadas.
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 99 RESOLUÇÃO Com n = 3 temos o seguinte sistema de equações Ax = b escrito na forma matricial: 0 1/3 1 1/3 0 1/5 1 1/5 0 x 1 x x 3 = 1 1/ 1/3 Este sistema só pode ser resolvido com troca de linhas ou colunas, já que os valores zero na posição de pivot não são admissíveis. Permutação e condensação: Procedendo sucessivamente, obtemos k = 1: 0 1/3 1 1 1/3 0 1/5 1/ 1 1/5 0 1/3 x 1 x x 3 Trocar a 1. a linha com a 3. a linha (não afecta a ordem das variáveis): 1 1/5 0 1/3 1/3 0 1/5 1/ 0 1/3 1 1 x 1 x x 3 m 1 = a(1) 1 = 1/3 a (1) 1 = 1 3 11 a () = a(1) m 1a (1) 1 = 0 1 3 1 5 = 1 15 a () 3 = a(1) 3 m 1a (1) 13 = 1 5 1 3 0 = 1 5 b () = b (1) m 1 b (1) 1 = 1 1 3 1 3 = 7 18 k = : 1 1/5 0 1/3 0 1/15 1/5 7/18 0 1/3 1 1 x 1 x x 3
100 SEMANA 1 A escolha de pivot na submatriz activa requer trocar a. a linha com a 3. a linha seguida de troca da. a coluna com a 3. a coluna: 1 0 1/5 1/3 0 1 1/3 1 0 1/5 1/15 7/18 x 1 x 3 x A condensação prossegue da mesma forma: m 3 = a() 3 = 1/5 a () 1 = 1 5 a (3) 33 = a() 33 m 3a () 3 = 1 15 1 5 1 3 = 15 b (3) 3 = b () 3 m 3 b () = 7 18 1 5 1 = 17 90 obtendo-se: 1 0 1/5 1/3 0 1 1/3 1 0 0 /15 17/90 x 1 x 3 x O sistema fica então com a ordem das variáveis trocada em resultado da troca de colunas anteriormente efectuada: 1 0 1/5 0 1 1/3 0 0 /15 x 1 x 3 x = Por substituição ascendente obtém-se: 15 x = 17 90 x = 17 1 x 3 + 1 3 x = 1 x 3 + 1 ( 3 17 ) 1 x 1 + 1 5 x = 1 3 x 1 + 1 ( 5 17 ) 1 1/3 1 17/90 A solução do sistema de equações é dada por: x 1 x x 3 = +37/60 17/1 +53/36 x = 0 x 3 = 53 36 = 1 3 x 1 = 37 60
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 101 1.3 SISTEMAS DE EQUAÇÕES LINEARES: Método de Gauss com escolha de pivot parcial Considere a matriz A n n com n = 4 cujas entradas a ij são definidas para i, j = 1,,..., n de acordo com a seguinte regra e o vector b indicado. /i; i = j a ij = 1/ i j ; i j b i = (0 1 0 0) T Resolva o sistema de equações lineares Ax = b pelo método de Gauss com escolha de pivot parcial. Faça as operações com a precisão da sua calculadora mas apresente os resultados (intermédios e finais) em F P (10, 4,, A). CONCEITOS TEÓRICOS Método de Gauss com pivot parcial: Transformar por etapas sucessivas a matriz A numa matriz triangular superior. De acordo com a técnica de pivot parcial, são candidatos a pivot os elementos a (k) ik, i = k,..., n da matriz A(k), escolhendo-se aquele que tiver maior valor absoluto na parte activa da respectiva coluna. Mais precisamente, seja p k um índice tal que a (k) p k k = max a (k) ik k i n Se p k k procede-se à permuta das linhas k e p k. Trocadas as linhas, a aplicação do algoritmo prossegue normalmente, não havendo necessidade de registar as trocas para o cálculo das incógnitas já que trocas de linha não afectam a ordem das incógnitas. Algoritmo para o método de condensação de Gauss com pivot parcial: Ciclo de k = 1,,..., n-1 Escolher pivot (parcial) tal que a (k) kk Trocar as linhas e colunas necessárias (coluna a condensar) = max k i n a ij Ciclo de i = k+1,,..., n (linhas abaixo do pivot a kk ) m ik = a (k) ik /a (k) kk (o pivot a kk não pode ser nulo) Ciclo de j = k+1,,..., n (colunas à direita do pivot a kk ) a (k+1) ij = a (k) ij m ik a (k) kj Continuar ciclo em j b (k+1) i = b (k) i m ik b (k) k Continuar ciclo em i Continuar ciclo em k Algoritmo para as substituições ascendentes: Ciclo de i = n, n-1,...,1 sum=0 Ciclo de k = i+1,..., n (linhas)
10 SEMANA 1 sum = sum + a ik x k Continuar ciclo em k ( ) x (n 1) i = b (n 1) i sum Continuar ciclo em i /a ii RESOLUÇÃO O sistema de equações Ax = b a resolver pode ser escrito na seguinte forma: 1 0.5 0.3333 1 1 1 0.5 0.5 1 0.6667 1 0.3333 0.5 1 0.5 Permutação e condensação: x 1 x x 3 x 4 0 = 1 0 0 Procedendo sucessivamente à condensação de acordo com o algoritmo, fazendo os cálculos na precisão da calculadora e escrevendo os valores em FP tem-se: k = 1: 1 0.5 0.3333 0 1 1 1 0.5 1 0.5 1 0.6667 1 0 0.3333 0.5 1 0.5 0 (.000)10 +01 (.1000)10 +01 (.5000)10 00 (.3333)10 00 (.0000)10 00 (.1000)10 +01 (.1000)10 +01 (.1000)10 +01 (.5000)10 00 (.1000)10 +01 (.5000)10 00 (.1000)10 +01 (.6667)10 00 (.1000)10 +01 (.0000)10 00 (.3333)10 00 (.5000)10 00 (.1000)10 +01 (.5000)10 00 (.0000)10 00 Não é necessário trocar linhas. m 1 = a(1) 1 = 1 a (1) = 0.5 11 a () = a(1) m 1a (1) 1 = 1 0.5 1 = 0.5 = (.5000)1000 a () 3 = a(1) 3 m 1a (1) 13 = 1 0.5 0.5 = 0.75 = (.7500)1000 a () 4 = a(1) 4 m 1a (1) 14 = 0.5 0.5 0.3333 = 0.33335 = (.3334)1000 b () = b (1) m 1 b (1) 1 = 1 0.5 0 = 1 = (.1000)10 +01
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 103 m 31 = a(1) 31 = 0.5 a (1) = 0.5 11 a () 3 = a(1) 3 m 31a (1) 1 = 1 0.5 1 = 0.75 = (.7500)1000 a () 33 = a(1) 33 m 31a (1) 13 = 0.6667 0.5 0.5 = 0.5417 = (.5417)1000 a () 34 = a(1) 34 m 31a (1) 14 = 1 0.5 0.3333 = 0.916675 = (.9167)1000 b () 3 = b (1) 3 m 31 b (1) 1 = 0 0.5 0 = 0 = (.0000)10 00 m 41 = a(1) 41 = 0.3333 = 0.16665 a (1) 11 a () 4 = a(1) 4 m 41a (1) 1 = 0.5 0.16665 1 = 0.33335 = (.3334)1000 a () 43 = a(1) 43 m 41a (1) 13 = 1 0.16665 0.5 = 0.916675 = (.9167)1000 a () 44 = a(1) 44 m 41a (1) 14 = 0.5 0.16665 0.3333 = 0.44445 = (.4444)1000 b () 4 = b (1) 4 m 41 b (1) 1 = 0 0.16665 0 = 0 = (.0000)10 00 k = : (.000)10 +01 (.1000)10 +01 (.5000)10 00 (.3333)10 00 (.0000)10 00 (.0000)10 00 (.5000)10 00 (.7500)10 00 (.3334)10 00 (.1000)10 +01 (.0000)10 00 (.7500)10 00 (.5417)10 00 (.9167)10 00 (.0000)10 00 (.0000)10 00 (.3334)10 00 (.9167)10 00 (.4444)10 00 (.0000)10 00 Trocar a. a linha com a 3. a linha: (.000)10 +01 (.1000)10 +01 (.5000)10 00 (.3333)10 00 (.0000)10 00 (.0000)10 00 (.7500)10 00 (.5417)10 00 (.9167)10 00 (.0000)10 00 (.0000)10 00 (.5000)10 00 (.7500)10 00 (.3334)10 00 (.1000)10 +01 (.0000)10 00 (.3334)10 00 (.9167)10 00 (.4444)10 00 (.0000)10 00
104 SEMANA 1 m 3 = a() 3 = 0.5 a () 0.75 = 0.6667 a (3) 33 = a() 33 m 3a () 3 = 0.75 0.6667 0.5417 = 0.388884 = (.3888)1000 a (3) 34 = a() 34 m 3a () 4 = 0.3334 0.6667 0.9167 = 0.7776 = (.778)1000 b (3) 3 = b () 3 m 3 b () = 1 0.6667 0 = 1 = (.1000)10 +01 m 4 = a() 4 = 0.3334 a () 0.75 = 0.4445 a (3) 43 = a() 43 m 4a () 3 = 0.9167 0.4445 0.5417 = 0.67591 = (.6759)1000 a (3) 44 = a() 44 m 4a () 4 = 0.4444 0.4445 0.9167 = 0.03696 = (.3693)10 01 b (3) 4 = b () 4 m 4 b () = 0 0.4445 0 = 0 = (.0000)10 00 k = 3: (.000)10 +01 (.1000)10 +01 (.5000)10 00 (.3333)10 00 (.0000)10 00 (.0000)10 00 (.7500)10 00 (.5417)10 00 (.9167)10 00 (.0000)10 00 (.0000)10 00 (.0000)10 00 (.3888)10 00 (.778)10 00 (.1000)10 +01 (.0000)10 00 (.0000)10 00 (.6759)10 00 (.3693)10 01 (.0000)10 00 Trocar a 3. a linha com a 4. a linha: (.000)10 +01 (.1000)10 +01 (.5000)10 00 (.3333)10 00 (.0000)10 00 (.0000)10 00 (.7500)10 00 (.5417)10 00 (.9167)10 00 (.0000)10 00 (.0000)10 00 (.0000)10 00 (.6759)10 00 (.3693)10 01 (.0000)10 00 (.0000)10 00 (.0000)10 00 (.3888)10 00 (.778)10 00 (.1000)10 +01
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 105 m 43 = a(3) 43 = 0.3888 a (3) 0.6759 = 0.575 33 a (4) 44 = a(3) 44 m 43a (3) 34 = 0.778 0.575 0.03693 = 0.9904 = (.990)1000 b (4) 4 = b (3) 4 m 43 b (3) 3 = 1 0.575 0 = 1 = (.1000)10 +01 O sistema condensado é dado por: (.000)10 +01 (.1000)10 +01 (.5000)10 00 (.3333)10 00 (.0000)10 00 (.7500)10 00 (.5417)10 00 (.9167)10 00 (.0000)10 00 (.0000)10 00 (.6759)10 00 (.3693)10 01 (.0000)10 00 (.0000)10 00 (.0000)10 00 (.990)10 00 x 1 x x 3 x 4 = (.1000)10 00 (.1000)10 00 (.1000)10 00 (.1000)10 +01 Procedendo agora à substituição ascendente obtém-se: 0.990x 4 = 1 x 4 = 3.3444 = (0.3344)10 +01 0.6759x 3 + 0.03693x 4 = 0 0.6759x 3 + 0.03693 ( 3.3444) = 0 x 3 = 0.1873 = (.187)10 00 0.75x + 0.5417x 3 + 0.9167x 4 = 0 0.75x + 0.5417 0.187 + 0.9167 ( 3.3444) = 0 x = 3.9557 = (.3956)10 +01 x 1 + x + 0.5x 3 + 0.3333x 4 = 0 x 1 + 3.956 + 0.5 0.187 + 0.3333 ( 3.3444) = 0 A solução do sistema de equações é: x 1 x x 3 x 4 (.1466)10 +01 = +(.3956)10 +01 +(.187)10 00 (0.3344)10 +01 x 1 = 1.4663 = (.1466)10 +01 Esta resolução ilustra o trabalho por vezes necessário para localizar um erro num código que estejamos a programar. É pedido que se utilize a calculadora para as operações elementares (processador) e se escrevesse os resultados em FP (memória). Em geral, estaremos a trabalhar com dois sistemas FP, um no cálculo e outro no registo.
13 TÓPICOS: Resolução de Sistemas de Equações Lineares (cont.): Métodos de factorização: método de Doolittle e Crout (Factorização LU); Método de Choleski (Factorização LL T ); Factorização LDL T ; Método de Doolittle e cálculo de inversa, determinante e número de condição de uma matriz. LEITURAS RECOMENDADAS: Capítulo 6 (pp. 3-34 e 43 65) do livro [Pina(1995)] 13.1 SISTEMAS DE EQUAÇÕES LINEARES: Métodos de Doolittle e Crout. Factorização LU Repita o exercício 1.1 empregando agora em aritmética exacta o método da factorização triangular de Doolittle e de Crout, ou seja, resolva pelos métodos referidos o seguinte sistema de equações lineares: x 1 + x + x 3 = 4 x 1 x + x 3 = 4 x 1 + x + x 3 = 5 CONCEITOS TEÓRICOS Método de Doolittle: Factorizar LU com L de diagonal unitária. Através do produto de matrizes aqui ilustrado apenas para o caso de dimensão n = 3 podem obter-se os coeficientes L ij e U ij com 1 0 0 U 11 U 1 U 13 L 1 1 0 0 U U 3 L 31 L 3 1 0 0 U 33 = A 11 A 1 A 13 A 1 A A 3 A 31 A 3 A 33,
108 SEMANA 13 de onde se obtém sucessivamente U 11, L 1 e L 31 ; U 1, U e L 3 ; U 13, U 3 e U 33, originando as seguintes expressões: u ij = a ij i 1 m=1 l im u mj ; j i l ij = ( a ij j 1 m=1 l im u mj ) /u jj ; j < i À sucessão de U ij e L ij indicada antes destas expressões, chamaremos varrimento por colunas (em Doolittle). Método de Crout: Factorizar LU com U de diagonal unitária. Através do produto de matrizes aqui ilustrado apenas para o caso de dimensão n = 3 podem obter-se os coeficientes L ij e U ij com L 11 0 0 1 U 1 U 13 L 1 L 0 0 1 U 3 L 31 L 3 L 33 0 0 1 = A 11 A 1 A 13 A 1 A A 3 A 31 A 3 A 33 de onde se obtém sucessivamente L 11, U 1 e U 13 ; L 1, L e U 3 ; L 31, L 3 e U 33, originando as seguintes expressões:, l ij = a ij j 1 m=1 l im u mj ; j i u ij = ( a ij i 1 m=1 l im u mj ) /l ii, j > i À sucessão de L ij e U ij indicada antes destas expressões, chamaremos varrimento por linhas (em Crout). RESOLUÇÃO O sistema de equações Ax = b é escrito na forma matricial: 1 1 1 1 1 1 1 x 1 x x 3 = 4 4 5. Aplicando o método de Doolittle com o seu varrimento por colunas j = 1,,..., n tem-se:
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 109 Coluna 1 (j = 1): u i1 = a i1, i 1 u 11 = a 11 u 11 = 1 l i1 = a i1 /u 11, i > 1 l i1 = a i1 l 1 = a 1 = 1; l 31 = a 31 = Coluna (j = ): u i = a i i 1 m=1 u 1 = a 1 = 1; l i = ( a i l im u m, i u = a (l 1 u 1 ) = 1 (1 1) = ) 1 l im u m /u, i > m=1 l 3 = (a 3 l 31 u 1 )/u = 1 1 = 1 Coluna 3 (j = 3): u i3 = a i3 i 1 m=1 l im u m3, i 3 u 13 = a 13 = 1; u 3 = a 3 (l 1 u 13 ) = (1 1) = 1; u 33 = a 33 (l 31 u 13 + l 3 u 3 ) = 1 ( 1 + 1 ) 1 = 3 L = 1 0 0 1 1 0 1/ 1 e U = 1 1 1 0 1 0 0 3/ Após a factorização de A = LU fazemos a substituição Ux = y e resolve-se primeiro para y, i.e.: Ly = b Ax = b (LU)x = b L(Ux) = b Ux = y Faz-se a determinação de y resolvendo Ly = b: 1 0 0 1 1 0 1/ 1 y 1 y y 3 = 4 4 5 y = 4 0 3
110 SEMANA 13 seguido da determinação de x resolvendo Ux = y: 1 1 1 0 1 0 0 3/ x 1 x x 3 = 4 0 3 x = 1 1 O vector x é a solução do sistema de equações. ==================================== Aplicando o método de Crout com o seu varrimento por linhas i = 1,,..., n temse: Linha 1 (i = 1): l 1j = a 1j, j 1 l 11 = a 11 l 11 = 1 u 1j = a 1j /l 11, j > 1 u 1j = a 1j u 1 = a 1 = 1; u 13 = a 13 = 1 Linha (i = ): l j = a j j 1 m=1 l 1 = a 1 = 1; l m u mj, j l = a (l 1 u 1 ) = 1 (1 1) = u j = (a j l 1 u 1j ) /l, j > u 3 = (a 3 l 1 u 13 )/l = 1 1 = 1 Linha 3 (i = 3): l 3j = a 3j j 1 m=1 l 3m u mj, j 3 l 31 = a 31 = ; l 3 = a 3 (l 31 u 1 ) = 1 ( 1) = 1; [ ( l 33 = a 33 (l 31 u 3 + l 3 u 3 ) = 1 1 + ( 1) 1 )] = 3 L = 1 0 0 1 0 1 3/ e U = 1 1 1 0 1 1/ 0 0 1
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 111 À semelhança do que efectuamos anteriormente, após a factorização de A = LU fazemos Ly = b Ax = b (LU)x = b L(Ux) = b Ux = y A determinação de y faz-se resolvendo Ly = b: 1 0 0 1 0 1 3/ y 1 y y 3 = 4 4 5 y = E, por fim, a determinação de x faz-se resolvendo Ux = y: 1 1 1 0 1 1/ 0 0 1 x 1 x x 3 = 4 0 x = O vector x é a solução do sistema de equações, que em aritmética exacta tem de ser o mesmo que o obtido pelo método de Doolittle. 1 1 4 0 13. SISTEMAS DE EQUAÇÕES LINEARES: Factorização LU. Cálculo do determinante a) Calcule, em aritmética exacta, a factorização LU da matriz (com L unitária) 1 0 9 0 A = 0 9 0 0 5 0 0 5 0 1 0 3 b) Calcule o determinante de A a partir da factorização obtida. CONCEITOS TEÓRICOS Na resolução que se segue, da aplicação do método de condensação de Gauss obtém-se a factorização LU, onde L é uma matriz de diagonal unitária cujos restantes elementos não nulos são os coeficientes m ij, sendo U a matriz resultante da condensação (sem escolha de pivot). Definição: O determinante de uma matriz A de dimensão n n é obtido após a factorização de Gauss sem escolha de pivot fazendo: n n n det A = det(lu) = det L det U = l ii u ii = 1 i=1 i=1 i=1 u ii pois L é uma matriz de diagonal unitária, isto é, l ii = 1 para i = 1,..., n.
11 SEMANA 13 RESOLUÇÃO a) Condensação de Gauss: Procedendo sucessivamente, obtemos k = 1: 1 0 9 0 0 9 0 0 5 0 0 5 0 1 0 3 m 31 = a(1) 31 = 5 a (1) 1 = 5 11 a () 3 = a(1) 3 m 31a (1) 1 = 0 5 0 = 0 a () 33 = a(1) 33 m 31a (1) 13 = 0 5 9 = 45 a () 34 = a(1) 34 m 31a (1) 14 = 5 5 0 = 5 k = : 1 0 9 0 0 9 0 0 0 0 45 5 0 1 0 3 m 4 = a() 4 = 1 a () 9 a (3) 43 = a() 43 m 4a () 3 = 0 1 9 0 = 0 a (3) 44 = a() 44 m 4a () 4 = 3 1 9 0 = 3 Obteve-se desta forma a factorização LU da matriz (com L unitária) dada pelas matrizes: 1 0 9 0 U = 0 9 0 0 0 0 45 5 0 0 0 3
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 113 e L = 1 0 0 0 m 1 1 0 0 m 31 m 3 1 0 m 41 m 4 m 43 1 = 1 0 0 0 0 1 0 0 5 0 1 0 0 1/9 0 1. b) O cálculo do determinante da matriz A é feito por: det A = det(lu) = det L det U = 1 = 1 [1 9 ( 45) 3] = 115. 4 i=1 u ii 13.3 SISTEMAS DE EQUAÇÕES LINEARES: Método de Choleski e factorização LDL T a) Obtenha em aritmética exacta a factorização da matriz de Pascal para n = 3 (a ij : a 1j = 1, a i1 = 1, a ij = a (i 1)j + a i(j 1) ), recorrendo ao método de Choleski. b) Usando o resultado anterior, obtenha a factorização LDL T. CONCEITOS TEÓRICOS Método de Choleski: Factorizar LL T. Através do produto de matrizes aqui ilustrado apenas para o caso de dimensão n = 3 podem obter-se os coeficientes L ij numa só etapa com: L 11 0 0 L 1 L 0 L 11 L 1 L 13 0 L L 3 = A 11 A 1 A 13 A 1 A A 3, L 31 L 3 L 33 0 0 L 33 A 31 A 3 A 33 ou seja, calculando sucessivamente L 11, L 1 e L 31 ; L e L 3 ; L 33 o que origina as seguintes expressões: l jj = l ij = ( ( a jj a ij j 1 m=1 j 1 m=1 l jm ) 1/ De notar que se escolhe a raiz positiva. l im l jm ) /l jj, i > j À sucessão de L ij indicada antes destas expressões, chamaremos varrimento por colunas (em Choleski).
114 SEMANA 13 RESOLUÇÃO a) A matriz A é simétrica: A = 1 1 1 1 3 1 3 6. Se fôr factorizável então é definida positiva. A sua factorização de Choleski é obtida em varrimento por colunas da seguinte forma: Coluna 1 (j = 1) l 11 = (a 11 ) 1/ = 1 l 1 = a 1 /l 11 = 1/1 = 1; l 31 = a 31 /l 11 = 1/1 = 1 Coluna (j = ) l = ( a l 1) 1/ = ( 1 ) 1/ = 1 l 3 = (a 3 l 31 l 1 ) /l = (3 1 1)/1 = Coluna 3 (j = 3) l 33 = [ a 33 ( l 31 + l 3)] 1/ = [ 6 ( 1 + )] 1/ = 1 Obteve-se desta forma a factorização LL T da matriz, tal que: L = 1 0 0 1 1 0 1 1. b) Como a diagonal de L é unitária não é preciso desenvolver o cálculo LDL T (ver 13.4). A matriz D é a matriz identidade sendo a factorização dada pelas matrizes: L = 1 0 0 1 1 0 1 1, L T = 1 1 1 0 1 0 0 1 e D = 1 0 0 0 1 0 0 0 1. Notar que, em geral, após a aplicação do método de Choleski a matriz L resultante não é de diagonal unitária.
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 115 13.4 SISTEMAS DE EQUAÇÕES LINEARES: Método de Doolittle. Inversa, determinante e número de condição As matrizes de Pei (A) são definidas por: a ii = c e a ij = 1 para i j com i, j = 1,,..., n. a) Obtenha a inversa e o determinante da matriz para n = 3 e c = 4 usando a factorização de Doolittle. b) A matriz A da alinea a) é definida positiva, definida negativa ou indefinida? Justifique. c) Calcule o número de condição dessa matriz (n = 3, c = 4) na norma de Frobenius. A matriz é bem condicionada? Justifique. CONCEITOS TEÓRICOS Norma de Frobenius de uma matriz A: Esta norma é dada por: n A F = a ij i,j=1 1/. Número de condição e norma de Frobenius: cond A = A F A 1 F. RESOLUÇÃO a) A matriz de Pei para n = 3 e c = 4 é A = 4 1 1 1 4 1 1 1 4. Aplicando o método de Doolittle com varrimento por colunas tem-se: Coluna 1 (j = 1): u i1 = a i1, i 1 u 11 = a 11 u 11 = 4 l i1 = a i1 /u 11, i > 1 l i1 = a i1 /4 l 1 = a 1 /4 = 1 4 ; l 31 = a 31 /4 = 1 4
116 SEMANA 13 Coluna (j = ): u i = a i i 1 m=1 u 1 = a 1 = 1; l i = ( a i l im u m, i ( ) 1 u = a (l 1 u 1 ) = 4 4 1 = 15 4 ) 1 l im u m /u, i > m=1 l 3 = (a 3 l 31 u 1 )/u = 1 1 4 1 15 4 Coluna 3 (j = 3): u i3 = a i3 i 1 m=1 l im u m3, i 3 = 1 5 ( ) 1 u 13 = a 13 = 1; u 3 = a 3 (l 1 u 13 ) = 1 4 1 = 3 4 ; ( 1 u 33 = a 33 (l 31 u 13 + l 3 u 3 ) = 4 4 1 + 1 5 3 ) = 18 4 5 Obtém-se a seguinte factorização (com L de diagonal unitária) L = 1 0 0 1/4 1 0 1/4 1/5 1 e U = 4 1 1 0 15/4 3/4 0 0 18/5 Cálculo da inversa A 1 da matriz A: AA 1 = I onde I é a matriz identidade. Como A = LU, então Ly = I (LU)A 1 = I L(UA 1 ) = I UA 1 = Y LY = I 1 0 0 1/4 1 0 1/4 1/5 1 y 11 y 1 y 13 y 1 y y 3 y 31 y 3 y 33 = 1 0 0 0 1 0 0 0 1 Y = y 11 y 1 y 13 y 1 y y 3 y 31 y 3 y 33 = 1 0 0 1/4 1 0 1/5 1/5 1
EXERCÍCIOS DE MATEMÁTICA COMPUTACIONAL 117 4 1 1 0 15/4 3/4 0 0 18/5 a 1 11 a 1 1 a 1 13 a 1 1 a 1 a 1 3 a 1 31 a 1 3 a 1 33 UA 1 = Y = 1 0 0 1/4 1 0 1/5 1/5 1 Portanto, a inversa é A 1 = a 1 11 a 1 1 a 1 13 a 1 1 a 1 a 1 3 a 1 31 a 1 3 a 1 33 = +5/18 1/18 1/18 1/18 +5/18 1/18 1/18 1/18 +5/18 Determinante da matriz A (ver definição na p. 111): det A = det(lu) = det L det U = 1 15 = 1 4 3 4 18 = 54 5 3 i=1 u ii b) DŨ = D L = d 11 0 0 0 d 0 0 0 d 33 1 ũ 1 ũ 13 0 1 ũ 3 0 0 1 = 4 1 1 0 15/4 3/4 0 0 18/5 d 11 = 4, d = 15 4 d 33 = 18 5 b) A matriz é definida positiva uma vez que é possível factorizá-la e todos os valores da matriz D são positivos. c) Cálculo da norma de Frobenius da matriz A: n A F = a ij i,j=1 1/ A F = ( 4 + 1 + 1 + 1 + 4 + 1 + 1 + 1 + 4 ) 1/ = 7.35 Cálculo da norma de Frobenius da matriz A 1 : A 1 F = [ 3 ( + 5 ) ( + 6 1 ) ] 1/ = 0.5 18 18 Assim, cond A = A F A 1 F = 7.35 0.50 = 3.67
118 SEMANA 13 Podemos concluir que a matriz A é bem condicionada, pois 3.67 é um número relativamente pequeno, isto é, da ordem de grandeza das unidades. É este número que indica a maior, ou menor, influência que perturbações sobre a precisão dos valores das entradas da matriz A e/ou do segundo membro b podem ter na solução do sistema de equações associado (ver pp. 60 do livro [Pina(1995)]).
REFERÊNCIAS [Ferreira(1985)] Ferreira, J. C. Introdução À Análise Matemática. Fundação Calouste Gulbenkian, Lisboa, 4. a edição, 1985. [Pina(1995)] Pina, H. Métodos Numéricos. McGraw-Hill, Lisboa, 1995.