Matemática Computacional

Tamanho: px
Começar a partir da página:

Download "Matemática Computacional"

Transcrição

1 Matemática Computacional Maria Isabel Reis dos Santos Departamento de Matemática 2011/2012

2

3 Conteúdo 1 Cálculo em precisão finita Números binários Números em precisão finita Bases de sistemas de números Conversão duma base noutra base Números binários negativos Aritmética binária Problemas Números em vírgula flutuante Princípios da vírgula flutuante Vírgula Flutuante IEEE Standard Problemas Limitações dos sistemas de vírgula flutuante Overflow e Underflow Somar e subtrair números grandes e pequenos Ordem das adições Cancelamento subtractivo

4 2 Teoria dos erros Tipos de erros Exactidão e Precisão Problemas Erros absoluto e relativo Exemplos Problemas Algarismos significativos Teoria Exemplos Problemas Propagação dos Erros e condicionamento Erros a priori e a posteriori Condicionamento Resolução de sistemas lineares Instabilidade sem cancelamento subtractivo Como desenhar algoritmos estáveis Problemas

5 3 Ferramentas Série de Taylor Procedimento Problemas Pesquisa binária Iteração Teoria Condições de paragem Exemplos Problemas Método do ponto fixo Teoria Procedimento Problemas Extremos de funções Radianos Equações não lineares Método da bissecção Teoria Procedimento Exemplos Problemas Método de Newton Teoria Procedimento Exemplos Problemas

6 4.3 Método da secante Teoria Procedimento Exemplos Problemas Método do ponto fixo Problemas Aceleração do método de Newton para zeros múltiplos Sistemas lineares Valores e vectores próprios Normas Teoria Problemas Métodos iterativos Teoria Procedimento Exemplos Problemas Método de relaxação de SOR

7 6 Sistemas não lineares Método de Newton para sistemas Teoria Procedimento Exemplos Problemas Método do ponto fixo para sistemas Convergência do método de Newton Problemas Método dos Mínimos quadrados Regressão linear simples Teoria Procedimento Exemplos Problemas Regressão linear geral Teoria Procedimento Exemplos Problemas

8 8 Interpolação polinomial Polinómios Método de Vandermonde Teoria Procedimento Exemplos Método de Lagrange Teoria Método de Newton Procedimento Fenómeno de Runge e oscilação polinomial Análise do erro de interpolação Problemas Integração numérica Teorema do valor intermédio para integrais Método do ponto médio Método dos Trapézios Teoria Procedimento Método de Simpson Teoria Procedimento Método dos coeficientes indeterminados Quadraturas de Gauss Problemas

9 10 Derivação Fórmulas de diferenças divididas centradas Teoria Procedimento Exemplos Fórmulas de diferenças divididas não centradas Teoria Procedimento Problemas Problemas com valor inicial Método de Euler Teoria Método de Euler e integração numérica Procedimento Exemplos Métodos de Taylor de ordem mais elevada Procedimento Exemplos Método de Heun Teoria Método de Heun e integração numérica Procedimento Exemplos Métodos de Runge-Kutta Teoria Método do ponto médio e integração numérica Método de Runge-Kutta de ordem 4 e integração numérica

10 Procedimento Exemplos Erros local e global Sistemas de problemas de valor inicial Problemas Problemas com valores na fronteira Método das diferenças finitas Teoria Procedimento Exemplos Problemas

11 Capítulo 1 Cálculo em precisão finita A aritmética usada pelos computadores difere de algum modo da aritmética usada pelas pessoas. A diferença mais importante é que os computadores realizam operações sobre números cuja precisão é finita e fixa. Outra diferença é que os computadores usam o sistema binário e não o decimal para representar os números. Neste capítulo ir-se-á apresentar um método eficiente para guardar números reais (sistema de vírgula flutuante), um método para guardar números em computador (sistema binário) e uma representação de dupla precisão em vírgula flutuante. Estes sistemas têm limitações como, por exemplo, a ilustrada no seguinte exemplo: format long sum = 0 for i = 1: sum = sum + 0.1; end O retorno deste ciclo é sum = Uma vez que somamos a quantidade 0.1 cem mil vezes, seria de esperar que o resultado fosse Contudo, o retorno do ciclo não é exacto como gostaríamos. A ele está associado um erro relativo igual a O ciclo é simples e obtemos uma resposta incorrecta. Podemos pensar então no que acontecerá quando temos um conjunto finito grande de instruções pré-definidas. Os computadores não são capazes de fazer aritmética com números reais que tenham mais do que um número fixo de dígitos. O número de casas com que o computador trabalha é uma restrição na precisão com a qual os números reais podem ser representados. Um número tão 11

12 simples como 0.1, que é utilizado no ciclo anterior, não pode ser guardado exactamente no sistema binário usado pelo computador (que usa apenas os números 0 e 1). Essa é a razão para que no ciclo anterior o resultado não seja o esperado. O número 0.1 é representado no sistema binário através da seguinte dízima infinita: (0.1) 10 = ( ) 2 Se lermos o número 0.1 no computador com 32 bits e mandarmos escrever esse número com 40 casas decimais, obtemos Uma vez que nós fazemos a aritmética em formato decimal e os computadores em formato binário, temos de ter sempre em atenção ao facto de que em cada conversão pode estar associado um erro. 1.1 Números binários Para que os computadores processem os números de uma forma eficiente é necessário que os números tenham uma dimensão finita e que sejam representados em numeração binária. A numeração binária simplifica significativamente as operações a realizar, por exemplo a tabuada resume-se a 0 0=0, 0 1=0, 1 0=0 e 1 1=1, o que pode ser realizado por uma porta lógica AND. O facto da precisão ser finita, por ter dimensão finita, permite determinar à partida quantas portas lógicas vão ser necessárias. Por razões históricas, começou a utilizar-se grupos de 8-bits ou byte e os sucessivos dobros: 16, 32, 64, 128, etc. Cada bit pode ser preenchido, ou com um zero, ou com um um. Na figura seguinte encontra-se um exemplo: 1 bit 1 1 byte := 8 bits

13 1.1.1 Números em precisão finita Quando estamos a fazer aritmética, em geral não pensamos muito na questão de quantos dígitos iremos utilizar para representar um número. Em física acredita-se que o número total de electrões que caberiam no universo conhecido é da ordem de , sem se estar preocupado com o facto de este número precisar de 130 dígitos decimais para ser representado por extenso. Alguém que esteja a calcular o valor de uma função com papel e lápis e precise do valor com seis dígitos significativos simplesmente guarda os resultados intermédios com os dígitos de que necessitar, por exemplo sete ou oito. Nunca surge o problema de os números com sete ou oito dígitos não caberem no papel. Quando se usa um computador as preocupações são diferentes. Na maioria dos computadores, a quantidade de memória disponível para guardar um número é fixa no momento em que o computador é desenhado. A natureza finita dos computadores força-nos a trabalhar apenas com números que podem ser representados com um número fixo de dígitos. Chamamos a estes números números com precisão finita. Com o objectivo de estudar as propriedades dos números com precisão finita, comecemos por examinar o conjunto dos números inteiros positivos que podem ser representados com três dígitos decimais, sem sinal e sem ponto decimal. Existem exactamente 1000 números nestas condições: Com estas restrições é impossível expressar conjuntos importantes de números como por exemplo: 1. Números maiores do que 999; 2. Números negativos; 3. Fracções; 4. Números irracionais; 5. Números complexos.

14 Uma propriedade importante no conjunto dos números inteiros é o fecho com respeito às operações de adição, subtracção e multiplicação. Por outras palavras, para cada par de inteiros n e m, também os números n+m, n m e n m são inteiros. O conjunto dos números inteiros não é fechado em relação à divisão, porque existe pelo menos valores n e m tais que n/m não pertence ao conjunto dos números inteiros. Por exemplo, 7/3 e 2/0 não são números inteiros. Infelizmente o conjunto dos números em precisão finita não é fechado em relação a nenhuma das quatro operações básicas. Usando três dígitos podemos observar o não fecho das operações: = 1400 muito grande = 4 negativo = 3600 muito grande 007/002 = 3.5 não é um inteiro As violações podem dividir-se em duas classes exclusivas mutuamente: 1. operações cujo resultado é maior do que o maior número do conjunto (erro de Overflow) ou menor que o número mais pequeno do conjunto (erro de Underflow); e 2. operações cujo resultado nem é demasiado grande nem é demasiado pequeno, mas simplesmente não é um elemento do conjunto. Na ilustração anterior, os três primeiros casos são exemplos da primeira violação e o quatro é exemplo da segunda violação. Uma vez que os computadores têm memória finita e, por conseguinte, fazem aritmética com números com precisão finita, os resultados de certos cálculos serão, do ponto de vista da matemática clássica, completamente errados. Pode parecer estranho uma máquina de calcular dar resultados errados quando funciona perfeitamente bem, mas o erro é apenas uma consequência da sua natureza finita. A álgebra dos números em precisão finita é diferente da álgebra normal. Como exemplo dessa diferença, considere-se a propriedade associativa: a+(b c) = (a+b) c Seja a = 800, b = 500 e c = 400. Para fazer o cálculo com a expressão do lado esquerdo, calcula-se primeiro b c que dá 100 e depois soma-se 800. O resultado é 900. Fazendo as contas com a expressão do lado direito, começa-se por fazer a soma a+bque dá Overflow (1300 não pode ser representado com três dígitos decimais). Subtraindo 400 a um número que não seja 1300 não dá

15 de certeza 900 que é a resposta correcta. A propriedade associativa não funciona. A ordem pela qual se fazem as operações em precisão finita é muito importante. Outro exemplo é a propriedade distributiva: a (b c) = a b a c Calculemos ambos os lados com a = 6, b = 320 e c = 185. O lado esquerdo dá = 810 e o lado direito não dá 810 porque a b dá Overflow (6 320 = 1920). Com base nestes exemplos, podemos correr o risco de concluir que a natureza finita dos computadores faz com que sejam máquinas inapropriadas para fazer aritmética, o que não é verdade. Estes exemplos servem apenas para ilustrar a importância de compreender como é que os computadores funcionam e as suas limitações Bases de sistemas de números Um número decimal que toda a gente conhece consiste numa string de dígitos decimais e, às vezes, num ponto decimal. A forma geral desta interpretação é a seguinte: casa do casa do casa do casa do casa do casa do d n... d 2 d 1 d 0 d 1 d 2 d 3 d k n Número = d i 10 i i= k A escolha do número 10 como base para exponenciação deve-se ao facto de usarmos os números em base decimal. Os computadores não trabalham em base decimal. As bases mais importantes são2,8e16. Os sistemas de números baseados nestas bases chamam-se binário, octal e hexadecimal, respectivamente. O sistema de números com base k precisa de k dígitos diferentes para representar um número. Esses dígitos são: 0,1,..., k 1. Os números decimais constroem-se a partir dos dígitos: Por outro lado os números binários não usam estes dez dígitos. Eles constroem-se a partir dos dois dígitos binários 0 1

16 Os números octais constroem-se a partir dos oito dígitos octais Para construir números hexadecimais são precisos 16 dígitos. Logo precisamos de seis novos símbolos. Os símbolos usados são as letras do A ao F para os dígitos a seguir ao número 9. Os números hexadecimais constroem-se a partir dos dígitos: A B C D E F A expressão "dígito binário" que significa 1 ou 0 é geralmente referida como um bit. Em seguida apresenta-se o número 2001 expresso nas bases binária, octal, decimal e hexadecimal: Binária Octal Decimal Hexadecimal 7 D O número 7D9 é obviamente hexadecimal porque o símbolo D só aparece nos números hexadecimais. Contudo, o número 111 pode estar em qualquer das quatro bases apresentadas. Para evitar ambiguidade, quando não é óbvio a partir do contexto, é frequente usar o índice 2, 8, 10 ou 16 para indicar a base na qual o número está escrito:

17 (111) 2 = (7) 10 (111) 8 = (25) 10 (111) 16 = (273) 10 Como exemplo da notação binária, octal, decimal e hexadecimal, a tabela seguinte mostra um conjunto de números expressos nos quatro sistemas. Decimal Binária Octal Hexadecimal Decimal Binária Octal Hexadecimal E A A C B C C D F E F BC E Conversão duma base noutra base A conversão dos números entre as bases octal, hexadecimal e binária é fácil. Para converter um número binário para octal, divide-se o número em grupos sucessivos de três bits, começando com os 3 bits imediatamente para a esquerda e/ou para a direita do ponto decimal (frequentemente chamado ponto binário). Cada grupo de 3 bits pode ser directamente convertido num único dígito octal, de0a7. Pode ser necessário juntar um ou dois zeros para completar um grupo de 3 bits. A conversão de octal para binária é igualmente fácil. Cada dígito octal é simplesmente substituído pelo número binário equivalente com 3 dígitos. A conversão de hexadecimal para binária é essencialmente a mesma do que de octal para binária excepto que cada dígito hexadecimal corresponde a um grupo de 4 bits em vez de 3 bits. Em seguida são apresentados dois exemplos de conversão:

18 1. Hexadecimal: Binária: Octal: Hexadecimal: 7 B A 3. B C 4 Binária: Octal: A conversão de números decimais para binários pode ser feita de duas maneiras diferentes. O primeiro método vem directamente da definição de número binário. Subtrai-se do número a maior potência de 2 menor que o próprio número. O processo é repetido aplicado à diferença. Depois de o número ser decomposto em potências de 2, o número binário pode ser construído com 1 s nas posições dos bits correspondentes às potências de 2 usadas na decomposição e 0 s nas outras posições. Na tabela seguinte está um exemplo de conversão do número em base decimal para base binária. d 0 = d 1 = d = = d 2 = d = = d 3 = d = = d 4 = d = = Um método que funciona só para inteiros consiste em dividir o número por 2. O quociente é escrito por baixo do número original e o resto, 0 ou 1, é escrito na coluna ao lado e na mesma linha do quociente. Este quociente passa agora a ser o dividendo e o processo repete-se até se obter o quociente 0. O resultado deste processo são duas colunas de números, uma em que estão os quocientes e a outra onde se encontram os restos. O número binário pode ler-se de baixo para cima. Por exemplo, o número 46 em base decimal fica convertido no número em base binária:

19 Quociente Resto Os inteiros binários podem ser convertidos para decimais utilizando dois métodos. Um método consiste em somar as potências de 2 que correspondem aos bits que estão com o número 1. Por exemplo, é = = 22. No outro método, o número binário é escrito verticalmente, um bit por linha, com o dígito mais à esquerda em baixo. A linha de baixo chama-se linha 1, a seguinte chama-se 2 e assim sucessivamente. O número decimal será construído numa coluna paralela ao lado do número binário. Começa por se escrever o número 1 na linha 1: A entrada na linha n calcula-se multiplicando por 2 a entrada da linha n 1 e soma-se o bit que está na linha n (ou 0, ou 1). A entrada na linha do topo é o número convertido. Em seguida podemos observar um exemplo.

20 (2 1+0) (2 2 +1)+1 = (2 1+0)+1 = ( )+0 = = (2 2 +1)+1 = (2 1+0)+1 = A conversão de decimal para octal e de decimal para hexadecimal pode fazer-se tanto convertendo para binário e depois para o sistema desejado, como subtraindo potências de números octal ou hexadecimal Números binários negativos Têm sido usados quatro sistemas para representar os números negativos em computador. O primeiro é chamado sinal-magnitude. Neste sistema o bit mais à esquerda é o bit de sinal (0 para + e1para ) e os restantes bits guardam o valor absoluto do número.

21 O segundo sistema, chamado complemento para um, também tem um bit de sinal 0 usado para mais e 1 para menos. Para negar um número, substitui-se cada 1 por 0 e cada 0 por 1. Isto também se aplica ao bit de sinal. O complemento para um está obsoleto. O terceiro sistema, chamado complemento para dois, também tem um bit de sinal que é 0 para positivo e 1 para negativo. A negação de um número é um processo com dois passos. 1. cada1ésubstituído por um 0 e cada0por um 1, tal como no complemento para um; 2. adiciona-se 1 ao resultado. A adição binária segue os mesmos princípios da adição decimal excepto que o "e vai1" é gerado quando a soma é maior do que1em vez de maior do que9. Por exemplo, seguindo o complemento para dois, a conversão de +6 processa-se do seguinte modo: (+6) ( 6 no complemento para um) 1 (adicionar 1) ( 6 no complemento para dois) Se ficar um "e vai 1" no bit mais à esquerda, ele é deitado fora. O quarto sistema, que para números com m bits é chamado excesso 2 m 1, representa um número guardando-o como a soma de ele próprio a 2 m 1. Deste modo, zero é representado por 2 m 1. Por exemplo, para números com 8 bits, m = 8, com excesso 127 é guardado um número com o seu verdadeiro valor mais 127. Por conseguinte, 3 torna-se = 124 e 3 é representado pelo número binário com8bits para124 ( ). Os números a partir de 127 a128 são mapeados para de0a255, todos eles expressos como inteiros positivos com8bits; ver a Tabela 1.1 Tanto o sistema sinal-magnitude como o sistema complemento para um tem duas representações para o zero: um mais zero e um menos zero. Esta situação não é desejável. O complemento para dois não tem este problema porque o complemento para dois de mais zero é o mais zero. Contudo, o complemento para dois tem uma singularidade diferente. O padrão de bits que consiste num1seguido de zeros coincide com o seu complemento. O resultado disto é que o conjunto dos números positivos e negativos é assimétrico; existe um número negativo sem o seu simétrico positivo. Queremos um sistema com duas propriedades:

22 Tabela 1.1: Excesso 127 com oito bits sem sinal número binário número decimal número com excesso Tenha uma única representação para o zero. 2. Tenha tantos números positivos como negativos. O problema é que qualquer conjunto de números com tantos números positivos como negativos e apenas um zero tem um número ímpar de elementos, enquanto quembits permitem um número par de padrões de bits. Existirá sempre um bit a mais ou um bit a menos qualquer que seja a representação que se escolha. Este padrão de bit extra pode ser usado para 0 ou para um número negativo grande, ou para qualquer outra coisa, mas será sempre uma maçada Aritmética binária A tabela de adição para números binários é dada em seguida: Soma dígito de vai-um Somam-se dois números binários começando pelo bit mais à direita. Se é gerado um vai-um, é transportado uma posição para a esquerda, tal como na aritmética decimal. Na aritmética de complemento para um, o vai-um gerado pela adição do bit mais à esquerda é somado ao bit mais à direita. A este processo chama-se um end-around carry. Na aritmética de complemento para dois, um vai-um gerado pela adição do bit mais à esquerda é simplesmente deitado fora. Podemos ver em seguida exemplos de aritmética binária.

23 Decimal Complemento para um Complemento para dois ( 3) vai-um vai um ց somado à direita deitado fora Se as parcelas da soma tiverem sinais contrários o resultado pode ser Overflow. Se tiverem o mesmo sinal e o resultado é de sinal contrário ocorre um erro de Overflow e a resposta está errada. Tanto no complemento para um como no complemento para dois pode ocorrer Overflow se e só se o vai-um para o bit de sinal difere do vai-um do bit de sinal. A maioria dos computadores preserva o vai-um do bit de sinal, mas o vai-um para o bit de sinal não é visível a partir do resultado. Por esta razão, em geral, é fornecido um bit especial de Overflow Problemas 1. Converter os números seguintes para binário: 1984,4000, Que número é o em decimal? E em octal? E em hexadecimal? 3. Expressar o número decimal100 em todas as bases de2a9. 4. Faça os seguintes cálculos com números com 8 bits em complemento para dois Repetir os cálculos do exercício anterior mas agora no complemento para um. 6. Considere os seguintes problemas de adição com números binários com três dígitos em complemento para dois. Para cada soma diga: (a) se o bit de sinal do resultado é1. (b) se o bit de ordem mais baixa é0.

24 (c) se ocorre um Overflow Os números decimais com n dígitos e com sinal podem ser representados em n + 1 dígitos sem sinal. Os números positivos têm 0 no dígito mais à esquerda. Os números negativos obtêm-se subtraindo cada dígito de9. Por conseguinte, o negativo de é Tais números chamam-se números em complemento para nove e são análogos aos números binários em complemento para dois. Expresse os seguintes números como números com três dígitos em complemento para nove: 6, 2, 100, 14, 1, Determine a regra para a adição de números em complemento para nove e faça as seguintes adições O complemento para dez é análogo ao complemento para dois. Um número negativo em complemento para dez constrói-se adicionando 1 ao número correspondente em complemento para nove, ignorando o vai-um mais à esquerda. Qual é a regra para a adição em complemento para dez? 10. Construa as tabelas de multiplicação para números em base Multiplique 0111 e0011 em binário. 1.2 Números em vírgula flutuante Em muitos cálculos o domínio de números é muito grande. Por exemplo, um cálculo em astronomia pode envolver a massa do electrão, kg, e a massa do sol, kg (aproximadamente vezes a massa da Terra), um conjunto de números cuja variação excede Estes números podem representar-se por e todos os cálculos podem ser efectuados guardando 31 dígitos à esquerda do ponto decimal e 38 casas à sua direita. Fazendo isto permite-nos obter 69 dígitos significativos nos resultados.

25 Num computador binário, pode usar-se a aritmética em múltipla precisão para obter significância suficiente. De facto podem-se efectuar algumas medições de modo a conseguir-se 69 dígitos significativos. Embora possa ser possível manter todos os resultados intermédios com 69 dígitos significativos e depois deitar fora 50 ou 60 deles antes de escrever os resultados, fazer isto não é aconselhável tanto do ponto de vista de tempo de CPU como do ponto de vista de memória utilizada. O que é preciso é um sistema para representar números nos quais o domínio de números expressáveis é independente do número de dígitos significativos. Este sistema será discutido em seguida. Ele baseia-se na notação científica utilizada na física, química e engenharia Princípios da vírgula flutuante Uma maneira de separar o conjunto da precisão é expressar os números reais na notação científica x = f e ondef é chamada a fracção, ou mantissa, eeéum número inteiro positivo ou negativo chamado expoente. A versão computacional desta notação é chamada vírgula flutuante. Alguns exemplos de números expressos nesta forma são 3.14 = = = = = = O domínio dos números é efectivamente determinado pelo número de dígitos no expoente e a precisão é determinada pelo número de dígitos na mantissa. Uma vez que existe mais do que uma maneira de representar um dado número, é usada uma forma considerada padrão. Com o objectivo de investigar as propriedades deste método de representar os números, considere-se a representação F, com sinal e mantissa com três dígitos no conjunto 0.1 f < 1 ou zero e um expoente com sinal e dois dígitos. Estes números variam em módulo entre e , um span de aproximadamente 199 ordens de grandeza necessita apenas de cinco dígitos (3 na mantissa e dois no expoente) e dois para os sinais (na mantissa e no expoente) para guardar um número: =

26 Os números em vírgula flutuante podem ser usados para modelar o conjunto dos números reais, embora existam diferenças importantes. Na Figura 1.1 está ilustrado este sistema de vírgula flutuante e o conjunto dos números reais. A recta real está dividida em sete regiões: Figura 1.1: A recta real pode dividir-se em sete regiões. 1. Número negativos pequenos menores que Números negativos entre e Números negativos pequenos com módulo menor que Zero. 5. Números positivos pequenos com módulo menor que Números positivos entre e Números positivos grandes maiores que Uma diferença fundamental entre o sistema de vírgula flutuante com 3 dígitos na mantissa, dois no expoente e 2 dígitos para sinais e o conjunto dos números reais é que o sistema de vírgula flutuante não consegue expressar todos os números das regiões 1, 3, 5 e 7. Se o resultado de uma operação aritmética der um número nas regiões 1 ou 7, por exemplo, = , irá ocorrer um erro de Overflow e a resposta será incorrecta. Isto deve-se à natureza finita dos sistemas de vírgula flutuante e não pode ser evitado. De forma análoga, um resultado nas regiões 3 e 5 também não pode ser representado. A esta situação chama-se erro de Underflow. O erro de Underflow é menos grave que o de Overflow, porque em geral 0 é uma boa aproximação para os números que pertencem às regiões 3 e 5. Outra diferença importante entre os sistemas de vírgula flutuante e o conjunto dos números reais é a densidade. Entre cada dois números reais x e y existe sempre um número real não

27 importa o quanto o x e o y estão próximos. Esta propriedade vem do facto de que para quaisquer números reais distintos x ey,z = (x+y)/2 é um número real entre eles. O conjunto dos números reais formam um contínuo. Por outro lado, os números em vírgula flutuante não formam um contínuo. No sistema de vírgula flutuante anterior com 5 dígitos e dois para sinais conseguem-se representar exactamente números positivos e números negativos e o zero (que pode ser expresso de várias formas). Ao todo são números. Do conjunto infinito de números reais entre e , apenas deles podem ser especificados por esta notação. Eles estão representados com os pontos na Figura 1.1. É muito possível que o resultado de um cálculo esteja fora do sistema de vírgula flutuante, mesmo que esteja nas regiões 2 ou 6. Por exemplo, dividido por 3 não pode ser representado exactamente no nosso sistema de vírgula flutuante. Se o resultado x de um cálculo não for um número pertencente ao sistema de vírgula flutuante F R, então ele não pode ser expresso exactamente em F. Neste caso, utiliza-se o número mais próximo dex(ou seja, que está mais perto do resultado) e que pertence af designado por x = fl(x). A este processo x f l(x) chama-se arredondamento. O erro de arredondamento, de x relativamente a x, é dado por e x = x x e, em valor absoluto, varia grandemente com a dimensão de x. O espaçamento entre números expressáveis adjacentes não é constante através das regiões 2 e 6. A separação entre e é bastante maior que a separação entre e Contudo, quando a separação entre um número e o seu sucessor for expressa como a percentagem desse número, não existe variação sistemática através das regiões 2 e 6. Por outras palavras, o erro relativo introduzido pelo arredondamento é aproximadamente o mesmo para números pequenos e grandes. O erro relativo, de x relativamente a x, δ x = x x x, introduzido pelo arredondamento, é em módulo aproximadamente o mesmo para números pequenos ou grandes. Embora a discussão anterior seja acerca de um sistema em vírgula flutuante com 3 dígitos na mantissa e 2 no expoente, as conclusões são válidas nos outros sistemas de vírgula flutuante. Mudar o número de dígitos na mantissa ou no exponente apenas altera as fronteiras das regiões 2 e 6 e muda o número de pontos que podem ser expressos. Aumentar o número de dígitos na mantissa aumenta a densidade dos pontos e, por conseguinte, aumenta a precisão das aproximações

28 (ou seja, os erros de arredondamento diminuem). Aumentar o número de dígitos no expoente faz aumentar o tamanho das regiões 2 e 6 e comprime (faz diminuir) as regiões 1, 3, 5 e 7. A tabela seguinte mostra as fronteiras aproximadas da região 6 para um sistema de vírgula flutuante de números decimais para vários tamanhos de mantissa e expoente: Dígitos na mantissa Dígitos no expoente Extremo inferior Extremo superior Por exemplo, com 3 dígitos na mantissa e 2 no expoente o menor número positivo é o número não normalizado = Nos computadores usa-se uma variação desta representação. Por uma questão de eficiência, a exponenciação é feita em base 2, 4, 8 ou 16 em vez de 10. Em cada caso, a mantissa consiste numa string de dígitos binários, base 4, octal ou hexadecimal. Se o dígito mais à esquerda desses dígitos for zero, todos os dígitos podem ser deslocados uma casa para a esquerda e o expoente decrescer numa unidade, sem alterar o valor do número (impedindo o Underflow). Uma mantissa com o dígito mais à esquerda diferente de zero diz-se ser normalizado. Os números normalizados são geralmente preferíveis aos não normalizados, porque existe uma única forma normalizada, enquanto existem muitas formas não normalizadas. Exemplos de números normalizados para duas bases de exponenciação podem observar-se em seguida. Nestes exemplos, mostram-se uma mantissa de 16 bits (excluindo o bit de sinal) e uma exponenciação com 7 bits usando a notação por excesso 64. O ponto da base está à esquerda do bit mais à esquerda da mantissa, isto é, à direita do bit de sinal.

29 Não normalizado com exponenciação em base = 2 20 ( ) = sinal expoente com mantissa excesso = = Normalizado com exponenciação em base = 2 9 ( ) = sinal expoente com mantissa excesso = = Vírgula Flutuante IEEE Standard 754 Até cerca de 1980, cada computador tinha o seu formato de vírgula flutuante. Deste modo todos os formatos eram diferentes. O pior de tudo é que alguns deles faziam aritmética incorrectamente. Para rectificar esta situação, nos finais dos anos 70 reuniu-se um comitê do IEEE para padronizar o formato de vírgula flutuante. O objectivo era conseguir que o formato de vírgula flutuante fosse igual de computador para computador e que funcionasse correctamente. O resultado levou ao IEEE standard 754 (IEEE, 1985). Ao contrário de muitos padrões que tentam agradar a todos e acabam por não agradar a nenhum, este não é mau e será descrito no resto da secção. O padrão define três formatos: precisão simples (32 bits); precisão dupla (64 bits); precisão extendida (80 bits).

30 O formato de precisão extendida tem como objectivo reduzir os erros de arredondamento. Ele é usado dentro da aritmética de vírgula flutuante. Tanto a precisão simples como a dupla usam a base 2 para a mantissa e notação por excesso para o expoente. Os formatos estão ilustrados em seguida: Precisão simples (dimensão 32 bits) 1 bit 8 bits 23 bits sinal expoente mantissa Precisão dupla (dimensão 64 bits) 1 bit 11 bits 52 bits sinal expoente mantissa Ambos os formatos começam com um bit de sinal, 0 para positivo e 1 para negativo. Em seguida vem o expoente, que usa excesso 127 para a precisão simples e excesso 1023 para a precisão dupla. Os expoentes mínimo (0) e o máximo (255 e 2047) não são usados para números normalizados; eles têm utilizações especiais.finalmente, temos as mantissas de 23 e 52 bits, respectivamente. Uma mantissa normalizada começa com um ponto binário, seguido de um bit e depois o resto da mantissa. O primeiro bit igual a 1 da mantissa não precisa ser guardado, uma vez que se pode assumir que ele está lá. Consequentemente, o padrão define a mantissa duma maneira ligeiramente diferente da habitual. Consiste num bit a 1 implícito, um ponto binário também implícito e, ou 23 ou 52 bits arbitrários. Se todos os 23 ou 52 bits forem iguais a zero, a mantissa tem o valor numérico 1.0; se todos eles tiverem o valor 1, então a mantissa é um pouco mais pequena do que 2.0. Para evitar confusão com uma mantissa convencional, a combinação do 1 implícito, o ponto binário implícito e os 23 ou 52 bits explícitos é chamado o significando em vez de mantissa. Todos os números normalizados têm um significando, s, no conjunto 1 s < 2. As características numéricas dos números em vírgula flutuante IEEE é dada na tabela seguinte. Como exemplos, considere os números 0.5, 1 e 1.5 no formato em precisão simples de vírgula flutuante. Estes são representados como (3FF000000) 16, (3F800000) 16 e (3FC00000) 16, respectivamente.

31 Item Precisão simples Precisão dupla Bit de sinal 1 1 Bits no expoente 8 11 Bits na mantissa Bits no total Sistema do expoente excesso 127 excesso 1023 Domínio do expoente 126 a a Mais pequeno normalizado Maior normalizado Domínio decimal a a Mais pequeno não normalizado Para converter o número para o formato IEEE de precisão simples e dar o resultado com oito dígitos hexadecimais faz-se assim: = = = ( ) = ( ) = ( ) expoente: = 129 = ( ) 2 (excesso 127) significando: ( ) 2 binário: hexadecimal: C No caso dos números como este com casas decimais é conveniente multiplicar primeiro por uma potência de 2 de tal modo que o número resultante seja inteiro ou que, caso não seja inteiro, a parte inteira seja suficientemente grande para que ao converter o "fim do número" já esteja fora dos 23 bits (ou 64 caso a precisão seja dupla). Em alternativa, pode utilizar-se o método descrito na secção Para converter o número (C7F00000) 16 em precisão simples IEEE de hexadecimal para decimal faz-se o seguinte: hexadecimal: C 7 F

32 binário: ( ) 2 = 143 expoente: = 16 (excesso 127) significando: ( ) 2 = (1.875) 10 número: ( ) = (122880) 10 Um dos problemas tradicionais com os números em vírgula flutuante é como lidar com Underflow, Overflow e números não inicializados. Para normalizar os números, os outros quatro tipos standard mostram-se em seguida. Normalizado ± 0 < Exp < M ax Qualquer bit padrão Não normalizado ± 0 Qualquer bit padrão não nulo Zero ± 0 0 Infinito ± Not a Number ± Qualquer bit padrão não nulo Surge um problema quando o resultado de um cálculo é menor que o menor número não normalizado que pode ser representado no sistema de vírgula flutuante. Anteriormente, a maioria do hardware toma uma de duas aproximações: apenas colocar o resultado a zero e continuar, ou dar origem a um Underflow do sistema de vírgula flutuante. Na realidade nenhuma destas aproximações é satisfatória. Por conseguinte, IEEE inventou os números não normalizados. Estes números têm o expoente 0 e uma mantissa dada pelos seguintes 23 ou 52 bits. O bit a 1 implícito à esquerda do ponto binário agora assume o valor 0. Os números não normalizados distinguem-se dos normalizados porque estes últimos não podem ter o expoente de0. O menor número normalizado em precisão simples tem1como expoente e0como mantissa e representa O maior número não normalizado tem 0 como expoente e todos 1s na mantissa e representa cerca de que é quase a mesma quantidade. Contudo

33 é preciso notar que este número tem apenas 23 bits de significância enquanto que os números normalizados têm 24 bits de significância. Á medida que o resultado dos cálculos decrescem, o expoente continua 0, mas os primeiros dígitos da mantissa ficam a zero, reduzindo tanto o valor como o número de bits na mantissa. O menor número não normalizado consiste num1no bit mais à direita, com o resto dos bits a zero. O expoente representa e a mantissa representa 2 23 logo o valor é Este esquema fornece um Underflow harmonioso perdendo significância em vez de saltar para 0 quando o resultado não pode ser expresso como um número normalizado. Neste esquema estão presentes dois zeros, positivo e negativo, determinados pelo bit de sinal. Ambos têm um expoente de0euma mantissa de0. Aqui o bit à esquerda do sinal do ponto binário é implicitamente 0 em vez de 1. Em relação ao Overflow, é dada uma representação especial para o infinito, que consiste num expoente com todos 1s (não permitido para números normalizados) e uma fracção de 0. Este número pode ser usado como operando e comporta-se de acordo com as habituais regras matemáticas para o infinito. Por exemplo, infinito mais qualquer coisa dá infinito e qualquer número finito dividido por infinito dá zero. De modo semelhante, qualquer número finito dividido por zero dá infinito. E infinito dividido por infinito? O resultado é indefinido. Para tratar este caso foi introduzido outro formato especial chamado NaN (Not a Number). Este também pode ser usado como operando com resultados previsíveis Problemas 1. Converta os seguintes números no formato IEEE de precisão simples. Dê os resultados com oito dígitos hexadecimais. (a) 9 (b) 5/32 (c) 5/32 (d) (e) (f)

34 (g) (h) Converta os seguintes números em precisão simples IEEE de hexadecimal para decimal: (a) (42E48000) 16 (b) (3F880000) 16 (c) ( ) 16 (d) (C7F00000) 16 (e) (40A20000) Os seguintes números binários em vírgula flutuante consistem num bit de sinal, um excesso de 64, expoente em base 2 e uma mantissa de 16 bits. Normalize-os: (a) (b) (c) Para somar dois números em vírgula flutuante deves ajustar os expoentes (shiftando a mantissa) para os tornar semelhantes. Depois somam-se as mantissas e, se for preciso, normaliza-se o resultado. Soma os números (3EE00000) 16 e (3D800000) 16 em precisão simples IEEE e expressa o resultado normalizado em hexadecimal. 5. Uma empresa de computadores decidiu produzir um computador com números em vírgula flutuante com 16 dígitos. O modelo MC-001 tem um formato de vírgula flutuante com um bit de sinal, expoente com 7 bits e excesso 64 e uma mantissa de 8 bits. O modelo MC-002 tem um bit de sinal, expoente com 5 bits e excesso 16 e uma mantissa de 10 bits. Ambos usam exponenciação na base 2. Quais são o mais pequeno e o maior números normalizados que podem ser representados em ambos os modelos? Quantos dígitos decimais de precisão tem cada um dos modelos? Irias comprar algum deles? 6. Arredondar os seguintes números até cinco casas decimais:

35 7. Arredondar os números seguintes para quatro dígitos na mantissa: (a) (b) (c) (d) (e) (f) Representar os seguintes números com oito dígitos na mantissa: (a) raiz quadrada de dois; (b) raiz quadrada de três; (c) um milhão; (d) o númerox = e Faça os cálculos indicados das seguintes formas: exactamente e usando 3 dígitos na mantissa. Para cada uma das aproximações, calcule os erros absoluto e relativo. (a) (b) (c) ( 1 + ) (d) 1 7 +( ). 1.3 Limitações dos sistemas de vírgula flutuante Nesta secção resumem-se alguns dos problemas que ocorrem ao utilizar um sistema de vírgula flutuante. Uma vez que estamos a tentar representar um número infinito de números reais num conjunto finito surgem problemas, alguns dos quais já referidos em secções anteriores. Bases: Secção 1.2.

36 1.3.1 Overflow e Underflow É um caso de Overflow quando o resultado de um cálculo dá um valor que é maior do que o maior número do sistema de vírgula flutuante. É um caso de Underflow se o resultado for um valor mais pequeno que o menor número pertencente ao sistema de vírgula flutuante Somar e subtrair números grandes e pequenos Considere-se um sistema com quatro dígitos na mantissa. Então, = Por conseguinte, embora o segundo número não seja zero, quando é adicionado a 2145 não existe alteração no número Este problema está relacionado à não associatividade referida na página 14 ((a+b)+c a+(b+c)) e surge no método de Eliminação de Gauss para resolver sistemas lineares. Se um número grande em vírgula flutuante é adicionado a um número pequeno em vírgula flutuante, o número pequeno pode não ter importância suficiente para produzir uma modificação no maior. Consequentemente, deve-se evitar construir algoritmos em que este problema se verifique Ordem das adições Este problema já foi referido na página 14. Por exemplo, considerando quatro dígitos na mantissa, se somarmos da esquerda para a direita obtemos = (como o algarismo 2 é par arredonda para baixo). Depois somamos mais0.5 e o resultado é = Se calcularmos da direita para a esquerda vem = 1.0. Depois somamos 3002 e obtemos = Quando executamos uma sequência de adições, os números devem ser somados a partir do mais pequeno em valor absoluto para o maior em valor absoluto. Desta forma, a soma cumulativa de números pequenos poderá ter influência no resultado da soma.

37 1.3.4 Cancelamento subtractivo. Cancelamento subtractivo é o que acontece quando se subtraem dois números aproximadamente iguais. Geralmente, mas não sempre, é uma coisa má. Considerem-se os dois casos seguintes: Cálculo da funçãof(x) = (1 cosx)/x 2 Com x = o valor de (cos x) arredondado para 10 dígitos significativos é c = , logo 1 c = Então (1 c)/x 2 = / = , que claramente está errado porque 0 f(x) < 1/2 para todo o x 0. Conclui-se que uma aproximação de (cos x) com 10 dígitos significativos não é suficiente para obter um valor de f(x) com pelo menos um dígito correcto. O problema é que1 c tem apenas um dígito significativo. A subtracção 1 c é exacta, mas esta subtracção produz um resultado da mesma dimensão do erro em c. Por outras palavras, a subtracção aumenta a importância do erro anterior. Neste exemplo, é fácil reescrever f(x) para evitar o cancelamento. Uma vez que cosx = 1 2sen 2 (x/2), ( sen(x/2) ) 2 f(x) = 1 2 x/2 Utilizando esta fórmula para calcular f(x) com uma aproximação de sen(x/2) com 10 dígitos significativos, tém-se f(x) = 0.5 que é correcto até 10 dígitos significativos. É importante salientar que o cancelamento não é sempre uma coisa má. Existem diversas razões para tal. A primeira é que os números que estão a ser subtraídos podem não ter erros, como quando são os dados iniciais conhecidos exactamente. Por exemplo, o cálculo das diferenças divididas envolve muitas subtracções, mas metade delas envolvem os dados iniciais. A segunda razão é que o cancelamento pode ser um sintoma de mau-condicionamento intrínseco de um problema e, por conseguinte, deve ser evitado. Terceiro, o efeito do cancelamento depende do papel que o resultado desempenha nos restantes cálculos. Por exemplo, se x y z > 0 então o cancelamento no cálculo dex+(y z) é inofensivo. Cálculo da variância amostral O problema de calcular a variância amostral ilustra bem como é que fórmulas matematicamente equivalentes podem ter propriedades de estabilidade numérica diferentes. Em estatística, a variância amostral dennúmeros define-se por s 2 = 1 n 1 n (x i x) 2 (1.1) i=1

38 onde x é a média amostral n x = 1 n i=1 x i O cálculo da variância amostral com esta fórmula precisa de passar duas vezes pelos dados, uma para calcular x e a outra para acumular a soma dos quadrados. Se n for grande, ou se a variância amostral é calculada à medida que os dados são gerados, não é conveniente. Uma fórmula alternativa, que usa aproximadamente o mesmo número de operações mas exige apenas uma passagem através dos dados, é a seguinte: s 2 = 1 n 1 ( n n x 2 i 1 n i=1 i=1 ) 2 x i (1.2) Esta fórmula é muito má em termos de erros de arredondamento porque calcula a variância amostral como a diferença entre dois números positivos e, por conseguinte, pode sofrer de grande cancelamento o que deixa o resultado contaminado com erro de arredondamento; em particular pode dar um valor negativo. Curiosamente esta fórmula vem implementada em diversas máquinas de calcular existentes no mercado. Por outro lado, a fórmula (1.1) dá sempre um valor com muita exactidão (não negativo), a menos quenseja elevado. Mais especificamente, se s 2 = fl(s 2 ) é o valor calculado da variância amostral utilizando a fórmula (1.1), então pode demonstrar-se que s 2 s 2 s 2 (n+3)u+o(u 2 ) Observe-se que o majorante do erro não envolve os números de condição pelo menos no termo de primeira ordem. Isto é uma situação rara de um algoritmo que garante mais exactidão no resultado do que se pode garantir nos dados. Considere-se um exemplo em que x = (10000,10001,10002) T, então em precisão simples (u ), a variância amostral é 1 se utilizarmos a fórmula (1.1), mas é zero se for usada a fórmula (1.2), o que corresponde a um erro relativo igual a 1 (100% de erro). Para passar uma vez só ao longo dos dados existem fórmulas alternativas que conduzem a bons resultados. Por exemplo, em vez de calcular x e x 2 podemos ir acumulando M k = 1 k ( k k k x i, e P k = x 2 i 1 k i=1 i=1 i=1 ) 2 x i

39 através de M 1 = x 1 M k = M k 1 + x k M k 1, k = 2 : n k P 1 = 0 P k = P k 1 + (k 1)(x k M k 1 ) 2, k = 2 : n k e depois obter finalmente s 2 = P n /(n 1). Pode observar-se que as únicas subtracções envolvem os dados x i s e são inofensivas. Para o exemplo anterior, este algoritmo produz a solução exacta. Na realidade ele é numericamente estável, embora o seu majorante do erro não seja tão pequeno quanto a fórmula original (1.1); pode mostrar-se que o majorante do erro é proporcional ao número de condição Cálculo da funçãof(x) = (e x 1)/x ( x 2 2 = 2 1+ n (n 1)s 2 n 1 ) x 2 1/2 s 2 Considere valores de f(x) quando x está próximo de zero. Pela regra de L Hôpital podemos concluir que lim x 0 f(x) = 1, mas quando calculamos a função f(x) com valores de x próximos de zero surge-nos um cancelamento subtractivo que é amplificado pela divisão por x. Como é que podemos fugir a este problema? Uma hipótese é utilizar o desenvolvimento em série de Taylor (ver Secção 3.1): f(x) = ( 1+x+ 1 2 x x n! xn + 1 (n+1)! xn+1 e ) 1 ξx 1+ 1x x n! xn 1 + 1, (n+1)! xn e ξx onde ξ x está entre x e zero. O valor de n escolhe-se tendo em conta a precisão que se pretende. Podemos então definir a função do seguinte modo: 1+ 1 f(x) = x x n! xn 1 x próximo de 0 caso contrário e x 1 x Se pretendermos mais precisão utilizamos mais termos no desenvolvimento em série. Cálculo das raízes de uma equação de segundo grau Na tabela seguinte encontram-se os cálculos intermédios da raiz positiva da equação 7.326x x = 0 aplicando a fórmula resolvente. Na primeira coluna os cálculos foram efectuados com quatro dígitos na mantissa e na segunda coluna com dez dígitos na mantissa. Os erros relativos respectivos encontram-se também na tabela. (1.3)

40 Quatro dígitos Dez dígitos δ x = δ x = algarismo significativo 7 algarismos significativos

41 Capítulo 2 Teoria dos erros O valor 3.14 é uma aproximação do valor π e por conseguinte tem um erro a ele associado. Será que esta aproximação está longe ou perto de π? Em Matlab, podemos observar que quando efectuamos o cálculo cos 1 (cos(3.14)) não obtemos de volta o valor Foi introduzido um erro não da aproximação deπ, mas sim como resultado do cálculo numérico: >> cospi = cos(3.14) cospi = e-001 >> acos(cospi) ans = e+000 Neste capítulo, ir-se-á referir quais são as principais fontes de erro em cálculo numérico. Também se irá definir erro absoluto e erro relativo absoluto de uma aproximação e o número de dígitos que são correctos numa aproximação. Iremos fazer distinção entre dispor de um grande números de dígitos para aproximar um valor (precisão) e dar um valor que de facto é o correcto (exactidão). Dada uma expressão matemática acontece o seguinte: se as variáveis tiverem afectadas de erro, então ao resultado também estará associado um erro. Esta passagem do erro a partir das variáveis para o resultado designa-se por propagação de erro. Por vezes o erro das variáveis é amplificado no resultado, mas a quantidade de amplificação depende da operação envolvida. Por exemplo, considerem-se dois valores 3.22 e 5.54, onde 3.22 representa um número qualquer do intervalo [3.215; 3.225] e 5.54 representa um número qualquer do intervalo [5.535; 5.545]. Se fizermos a soma então o resultado 8.76 pode ser qualquer número pertencente ao intervalo[8.75; 8.77]; o extremo inferior resulta de = 8.75 e o extremo superior resulta 41

42 de O comprimento dos intervalos iniciais é 0.01 e o intervalo final tem comprimento Consequentemente, o erro final pode ser maior do que os erros dos dados iniciais. Por outro lado, considerem-se os valores 5.54 e 5.55 nos intervalos [5.535; 5.545] e [5.545; 5.555], respectivamente. Se efectuarmos a subtracção = 0.01, o resultado pode ser um número qualquer do intervalo[ ; ], ou seja, qualquer ponto pertencente ao intervalo [0; 0.02]. Por conseguinte, ao fazermos a diferença assumimos que ela é positiva mas pode na realidade ser zero. Se os intervalos de erro inicias forem um bocadinho mais compridos, então a diferença real poderá ser negativa. 2.1 Tipos de erros Existem três principais fontes de erros em cálculo numérico: arredondamento, incerteza nos dados e truncatura. Erros de arredondamento Estes erros são uma consequência inevitável por trabalharmos em precisão finita; ver secção 1.2. Este texto didáctico trata essencialmente deste tipo de erros. Incerteza nos dados Quando se resolvem problemas da vida real este tipo de erros pode sempre aparecer. Estes erros surgem, por exemplo, se os dados resultam de medições de quantidades físicas ou de parâmetros de filas de espera. Também pode acontecer que ao guardar os dados no computador seja preciso fazer erros de arredondamento ou então os dados podem ser solução de outro problema numérico. Os efeitos dos erros dos dados são geralmente mais fáceis de entender que os efeitos dos erros de arredondamento provocados durante um cálculo, porque os erros nos dados podem ser analisados através da teoria da perturbação aplicada ao problema que se pretende resolver, enquanto que os erros de arredondamento dos cálculos intermédios exigem a análise do método específico que se está a utilizar para resolver o problema.

43 Erros de truncatura (ou erros de discretização). Este tipo de erros é uma das tarefas mais importantes da análise numérica. Muitos métodos tais como o método de Euler para resolver equações diferenciais, ou o método de Newton para resolver equações não lineares, podem deduzir-se através do desenvolvimento em série de Taylor. Os termos da série de Taylor que se omitem constituem o erro de truncatura, e para muitos métodos a dimensão deste erro depende dum parâmetro cujo valor apropriado depende do compromisso entre obter um erro pequeno e um cálculo rápido. Esse parâmetro denomina-se por comprimento do passo, h. 2.2 Exactidão e Precisão Os termos exactidão e precisão são geralmente confundidos ou utilizados sem distinção, mas vale a pena distingui-los. Estes dois termos utilizam-se para caracterizar uma aproximação no sentido de ela ser considerada boa ou má. Quer um número provenha de uma medição ou de um cálculo numérico, é preciso descrevê-la. O termo precisão descreve até que ponto a aproximação pode ser boa, ou seja, até que ponto a aproximação pode estar perto do valor exacto. O termo exactidão diz-nos se a aproximação está de facto próxima do valor exacto. Dado um conjunto de aproximações, existe um erro associado a cada uma delas. O termo precisão utiliza-se para medir a extensão dos erros relativos a cada uma. A precisão é independente da correcção das aproximações ou resultados de medição. Precisão é a exactidão com que as operações aritméticas básicas +,,, / são realizadas e para a aritmética de vírgula flutuante a precisão mede-se pela unidade de arredondamento da máquina. A precisão descreve-se habitualmente em termos do número de dígitos utilizados para fazer uma medição ou aproximação embora também possa ser descrito em termos do desvio padrão dos erros. Por exemplo, um amperímetro com um écran de três dígitos é mais preciso que um amperímetro com dois dígitos no écran. Com uma régua de 40 centímetros podemos pedir um comprimento de um objecto até uma precisão de 1 milímetro. Se usarmos um micrómetro conseguimos medir com mais precisão o mesmo objecto. Em Matlab, se utilizarmos o tipo format long para efectuar cálculos, observamos que o número de dígitos guardados é sempre o mesmo, ou seja, a precisão mantém-se inalterada de cálculo para cálculo. Essa precisão é igual a aproximadamente 15 dígitos decimais.

44 format long pi = /7 = A exactidão descreve até que ponto uma aproximação está perto do seu valor exacto. Por exemplo, considere-se um velocímetro de um automóvel que tem os ticks em cada 10 Kilómetros e suponha-se que a minha velocidade real é Km por hora. Ao olhar para o velocímetro posso estimar que vou a uma velocidade de 100 Km/h ou Km/h. Os erros correspondentes = = são da mesma ordem de grandeza. Por conseguinte, as duas aproximações têm aproximadamente a mesma exactidão. Exactidão refere-se ao erro absoluto ou relativo de uma quantidade aproximada. Exactidão e precisão é a mesma coisa para o cálculo c = a b, onde a e b são escalares. Contudo, por exemplo, na resolução de um sistema linear a exactidão pode ser muito pior que a precisão. Em Matlab a precisão é fixa e o objectivo de qualquer algoritmo é encontrar uma resposta o mais exacta possível. A precisão e a exactidão são duas coisas distintas. Uma quantidade pode ser precisa e não ter exactidão, ou vice-versa. Por exemplo, suponhamos que um radar da polícia mede a velocidade de quatro veículos que se deslocam a 150 Quilómetros por hora numa auto-estrada nacional. Os valores obtidos são 146 Km/h, 149 Km/h, 155 Km/h e 152 Km/h. Um outro radar fez a mesma medição e obteve150 Km/h,149 Km/h, 150 Km/h e151 Km/h. Os valores do primeiro conjunto têm exactidão mas não são precisos, enquanto que os do segundo conjunto têm exactidão e são mais precisos. Quando calculamos uma quantidade, é importante que a precisão reflicta a exactidão. Por exemplo, considere-se a Função Zeta de Riemann para obter uma aproximação do númeroπ: n=1 1 n 2 = π 6 Com base nesta série podemos fazer a aproximação ( ) π 6 n 2 n=1 onde se consideraram os primeiros cem termos da série. Em Matlab podemos escrever as instruções

45 format long e; sum = 0; for i=1:100 sum = sum + 1/i^2; end pi = sqrt(6 * sum) para obter pi = e+000 Se compararmos a aproximação obtida pi = com o número exato π = podemos observar que a aproximação não tem muita exactidão embora seja bastante precisa. Neste caso será melhor usar a aproximação pi = 3.1 para aproximar o número π porque apenas os dois primeiros dígitos coincidem com os do número exacto. A precisão descreve o número de dígitos que utilizamos para aproximar um determinado valor. Como vimos neste caso, é possível ter uma precisão grande numa aproximação que tem pouca exactidão. A exactidão descreve a proximidade de uma aproximação face ao valor exacto que ela aproxima. Exemplo 1 Qual das duas aproximações, e , tem mais precisão e exactidão para aproximar o número π? Podemos observar que o primeiro tem mais exactidão, mas o segundo tem maior precisão. Exemplo 2 Utilizando a fórmula aproximadora da primeira derivada de uma função f (x) = f(x+h) f(x) h diga qual das seguintes aproximações é mais precisa para aproximar a derivada da função sin(x) no ponto x = 1: sin (1) (sin(1+1) sin(1))/1 = sin (1) (sin( ) sin(1))/10 5 = sin (1) (sin( ) sin(1))/10 10 = sin (1) (sin( ) sin(1))/10 15 = Comparando com o valor exacto sin (1) = cos(1) = , observamos que embora todas as aproximações tenham a mesma precisão (15 dígitos decimais), é a terceira que apresenta mais exactidão.

46 Exemplo 3 Considerem-se os seguintes instrumentos de medida: uma régua de metal de 60 cm, uma régua de madeira antiga e um pouco curva de 60 cm e um micrómetro. Ambas as réguas têm aproximadamente a mesma extensão, ou intervalo de variação, do erro. Por conseguinte, têm aproximadamente a mesma precisão. Contudo, quando se utiliza a régua de madeira os erros estão enviesados e, por conseguinte, a régua de madeira tem menor exactidão que a de metal. Tanto no micrómetro como na régua de metal, os erros estão centrados em zero. Contudo, uma vez que 1mm = 1000µm, no caso do micrómetro o intervalo de variação dos erros é muito mais pequeno (cerca de 100 vezes mais pequeno). Sendo assim, podemos afirmar que o micrómetro é mais preciso que a régua de metal Problemas 1. Considere as aproximações e do número de Neper e = Qual delas tem maior precisão e qual delas tem maior exactidão? 2.3 Erros absoluto e relativo A aritmética em computador é diferente da utilizada pelas pessoas, principalmente porque os computadores fazem as operações com números cuja precisão é finita e fixa. Por conseguinte, em geral, um procedimento numérico dá-nos somente um valor aproximado x de um número real x. As medidas de exactidão mais úteis são o seu erro absoluto e x = x x, e o seu erro relativo absoluto δ x = x x x (que é indefinido se x = 0). Multiplicando o erro relativo por 100 dá-nos a percentagem de erro relativo. O erro absoluto dá-nos informação sobre o tamanho do erro e o erro relativo diz-nos até que ponto o erro é grande relativamente ao valor exacto. Um erro absoluto de 2.63 será significativo? Se o valor exacto for x = então provavelmente este erro não é significativo. Mas se o valor exacto for x = , então um erro absoluto de 2.63 será provavelmente muito

47 significativo. É frequentemente suficiente considerar dois dígitos decimais diferentes de zero nos erros absoluto e relativo. Por conseguinte, basta considerar que o erro absoluto da aproximação 3.14 em relação ao valor exacto π é Considere-se a aproximação x 1 = 0 para aproximar o númerox 1 = e 16. Uma vez quex 1 e x 1 são muito pequenos, a diferença x 1 x 1 é muito pequena. Mais concretamente, x 1 x o que é exactidão boa em muitos casos. Contudo, observamos claramente que zero não é uma boa aproximação para x 1 = e 16 = Por outro lado, se aproximarmos um número grande como, por exemplo, x 2 = e 15 = , o erro absoluto correspondente a quase todas as aproximações será grande, mesmo que quase todos os dígitos da aproximação coincidam com os do valor exacto. Por exemplo, se x 2 = , então e x2 = x 2 x 2 = que é um valor grande apesar de x 2 coincidir com x 2 em nove dígitos. O erro relativo dá uma medida do número de dígitos correctos na aproximação. Por exemplo, x 1 x 1 x 1 = diz-nos que o número de dígitos coincidentes é zero, enquanto x 2 x 2 x 2 = dá-nos a indicação de que x 2 tem cerca de nove dígitos correctos. Ao utilizarmos o erro relativo estamos protegidos contra erros de julgamento sobre a exactidão de uma aproximação devido à sua escala (número muito grande ou número muito pequeno). Em cálculo científico, onde as respostas aos problemas podem variar muito em ordem de grandeza, em geral o que interessa é o erro relativo, porque é independente da escala; mudando a escala de x para ax e x para a x obtém-se o erro relativo inalterado. No cálculo do erro relativo as unidades cancelam. Por exemplo, os erros relativos das aproximações 2.4MV e V em relação aos seus valores exactos MV e V, respectivamente, são iguais. Contudo, em muitas situações práticas, nem sempre conseguimos calcular o erro relativo porque x é desconhecido. Nestes casos, tentamos frequentemente encontrar limite superiorm e > 0 tal que e x M e. Uma vez que e x = x x M e, tem-sex [ x M e ; x+m e ]. Outra situação em que não é possível calcular o erro relativo é quando este é zero, mas esta situação raramente aparece na prática. Quandoxe x são vectores então o erro relativo é definido através da norma, como δ x = x x i, i = 1,2, x i

48 onde A desigualdade x 1 = n i=1 x i, x 2 = (x T x) 1/2 e x = max i=1:n x i x x i x i p implica que cada componente x j com x j x i tem cerca de p dígitos decimais correctos, mas para as componentes mais pequenas a desigualdade simplesmente majora o erro absoluto. Uma medida que se utiliza em certas áreas para colocar todas as componentes em igualdade de circunstâncias é o erro relativo em relação às componentes x i x i max i=1:n x i Exemplos Exemplo 4 Quais são os erros absoluto e relativo da aproximação3.14 ao númeroπ? e x = 3.14 π δ x = 3.14 π / π Exemplo 5 Uma resistência com uma etiqueta de 240Ω tem na realidade Ω. Quais são os erros relativo e absoluto do número presente na etiqueta? e x = Ω δ x = / Exemplo 6 Considera-se que a voltagem numa linha de alta-voltagem é 2.4MV, quando na realidade a voltagem pode variar entre 2.1MV e 2.7MV. Qual é o erro máximo absoluto e o erro máximo relativo? e x = = 0.3MV δ x = / e x = = 0.3MV δ x = / Por conseguinte, o máximo do erro absoluto é0.3mv e o máximo do erro relativo é0.14.

49 2.3.2 Problemas 1. Calcule ( 2 ( 4 3 7) + 8 ) usando quatro dígitos na mantissa e arredondamento simétrico. Calcule os erros absoluto e relativo da aproximação. 2.4 Algarismos significativos O erro relativo está ligado com a noção de número de dígitos significativos correctos. Num número, os dígitos significativos são o primeiro dígito diferente de zero e todos os que o sucedem. Ou seja, tem quatro dígitos significativos, enquanto que tem apenas dois. Dada a aproximação x = do número x = é bastante fácil ver que a aproximação e o número exacto coincidem nos primeiros quatro dígitos. Consequentemente, gostaríamos de afirmar que a aproximação tem quatro dígitos significativos correctos. Nesta secção, apresenta-se uma definição rigorosa desta ideia intuitiva de contar o número de algarismos significativos correctos. Bases: Secção Teoria O significado de dígitos significativos correctos, num número que aproxima outro, é intuitivamente fácil de entender, mas uma definição precisa é um tanto ou quanto problemática. Em primeiro lugar observe-se que para um número x com p dígitos significativos existem apenas p+1 respostas à questão "quantos dígitos significativos correctos tem x?". Por conseguinte, o número de dígitos significativos correctos é uma medida de exactidão bastante grosseira comparativamente ao erro relativo. Considere-se a aproximação x = do número exacto x = Observamos que os primeiros três dígitos coincidem e, por conseguinte, temos tendência a dizer que x tem três dígitos significativos correctos. Contudo, não podemos olhar simplesmente para os dígitos coincidentes. Por exemplo, 1.9 como aproximação de 1.1 pode parecer que tem um dígito significativo correcto, mas tem um erro relativo de 0.73 o que não é nada razoável. Se considerarmos

50 para aproximar podemos dizer que não tem dígitos significativos correctos, mas o erro relativo associado a esta aproximação é igual a o que é bom (é o mesmo erro relativo associado a como aproximação de ). Por exemplo, considere os casos x = , x = , δ x = , x = , x = , δ x = Observa-se que x concorda com x em três mas não quatro algarismos significativos, utilizando uma definição razoável, embora a razão entre os erros relativos seja cerca de quarenta e quatro. Sendo assim, é possível afirmar que x tem p algarismos significativos correctos se x e x se arredondam para o mesmo número p de dígitos significativos. O termo arredondamento significa substituir um dado número pelo seu número mais próximo com p dígitos significativos, com alguma regra para decidir no caso em que existem dois números igualmente mais próximos. Esta definição de dígitos significativos é matematicamente elegante e, geralmente, concordante com a intuição. Considerem-se agora os números x = e x = Com base na definição, x não tem dois dígitos significativos correctos mas tem um e três dígitos significativos correctos; observe-se que se considerar-mos apenas dois dígitos, x arredonda para 0.99 e x arredonda para 1.0. Surge então a necessidade de uma definição mais matematicamente rigorosa de número de algarismos significativos correctos. Uma definição de dígitos significativos correctos que não goza da ambiguidade anterior é a que estabelece que x concorda com x até p algarismos significativos se x x é menor ou igual que 0.5 no p-ésimo dígito significativo dex, isto é, e x t p onde x = 0.a 1 a t com a 1 0. Em termos de erro relativo, diz-se que x tem p algarismos significativos correctos, se p é o maior inteiro para o qual a desigualdade δ x p se verifica. Resolvendo a desigualdade anterior em ordem a p, podemos dizer que o número de algarismos significativos é igual a p = ( ) δ x log 10 5

51 onde x é a função chão que converte um número real no maior número inteiro menor ou igual ax. Geralmente, o número de dígitos significativos de uma aproximação é igual ao número de dígitos consecutivos coincidentes com o valor exacto, mas isto é apenas uma regra heurística. Se com base nesta regra heurística o número de dígitos significativos correctos for um ou dois, então é melhor ignorá-la na contabilização dos dígitos significativos correctos. Enquanto que o número de dígitos significativos correctos fornece uma forma útil para averiguar a exactidão de uma aproximação, o erro relativo é uma medida mais exacta e é independente da base. Sempre que damos um valor aproximado da solução de um problema devemos também dar uma estimativa ou um majorante do erro relativo. Observação Sejaǫ M a distância entre o número1eonúmero em vírgula flutuante mais próximo superior a1. Observa-se queǫ M = β 1 p. Por exemplo, seβ = 10 ep = 3, entãoǫ M = = = ǫ M é o espaçamento entre os números que estão entre 1 e β e o espaçamento dos números que estão entre1e1/β éβ p = ǫ M /β. Sexfor diferente de zero, então o espaçamento entre x e o número adjacente em vírgula flutuante varia entre β 1 ǫ M x eǫ M x. Sejax = ±m β p = ±.a 1 a 2... β p. Vemos quexestá entrey 1 = ± m β p ey 2 = ± m β p. Por conseguinte, fl(x) será ou y 1, ou y 2, e vem e x = x fl(x) y 2 y βt p Logo δ x = x fl(x) x βt p m β = 1 1 t 2 β p m Masm = (.a 1 a 2...) β (0.1) β = β 1, logo δ x 1 2 β1 p Observamos que qualquer número real x pertencente ao domínio de F pode ser aproximado por um elemento x = fl(x) de F com um erro relativo menor ou igual a u = 1 2 β1 p Esta quantidadeudesigna-se por unidade de arredondamento da máquina.

52 2.4.2 Exemplos Exemplo 7 Considere a aproximação x = 3.14 para aproximar o númeroπ. O erro relativo associado é δ x = 3.14 π π = = Por conseguinte, a aproximação tem dois algarismos significativos correctos. Este exemplo ilustra uma fragilidade da definição porque seria desejável considerar que a aproximação tem três algarismos significativos correctos. Exemplo 8 Considere uma resistência com uma etiqueta de 240Ω quando na realidade tem Ω. Calculando o erro relativo δ x = = podemos concluir que o valor presente na etiqueta tem um algarismo significativo correcto. onde se encontra o valor 240Ω. Exemplo 9 Quantos algarismos significativos correctos tem a aproximação x = quando o valor exacto é x = ? O erro relativo é δ x = < = logo a aproximação tem três algarismos significativos. Exemplo 10 Quantos algarismos significativos correctos tem a aproximação x = quando o valor exacto é x = ? O erro relativo é δ x = < = logo a aproximação tem dois algarismos significativos. Exemplo 11 Quantos algarismos significativos correctos tem a aproximação x = quando o valor exacto é x = ? O erro relativo é δ x = < = logo a aproximação tem três algarismos significativos.

53 Exemplo 12 Quantos algarismos significativos correctos tem a aproximação x = quando o valor exacto é x = ? O erro relativo é δ x = < = logo a aproximação tem dois algarismos significativos. Exemplo 13 Quantos algarismos significativos correctos tem a aproximação x = quando o valor exacto é x = π? O erro absoluto é δ x = π = Uma vez queπ = = , tém-set = 1. Consequentemente,t p = 5, ou seja, p = 6 (seis algarismos significativos) Problemas 1. Considere os númerosx = ey = num sistema de vírgula flutuante com sete dígitos na mantissa. Determine o número de algarismos significativos que pode garantir ao calcularx y,x/y, x+y e x y. 2.5 Propagação dos Erros e condicionamento Frequentemente, a instabilidade é provocada não pela acumulação de muitos erros de arredondamento mas pelo crescimento de um número reduzido de erros de arredondamento. definição Considere-se o exemplo que consiste em aproximar e = exp(1) fixando o número n na ( e = lim 1+ 1 ) n n n Na tabela seguinte encontram-se as aproximações f(n) = fl((1+1/n) n ) calculadas em Matlab em precisão dupla (u ) relativas à funçãof(n) = (1+1/n) n.

54 n f(n) e f(n) As aproximações são fracas, ficando cada vez piores à medida que n se aproxima do inverso da unidade de arredondamento da máquina. Se n for uma potência de 10, então a representação de 1/n no sistema binário é um número infinito. Quando é calculado 1 + 1/n com n sendo uma potência de 10 elevada, apenas poucos dígitos significativos de 1/n ficam retidos na soma. Isso é um exemplo em que um simples erro de arredondamento é responsável pela obtenção de maus resultados Erros a priori e a posteriori Suponha-se que se calcula uma aproximação ỹ de y = f(x) numa aritmética com precisão u, sendo f uma função real de variável real. Surge a questão de como medir a "qualidade" da aproximação ỹ. Na maioria das vezes ficamos satisfeitos com um erro relativo pequenino (δỹ u), mas isso nem sempre se consegue. Em vez de pensarmos no erro relativo de ỹ, podemos interrogar-nos para que valores de x resolvemos realmente o problema; mais precisamente, para que valor de x teremos ỹ = f(x+ x). Geralmente podem existir muitos valores para x, logo consideramos o mais pequeno. O valor x, o mais pequeno deles, possivelmente dividido por

55 x, é denominado por erro a priori. Os erros absoluto e relativo de ỹ denominam-se por erros a posteriori para os distinguir dos erros a priori. Um método para calcular y = f(x) diz-se estável a priori se, para cada x, produz um valor ỹ com um erro a priori pequeno, isto é, ỹ = f(x+ x) para algum x pequeno. Em geral, um dado problema tem diversos métodos para obter a solução, sendo alguns deles estáveis a priori e outros não. O resultado calculado da operaçãox+y é o resultado exacto dos dados perturbadosx(1+ǫ) e y(1 + ǫ) com ǫ u; por conseguinte, a adição é, por hipótese, uma operação estável a priori. A maior parte das rotinas para calcular a função seno não satisfazem ỹ = sen(x + x) com x relativamente pequeno, mas apenas uma relação mais fraca ỹ + y = sen(x+ x), com x e y relativamente pequenos. Um resultado da forma ỹ + y = f(x+ x) (2.1) diz-se ser um resultado com erro a posteriori-priori misto. Para x e y suficiente pequenos, (2.1) diz-nos que o valor calculado ỹ quase não difere do valor ỹ + y que foi calculado a partir dos dados x + x que quase não diferem do valor exacto x. Geralmente, um algoritmo diz-se ser numericamente estável se é estável no sentido do erro a posteriori-priori misto da equação (2.1); por conseguinte, um algoritmo estável a priori será numericamente estável. Observe-se que esta definição é específica para problemas onde os erros de arredondamento são a forma de erro mais dominante. O termo estabilidade tem outros significados noutras áreas da análise numérica Condicionamento O condicionamento do problema (isto é, a sensibilidade da solução a perturbações nos dados) governa a relação entre erros a posteriori e a priori. Assumindo quef C 2 podemos escrever ỹ y = f(x+ x) f(x) = f (x) x+ f (x+θ x) ( x) 2, θ (0;1) 2! Este desenvolvimento leva à noção de número de condição. Uma vez que ỹ y y = ( xf (x) f(x) x x +O( ( x) 2) ) a quantidade c(x) = xf (x) f(x)

56 mede, para pequenos valores de x, a variação relativa nos resultados para uma variação relativa nos dados e denomina-se por número de condição de f (relativo). Por exemplo, considere-se a função f(x) = logx. O número de condição é c(x) = 1/logx, que é grande para x 1. Isto significa que uma variação relativa pequena em x pode produzir uma variação relativa muito grande emlogx para x 1. Se os erros a priori e a posteriori e o número de condição estiverem definidos de forma consistente, então tém-se a seguinte regra empírica aproximada erro a posteriori número de condição erro a priori Uma forma de interpretar esta regra é dizer que a solução calculada de um problema mal-condicionado pode ter um erro a posteriori grande. Mesmo que a solução calculada tenha um erro a priori pequeno, este erro pode ser ampliado por um factor tão grande como o número de condição quando passa para o erro a posteriori. Os erros dos dados são os erros a priori e os erros dos resultados são os erros a posteriori. O erro no resultado de um problema que tem origem no erro dos dados denomina-se propagação de erro. Se y = f(x) = f(x 1,...,x n ) então a propagação relativa do erro é dada por δỹ = ỹ y y = n i=1 x i f(x) δ xi +O ( ) ( x) 2 i f(x i ) x i Procedimentos com derivadas parciais pequenas são sempre preferidas. Diz-se que o problema de calcularf(x) a partir dexébem condicionado se os números de condição forem limitados por uma constante relativamente pequena. Idealmente não haverá deterioração de exactidão se c(x i ) 1 para todo o i. Na realidade, podemos ficar contentes se podermos considerar c(x i ) 100 para todo o i. Neste caso o resultado f(x) terá perdido apenas cerca de dois dígitos de precisão em relação à exactidão dos dados. Para problemas em larga escala a estimação da propagação dos erros e dos números de condição é muito complicada e raramente é possível. Nesses casos, é apropriado usar estimativas estatísticas do erro. Em seguida, apresentam-se as propagações do erro para as operações aritméticas básicas: Propagação do erro numa soma. δỹ y = f(x 1,x 2 ) = x 1 +x 2. = x 1 x 1 +x 2 δ x1 + x 2 x 1 +x 2 δ x2

57 Se os dados x 1 e x 2 têm o mesmo sinal, então a adição é uma operação bem condicionada porque 0 x i /(x 1 +x 2 ) < 1. Contudo, se x 1 e x 2 tiverem sinais contrários e tiverem dimensões semelhantes, então a sua adição é mal condicionada. Este efeito é chamado cancelamento subtractivo e os algoritmos devem ser desenhados tal que o cancelamento seja evitado para todos os dados. Propagação do erro numa multiplicação. A multiplicação é bem condicionada. Propagação do erro num quociente. Propagação do erro em potências. y = f(x 1,x 2 ) = x 1 x 2 δỹ. = δ x1 +δ x2 y = f(x 1,x 2 ) = x 1 x 2. δỹ = δ x1 δ x2 y = f(x 1 ) = x p 1, p > 0, x 1 > 0 δỹ. = p δ x1 Observa-se que as raízes são bem-condicionadas e as potências são moderadamente malcondicionadas para valores depelevados. Isto é uma das razões pelas quais não é de esperar bons resultados quando se tenta calcular o valor de um polinómio de grau n no ponto x somando os termos da forma a k x k. Uma alternativa é usar o algoritmo de Horner que é bem-condicionado, o qual vai alternando multiplicações e adições, mas não forma potências directamente Resolução de sistemas lineares Para uma solução aproximada do sistema x Ax = b, A R n n b R n o erro a posteriori define-se por δ x = x x x

58 para uma determinada norma escolhida apropriadamente. Se o sistema linear vier de um problema de interpolação, pode ter mais interesse averiguar até que ponto A x está perto de b do que propriamente estar preocupado com a exactidão de x. Nestes casos, pode utilizar-se uma outra medida da qualidade de x que é a dimensão do resíduor = b A x. O resíduo tem a desvantagem de ser dependente da escala; se b e A forem multiplicados por uma constante, então o resíduo vem multiplicado por essa constante. Uma quantidade independente da escala é o resíduo relativo que se obtém dividindo o resíduo original por A x : τ x = b A x A x Considere-se por exemplo a norma-2, definida por x 2 = (x T x) 1/2 e A = max x 0 Ax x Se (A+ A) x = b entãor = b A x = δa x, logo r 2 A 2 x 2 Por conseguinte, ou seja, A 2 A 2 r 2 A 2 x 2 = τ x { } A 2 τ x = min : (A+ A) x = b A 2 Isto significa que τ x mede até que ponto A, mas não b, tem de ser perturbado para que x seja a solução exacta do sistema perturbado, isto é, τ x é igual ao erro relativo a priori em relação à norma. Se A e b não são exactos e τ x = O(u), então a solução aproximada x pode ser vista como satisfatória. Eliminação de Gauss com pesquisa parcial e regra de Cramer A regra de Cramer consiste em determinar as componentes da solução do sistema Ax = b do seguinte modo: x i = det(a i(b)) det(a) onde A i (b) representa a matriz A com a sua i-ésima coluna substituída por b. Esta fórmula é um exemplo de um método matematicamente elegante, mas completamente inútil para resolver problemas práticos. As duas desvantagens da regra de Cramer são o seu custo computacional (explicado em diversos livros de álgebra linear) e a sua instabilidade numérica. A instabilidade numérica surge logo para n = 2. Suponhamos que temos um sistema 2 2, em que a matriz tem número de condição det 2 (A) = A 2 A , e

59 resolvemos o sistema de duas maneiras distintas no MatLab (onde a unidade de arredondamento u é aproximadamente ): (1) regra de Cramer e (2) método de eliminação de Gauss com pesquisa parcial. Os resultados encontram-se em seguida. Regra de Cramer Gauss c/ PP x r/( A 2 x 2 ) O resíduo normalizado para o método de eliminação de Gauss, com pesquisa parcial de pivot, é muito pequeno e da ordem da unidade de arredondamento. No caso da regra de Cramer, o resíduo é muito maior mostrando que a solução aproximada x pela regra de Cramer não satisfaz nada bem o sistema de equações. As soluções são parecidas. Ambas têm exactidão até aos três dígitos significativos em cada componente, mas o quarto dígito já é incorrecto. Ambos os métodos produzem, neste exemplo, a mesma exactidão, embora o resíduo da regra de Cramer seja muito maior. Este facto explica-se pelo facto de a regra de Cramer ser estável a posteriori para n = 2. Para n genérico, a exactidão e a estabilidade da regra de Cramer depende do método utilizado para calcular os determinantes, e não se conhecem estimativas satisfatórias para o caso em que se calculam os determinantes com o método de eliminação de Gauss com pesquisa parcial Instabilidade sem cancelamento subtractivo As aproximações resultantes de uma sequência de cálculos que não envolvam cancelamento subtractivo (mesmo que a sequência seja pequena), podem não ter exactidão aceitável e a sequência pode não ser estável. Factorização LU Sabemos que existe uma única factorização LU de A R n n se e só se A k é não singular para k = 1 : n 1, onde A k = A(1 : k,1 : k). Se A k é não singular para algum k tal que 1 k n 1, então a factorização pode existir, mas se existir não é única.

60 Assumindo que a factorização existe, ela pode obter-se através do método de Doolitle, onde os elementos da matriz L e da matriz U são calculados da seguinte forma: for k = 1 : n end for j = k : n k 1 u kj = a kj l ki u ij end i=1 for i = k +1 : n ( ) l ik = 1 k 1 a ik l ij u jk u kk end j=1 Considere-se, por exemplo, a matriz A = υ 1 1 1, onde υ = 10 5, e um sistema de vírgula flutuante VF(4,10,t 1,t 2 ). Obtém-se então u 11 = υ = , u 12 = 1 = , l 21 = υ 1 = e u 22 = 1 l 21 u 12 = 1+υ 1 = = Por conseguinte, ũ 11 = u 11,ũ 12 = u 12, l21 = l 21 e ũ 22 = = υ 1. Sendo assim, LŨ = 1 0 υ 1 = υ υ 1 υ A Observa-se que o produto das matrizes L e Ũ calculadas não dá a matriz A, embora não exista nenhuma subtracção na construção de L e Ũ. Além disso, a matriz A é bem condicionada porque o seu número de condição não é grande: det (A) 4; note-se que 1/(1+υ) 1/(1+υ) A 1 =, 1/(1+υ) υ/(1+υ) donde, det (A) = A A 1 ( ) 1 = max( υ +1, ) max 1+υ υ, 1 1+υ + υ 1+υ = υ = 4 1+υ 4

61 O problema da obtenção de maus resultados deve-se à escolha de υ como pivot que resulta emũ 22 = fl(1+υ 1 ) = υ 1. Se for utilizada a pesquisa parcial de pivot, então faz-se a troca das linhas da matriz A e a factorização já é estável. Cálculo de x = ( ) 2 x 1/2n n Não há dúvidas que dado um valor x 0 a igualdade x = ( ) 2 x 1/2n n é verdadeira, logo é de esperar que o seguinte algoritmo tenha como resultado um valor aproximado dexbastante preciso: for n = 1 : 50 x = sqrt(x) end for n = 1 : 50 x = x 2 end Na tabela seguinte encontram-se os resultados da função f(x) = ( x 1/2n ) 2 n para alguns valores de x calculados em MatLab. x f(x) Na realidade, em vez de f(x) = x o resultado do algoritmo é f(x) = 0, se 0 x < 1 e f(x) = 1, se x 1. Com apenas 100 operações o algoritmo consegue produzir resultados completamente errados e nenhuma das operações é uma subtracção. Seja x um número positivo, então10 39 < x < Por conseguinte, para x 1, 1 x 1/250 < (10 39 ) 1/250 = 10 39/250 = e log10 < e Sabemos que a máquina faz as contas utilizando o desenvolvimento em série de Taylor e y = 1+y + 1 2! y ! y3 +...

62 Além disso, em precisão simples a máquina utiliza um significando com 23 bits na mantissa o que corresponde a 6 dígitos significativos. Note-se que 2 23 = e cada 10 bits, 2 10 = 1024, consegue apenas 3 dígitos significativos; existe pelo menos um número com quatro dígitos, por exemplo o 1025 que não consegue ser representado na máquina, logo não temos 4 dígitos significativos mas apenas 3. Logo, com um significando de 23 bits consegue-se 6 dígitos significativos. Por conseguinte, e = ! (10 15 ) ! (10 15 ) é arredondado para 1, o que faz com que parax 1 o resultado seja 1. Se 0 < x < 1 entãox < , logo x 250 ( ) 250 = ( ) 250 = log( ) log 10 e O número é aproximado pelo número zero e isso explica porque é que quando 0 < x < 1 o resultado dá 0. Cálculo de uma soma Sabemos que + i=1 1 i 2 = π2 6 = Agora suponhamos que o objectivo é aproximarπ 2 /6 utilizando uma soma finita. Podemos utilizar uma soma recursiva, ou seja, s = 0 for i = 1 : n s = s+i 2 end Uma vez que os erros de arredondamento individuais dependem dos termos que estão a ser somados, a exactidão do resultado s depende da ordem pela qual os elementos estão ordenados. Na realidade, a aritmética não é uma ciência exacta e obtemos resultados diferentes se fizermos a soma do fim para o início ou do início para o fim. Cancelamento dos erros de arredondamento Frequentemente, quando um algoritmo é estável acontece haver cancelamento dos erros de arredondamento e, por conseguinte, o resultado final é mais exacto do que os resultados intermédios.

63 Considere-se, por exemplo, a função f(x) = ex 1 x = + i=0 x i (i+1)! Para calcular o seu valor no ponto x podemos considerar dois algoritmos Algoritmo 1 Algoritmo 2 if x = 0 f = 1 else f = (e x 1)/x end y = e x ify = 1 f = 1 else f = (y 1)/logy end Alguns resultados obtidos com a implementação destes dois algoritmos em MatLab encontram-se na tabela seguinte. O algoritmo 1 sofre de grande cancelamento quando x é muito menor que 1, dando origem a uma resposta nada exacta; note-se que quando x é muito pequeno o resultado é 0 em vez de 1. Observa-se que este algoritmo produz resultados cada vez piores à medida que o valor de x é cada vez menor. O algoritmo 2 produz bons resultados, embora pareça um pouco complicado estar a calcular uma exponencial e um logaritmo em vez de só uma exponencial. x Algoritmo 1 Algoritmo

64 Considere-se por exemplo x = e suponhamos que a mantissa tem apenas 4 casas. Então e x = , fl(e x ) = , fl(e x ) 1 = , fl(fl(e x ) 1) = , ( ) fl(fl(e x ) 1) x(alg.1) = fl = fl( ) = fl(x) log(fl(e x )) = log(1.001) = fl(log(fl(e x ))) = fl(log(1.001)) = ( ) fl(fl(e x ) 1) x(alg.2) = fl = fl( ) = fl(log(fl(e x ))) Os erros obtidos através dos dois algoritmos são dados por e x (alg.1) , δ x (algoritmo1) ( 11%erro) e x (alg.2) , δ x (algoritmo2) ( 0.05%erro) Observamos que o algoritmo 2 produz valores de e x e e x 1 com muito pouca exactidão mas a razão das duas quantidades dá um valor com grande exactidão. Por conseguinte, os erros cancelam-se na divisão no algoritmo 2. Assumimos que as funções exp e log são ambas calculadas com um erro relativo que não excede a unidade de arredondamento da máquina. Em primeiro lugar calcula-seỹ = e x (1+ δ), δ u. Se ỹ = 1, entãoe x (1+δ) = 1, logo x = log(1+δ) = δ + δ2 2 δ3 +..., δ u. 3 Por conseguinte, o valor arredondado def(x) = 1+x/2+x 2 /6+... é1, logof foi calculado correctamente até à precisão da máquina. Se ỹ 1 então f = fl (ỹ ) 1 = (ỹ 1)(1+ǫ 1) logỹ logỹ(1+ǫ 2 ) (1+ǫ 3) ǫ 1 u, i = 1 : 3

65 Definindov = ỹ 1, obtém-se g(ỹ) = ỹ 1 logỹ v = log(v +1) v = v v 2 /2+v 3 / = 1 v/2+v 2 /3... = 1+ v 2 +O(v2 ) Quandoxémuito pequeno, ou seja y 1 temos g(ỹ) g(y) = g(ỹ) f ỹ y 2 ex δ 2 δ 2 g(y)δ 2 Para x pequeno, nem ỹ 1 nem logỹ se conseguem calcular com grande exactidão. Mas (ỹ 1)/logỹ é uma aproximação extremamente boa de(y 1)/logy próximo de y = 1. Isto deve-se ao facto da função g(y) = (y 1)/logy variar muito lentamente ao pé de y = 1, g (1)=1. Mais concretamente, os erros deỹ 1 e delogỹ quase se cancelam Como desenhar algoritmos estáveis Em computação, um algoritmo é uma sequência finita de instruções bem definidas, e não ambíguas, executadas por um processador num período de tempo finito. Os algoritmos podem incluir a repetição de passos, ou seja fazer iterações, ou incluir decisões lógicas ou com base em comparações. Ainda não se descobriu uma receita para produzir algoritmos estáveis por isso muitos analistas numéricos dedicam-se ao estudo da estabilidade dos algoritmos; uma das coisas que às vezes fazem é provar que determinados algoritmos são instáveis. Sendo um assunto de investigação actual ele ajuda a manter a trabalhar os especialistas em análise numérica, mas não é bom para quem tem de fazer os algoritmos e para quem tem de os utilizar, por exemplo, em aplicações na engenharia. Quando se está a construir um algoritmo é preciso estar atento à necessidade de estabilidade numérica e não nos devemos apenas focar no custo computacional e na paralelização de operações. Embora não exista receita para fazer algoritmos estáveis existem algumas coisas que convém ter em conta: 1. Sempre que possível, evitar subtracções de quantidades contaminadas com erro.

66 2. Minimizar a dimensão de quantidades intermédias que levam ao resultado final. Isto devese ao facto de se os valores intermédios são muito elevados, então o resultado final pode vir grandemente afectado por cancelamentos subtractivos. Valores intermédios grandes resultam na perda de informação. Exemplos deste tipo de problema são a soma recursiva tratada na secção e o método de eliminação de Gauss. 3. Olhar para formulações diferentes de um cálculo que são matematicamente equivalentes mas não computacionalmente equivalentes. Um exemplo é o tratado na secção É vantajoso expressar a fórmula actual em função da anterior como novo valor = valor antigo + correcção pequenina Os métodos numéricos em geral são expressos desta forma. Exemplos destes incluem os métodos para resolver equações diferenciais ordinárias, onde a correcção é proporcional ao passo h (distância entre os nós da rede), e o método de Newton para resolver equações não lineares, f(z) = 0. Método de Newton com f C 2 [a;b], f (z) 0 e f (z) 0. Neste caso tém-se ou seja, z = x n f(x n) f (x n ) f (ξ n ) 2f (x n ) (z x n) 2, ξ n int(z,x n ) x n+1 = x n f(x n) f (x n ) Método de Euler para resolver o problema de valor inicial y (x) = f(x,y(x)) Sabemos que y(x 0 ) = y 0 y(x n+1 ) = y(x n )+hy (x n )+ h2 2 y (ξ n ), h = x n+1 x n, ξ m (x n,x n+1 ) = y(x n )+hf(x n,y(x n ))+ h2 2 y (ξ n ) ou seja, y n+1 = y n +hf(x n,y n ) 5. Utilizar matrizes bem condicionadas.

67 6. Tomar precauções para evitar Overflows e Underflows desnecessários. Por exemplo, o cálculo de x 2 = ( x i 2 ) 1/2 muitas vezes resulta em Overflow. Para evitar este problema podemos utilizar o seguinte algoritmo: y = x = max i=1:n x(i) s = 0 for i = 1 : n end s = s+(x(i)/y) 2 x 2 = y s Problemas 1. Faça os cálculos indicados das seguintes formas: exactamente e usando 3 dígitos na mantissa. Para cada uma das aproximações, calcule os erros absoluto e relativo. (a) (b) (c) ( 1 + ) (d) 1 7 +( ). 2. Para cada uma das funções explique porque é que o cálculo pode levar a erros de arredondamento elevados para x próximo de certos valores. Diga como pode evitar esses problemas. (a) f(x) = ( x+9 3)/x. (b) f(x) = (1 cos(x))/x. (c) f(x) = (log e (x) sin(πx))/(1 x). (d) f(x) = (cos(π +x) cos(π))/x. (e) f(x) = (e 1+x e 1 x )/(2x). 3. Quantos termos da série de Taylor tem de considerar para calcular o valor da função f(x) = (e x 1)/x com sete dígitos decimais correctos (precisão simples), parax [0;1/2], utilizando a aproximação (1.3): 1+ 1 f(x) = x x n! xn 1, x próximo de 0 caso contrário e x 1 x,

68 E se pretender catorze dígitos significativos correctos (precisão dupla). 4. (a) Considere o algoritmo, para o cálculo de1 cos(x), definido por z 1 = cos(x) z 2 = 1 z 1 Mostre que o algoritmo é instável para valores de x próximos de zero, apesar de o problema ser bem condicionado. (b) Baseando-se na fórmula 1 ( x ) 2 (1 cos(x)) = sin2 2 escreva um algoritmo equivalente que seja numericamente estável para valores de x próximos de zero. 5. Considere os seguintes dois algoritmos para o cálculo def(a,b) = a 2 b 2 Algoritmo 1 Algoritmo 2 z 1 = a 2 z 1 = a+b z 2 = b 2 z 2 = a b z 3 = z 1 z 2 z 3 = z 1 z 2 Compare os dois algoritmos dados para determinar a 2 b 2 com a = e b = utilizando um sistema de vírgula flutuante com quatro dígitos na mantissa. 6. Considere a equação quadrática 7.326x x = 0 Sabemos que as raízes desta equação são dadas por x 1 = b+ b 2 4ac 2a e x 2 = b b 2 4ac 2a onde a = 7.326,b = ec = (a) Calcule x 1 num sistema de vírgula flutuante com: (i) quatro dígitos na mantissa; e (ii) dez dígitos na mantissa. Obtenha os erros relativos das aproximações obtidas e diga quantos algarismos significativos tem cada uma delas. (b) Faça os mesmos cálculos mas utilizando a fórmula x 1 = b+ b 2 4ac 2a b+ b 2 4ac b+ b 2 4ac = 2c b+ b 2 4ac

69 (c) Obtenha a expressão para o erro para cada algoritmo que utilizou nas alíneas anteriores e dê uma explicação para os resultados obtidos. 7. Considere os seguintes algoritmos para determinar valores da função f(x) = ex 1 x = + i=0 x i (i+1)! Algoritmo 1 Algoritmo 2 z 1 = e x z 1 = e x z 2 = z 1 1 z 2 = z 1 1 z 3 = z 2 /x z 3 = log e (z 1 ) z 4 = z 2 /z 3 (a) Implemente estes dois algoritmos em Matlab e preencha a tabela seguinte: x f(x) com Alg. 1 f(x) com Alg (b) Comente os resultados que obteve e dê uma justificação teórica com base nos erros relativos dos dois algoritmos. (c) Calcule os erros relativos, percentagens de erro e número de algarismos significativos associados às aproximações obtidas pelos dois algoritmos quandox = Considere a função f 1 (x) = (1 cos(x))/x 2 Sabendo quecos(x) = 1 2sin 2 (x/2) podemos reescrever esta função na forma ( sin(x/2) ) 2 f 2 (x) = 1 2 x/2 (a) Estude f 1 ef 2 quanto ao condicionamento. (b) Com base nas expressões dos erros relativos estude a estabilidade dos algoritmos associados af 1 ef 2.

70 (c) Calcule f 1 (x) e f 2 (x) com x = usando um sistema de vírgula flutuante com dez dígitos na mantissa. 9. Qual é o efeito do cancelamento subtractivo quando calculamos x + (y z) com x y z > 0? Justifique teoricamente. 10. Pretende-se somar três números reais a = , b = e c = (a) Calcule essa soma num sistema de vírgula flutuante com oito dígitos na mantissa usando os seguintes algoritmos: Algoritmo 1 Algoritmo 2 (a+b)+c a+(b+c) (b) Para cada algoritmo, obtenha uma expressão para o erro relativo de propagação. (c) Com base na alínea anterior diga qual é a ordem pela qual deve fazer a soma dos três números e porquê. 11. Considere os números reais a, b c e z = a b+c b c Supondo que são apenas conhecidos valores aproximados ã, b, c, dea,b,c, respectivamente, e que as quatro operações aritméticas envolvidas no cálculo de z, adição, subtracção, divisão e multiplicação têm erros de arredondamento δ arr1, δ arr2, δ arr3, δ arr4, respectivamente, determine a expressão do erro relativo do valor aproximado z dez. 12. Considere o seguinte algoritmo para o cálculo da função seno hiperbólico num pontox R: z 1 = e x z 2 = e x z 3 = z 1 z 2 z = z 3 /2 Supondo que é apenas conhecido um valor aproximado x de x e que quatro operações envolvidas no cálculo de z, exponenciação (duas vezes), subtracção e divisão por 2, têm erros de arredondamento δ 1, δ 2, δ 3, δ 4, determine a expressão do erro relativo do valor aproximado z de z. Utilize o resultado para concluir que o cálculo de sinh(x) é um problema bem condicionado para qualquerx R mas que o algoritmo para o seu cálculo é numericamente instável para x 0.

71 13. Se x 1 e x 2 são aproximações de x 1 ex 2 com erros ǫ 1 eǫ 2, mostre que o erro relativo x 1 x 2 x 1 x 2 x 1 x 2 do produto x 1 x 2 é aproximadamente a soma ǫ 1 x 1 + ǫ 2 x Considere os números x = y = z = e sejam x, ỹ e z as suas aproximações num sistema de vírgula flutuante com 3 dígitos na mantissa. Calcule x +(y z) utilizando o seguinte algoritmo: w 1 = y z w 2 = x+w 1 num sistema de vírgula flutuante com 3 dígitos na mantissa. (a) Obtenha as expressões dos erros relativos associados a cada passo do algoritmo. (b) Calcule os valores numéricos que faltam na tabela seguinte: δ x δ y δ z %Erro x %Erro y %Erro z δ w1 %Erro w1 δ w2 %Erro w2 onde δ x, δ y, δ z, δ w1, δ w2, %Erro x, %Erro y, %Erro z, %Erro w1 e %Erro w2 são os erros relativos e as percentagens de erro das várias quantidades envolvidas no cálculo.

72

73 Capítulo 3 Ferramentas 3.1 Série de Taylor Uma das ferramentas que utilizamos em matemática computacional é o teorema de Taylor que diz o seguinte: Teorema 1 (Teorema de Taylor) Seja f(x) uma função com n+1 derivadas contínuas no intervalo[a; b], comn 0, e sejax,x 0 [a;b]. Então f(x) = p n (x)+r n (x) com p n (x) = n (x x 0 ) k f (k) (x 0 ), k! k=0 R n (x) = 1 n! x Além disso, existe um ponto ξ x entre x ex 0 tal que x 0 (x t) n f (n+1) (t)dt R n (x) = (x x 0) n+1 f (n+1) (ξ x ). (n+1)! 73

74 O ponto x 0 é o ponto em torno do qual se faz o desenvolvimento em série e é frequentemente escolhido pelo utilizador como sendo zero. Em matemática computacional escreve-se, frequentemente, a fórmula de Taylor como: f(x+h) = f(x)+hf (1) (x)+ h2 2! f(2) (x)+ h2 3! f(3) (x)+... onde x é um ponto em torno do qual fazemos a expansão de Taylor e h é um valor pequeno. As aproximações f(x+h) = f(x), f(x+h) = f(x)+hf (1) (x) f(x+h) = f(x)+hf (1) (x)+ h2 2! f(2) (x) são chamadas aproximações de ordem zero, um e dois, respectivamente. O Teorema de Taylor é importante porque permite representar exactamente funções gerais em termos de polinómios com um erro conhecido específico e limitado. Isto permite-nos substituir estas funções por funções mais simples do ponto de vista computacional (polinómios). Ao mesmo tempo podemos calcular um majorante no erro que estamos a cometer. A característica mais importante da série de Taylor é que em muitos casos podemos usar a aproximação de primeira ordem, isto é um polinómio de grau 1, para aproximar localmente a função. Isto é um resultado de observar que qualquer função diferenciável assemelha-se, localmente, a uma linha recta. Por conseguinte, se estivermos na vizinhança de um ponto e tivermos algum conhecimento da sua série de Taylor (a partir do nosso modelo), então podemos aproximar com êxito o valor da função nos pontos dessa vizinhança. Como exemplo de aplicação deste teorema temos os seguintes desenvolvimentos em série, em torno do ponto x 0 = 0, que nos são familiares: e x = 1+x+ 1 2! x ! x n! xn + = n k=0 1 k! xk +R n (x), 1 (n+1)! xn+1 e ξx sin(x) = x 1 3! x ( 1)n (2n+1)! x2n+1 + ( 1)n+1 (2n+3)! x2n+3 cos(ξ x ) n ( 1) k = (2k +1)! x2k+1 +R n (x), k=0

75 cos(x) = 1 1 2! x ! x ( 1)n (2n)! x2n + ( 1)n+1 (2n+2)! x2n+2 cos(ξ x ) n ( 1) k = (2k)! x2k +R n (x), k=0 Exemplo 14 Aproximação da função f(x) = e x Com o objectivo de observar a utilidade da série de Taylor podemos ver nas Figuras 3.1, 3.2 e 3.3 as representações das aproximações da função f(x) = e x em x = 0 de primeira, segunda e terceira ordens, respectivamente. Enquanto que a aproximação da Figura 3.1 rapidamente de torna muito má, a aproximação de segunda ordem da Figura 3.2 (linear) é bastante razoável numa pequena vizinhança dex = 0. A de segunda ordem da Figura 3.2 (quadrática) e ainda melhor. 3 e x ordem zero Figura 3.1: Aproximação de ordem zero com a série de Taylor da funçãof(x) = e x.

76 3 e x primeira ordem Figura 3.2: Aproximação de primeira ordem com a série de Taylor da funçãof(x) = e x.

77 3 e x segunda ordem Figura 3.3: Aproximação de segunda ordem com a série de Taylor da funçãof(x) = e x.

78 Exemplo 15 Aproximação da função f(x) = cos(x) A Figura 3.4 mostra sucessivas aproximações da funçãof(x) = cos(x) com ordens cada vez mais elevadas em torno do ponto x = 0. A Figura 3.5 mostra sucessivas aproximações da função f(x) = cos(x) com ordens cada vez mais elevadas em torno do pontox = 1, até à quinta ordem: cos(x) = cos(1) cos(x) = cos(1) (x 1)sin(1) cos(x) = cos(1) (x 1)sin(1) (x 1)2 2 cos(x) = cos(1) (x 1)sin(1) (x 1)2 2 cos(x) = cos(1) (x 1)sin(1) (x 1)2 2 cos(x) = cos(1) (x 1)sin(1) (x 1)2 2 cos(1) cos(1)+ (x 1)3 3! cos(1)+ (x 1)3 3! cos(1)+ (x 1)3 3! sin(1) sin(1)+ (x 1)4 4! sin(1)+ (x 1)4 4! cos(1) cos(1) (x 1)5 5! sin(1) Procedimento Dada uma função real de variável real f(x), calcula-se a série de Taylor em torno de x calculando as primeirasnderivadas da função: f(x)+hf (1) (x)+ h2 2 f(2) (x)+ h3 3! f(3) (x)+...+ hn n! f(n) (x) Se pretendermos aproximar o valor de f(x+h), calculamos a soma anterior para um dado valor deh. O erro associado a esta aproximação é h n+1 (n+1)! f(n+1) (ξ x ) onde ξ x int[x,x +h], com int[x,x +h] representando o menor intervalo que contém x e x+h. A série de Taylor não está realizada em Matlab, pelo que terá de ser calculada manualmente e programada. Em muitas situações os engenheiros usam aproximações lineares, ou seja até à primeira ordem: f(x+h) = f(x)+hf (1) (x)+ h2 2 f(2) (ξ x ) Se o passo h for pequeno, por exemplo ou , então h 2 será muito pequeno e, por conseguinte, a menos que a segunda derivada seja muito grande, o erro será razoavelmente pequeno.

79 1.5 1 cos(x) aproximação cos(x) aproximação cos(x) aproximação cos(x) aproximação cos(x) aproximação cos(x) aproximação Figura 3.4: Aproximações de ordem zero, dois, quatro, seis, oito e dez, respectivamente, para a funçãof(x) = cos(x).

80 1.5 1 cos(x) (1,cos(1)) aproximação 4 3 cos(x) aproximação cos(x) aproximação 2 1 cos(x) aproximação cos(x) aproximação 9 8 cos(x) aproximação Figura 3.5: Aproximações de ordem zero, dois, quatro, seis, oito e dez, respectivamente, para a funçãof(x) = cos(x).

81 3.1.2 Problemas 1. Reescreva a seguinte série de Taylor para f(x 0 +h) onde h = x x 0 : f(x) = f(x 0 )+(x x 0 )f (1) (x 0 )+ (x x 0) 2 f (2) (x 0 )+ (x x 0) 3 f (3) (x 0 ) Calcular a aproximação de primeira ordem de cos(1.1) em torno do ponto x = Calcular a aproximação de segunda ordem de cos(1.1) em torno do ponto x = Calcularcos(1.1) usando a fórmula de Taylor até à primeira ordem em torno dex = 1. Quais são os erros relativo e absoluto desta aproximação? 5. Qual é o majorante do erro usando a primeira e a segunda aproximações da série de Taylor em torno do ponto x = 0.5, para aproximar f(x) = e x nos pontos x = 0 e x = 1? 6. Usar o teorema de Taylor para mostrar que, para h suficientemente pequeno, (a) e x = 1+x+O(x 2 ); (b) 1 cos(x) x = 1 2 x+o(x3 ); (c) (1+x) 1/2 = x+o(x2 ); (d) (1+x) 1 = 1 x+x 2 +O(x 3 ); (e) sin(x) = x+o(x 3 ). 3.2 Pesquisa binária Os métodos numéricos mais simples baseiam-se em aplicar uma pesquisa binária ao problema. Se tivermos uma função real com uma variável real e se conseguirmos observar que a solução desse problema se encontra no intervalo [a; b], então podemos proceder do seguinte modo. Seleccionamos um ponto c desse intervalo e depois determinamos se a solução está no intervalo [a;c] ou no intervalo [c;b]. Assim restringimos o domínio no qual a solução se encontra. Aplicando várias vezes este procedimento, o intervalo onde se encontra a solução torna-se cada vez mais pequeno.

82 Exemplo 16 A pesquisa binária é muito utilizada na prática. Quando uma pessoa procura uma palavra no dicionário usa pesquisa binária. As primeiras páginas de um dicionário começam pela letra A e as últimas contêm a letra Z. Qualquer palavra que procuremos está entre estas duas letras. Quando abrimos o dicionário numa página, determinamos se a palavra que procuramos está antes ou depois dela. Assumindo que ao abrirmos o dicionário não deparamos logo com a palavra, podemos adivinhar qual é o conjunto de páginas onde vamos continuar a procurar. O processo é repetido até descobrirmos a palavra que procuramos. Este algoritmo pode parecer rápido mas não é. Na realidade converge com O(log e (n)), onde n é o número de passos. Contudo pode ser muito útil para resolver problemas em que a função não é suficientemente regular. Por exemplo, quando a primeira e segunda derivadas da função tomam valores muito elevados ao longo da região experimental, métodos numéricos baseados tanto em interpolação como na fórmula de Taylor geralmente resultam em divergência. 3.3 Iteração Uma ferramenta utilizada em matemática computacional é considerar uma resposta inicial ao problema e executar um algoritmo com vista a obter uma resposta melhor que a primeira. Ao processo de tomar uma aproximação e a partir dela obter uma melhor denomina-se iteração. Cada repetição do processo também se chama iteração. O resultado de uma iteração é utilizado como ponto de partida para a próxima iteração Teoria Iteração em matemática pode referir-se ao processo de iterar uma função, i.e., aplicar a função repetidamente, utilizando o resultado de uma iteração como entrada para a iteração seguinte. Mais especificamente, dada a função g(x), começamos com um valor inicial x 0 e calculamos sucessivamente primeira aproximação g(x 0 ) segunda aproximação g(g(x 0 )) terceira aproximação g(g(g(x 0 ))) quarta aproximação g(g(g(g(x 0 ))))..

83 Ou seja, dada uma função g(x) começamos com um valor inicial x 0 e definimos a sucessão x i+1 = g(x i ), i = 0,1,2... (3.1) Se a função g(x) e o valor inicial x 0 forem escolhidos convenientemente, a sucessão irá convergir para um valor real fixo. Existem processos iterativos em que são precisos mais do que um valor inicial para começar o processo; ver Secção 4.3. Por exemplo, o método da secante necessita de dois valores iniciais x 0 ex 1 e a sucessão é da forma x i x i 1 x i+1 = g(x i,x i 1 ) = x i f(x i ) f(x i ) f(x i 1 ) i = 1,2,... Se convergir, esta sucessão converge para uma raiz da equação f(x) = 0. Outro processo que precisa de dois valores iniciais é a sucessão de Fibonacci x 0 = x 1 = 1 x i+1 = g(x i,x i 1 ) = x i +x i 1 i = 1,2, Condições de paragem Tão importante como saber como se faz cada iteração num método numérico, é saber quando parar o processo iterativo. Uma condição de paragem é aquela que é utilizada para nos indicar que o processo iterativo deve ser terminado. Existem dois tipos de condições de paragem e que passo a descrever. 1. As que indicam sucesso, ou seja, a última iterada é suficientemente boa para os nossos objectivos. 2. As que indicam insucesso, ou seja, o método numérico não convergiu por alguma razão. As condições de paragem variam de método para método e em cada método pode existir mais do que uma. Contudo, uma condição de paragem que geralmente aparece é: Parar se o número de iteradas atingir um determinado valor iter_max. Se após iter_max iteradas o método numérico não convergir, ou assumimos que o método não converge (com a aproximação inicial escolhida), ou experimentamos outra aproximação inicial. Convém salientar que, se um método numérico não convergir com uma dada aproximação inicial não significa que a solução não existe. Pode acontecer que a escolha da aproximação inicial

84 não foi a melhor. Se, por outro lado, o método convergir não temos100% de certeza que o método convergiu para uma solução válida Exemplos Exemplo 17 O método de Newton para aproximar um zero de uma função f(x) é um exemplo em que a função iteradora é dada por g(x) = x f(x) f (x) O método iterativo consiste partir de uma aproximação inicialx 0 e depois calcular as aproximações seguintes através da sucessão x i+1 = x i f(x i) f (x i ) Se f(x) = e x +x 3 cos(x)+2, então f (x) = e x +3x 2 cos(x) x 3 sin(x) e x i+1 = x i e x i +x 3 i cos(x i )+2 e x i +3x 2 i cos(x i ) x 3 i sin(x i) Esta função f(x) tem dois zeros no intervalo [2;4]; ver a Figura 3.6. Para x 0 = 2.5 a sucessão converge para o primeiro zeroz 1. Ao fim de quatro iteradas podemos concluir que z i x i f(x i ) Por uma questão de interesse, a negrito estão os algarismos que não mudam. Se, por outro lado, x 0 = 4, então a sucessão converge para o segundo zero def(x). Ao fim de cinco iterações temos z i x i f(x i )

85 O que é que acontece quando x 0 = 2.0? Justifique f(x) x Figura 3.6: Representação da função f(x) = e x +x 3 cos(x)+2. Exemplo 18 O sistema dinâmico discreto de Verhulst considera a função iteradora g(x) = c x(1 x), c [0;4]. Se experimentarmos x 0 = 0.5 iremos observar que esta sucessão converge para valores de c [0;3], mas não converge para valores de c (3; 4). Em Matlab podemos obter, por exemplo, 50 iterações escrevendo as seguintes instruções: x = 0.5; c = 2.5; for i=1:50 x = c * x * (1 - x) end O retorno pode ser resumido da forma seguinte:

86 i Observamos que a sucessão converge parax = 0.6. Fazendo 100 iteradas com c = 3.2 observamos que a sucessão parece oscilar entre os dois valores distintos e : i x i x i Se obtivermos 100 iteradas com c = 3.5 observamos que a sucessão parece oscilar entre quatro valores distintos: , , e :

87 i x i Problemas 1. Considere a função iteradora g(x) = xcos(x) sin(x)+0.5, cos(x) ou seja, o método de Newton aplicado à equação sin(x) 0.5 = 0. Obtenha seis iteradas utilizando as seguintes aproximações iniciais relativamente próximas: x 0 = 0.5 e x 0 = 1.5. Compare a alteração de resultados quando muda de um valor inicial para outro. 2. Calcule 100 iteradas com as funções iteradoras g(x) = sin(x) e g(x) = cos(x). Qual das sucessões associadas a estas funções iteradoras converge mais depressa? Considera essa diferença significativa? 3. Na Grécia antiga sabiam que a sucessão x i+1 = x2 i +2 2x i i = 0,1,2,... converge para um determinado número. Que número é esse? Poderá esta sucessão convergir para mais algum número? Sugestão: este método corresponde à aplicação do método de Newton a uma dada equação da forma f(x) = 0; descubra esta equação (ver Secção 4.2).

88 3.4 Método do ponto fixo Um número x diz-se ponto fixo da funçãog(x) se e só se x é solução da equação x = g(x) Para determinar o ponto fixo de uma função num determinado intervalo fechado de R, vamos utilizar o método iterativo do ponto fixo (3.1) x 0 R x i+1 = g(x i ) (3.2) Para que este algoritmo seja útil é preciso que: 1. Dado um valor inicial x 0, conseguimos calcular sucessivamente x 1, x 2,... no sentido em que os valores da sucessão são todos reais positivos ou zero; por exemplo, se g(x) = x e se x 0 = 4 > 0 tem-se x 1 = 4 = 2 e x 2 = 2 = j, onde j representa a unidade imaginária. 2. A sucessão x 1, x 2,... converge para um ponto z. 3. O limite z é um ponto fixo de g(x), ou seja, z = g(z). O teorema do ponto fixo de Banach dá condições suficientes de convergência do método do ponto fixo. Bases: Secções 3.1 e Teoria Teorema do valor médio O teorema do valor médio, ou teorema de Lagrange, diz que se g(x) é uma função contínua, definida num intervalo fechado [a;b] R, e diferenciável em (a;b), então existe um ponto ξ (a;b) tal que g (ξ) = g(b) f(a) b a ou seja, a tangente no ponto g(ξ) é paralela à secante que passa nos pontos g(a) e g(b); ver Figura 3.7.

89 g(x) x a ξ b Figura 3.7: O teorema do valor médio. Teorema do ponto fixo de Banach Seja (X, d) um espaço métrico completo (isto é, qualquer sucessão de Cauchy em X converge em X) e seja g : X X uma função contractiva em X, isto é, existe uma constante L < 1 tal que d(g(x),g(y)) L d(x,y) para todo o x e y em X. Então a função tem um único ponto fixo z em X, ou seja z = g(z). Além disso, a sucessão x i+1 = g(x i ) converge para z, onde i = 0,1,2... Este teorema aplicado a um intervalo fechado de R, ou seja considerando X [a;b], surge com a seguinte forma: Seja [a;b] R. Se g é uma função contractiva de [a;b] em [a;b], então g tem um único ponto fixo z. Além disso, z é o limite da sucessão definida em (3.2). Uma função diz-se contractiva num intervalo fechado[a;b] se existir uma constante0 < L < 1 tal que g(y) g(x) L y x (3.3) O termo contractiva indica que a função coloca os pontos mais juntos, ou seja, contrai a distância entre os pontos. O teorema do ponto fixo de Banach afirma que uma função contrativa num intervalo fechado tem um único ponto fixo e que o limite da sucessão (3.2) é esse ponto fixo, ou seja, podemos obter aproximações desse ponto fixo utilizando o método iterativo (3.2).

90 Exemplo 19 Considere a função iteradorag(x) = 4+ 1 sin(2x). Pelo teorema do valor médio tem-se 3 g(y) g(x) = 1 3 sin(2y) sin(2x) = 2 3 cos(2ξ) y x 2 y x 3 para algum ξ int(y,x). Isto mostra que g(x) é contractiva com L = 2/3. Pelo teorema do ponto fixo de Banach, g(x) tem um único ponto fixo. Podemos obter uma aproximação desse ponto fixo calculando, por exemplo,15 iteradas em Matlab com o auxílio das seguintes instruções: x = 0.5; c = 2.5; for i=1:15 x = 4 + sin(2 * x) / 3 end O retorno resume-se no seguinte: i x i Em situações práticas pode ser difícil verificar a condição de contractividade (3.3). Quando a função g(x) é continuamente diferenciável podemos substituir a condição de contractividade por uma mais exigente. Pode ser demonstrado que uma função contractiva tem de ser contínua. Alternativamente, se g(x) for continuamente diferenciável em [a; b], pelo teorema do valor médio tem-se g(y) g(x) = g (ξ) y x

91 para algum ξ int(y,x). Consequentemente, se g (ξ) < 1 para todo o ξ [a;b] a função g(x) é contractiva. Nesta situação podemos considerar L = max g (x) (3.4) x [a;b] Por outro lado, se qualquer que seja x [a;b] então g(x) [a;b], ou seja, a função g(x) satisfazg([a;b]) [a;b], então pode demonstrar-se (por indução) que a sucessãox i+1 = g(x i ) está bem definida (no sentido que os valores da sucessão são reais) e está em [a;b]. Sendo assim, as seguintes condições são suficientes para que as condições 1, 2 e 3 da página 88 se verifiquem: 1. g C 1 [a;b]; 2. g([a;b]) [a;b]; 3. L = max x [a;b] g (x) < 1. Em casos em que é difícil verificar a condição g([a;b]) [a;b], pode-se utilizar o seguinte resultado que pode pelo menos assegurar a convergência se a aproximação inicial estiver suficientemente próxima do ponto fixo: dada uma função contínua g : R R e um ponto z tal que g (z) < 1, então existe um intervalo [a;b] em torno do ponto z tal que para toda a aproximação inicial x 0 dentro deste intervalo, o método do ponto fixo converge para z; a funçãog(x) é contractiva em [a;b]. Por outro lado, pode demonstrar-se que seg(x) for continuamente diferenciável e g (z) > 1, então o método do ponto fixo não poderá convergir para z (excluindo o situação em que x i = z a partir de um certo i). Quando existe convergência podemos averiguar se ela é monótona (0 < g (z) < 1) ou alternada ( 1 < g (z) < 0). Na convergência monótona, ou x 0 < x 1 < x 2 <... < z, ou x 0 > x 1 > x 2 >... > z. Na convergência alternada as sucessivas iteradas vão estando alternativamente à direita e à esquerda do ponto fixo z. A função g(x) = 3cos(x) tem três pontos fixos perto dos pontos z = , z = e z = Nestes pontos temos g (z) , g (z) e g (z) respectivamente. Por conseguinte, o método do ponto fixo só irá convergir para o ponto fixo z = Quando g (z) = 1 o teorema do ponto fixo de Banach não dá informação acerca da convergência do método. Por exemplo, as funçõessin(x) etan(x) têm um ponto fixo emz = 0 e ambas verificam g (z) = 1. No primeiro caso observamos uma convergência muito lenta e no segundo caso o método diverge. Para x 0 = 0.1 temos

92 sin(x) tan(x) Procedimento Problema Dada uma função de uma variável, g(x), encontrar um valor z (denominado ponto fixo) tal quez = g(z). Hipóteses Iremos assumir que a função g(x) é contínua. Ferramentas Iremos utilizar amostragem e iteração. O erro é obtido utilizando o desenvolvimento em série de Taylor. Requisitos iniciais Temos de ter uma aproximação inicial x 0 do ponto fixo. Processo iterativo Dada uma aproximação x i da raiz, a aproximação seguinte obtém-se através de x i+1 = g(x i ) Condições de paragem Existem três condições que podem originar a paragem do processo iterativo que passo a descrever. 1. A distância entre iteradas sucessivas é suficiente pequena, isto é, x i+1 x i < ǫ passo ; esta condição é a mais utilizada. 2. A distância entre iteradas sucessivas é menor que ǫ passo (1 L)/L, isto é, x i+1 x i < ǫ passo (1 L)/L, onde a constante L é dada por (3.4).

93 3. O número máximo de iterações foi atingido e a condição 1 não se verificou; neste caso, o processo pára e indicamos que a raiz não foi encontrada. Quandog C 1 [a;b] então podemos demonstrar que e i+1 L 1 L x i+1 x i ondee i+1 = z x i+1 e L = max x [a;b] g (x) (ver (3.9)). Se L 1/2 entãol/(1 L) 1 e, por conseguinte, e i+1 L 1 L x i+1 x i x i+1 x i Neste caso, sempre que o erro em cada iteração vem reduzido pelo menos a metade do erro da iterada anterior, podemos utilizar com confiança a condição de paragem 1. Quando a convergência é mais lenta, ou seja L > 1/2, pode acontecer que as iteradas sucessivas estejam bastantes próximas ao mesmo tempo que o erro ainda seja bastante maior queǫ passo. Nesta situação, podemos utilizar a segunda condição de paragem. Se o processo termina devido à verificação da condição 1 ou 2, então considera-se que x i+1 é a nossa aproximação da raiz. Se, por outro lado, o processo pára porque se verificou a condição 3, então devemos escolher uma nova aproximação inicial x 0 ou considerar a possibilidade de a solução não existir. Análise do erro Vamos agora analisar a velocidade de convergência do método do ponto fixo. Assuma-se que g(x) tem um ponto fixo z e defina-se a sucessão x i+1 = g(x i ). Se g (x) existe e é contínua então, pelo teorema do valor médio, e i+1 = z x i+1 = g(z) g(x i ) = g (ξ)(z x i ) = g (ξ)e i, ξ int(x i,z), ou seja, e i+1 = g (ξ)e i (3.5) isto é, o erro e i+1 da (i+1)-ésima iterada depende linearmente do erro e i da iterada x i. Por conseguinte, dizemos que a sucessão definida por x i+1 = g(x i ) converge linearmente para z. A partir de (3.5), e i+1 L e i (3.6) onde a constante L é dada por (3.4). Aplicando repetidas vezes a desigualdade (3.6) podemos escrever e i L 1 e i 1 L 2 e i 2 L 3 e i 3... L i e 0 ou seja, e i L i e 0 (3.7)

94 Por conseguinte, se ǫ passo é fixo, então podemos saber à partida qual é o número mínimo de passos para assegurar um erro absoluto inferior a ǫ passo. Para isso utilizamos o facto de e 0 b aeresolvemos a desigualdade L i (b a) < ǫ passo em ordem aieobtemos loge [ǫ passo /(b a)] i = log e L onde i representa o inteiro mais próximo superior a i. Por exemplo, se o intervalo inicial for[0;1] e considerarmos ǫ passo = 10 6 el = 0.3, então o número mínimo de iteradas será i = (log e [10 6 /(1 0)])/(log e 0.3) = 12 A instrução Matlab correspondente é ceil(log(1e-6/(1-0))/log(0.3 )). Além disso, somando e subtraindo a quantidade x i ao erro correspondente à iterada x i 1 obtém-se z x i+1 = (z x i ) (x i+1 x i ) z x i x i+1 x i Aplicando a este resultado a desigualdade (3.6) vem z x i x i+1 x i L z x i logo (1 L) z x i x i+1 x i AssumindoL < 1 (caso em que há convergência) obtém-se Aplicando esta desigualdade a (3.6) podemos afirmar que Se i = 0 em (3.8) tém-se Aplicando este resultado em (3.7) obtém-se z x i 1 1 L x i+1 x i (3.8) z x i+1 L 1 L x i+1 x i (3.9) z x L x 1 x 0 z x i Li 1 L x 1 x 0 A partir da igualdade (3.5) podemos observar que, se g (x) < 1 para todo oxem[a;b], então o erro vai ficando cada vez mais pequeno. Se e i for pequeno, então ξ está próximo de z e

95 g (ξ) g (z). Por conseguinte, é de esperar uma convergência rápida se g (z) for pequeno. Idealmente teríamosg (z) = 0. Neste caso, é útil adicionar mais termos ao desenvolvimento em série de Taylor. Suponha-se que g (z) = g (z) =... = g (p 1) (z) = 0 e g (p) (z) 0 (3.10) Desenvolvendog(x i ) em série de Taylor em torno do ponto z temos e i+1 = z x i+1 = g(z) g(x i ) = g(z) g(x i z +z) = g(z) g(z e i ) = g(z) [g(z) e i g(z)+ 1 2 e2 i g (z)+...] = e i g (z)+ 1 2 e2 ig (z) 1 3! e3 ig (z)...+ ( 1)p 2 (p 1)! ep 1 i g (p 1) (z)+ ( 1)p 1 e p i p! g(p) (ξ) Como as derivadas deg(x) no ponto z se anulam até à ordem p 1 obtemos e i+1 = ( 1)p 1 e p i p! g(p) (ξ) Assumindo que a sucessão x i+1 = g(x i ) converge para z, então a equação anterior implica que e i+1 lim i e i = 1 p p! ep i g(p) (z) (3.11) ou seja, se a condição (3.10) se verificar, então o método do ponto fixo tem convergência de ordem p. Diz-se que um método numérico tem ordem de convergência p se p é o maior número real tal que o limite e i+1 lim (3.12) i e i p existe e é diferente de zero. Este número p pode não existir e se existir pode não ser inteiro. Seja g : R R uma função tal que o método do ponto fixo (3.2) converge, pelo menos localmente, para o ponto fixo z, com ordem de convergência p. Então: e i K 1/(1 p) p e i K i 1 e 0, se r = 1, ( ) e0 Kp 1/(p 1) p i, se r > 1 com e i = z x i e K p = 1 p! max x I g(p) (x), p 1

96 onde I = [a;b] é um intervalo contendo z onde existe convergência do método. Podemos verificar este resultado da seguinte forma. Para p > 1, por hipótese e i+1 K p e i paraisuficientemente grande. Podemos escrever esta desigualdade do seguinte modo: ou ainda e i+1 K 1/(1 p) p ( ) e i Kp 1/(p 1) p w i+1 pw i onde Por recorrência, obtém-se e finalmente w i = log ( ) e i Kp 1/(p 1). e i+1 K 1/(1 p) p w i w 0 p i ( ) e 0 Kp 1/(p 1) p i. Quandop = 1 temos, por hipótese, e i+1 K 1 e i, donde se obtém, por recorrência, e i K i 1 e 0. Note-se que para p = 1, temos K 1 = L e a desigualdade anterior é, nem mais nem menos, que a desigualdade (3.7) Problemas 1. Quais são os pontos fixos da função g(x) = x 2? Dada uma aproximação suficientemente próxima desses pontos, o método do ponto fixo converge? 2. Aproxime o ponto fixo da funçãog(x) = sin(x)/x. 3. Quais são os pontos fixos de f(x) = 1+1/x? Quais é que são os atractivos? 4. Verifique, através de manipulação algébrica, que as raízes da equação x 4 +2x 2 x 3 = 0 são os pontos fixos das seguintes funções iteradoras:

97 (a) g 1 (x) = (3+x 2x 2 ) 1/4 ; (b) g 2 (x) = [(x+3 x 4 )/2] 1/2 ; (c) g 3 (x) = [(x+3)/(x 2 +2)] 1/2 ; (d) g 4 (x) = (3x 4 +2x 2 +3)/(4x 3 +4x 1). Considere x 0 = 1 e faça 10 iterações para cada uma das funções iteradoras anteriores. Qual das funções iteradoras é a mais eficaz para descobrir o zero def(x). Justifique. 5. Considere uma sucessão de números reais, definida do seguinte modo: x 0 = 1 x k+1 = 1 1 bx k, k = 0,1,2,... onde b é um número real dado. (a) Com base no teorema do ponto fixo, mostre que se b > 4 esta sucessão converge e que todos os seus termos estão compreendidos no intervalo [0.5;1]. (b) Seja b = 25/4. i. Através da definição de ponto fixo, calcule z = lim k x k. ii. Mostre que todos os termos da sucessão pertencem ao intervalo[4/5; 1] e que, para k = 0,1,2,..., se verifica z x k ( ) k Pretende-se determinar uma raiz da equação x = φ(x) pelo método do ponto fixo com um erro absoluto inferior a Suponha que foram obtidas as iteradas x 4 = x 5 = Sabendo que φ (x) 0.4, determine o número de iterações que tem ainda de se efectuar até atingir a precisão pretendida. 3.5 Extremos de funções O problema de encontrar um máximo ou mínimo de uma função num intervalo limitado e fechado ocorre, frequentemente, em aplicações matemáticas. O teorema seguinte garante a existência de extremos absolutos de funções contínuas definidas num intervalo fechado de R.

98 Máximo de f (x) f (x) = 0 Descontinuidade de f (x) f (x) crescente f (x) > 0 f (x) decrescente f (x) < 0 Inflexão Mínimo de f (x) f (x) = 0 Figura 3.8: Representação gráfica dos extremos de funções. Teorema 2 (Teorema do valor extremo) Seja f uma função real de variável real contínua num intervalo fechado [a;b] R. Então f assume os seus valores máximo e mínimo em algum ponto de [a;b]. Isto é, existem números x 1,x 2 R tal que para todo ox [a;b] f(x 1 ) f(x) f(x 2 ) Suponha-se que f é contínua num intervalo fechado [a; b]. A partir do Teorema do valor extremo, sabe-se que f atinge os seus máximo e mínimo em [a;b]. Em que valores é que um extremo da função pode ocorrer? Existem três hipóteses: 1. Nos extremos do intervalo. Um ponto extremo da função pode ocorrer num dos extremos do intervalo. Por exemplo, o máximo da função f(x) = (x 1) 2 no intervalo [1;2] ocorre no ponto x = Em pontos onde a derivada da função se anula Se ocorre um extremo num ponto c pertencente ao intervalo aberto(a;b), e a função é diferenciável emc, então sabemos que a derivada se anula nesse ponto, ou seja, f (c) = 0. Por exemplo, o mínimo da função f(x) = (x 1) 2 no intervalo [0;2] ocorre no ponto x = 1; note-se quef (x) = 2(x 1) e f (x) = 0 x = Em pontos nos quais f não está definida Por exemplo, o mínimo da função f(x) = x 1 em[0;2] ocorre no ponto x = 1. Se f é diferenciável em c e f (c) = 0, então diz-se que c é um ponto crítico ou ponto estacionário de f. Se a derivada da função não estiver definida em c, então diz-se que c é um ponto

99 singular de f. Consequentemente, um extremo de uma função contínua num intervalo fechado ocorre: ou num extremo do intervalo; ou num ponto crítico; ou num ponto singular. Para encontrar os extremos absolutos de uma função contínua num intervalo fechado [a; b], procedemos do seguinte modo: 1. Obtêm-se todos os pontos críticos e singulares c da funçãof no intervalo aberto ]a;b[. 2. Calcula-se o valorf(c) para cada ponto crítico c obtido anteriormente. 3. Calculam-se os valores f(a) e f(b). 4. O maior dos valores obtidos nos passos 2 e 3 é o valor máximo absoluto, e o menor dos valores calculados em 2 e 3 é o valor mínimo absoluto. Funções crescentes e decrescentes A função f diz-se crescente no intervalo [a; b] se e somente se x 1,x 2 [a;b],x 1 < x 2 f(x 1 ) f(x 2 ) A função f diz-se decrescente no intervalo [a;b] se e somente se x 1,x 2 [a;b],x 1 < x 2 f(x 1 ) f(x 2 ) A função f diz-se monótona no intervalo [a;b] se for crescente ou decrescente em [a;b]. Podemos descobrir se uma função é monótona através do sinal da sua primeira derivada. Suponha-se que a função f é contínua em[a,b] e diferenciável em ]a,b[, então: Se f (x) > 0 x ]a,b[, entãof é crescente em[a,b]. Se f (x) < 0 x ]a,b[, entãof é decrescente em [a,b]. Se f (x) = 0 x ]a,b[, entãof é constante em [a,b]. Podemos descobrir se um extremo de uma função é um máximo ou um mínimo através da primeira derivada. Suponha-se que a função f é contínua em [a,b] e diferenciável em ]a,b[\{c}, onde c é um ponto crítico de f então:

100 Se f (x) > 0 x ]a,c[ ef (x) < 0 x ]c,b[, entãocéum máximo em [a,b]. Se f (x) < 0 x ]a,c[ ef (x) > 0 x ]c,b[, entãocéum mínimo em [a,b]. Podemos descobrir se um extremo de uma função é um máximo ou um mínimo através da segunda derivada. Suponha-se que a funçãof é diferenciável em]a,b[ ecéum ponto crítico def em]a,b[, ou seja f (c) = 0. Assuma-se quef admite derivada de segunda ordem em ]a,b[. Então: Se f (c) > 0, então f tem um mínimo local em c. Se f (c) < 0, então f tem um máximo local em c. Podemos averiguar a concavidade de uma função através da segunda derivada. Suponha-se que a função f admite a segunda derivada no intervalo]a,b[. Então: Se f (x) > 0 x ]a,b[, então o gráfico da função f tem a concavidade voltada para cima em]a;b[. Se f (x) < 0 x ]a,b[, então o gráfico da função f tem a concavidade voltada para baixo em]a;b[. Exemplo 20 Considere a função f(x) = 2x 3 + 3x 2 12x 10 no intervalo I [ 3;2]. Para obter os valores extremos def começamos por calcular os zeros da primeira derivadaf (x) = 6x 2 +6x 12: f (x) = 0 6x 2 +6x 12 = 0 x = 2 x = 1 A derivada está definida em todos os pontos do intervalo I, logo os extremos serão, ou onde a derivada se anula, ou nos extremos do intervalo: Consequentemente, A segunda derivada anula-se em x = 0.5: x i f(x i ) maxf(x) = 10 x I minf(x) = 17 x I max f(x) = 17 x I min x I f(x) = 1 f (x) = 0 12x+6 = 0 x = 0.5

101 x i f(x i ) sinal def + + sinal de f sinal def Exemplo 21 Considere a função f(x) = x 3 3x no intervalo I [0.5;1.5]. Os zeros da primeira derivadaf (x) = 3x 2 6x obtêm-se do seguinte modo: f (x) = 0 3x 2 6x = 0 3x(x 2) = 0 x = 0 x = 2 Mas x = 0 / I e x = 2 / I, logo a derivada da função é sempre diferente de zero ao longo de todo o intervaloi e, consequentemente, os valores extremos vão estar nos extremos do intervalo x i f(x i ) maxf(x) = x I minf(x) = x I max f(x) = x I min f(x) = x I Observe-se que se for a função g(x) = f(x) = x 3 +3x 2 5 no mesmo intervalo, os zeros da derivada são os mesmos não pertencentes ao intervaloi, mas x i f(x i ) maxf(x) = x I minf(x) = x I max f(x) = x I min f(x) = x I Existem situações em que a derivada é uma função não linear que não tem solução analítica. Por exemplo, a derivada da função f(x) = exp(x) + x 2 no intervalo [0;2] dá f (x) = exp(x) + 2x e não se consegue resolver analiticamente a equação exp(x) + 2x = 0. Mas podemos verificar analiticamente que

102 f nunca se anula no intervalo [0;2]. Como f (x) = exp(x) + 2 > 0, então f é crescente. Além disso, f (0) = 1 > 0 e f (2) = > 0. Se a função f é crescente e nos extremos toma valores positivos, entãof é sempre positiva no intervalo[0;2] e, consequentemente, f é crescente. Exemplo 22 Considere a função f(x) = x no intervalo [ 1;2]. Não existe f (0), tem um mínimo em x = 0 e um máximo em x = 2. Condições de convergência do método do ponto fixo método do ponto fixo é a seguinte: Uma das condições de convergência do g C[a;b] g([a;b]) [a;b] Para demonstrar esta condição temos de fazer o estudo da função g. Existem dois casos possíveis: 1. g é monótona. Se a função g for crescente no intervalo [a;b], então g(a) g(x) g(b) x [a;b] Se a função g for decrescente no intervalo[a;b], então g(b) g(x) g(a) x [a;b] Consequentemente, para provar que g([a;b]) [a;b], basta provar: g (x) 0 x [a;b] g(a),g(b) [a;b]. 2. g não é monótona. Neste caso, temos de encontrar os pontos críticos de g e garantir que a imagem tanto dos pontos críticos como dos extremos do intervalo pertencem ao intervalo [a;b]. Por exemplo, suponhamos que a função g tem dois pontos críticos c 1 e c 2 com c 1 < c 2. Neste caso, provamos o seguinte: g é monótona nos intervalos [a;c 1 ],[c 1 ;c 2 ], [c 2 ;b]. g(a),g(c 1 ),g(c 2 ),g(b) [a;b]. Só verificando estes dois pontos é que garantimos que a condição de convergência é verificada.

103 3.6 Radianos Os engenheiros tendem a preferir os graus face aos radianos, ainda que mais não seja porque se sentem mais confortáveis com graus; 360 é fácil de lembrar (360 = ) e fácil de dividir. Contudo, devemos utilizar radianos em vez de graus. Existem diversas razões que justificam o facto de ser melhor utilizar radianos em vez de graus. Entre elas temos as seguintes: 1. Facilidade no cálculo de derivadas Se x for medido em radianos, então (sinx) = cosx (cosx) = sinx Sabemos que 180 o = πrad. Por conseguinte, (sinx o ) = (cosx o ) = ( ( πx )) sin 180 rad π = 180 cosxo ( ( πx )) cos 180 rad π = 180 sinxo 2. Facilidade nas aproximações Se x for medido em radianos podemos fazer as seguintes aproximações: sinx x cosx x2 Se x for medido em graus, estas fórmulas precisam de constantes multiplicativas: sinx πx 180 π 2 cosx x2 3. Função exponencial complexa A função exponencial no plano complexo é uma função periódica com o período imaginário2π que pode ser escrita como e a+bj = e a (cosb+jsinb) onde a e b são valores medidos em radianos e j representa a unidade imaginária. Esta fórmula faz a ligação entre a função exponencial e as funções trigonométricas e é muito utilizada no estudo de circuitos eléctricos.

104 4. Altura de estruturas Os militares usam radianos para determinar alturas de estruturas ou árvores. Uma milha define-se tal que existem 6400 milhas num círculo, isto é, 1 círculo = 6400 milhas. Por conseguinte, 1 milha = círculo radianos radianos = 1 miliradiano, ou seja, uma milha é uma boa aproximação do miliradiano. Se calcularmos o erro relativo de aproximação (2π)/ (2π)/6400 = observamos que é menor que 2%. Para medir a altura de uma estrutura, frequentemente, procede-se do seguinte modo: mede-se o ângulo vertical total a partir da base da estrutura até ao topo, α; mede-se a distância deste o local onde a pessoa se encontra até à base da estrutura, d; calcula-se altura = d α. Isto só é válido quandoαestá em radianos. Na realidade utilizou-se a aproximaçãotanα α na fórmula altura =d tan(α) válida apenas quandoαémedido em radianos. Os soldados sabem que, por exemplo se d = 1000 metros, um erro de 2 milhas na obtenção do ângulo α dá origem a um erro de 2 metros na altura da estrutura; se o valor real do ângulo for x milhas e a leitura for(x + 2) milhas, então os valores da altura correspondentes são x metros e (x+2) metros e, por conseguinte, o erro absoluto será (x + 2) x = 2 metros. Na realidade estes soldados, embora não tenham consciência disso, estão a usar radianos em vez de graus.

105 Capítulo 4 Equações não lineares Um número real x diz-se ser uma raiz da equação f(x) = 0 (f : R R) se e só se x é um valor para o qual a função se anula (é um zero da funçãof). Neste enquadramento surgem dois problemas distintos: 1. Encontrar um zero de uma função com valores reais de uma única variável. 2. Encontrar um zero de uma função com valores reais de duas ou mais variáveis. No contexto do primeiro problema, se f(x) for um polinómio de grau menor ou igual a quatro existem fórmulas analíticas explícitas para os zeros; em 628 DC Brahmagupta descobriu a primeira solução explícita, dada por x = ( b + b 2 +4ac)/(2a), para o zero de uma equação do segundo grau da formaax 2 +bx = c ondea,becsão números reais. Sef for um polinómio de grau maior ou igual a cinco, não existem fórmulas analíticas explícitas para os zeros (resultado provado por Abel em 1924). Se f for uma função não linear geral, não existe fórmula explícita dos seus zeros e temos de nos contentar com um método computacional que calcule raízes aproximadas. Existem muitos métodos numéricos para resolver equações não lineares porque a determinação dos zeros de funções tem sido uma área de grande interesse ao longo de centenas de anos. O primeiro método para determinar raízes de equações talvez seja o método Babilónio. Este método foi construído para determinar a raiz quadrada de um número c, ou seja, x = c. Consequentemente, podemos escrever a equação x 2 c = 0. Por exemplo, para determinar x = 2 podemos começar com x 0 = 3/2. Observamos que x 0 = 3/2 > 2 e que 2/x 0 = 4/3 < 2 ((3/2) 2 > 2 e 105

106 (4/3) 2 < 2). Conseguimos uma melhor aproximação se fizermos a média das duas aproximações, ou seja, x 1 = 1 2 (x 0 + 2x0 ) = Baseado neste princípio, o método iterativo para determinar a raiz da equaçãox 2 c = 0, é dado por: x i+1 = 1 2 (x i + cxi ), i = 0,1,2,... (4.1) onde o valor inicial é dadox 0, de preferência próximo de c. Pode demonstrar-se que lim x i = c. i Este algoritmo tem convergência quadrática, o que significa que, aproximadamente, o número de algarismos significativos da aproximação duplica em cada iteração. Entre os métodos existentes, seis técnicas podem ser utilizadas para encontrar raizes de equações não lineares em que a funçãof é uma função com valores reais de uma única variável: 1. Método da bissecção 2. Método de Newton 3. Método da secante 4. Interpolação quadrática inversa 5. Método do ponto fixo 6. Método de Brent No caso de uma função com valores reais de duas ou mais variáveis (f: R n R n ) será tratado o caso da generalização do método de Newton para encontrar o vector x tal que f(x) = Método da bissecção O método da bissecção é simples, robusto e directo. Considera-se um intervalo[a;b] tal quef seja contínua nesse intervalo e tal que f(a) e f(b) tenha sinais opostos (f(a)f(b) < 0). Determinase o ponto médio de[a;b] e depois decide-se onde é que a raiz se encontra, em[a;(a+b)/2] ou em [(a+b)/2;b]. Repete-se o procedimento até que o intervalo seja suficientemente pequeno. Bases Secções 3.2 e 3.3.

107 4.1.1 Teoria Teorema do valor intermédio Dada uma função f(x) contínua, com valores reais, definida no intervalo [a;b], então se w é um ponto entre os valores def(a) ef(b), então existe um ponto z tal quew = f(z). Como exemplo, seja f(x) = xcos(x) x definida no intervalo [1;7]. A função é contínua neste intervalo e o ponto 1.0 encontra-se situado entre os valores f(1) e f(7) Por conseguinte, existe pelo menos um ponto z (podem existir mais) no intervalo [1;7] tal que f(x) = 1. Neste exemplo tem-se z ; ver a Figura f(7) 3 2 w 1 f(1) 0 f(x) 1 z x Figura 4.1: O teorema do valor intermédio aplicado à função f(x) = xcos(x) x com z = 1.0. Utilização do teorema do valor intermédio para limitar uma raiz Suponha-se que temos uma função contínua num intervalo[a;b] tal quef(a) ef(b) têm sinais contrários (ou seja, ou f(a) < 0 e f(b) > 0, ou f(a) > 0 e f(b) < 0). Então o valor 0 situa-se entre f(a) e f(b) e, por conseguinte, tem de existir um ponto z em [a;b] tal quef(z) = 0. Podemos melhorar a nossa aproximação da raiz dividindo o intervalo em dois, ou seja, encontrando o ponto médio c = (a + b)/2. Numa aplicação prática é muito pouco provável que f(c) = 0. Contudo se tivermos essa sorte encontrámos a raiz. Mais provável é, ouf(a) ef(c) terem sinais opostos e nesse caso a raiz tem de pertencer ao intervalo [a;c], ou f(c) e f(b) terem sinais opostos e nesse caso a raiz tem de pertencer ao intervalo [c;b]. Este processo pode ser repetido muitas vezes, onde em cada vez passamos a metade o comprimento do intervalo.

108 4.1.2 Procedimento Problema Dada uma função de uma variável, f(x), encontrar um valor z (denominada raiz) tal quef(z) = 0. Hipóteses Iremos assumir que a função f(x) é contínua. Ferramentas Iremos utilizar amostragem, pesquisa binária e iteração. Requisitos iniciais Os valores def(a) ef(b) têm sinais opostos, ou seja, a raiz situa-se em [a;b]. Processo iterativo Dado o intervalo [a; b], defina-se c = (a + b)/2. Então se f(c) = 0 (improvável na prática), então parar porque encontrámos a raiz; se f(c) e f(a) têm sinais opostos, então a raiz está situada em [a;c] e fazer a atribuição b = c; caso contrário, f(c) e f(b) têm de ter sinais opostos, ou seja a raiz situa-se em [c;b], e fazer a atribuição a = c. Condições de paragem Existem três condições que podem originar a paragem do processo iterativo que passo a descrever. 1. Metade do comprimento do intervalo é suficientemente pequeno, isto é b a /2 < ǫ passo. 2. O valor da função calculado no ponto médioc = (a+b)/2 do intervalo é suficientemente pequeno, ou seja, f(c) < ǫ abs. 3. O número máximo de iterações foi atingido e nenhuma das condições anteriores se verifica. Neste caso, o processo pára e indicamos que a raiz não foi encontrada. Análise do erro Dado que inicialmente a raiz pertence ao intervalo [a; b], então o erro máximo de usar a ou b para aproximar a raiz é b a. Uma vez que, em cada iteração, dividimos o intervalo ao meio, o erro é reduzido por um factor de 2 e, por conseguinte, o erro após n iterações será maximizado por (b a)/2 n. uma demonstração mais detalhada. Por conseguinte, se ǫ passo é fixo, então podemos saber à partida qual é o número mínimo de passos para assegurar um erro absoluto inferior aǫ passo. Para isso resolvemos a desigualdade b a 2 n < ǫ passo

109 em ordem aneobtemos n = ( ) b a log 2 ǫ passo onde w representa o inteiro mais próximo superior a w. Por exemplo, se o intervalo inicial for[0.3;1.3] e considerarmos ǫ passo = 10 6, então o número mínimo de passos será n = log 2 ((b a)/ǫ passo ) = 20 A instrução Matlab correspondente é ceil(log2((1.3-.3)/1e-6)). Para fazer a conta com a calculadora é útil utilizar a mudança de base nos logaritmos: log 2 (x) = log d (x)/log d (2) Exemplos Exemplo 23 Considere a equação não linear xcos(x) x = 0 no intervalo [5;6] com ǫ abs = ǫ passo = Os resultados obtidos por aplicação do método da bissecção para encontrar a raiz desta equação encontram-se na Tabela 4.1. Tabela 4.1: Método da bissecção aplicado à equaçãoxcos(x) x = 0. k a b b a c f(c) x k sinal de f ponto a x 3 x 5 x 7 x 6 x 4 x 2 x 1 b

110 4.1.4 Problemas 1. Aproximar a raiz da equaçãox 3 3 = 0 com o método da bissecção começando no intervalo [1;2] e utilizandoǫ passo = 0.1 eǫ abs = Aproximar a raiz da equaçãox 2 10 = 0 com o método da bissecção começando no intervalo [3;4] e utilizandoǫ passo = 0.1 eǫ abs = Considere a equaçãosinx e x = 0. (a) Prove que esta equação tem uma raizz [0.5,0.7]. (b) Efectue uma iteração pelo método da bissecção e indique um novo intervalo que contenha z. (c) Determine o númeromde iterações necessárias para garantir z x m < Considere a seguinte função definida no intervalo I = [1.2,3]. f(x) = 3x 2 x 3 2 (a) Mostre que existe uma única raiz de f no intervalo considerado. (b) Obtenha um valor aproximado dessa raiz com erro inferior a 1 16 bissecção. 5. Considere a equação4x 2 e x2 = 0. (a) Mostre que esta equação tem duas raízesz 1 [ 0.5; 0.3] e z 2 [0.3;0.5]. (b) Calcule z 1 pelo método da bissecção. Faça iteradas até que f(x i ) < usando o método da 4.2 Método de Newton O método de Newton é um procedimento que pode aplicar-se em diversas situações. Quando este procedimento é aplicado para encontrar raízes de equações não lineares com uma única variável é denominado método de Newton-Raphson. A ideia do método é começar com uma aproximação inicial da raizx 0. Em seguida, aproxima-se a função no pontox 0 pela tangente neste ponto. O zero da tangente x 1 (ou seja, o ponto onde a tangente intercepta o eixo dos xx), em

111 geral, é uma melhor aproximação da raiz comparada com x 0. Este processo pode ser iterado. Geralmente, tem uma convergência rápida, especialmente se a aproximação inicial está suficientemente próxima da raiz, mas é preciso que exista fórmula explícita para a primeira derivada da função; frequentemente, o método de Newton tem convergência quadrática e, portanto é melhor que o método da bissecção (convergência linear), secante (convergência (1 + 5)/ ) ou interpolação quadrática inversa (convergência aproximadamente de1.8). Bases Secções 3.1, 3.2 e Teoria O método de Newton baseia-se na hipótese de considerar que as funções com derivadas contínuas assemelham-se a rectas quando nos aproximamos suficientemente das funções (fazemos um zoom suficientemente próximo). Iremos assumir que a função e a sua primeira derivada são contínuas em torno da raiz. Suponha-se que temos uma aproximação x 0 da raiz z da equação f(x) = 0. Uma vez que a funçãof(x) tem a primeira derivada contínua, se ampliarmos a função em qualquer ponto ela vai parecer-se com uma recta. Sendo assim, podemos aproximar a função em (x 0,f(x 0 )) pela recta que é tangente neste ponto; ver a Figura f(x) (x 0,f(x 0 )) 10 0 z x x x Figura 4.2: Obtenção da aproximação da raiz a partir da recta tangente.

112 Para obter a recta tangente, consideramos o polinómio linear que toma o valor zero em x 0 e tem a inclinação f (x 0 ), ou seja f (x 0 )(x x 0 ), e depois somamos f(x 0 ). A recta tangente é dada por T x0 = f(x 0 )+f (x 0 )(x x 0 ) (4.2) Uma vez que a recta tangente é uma boa aproximação da função, podemos concluir que o zero da recta tangente é uma boa aproximação do zero da função. Resolvendo a equação obtemos a seguinte aproximação da raiz: T x0 = 0 x = x 0 f(x 0) f (x 0 ) Resumindo, linearizou-se a equação não linear em torno de x 0 e resolveu-se a equação linear resultante para obter a aproximação seguinte x Procedimento Problema Dada uma função de uma variável, f(x), encontrar um valor z (denominada raiz) tal quef(z) = 0. Hipóteses Iremos assumir que a função f(x) é contínua e tem a sua primeira derivada contínua. Ferramentas Iremos utilizar amostragem, derivação e iteração. O modelo é que dá informação sobre a derivada da função. O erro obtém-se utilizando o desenvolvimento em série de Taylor. Requisitos iniciais Temos de ter uma aproximação inicial da raiz,x 0. Processo iterativo Dada uma aproximação x i da raiz, a aproximação seguinte obtém-se através de x i+1 = x i f(x i) f (x i ) Condições de paragem Existem três condições que podem originar a paragem do processo iterativo que passo a descrever. 1. Se ambas as condições seguintes de verificarem: A distância entre iteradas sucessivas é suficientemente pequena, isto é, x i+1 x i < ǫ passo.

113 O valor da função calculado no ponto x i+1 é suficientemente pequeno, ou seja, f(c) < ǫ abs. 2. Se o valor da derivada da função se anula no ponto x i, isto é, f (x i ) = 0; neste caso o processo iterativo falha (divisão por zero) e temos de parar. 3. Se o número máximo de iterações foi atingido e a condição 1 não se verificou; neste caso, o processo pára e indicamos que a raiz não foi encontrada. Se o processo termina devido à verificação da condição 1, então considera-se que x i+1 é a nossa aproximação da raiz. Se, por outro lado, o processo pára porque se verificou, ou a condição 2, ou a condição 3, então devemos escolher uma nova aproximação inicial x 0 ou considerar a possibilidade de a solução não existir. Análise do erro Agora iremos analisar o erro no método de Newton. Suponhamos que temos uma aproximação x i com um erro e i = z x i. Após mais uma iteração pelo método de Newton qual será o erro da aproximação x i+1? Assuma-se que f é contínua e z é um zero simples def, logo f(z) = 0 f (z). Então pela série de Taylor tem-se f(z) = f(x i )+f (x i )(z x i )+ 1 2 f (ξ)(z x i ) 2 onde ξ [z;x i ]. Uma vez que f(z) = 0 e dividindo ambos os lados da equação anterior por f (x i ), obtém-se Por conseguinte, 0 = f(x i) f (x i ) +(z x i)+ 1 f (ξ) 2f (x i ) (z x i) 2 z ( x i f(x ) i) f (x i ) = 1 f (ξ) 2f (x i ) (z x i) 2 Observa-se que o que está dentro dos parêntesis é por definiçãox i+1. Logo, podemos escrever: z x i+1 = 1 f (ξ) 2f (x i ) (z x i) 2 e concluímos que, quando fazemos mais uma iteração, o erro é reduzido por um escalar multiplicado pelo erro anterior ao quadrado; ou seja, tem convergência quadrática (ver (3.12)). Mais concretamente, e i+1 = 1 f (ξ) 2f (x i ) e2 i (4.3) onde ξ int(z;x i ) (int(z;x i ) representa o menor intervalo que contém z e x i ). Para ilustrar este resultado, considere o problema de encontrar a raiz da equação e x 2 = 0 começando com x 0 = 4. Neste caso, f(x) = e x 2 e f (x) = f (x) = e x. Assumindo que o intervalo

114 ao qual pertence ξ, int(z;x i ) é suficientemente pequeno, podemos fazer a seguinte aproximação: f (ξ)/f (x i ) 1. Por conseguinte, temos a relação aproximada e i e2 i ou seja, e i+1 e 2 i 1 2 = 0.5 Na Tabela 4.2 encontram-se os resultados que consistem nas iteradas, erros absolutos (efectivamente cometidos, ou seja, e i = log(2) x i ), quadrados dos erros e o quociente e i+1 /e 2 i. Tabela 4.2: Método de Newton aplicado à equaçãoe x 2 = 0. i x i e i e 2 i e i+1 /e 2 i Observamos que de facto o quociente e i+1 /e 2 i está a aproximar-se de 0.5, ou seja o método está a convergir quadraticamente. Na resolução de problemas práticos não temos conhecimento do erro, pois caso contrário não haveria necessidade de utilizar um método de aproximação, pois não? Contudo, isto leva-nos a acreditar que, sob condições razoáveis, o método de Newton irá convergir bastante rápido. É de salientar que quando a raiz é múltipla como, por exemplo, quando f(z) = f (z) = 0 (raiz dupla), então a convergência do método de Newton é apenas linear; ver Observação 2 da página 115. A partir da equação (4.3) podemos suspeitar que existem três situações onde o método de Newton pode não convergir rapidamente: 1. A aproximação inicial situa-se longe da raiz. 2. A segunda derivada tem um valor muito elevado no ponto ξ. 3. O valor da derivada no ponto x i é próximo de zero.

115 Do ponto de vista teórico, para funções duas vezes continuamente diferenciáveis num intervalo[a;b],f C 2 [a;b], existem quatro condições que garantem a convergência quadrática do método de Newton: 1. f(a)f(b) < 0; existência da raiz em[a; b]. 2. f (x) 0 para qualquerx [a;b]; unicidade da raiz em [a;b]. 3. f (x) 0 ou f (x) 0 para qualquerx [a;b]; não muda de concavidade. 4. f(x 0 )f (x) 0 para qualquerx [a;b]; convergência monótona. Se f(a) / f (a) < b a e f(b) / f (b) < b a se verificar, então x 1 verifica a quarta condição e o método de Newton converge para qualquerx [a;b]. Observação 1 Se f for continuamente diferenciável no intervalo [a;b], f C 2 [a;b], então podemos concluir a partir da equação (4.3) que e i+1 C e i 2 onde C = max x [a;b] f (x) 2min x [a;b] f (x i ) Observação 2 Se f for p vezes continuamente diferenciável num intervalo [a;b], f C p [a;b], então existem duas situações distintas de convergência 1. Se f (z) = 0 então a convergência é linear. 2. Se f (z) 0 f (z) = f (z) =... = f (p 1) (z) = 0 f (p) (z) 0 então a convergência é de ordemp. Este resultado pode ser demonstrado considerando que o método de Newton é um caso particular do método do ponto fixo. Na realidade, o método de Newton é um caso particular do método do ponto fixo em que g(x) = x f(x)/f (x). Sendo assim, podemos aplicar (3.10) e (3.11) para demonstrar a ordem de convergência do método de Newton quando p 2.

116 Observação 3 Se aplicarmos o método de Newton à equaçãox 2 c = 0, ondecéum número real, obtemos f(x) = x 2 c ef (x) = 2x. Por conseguinte, o processo iterativo vem dado por x i+1 = x i x2 i c 2x i Este processo iterativo coincide com o método Babilónio (4.1). = x i x i 2 + c = 1 ) (x i + cxi, i = 0,1,2,... 2x i Exemplos Exemplo 24 Considere a equação não linear x 2 4sin(x) = 0 no intervalo [1;3] com x 0 = 3 e ǫ abs = ǫ passo = Atendendo a que f(x) = x 2 4sin(x) e f (x) = 2x 4cos(x), o processo iterativo é: ou seja, partindo dex 0 = 3, x i+1 = x i x2 i 4sin(x i ) 2x i 4cos(x i ), i = 0,1,2,... x 1 = x 0 x2 0 4sin(x 0 ) 2x 0 4cos(x 0 ) = sin(3) (2)(3) 4cos(3) = x 2 = x 1 x2 1 4sin(x 1) 2x 1 4cos(x 1 ) = sin( ) (2)( ) 4cos( ) = Os resultados obtidos por aplicação do método de Newton para encontrar a raiz desta equação encontram-se na Tabela 4.3 e mostram uma convergência rápida para o zero de uma função que é a soma de um polinómio de segundo grau e uma função trigonométrica. Tabela 4.3: Método de Newton aplicado à equaçãoxcos(x) x = 0. i x i f(x i ) f (x i )

117 Exemplo 25 Considere a equação não linear x 3 + 5x = 0 no intervalo [ 1;1] com x 0 = 1 e ǫ abs = ǫ passo = Neste caso,f(x) = x 3 +5x, ou seja,f (x) = 3x Consequentemente, o método tem a forma Partindo dex 0 = 1, obtém-se x i+1 = x i x3 i +5x i, i = 0,1,2, x 2 i x 1 = x 0 x3 0 +5x 0 5 3x 2 0 x 2 = x 1 x3 1 +5x 1 5 3x 2 1. = (5)(1) 5 (3)(1) 2 = 1 = 1 ( 1)3 +5( 1) 5 3( 1) 2 = 1 Os resultados obtidos por aplicação do método de Newton para encontrar a raiz desta equação encontram-se na Tabela 4.4. Tabela 4.4: Método de Newton aplicado à equação5x x 3. i x i f(x i ) f (x i ) Como se pode observar, o método de Newton não converge nesta situação. O valor da aproximação inicial está muito longe da raiz e o método entra em ciclo infinito alternando entre x = 1 e x = 1. Na Figura 4.3 pode observar-se melhor o que está a acontecer. Nela estão representados os pontos x 0 e x 1, a funçãof(x) e as tangentes nos pontos x 0 e x 1. A aproximação de f(x) utilizando a fórmula de Taylor até à primeira ordem, em torno do pontox 0 = 1 é f(x) f(x 0 )+f (x 0 )(x x 0 ) = f(1)+f (1)(x 1) = 4+2(x 1) se a função tangente 4+2(x 1) aproxima a funçãof então o zero da função tangente é uma aproximação do zero da funçãof. A aproximação def(x) utilizando a fórmula de Taylor até à primeira ordem, em torno do pontox 1 = 1 é f(x) f(x 1 )+f (x 1 )(x x 1 ) = f( 1)+f (1)(x+1) = 4+2(x+1)

118 6 4 2 f(x) x 0 = 1 f(x 0 ) + f (x 0 ) (x x 0 ) x 1 = 1 f(x 1 ) + f (x 1 ) (x x 1 ) f(x) x Problemas Figura 4.3: Método de Newton aplicado à equação x 3 +5x = Aproximar a raiz da equação x 2 = 0 com o método de Newton começando no ponto x 0 = 3 e utilizando ǫ passo = 10 6 eǫ abs = A convergência é lenta ou rápida? Porquê? 2. Considere a função f : R R definida por f(x) = x cosx 1 3 sinx, a qual tem um único zero real z [2.6,2.8] =: I. (a) Mostre que o método de Newton converge para o zero z para qualquer iterada inicial x 0 no intervalo I. (b) Utilize o método da Newton com iterada inicial x 0 = 2.6 para obter um valor aproximado da raiz z com um erro absoluto inferior a Considere a equação4x 2 e x2 = 0. (a) Mostre que esta equação tem uma raiz z [0.3;0.5]. (b) Calcule z pelo método de Newton com x 0 = 0.3. Faça iteradas até que f(x i ) < Considere a equação x+2log e (x) = 0, x [0.5;0.9] (4.4)

119 (a) Prove que o método de Newton aplicado à equação (4.4) converge. (b) Mostre que o método de Newton aplicado à equação (4.4) se pode escrever na forma: x n+1 = 2x n(1 log e (x n )) x n +2 (4.5) (c) Sabendo que neste caso e n K 1/(1 p) p ( ) e0 Kp 1/(p 1) p n, onde p é a ordem de convergência do método, obtenha K p e faça o menor número de iteradas até que o método de Newton forneça uma aproximação x n tal que e n < (d) Relativamente ao método (4.5) diga, justificando, qual o valor do limite z x n+1 lim n z x n 2 Simplifique a expressão desse limite o mais possível e dê uma estimativa para esse limite. 5. Mostre que o método de Newton diverge para a função f(x) = 7x 4 +3x 2 +π, qualquer que seja a aproximação inicial escolhida. 6. Mostre que o método de Newton diverge para a função f(x) = x 2 +1, qualquer que seja a aproximação inicial escolhida. 7. Considere a função iteradora g(x) = xcos(x) sin(x)+0.5, cos(x) ou seja, o método de Newton aplicado à equação sin(x) 0.5 = 0. Obtenha seis iteradas utilizando as seguintes aproximações iniciais relativamente próximas: x 0 = 0.5 e x 0 = 1.5. Compare a alteração de resultados quando muda de um valor inicial para outro. 4.3 Método da secante Dada uma curva, a secante é a linha que passa por dois pontos dessa curva. O método da secante é uma das técnicas para encontrar o zero de uma função real de variável real quando não existe informação alguma sobre as derivadas da função. Bases Secção 3.3 e Capítulo 8.

120 4.3.1 Teoria Suponha-se que temos duas aproximações x a e x b do zero de f(x). Assumindo que f(x) é contínua e diferenciável, podemos aproximar a função com o polinómio interpolador de grau menor ou igual a 1 que passa nos pontos (x a,f(x a )) e (x b,f(x b )); ver a Figura A expressão 10 f(x) secante 5 0 x a z * z x b Figura 4.4: Secante que passa nos pontos (x a,f(x a )) e (x b,f(x b )). para a linha secante obtém-se utilizando um método para construir polinómios interpoladores. Se usarmos o método de Lagrange vem f(x a ) x x b x a x b +f(x b ) x x a x b x a O zero deste polinómio interpolador é uma aproximação do zero da função uma vez que o polinómio interpolador aproxima a função. Para calcular o zero do polinómio interpolador basta resolver f(x a ) z x b x a x b +f(x b ) z x a x b x a = 0 ou seja, z = x bf(x a ) x a f(x b ) f(x a ) f(x b ) Este zero será uma melhor aproximação do zero da função do quex a e x b.

121 4.3.2 Procedimento Problema Dada uma função de uma variável, f(x), encontrar um valor z (denominada raiz) tal quef(z) = 0. Hipóteses Iremos assumir que a função f(x) é contínua e tem a sua primeira derivada contínua. Ferramentas Iremos utilizar amostragem, interpolação e iteração. Requisitos iniciais Temos de ter duas aproximações iniciais da raiz, x 1 ex 0. Processo iterativo Dadas duas aproximações x i 1 e x i da raiz, a aproximação seguinte obtém-se através de x i x i 1 x i+1 = x i f(x i ) f(x i ) f(x i 1 ) Condições de paragem Existem três condições que podem originar a paragem do processo iterativo que passo a descrever. 1. Se ambas as condições seguintes de verificarem: (4.6) A distância entre iteradas sucessivas é suficientemente pequena, isto é, x i+1 x i < ǫ passo. O valor da função calculado no ponto x i+1 é suficientemente pequeno, ou seja, f(c) < ǫ abs. 2. Se o denominador é zero, o processo iterativo pára devido à divisão por zero. 3. Se o número máximo de iterações foi atingido e a condição 1 não se verificou; neste caso, o processo pára e indicamos que a raiz não foi encontrada. Se o processo termina devido à verificação da condição 1, então considera-se que x i+1 é a nossa aproximação da raiz. Se, por outro lado, o processo pára porque se verificou, ou a condição 2, ou a condição 3, então devemos escolher aproximações iniciais novas x 1 e x 0, ou considerar a possibilidade de a solução não existir. Análise do erro Pode demonstrar-se que a ordem de convergência, do método da secante, para aproximar um zero simples é melhor que linear e pior que quadrática (Pizer,1975), mais precisamente, Também se demonstra que p = e i+1 = f (ξ i ) 2f (η i ) e i 1e i, η i int(x i 1,x i ), ξ i int(x i 1,x i,z)

122 4.3.3 Exemplos Exemplo 26 Considere a equação não linear x 2 4sin(x) = 0 no intervalo [1;3] com x 1 = 1, x 0 = 3 e ǫ abs = ǫ passo = Aplicando a equação (4.6) obtém-se x 0 x 1 x 1 = x 0 f(x 0 ) f(x 0 ) f(x 1 ) 3 1 = 3 f(3) f(3) f(1) = x 1 x 0 x 2 = x 1 f(x 1 ) f(x 1 ) f(x 0 ) = f( ) f( ) f(3) = Os resultados obtidos por aplicação do método da secante para encontrar a raiz desta equação encontram-se na Tabela 4.5 e mostram uma convergência rápida para o zero de uma função que é a soma de um polinómio de segundo grau e uma função trigonométrica. A raiz da equação é aproximadamente z = Tabela 4.5: Método da secante aplicado à equaçãox 2 4sin(x) = 0. i x i f(x i )

123 4.3.4 Problemas 1. Considere a equação f(x) = xtan(x) 1 = 0, Aplicando o método da secante, obtenha as três primeiras iteradas para o cálculo da raiz situada no intervalo [0.8,0.9]. Determine um majorante do erro do resultado obtido. 2. Considere a equação não linear x 2 log e (x) 2 = 0 a qual tem uma e uma só raiz no intervalo [1;2]. (a) Mostre que o método da secante, com iteradas iniciais x 1 = 1.8 e x 0 = 2.0, converge para z. (b) Calcule um valor aproximado de z efectuando duas iterações do método da secante, tomando para iteradas iniciaisx 1 = 1.8 ex 0 = 2.0. (c) Considere a sucessão definida por cujos primeiros termos são x n+1 = 2+log e(x n ) x n, n = 0,1,2, , , , , , , , ,... Com base nestes resultados obtenha um majorante de z Método do ponto fixo O método do ponto fixo geral foi apresentado na Secção 3.3. Ele pode ser aplicado à resolução de equações não lineares desde que se encontre uma função iteradora g(x) tal que os zeros da função f(x) coincidam com os pontos fixos da função g(x), ou seja, desde que se verifique a equivalência f(x) = 0 x = g(x) Neste contexto, dada uma função f(x) existem funções iteradoras que dão origem a métodos convergentes e outras a divergentes. Também a mesma função iteradora pode funcionar bem para aproximar uma raiz e funcionar mal quando se tenta aproximar outra. Mesmo quando se observa convergência em duas situações com a mesma função iteradora g(x), a velocidade de convergência pode não ser a mesma.

124 4.4.1 Problemas 1. Considere a equação4x 2 e x2 = 0. (a) Mostre que esta equação tem duas raízesz 1 [ 0.5; 0.3] e z 2 [0.3;0.5]. (b) Mostre que o método iterativo x i+1 = 1 2 e x2 i /2 (4.7) converge para z 2 para qualquerx 0 [0;0.5]. Calcule duas iteradas por este método. (c) Mostre que g (z 2 ) = z2. 2 Qual é a ordem de convergência do método (4.7)? Sem calcular iteradas, dê uma estimativa para o erro associado à iterada x 5, qualquer que seja x 0 [0;0.5] 2. Considere o conjunto de sucessões x n+1 = 1+αx n sin(x n ) 1+α (4.8) com n = 0, 1,... e onde α pertence ao conjunto dos números reais, α 1. (a) Seja α = 2. Com base no teorema do ponto fixo, mostre que a sucessão (4.8) converge para z (número real), qualquer que seja a aproximação inicial x 0 pertencente ao intervalo [0;1]. Diga qual é a ordem de convergência deste método. (b) Escolha α de modo que o método tenha a maior ordem possível. Qual é a ordem neste caso? (c) Considere α = 2 e x 0 = 0. Sem calcular iterações, determine o valor de k tal que z x k < (d) Com base da alínea (a) justifique que a sucessão converge para a única raiz da equação f(x) = 0 em [0;1], onde f(x) = sin(x) + x 1, para qualquer aproximação x 0 naquele intervalo. 3. Deseja-se efectuar o cálculo de 1, ou seja, encontrar x tal que e 1 x = e (a) Justifique que esse cálculo pode ser aproximado através da sucessão x n+1 = x n (2 ex n ) e indique que valores dex 0 pode usar.

125 (b) Classifique a sucessão x n quanto à monotonia e indique a ordem da sua convergência. (c) Obtenha uma estimativa do erro absoluto da quarta iterada x 4 assumindo que o erro absoluto dez x 0 é inferior a Para determinar a raiz z [4;5] da equação x 3 6x 2 + 9x 5 = 0 considerou-se o método iterativo x n+1 = g(x n ) com função iteradora: g(x) = x 3 +6x 2 8x+5 Na tabela seguinte encontram-se alguns dos resultados obtidos para o método iterativo. Com base nestes resultados, o que pode concluir em relação à convergência do método? Justifique teoricamente. n x n (a) Mostre que o método do ponto fixo definido por x 0 = 1, x i+1 = e x i/4 0.2 (4.9) converge para z [1;2]. (b) Mostre que as raízes da equação e x/2 (x+0.2) 2 = 0 (4.10) coincidem com os pontos fixos da função iteradora associada ao método do ponto fixo (4.9). (c) Justifique que o método (4.9) converge para a raiz da equação (4.10). (d) Obtenha uma iterada pelo método (4.9). (e) Qual o número mínimo de iterações para garantir que z x i < ǫ, comǫ > 0? Justifique. (f) Será que se, em vez de x 0 = 1, considerarmos x 0 = 8 o método converge para a raiz z [8;9]. Justifique. 6. Considere a equaçãox = 2log e (x), x > 0. (a) Mostre que existe uma solução, z única da equação no intervalo [0.6;0.9]. (b) Justificando a convergência, aplique o método do ponto fixo para obter um valor aproximado de z com duas iteradas partindo de0.6.

126 (c) Quantas iteradas são necessárias para obter um erro inferior a10 4? (utilize um sistema VF(3, 3,t 1,t 2 )). 7. Prove que a sucessão, definida por recorrência, 0.5x 2 x n+1 = x n exn n x n 1, x 0 = 0.1 e xn x n 1 converge para zero. Classifique a sucessão quanto à monotonia Aceleração do método de Newton para zeros múltiplos O método de Newton é um caso particular do método do ponto fixo em que g(x) = x f(x) f (x) (4.11) Calculando a primeira derivada deg na raiz vem g (z) = f(z)f (z) (f (z)) 2 Uma vez quef(z) = 0 temos de pensar em duas situações: f (z) = 0 ef (z) 0. Se f (z) 0, então g (z) = 0 e o método tem pelo menos convergência quadrática. Neste caso, ao calcular a segunda derivada da funçãog na raiz obtemos g (z) = f (z) f (z) Ou seja, o caso mais comum em que a função tem um zero simples f (z) = 0 e não muda de concavidade na raizf (z) 0, o método de Newton converge com convergência quadrática. Sef (z) = 0, então suponhamos que a função tem um zero de multiplicidadem. Neste caso f(z) = f (z) =... = f(z) (M 1) = 0 e f(z) (M) 0, ou seja, f(x) = (x z) M h(x) com h(z) 0 e h contínua em z. Consequentemente, substituindo f (x) = (x z) M h (x)+m(x z) M 1 h(x) em (4.11) obtemos e a derivada deg é dada por g (x) = 1 g(x) = x (x z)h(x) (x z)h (x)+mh(x) h(x) (x z)h (x)+mh(x) (x z) d dx [ ] h(x) (x z)h (x)+mh(x) Por conseguinte, g (z) = 1 1 M (4.12)

127 Concluímos que no caso em que o zero da função é múltiplo, o método de Newton converge com convergência linear; o coeficiente assimptótico de convergência é (M 1)/M, ou seja, e i+1 M 1 M e i Para acelerar a convergência do método de Newton, a ideia é considerar uma função g(x) = x Mf(x) f (x) porque, neste caso, a primeira derivada de g não se anula na raiz; para verificar que g (z) 0 basta repetir o procedimento que nos levou a (4.12). Partindo da aproximação inicialx 0, o método correspondente será Este método tem convergência quadrática. x i+1 = x i Mf(x i) f (x i ), i = 0,1,...

128

129 Capítulo 5 Sistemas lineares Existem dois tipos de métodos para resolver sistemas lineares que passo a descrever. 1. Métodos directos. Estes métodos conduzem directamente a uma solução do problema (se ela existir) num número finito de operações. Na ausência de erros de arredondamento, eles conduzem à solução exacta. Exemplos destes métodos são: método de eliminação de Gauss; método de Cholesky. 2. Métodos iterativos. Estes métodos tentam resolver um problema através da descoberta de aproximações sucessivas da solução, começando com uma aproximação inicial da solução. Exemplos destes métodos são: método de Jacobi; método de Gauss-Seidel. Os métodos iterativos têm a grande vantagem de geralmente serem estáveis e, à medida que o processo continua, alguns erros (devido aos arredondamentos) vão perdendo o seu peso. Neste capítulo, iremos ver algumas desvantagens do método de eliminação de Gauss, tais como lentidão e instabilidade numérica. Os métodos iterativos são geralmente a única escolha para resolver equações (e sistemas) não lineares. Contudo, os métodos iterativos são frequentemente úteis para resolver sistemas de equações lineares que envolvem um grande número de variáveis. Quando o número de variáveis é grande, às vezes da ordem dos milhares, os métodos directos tornam-se proibitivos porque são computacionalmente dispendiosos. Os métodos iterativos têm 129

130 vantagens significativas face aos métodos directos em termos de rapidez e memória necessária que é precisa para resolver o problema. Frequentemente, em engenharia, as exigências de precisão não são exageradas e consegue-se ter uma boa aproximação da solução com um número pequeno de iterações. Quando a matriz do sistema é esparsa (possui um grande número de elementos cujo valor é zero) é comum os métodos iterativos serem muito eficientes; em geral, guardam-se os elementos da matriz num formato esparso ou então nem é preciso guardar a matriz. 5.1 Valores e vectores próprios Os vectores próprios de uma matriz quadrada são os vectores não nulos que, após multiplicados pela matriz, mantêm-se proporcionais ao vector original; ou seja, a alteração que sofrem é apenas em comprimento e não em direcção. Para cada vector próprio, o valor próprio correspondente é o factor pelo qual o vector próprio é alterado quando multiplicado pela matriz. Matematicamente diz-se que, um vector v é um vector próprio da matriz A com valor próprio λ se Av = λv (5.1) O espaço próprio de A é o conjunto de todos os vectores próprios de A e também o vector zero (o vector zero não é um vector próprio). Os valores próprios e vectores próprios estão relacionados com os conceitos de vectores e transformações lineares. Grosso modo, podemos pensar nos vectores como sendo setas que têm comprimento e direcção. Habitualmente, quando se multiplica um vector por uma matriz quadrada, esse vector sofre alteração no seu comprimento e direcção. Quando o vector só sofre alteração no seu comprimento, então dizemos que ele é um vector próprio. O valor próprio correspondente é o factor pelo qual o seu comprimento é alterado. Um caso especial é o da matriz identidade que não altera o vector qualquer que ele seja: Iv = λv. Qualquer vector diferente de zero tem valor próprio igual a um associado à matriz identidade. Como calcular os valores próprios? Dada a matriz quadrada A, pretendemos descobrir um polinómio cujas raízes coincidam com os valores próprios de A. Este polinómio é chamado o

131 polinómio característico. Se a matriz A for diagonal, A = diag(a 11,a 22,...,a nn ), o polinómio característico define-se como p(λ) = (λ a 11 )(λ a 22 )...(λ a nn ) Ou seja, os valores próprios de uma matriz diagonal coincidem com as entradas da diagonal principal. Para uma matriz quadrada genérica podemos descobrir os valores próprios do seguinte modo. Um número real λ é um valor próprio de A se e só se existe um vector próprio v 0 tal que a equação (5.1) se verifica. Ou seja, tal que (λi A)v = 0 (5.2) onde I é a matriz identidade. Uma vez que v não é zero, então a equação (5.2) é equivalente a dizer que a matriz λi A é singular (não invertível), ou seja, o seu determinante é zero. Consequentemente, as raízes da equação det(λi A) = 0 são os valores próprios da matriz A. Este determinante é um polinómio em λ. Exemplo 27 Com a matriz obtém-se det 2 λ λ A = = (2 λ)(4 λ) 3 = λ 2 6λ+5 As raízes do polinómio característico, ou seja os valores próprios, são λ 1 = = 5 e λ 2 = = 1 Em Matlab podemos utilizar a função eig para retornar os valores próprios de uma matriz. As instruções: A = rand( 3 ) % cria uma matriz 3 x 3 contendo % números pseudo-aleatórios entre zero e um. vp = eig( A ) max( eig( M ) ) % cálcula o máximo dos valores próprios

132 retornam A = e e e e e e e e e-001 vp = e e e-001 ans = e Normas Para discutir métodos para resolver sistemas lineares, temos de ser capazes de calcular o erro relativo da solução de um sistema linear, o erro relativo de uma matriz ou de um vector. Nos métodos iterativos também temos de saber medir a distância entre vectores para observar se a sucessão de vectores está a convergir para a solução exacta do sistema. Para isso, precisamos de uma versão equivalente do módulo no conjunto dos números reais. Seja R n o conjunto dos vectores coluna n dimensionais com coeficientes reais. Para definir uma distância em R n usamos a noção de norma. Bases: Secção Teoria Uma norma vectorial emr n é uma função, der n emrcom as seguintes propriedades: 1. x 0 para todo ox R n ; 2. x = 0 se e só se x = 0; 3. αx = α x para todo α R e x R n ; 4. x+y x + y para todo x, y R n. As normas que iremos utilizar definem-se do seguinte modo: Norma 1, x 1 = n i=1 x i.

133 Norma 2, ou Euclidiana, x 2 = ( n i=1 x2 i )1/2. Norma, x = max i=1:n x i. Nas Figuras 5.1, 5.2 e 5.3 está representado o conjunto dos vectores tais que x = (x 1,x 2 ) T 1, ou seja o círculo unitário, com as normas 1, 2 e infinito, respectivamente; a norma 2, ou Euclidiana, representa a noção usual de distância a partir da origem sex R,R 2 ou R 3. Na norma 1 o círculo é um losango, na norma 2 o círculo é um círculo e na norma o círculo é um quadrado. 1 x x 2 0 0, x 1 Figura 5.1: Os vectores emrcom norma 1, menor ou igual a 1, estão dentro do losango. Uma sucessão de vectoresx (0),x (1),..., emr n diz-se convergente com respeito à norma se, dadoǫ > 0, existe um inteiro N(ǫ) tal que x (i) x < ǫ, para todo i N(ǫ). Desigualdades úteis entre normas vectoriais são as seguintes: x 2 x 1 n x 2 ; x x 2 n x ; x x 1 n x.

134 1 x x 2 0 0, x 1 Figura 5.2: Os vectores em R com norma 2, menor ou igual a 1, estão dentro do círculo x 2 0 0,5 x x 1 Figura 5.3: Os vectores em R com norma, menor ou igual a 1, estão dentro do quadrado.

135 Seja R m n o espaço vectorial contendo todas as matrizes com m linhas e n colunas com entradas emr. Uma norma matricial no conjunto de todas as matrizesm n é uma função,, definida neste conjunto, tal que para todas as matrizesaebeα R se verifica: 1. A 0; 2. A = 0 se e só se A = 0; 3. αa = α A ; 4. A+B A + B ; 5. AB A B. Se éuma norma vectorial em R n, então A = max Ax x =1 é uma norma matricial. A esta norma dá-se o nome de norma natural ou norma matricial induzida pela norma vectorial. Uma vez que para qualquerz 0, temos x = z/ z com x = 1, então Por conseguinte, A = max x =1 Az Ax = max Az/ z = max z 0 z 0 z Az A z Pode demonstrar-se que as normas matriciais induzidas pelas normas vectoriais 1, 2 e se podem escrever na seguinte forma: Norma 1, A 1 = max j=1:n n i=1 a ij. Norma 2, ou Euclidiana, x 2 = [ρ(a T A)] 1/2. Norma, A = max i=1:n n j=1 a ij. onde ρ(a T A) representa o raio espectral da matriz A T A. O raio espectral está muito relacionado com a norma de uma matriz. Se a matriz for quadrada, então

136 1. para qualquer norma matricial ρ(a) A 2. para qualquer ǫ > 0 existe sempre uma norma tal que A ρ(a)+ǫ ou seja, para qualquer matriz A e qualquerǫ > 0, existe uma norma natural tal que: ρ(a) A ρ(a)+ǫ (5.3) Por conseguinte, ρ(a) é o maior limite inferior para as normas naturais dea(ínfimo do conjunto das normas da matriz A). Se a matriz for simétrica, então A 2 = ρ(a) Desigualdades úteis entre normas vectoriais são as seguintes: 1 n A A 2 m A ; 1 m A 1 A 2 n A 1. A 2 A 1 A ; Exemplo 28 Considere o vector x = (1, 3, 7) T. Como os vectores em R n são vectores coluna, é conveniente usar a notação x = (x 1,x 2,...,x n ) T, onde a notação T significa transposto. As normas 1, 2 e deste vector são respectivamente x 1 = = 11. x 2 = 1 2 +( 3) 2 +( 7) 2 = 59. x = max( 1, 3, 7 ) = 7. Em Matlab podemos calcular estas normas através das seguintes instruções: Norma 1. norma1 = norm([1-3 -7],1) ou então

137 norma1 = sum( abs( [1-3 -7] ) ) o retorno é norma1 = 11 Norma 2. norma2 = norm([1-3 -7],2) ou então norma2 = norm([1-3 -7]) ou norma2 = sqrt(sum([1-3 -7].^2)) o retorno é norma2 = Norma. norma_inf = norm([1-3 -7],inf) ou então norma_inf = max( abs( [1-3 -7] ) ) o retorno é norma_inf = 7 Considere a matriz A = Em Matlab podemos escrever a = [1-3 -7; 2 5-1; ] o retorno é

138 a = As normas 1, 2 e desta matriz são respectivamente A 1 = max( , , ) = max(7,14,16) = 16; A 2 = (ρ(a T A)) 1/2 = ; neste caso temos A T A = Para calcular os valores próprios dea T A resolvemos a equação det(a T A λi 3 ) = 0 em ordem aλeobtemos λ 1 = λ 2 = λ 3 = Por conseguinte, A 2 = (ρ(a T A)) 1/2 = (max( , , )) 1/2 = A = max( , , ) = max(11,8,18) = 18; onde ρ(a T A) é denominado o raio espectral da matriz A T A e define-se como o maior valor próprio em módulo dea T A. Em Matlab podemos calcular estas normas através das seguintes instruções: Norma 1. norma1 = max( sum( abs( a ) ) ) ou então norma1 = norm( a, 1 ) o retorno é

139 norma1 = 16 Norma 2. norma2 = norm( a, 2 ) ou então norma2 = sqrt( max( abs( eig(a *a) ) ) ) o retorno é norma2 = A instrução eig(a *a) retorna um vector coluna contento os valores próprios de A. Norma. norma_inf = max( sum( abs( a ) ) ) ou então norma_inf = norm( a, inf ) o retorno é norma_inf = Problemas 1. Calcule as normas 1,2e dos seguintes vectores: x = ( 2,0,1) T, y = (6,3, 5,8) T, z = (2, 3,4,1, 7) T 2. Calcule as normas 1,2e das seguintes matrizes: A = , B = 2c c 2 3c 5 4, C =

140 5.3 Métodos iterativos A decomposição PLU permite resolver um sistema linear de equações. Contudo, por vezes, se conhecemos uma solução de um problema semelhante, pode trazer benefícios utilizar um método iterativo. Como podemos, por exemplo, resolver o sistema 5 6 x 1 = x 2 através de um método iterativo? Um exemplo de um procedimento é resolver a primeira equação em ordem a x 1 e a segunda em ordem ax 2, ou seja, obter O processo iterativo será x 1 = 3+6x 2 5 x 2 = 5+8x = 3+6x(k) 2 5 x (k+1) 2 = 5+8x(k) 1 9 x (k+1) Dado um vector inicial, por exemplo o vector x (0) = (0,0) T, as duas iteradas seguintes são: 1 a iterada, k = 0: x (1) 1 = 3+6x(0) 2 5 x (1) 2 = 5+8x(0) 1 9 = 3 5 = a iterada, k = 1: 1 = 3+6x(1) 2 5 x (2) = 3+6( 5/9) 5 = = 5+8x(1) 1 9 x (2) = 5+8(3/5) 9 = 1 45 Este processo iterativo denomina-se método de Jacobi. Bases: Secção 3.3.

141 5.3.1 Teoria Considere-se o sistemaax = b tal quea = M+N. Suponha-se que a matrizméinvertível. O sistema pode ser escrito na forma Mx+Nx = b ou seja, Mx = b Nx Multiplicando ambos os membros por M 1 obtém-se x = M 1 (b Nx) (5.4) ou seja, x = g(x) onde g(x) = M 1 (b Nx). Por outras palavras, x é um ponto fixo de g. Consequentemente, dada a aproximação x (k), a aproximação seguinte x (k+1) obtém-se através de x (k+1) = M 1 (b Nx (k) ) (5.5) Os métodos de Jacobi e de Gauss-Seidel podem ser obtidos separando a matriz na soma A = L+D+U onde L é a parte triangular de baixo da matriz A, D é a matriz diagonal que contém a diagonal deaeuéaparte triangular de cima da matriz A. Por exemplo, para a matriz A = tem-se L = , D = e U = Com base na decomposição A = L+D+U temos o seguinte: Método de Richardson: M = I n e N = A I n ; ou seja, dada a aproximação x (k), a aproximação seguinte x (k+1) obtém-se através de x (k+1) = b+(i n A)x (k) = x (k) +r (k) (5.6)

142 onde r (k) é o vector resíduo, definido por r (k) = b Ax (k) (5.7) Este método também se pode escrever na forma, ( ) n x (k+1) i = b i a ij x (k) j Método de Jacobi : M = D e N = L+U; ou seja, dada a aproximação x (k), a aproximação seguinte x (k+1) obtém-se através de j=1 x (k+1) = D 1 [b (L+U)x (k) ] = ou de outra forma, ( x (k+1) i = 1 b i a ii n j=1,j i a ij x (k) j ) (5.8) Método de Gauss-Seidel: M = L+D e N = U; ou seja, dada a aproximação x (k), a aproximação seguinte x (k+1) obtém-se através de x (k+1) = (L+D) 1 (b Ux (k) ) = ou de outra forma, ( x (k+1) i = 1 i 1 b i a ij x (k+1) j a ii j=1 n j=i+1 a ij x (k) j ) (5.9) Procedimento Problema Dado um sistema de equações lineares Ax = b, encontrar a solução x através de um método iterativo. Hipóteses Temos uma aproximação razoável x (0) da solução x e o sistema é muito grande para ser resolvido por métodos mais simples do tipoplu. Ferramentas Iremos utilizar iteração e operações com matrizes. Requisitos iniciais São precisas duas coisas: 1. os elementos da diagonal principal da matriz do sistema A têm de ser diferentes de zero;

143 2. para o método ser eficiente é preciso que x (0) esteja próximo de x (especialmente se o sistema tiver dimensão da ordem de ). Processo iterativo Dada uma aproximação x (0) da solução do sistema, a aproximação seguinte obtém-se através de (5.8) ou (5.9) se o objectivo for utilizar o método de Jacobi ou o de Gauss-Seidel, respectivamente. Se for o método de Richardson, então calcular o resíduo com (5.7) e substituir em (5.6). Condições de paragem Existem duas condições que podem provocar a paragem do processo iterativo: 1. paramos se a distância entre os sucessivos vectores é suficientemente pequena, isto é, x (k+1) x (k) < ǫ passo. 2. se o número máximo de iteradas foi atingido e o processo ainda não terminou devido à condição 1. Se paramos devido à condição 1, então o vector x (k+1) é a nossa aproximação da solução. Se a condição 2 for a razão da paragem, então ou escolhemos outra aproximação inicialx (0), ou assumimos que a solução pode não existir. Análise do erro Subtraindo a equação (5.4) da equação (5.5), obtemos x x (k+1) = M 1 N(x x (k) ) Por conseguinte, x x (k+1) M 1 N x x (k) (5.10) Repetindo sucessivas vezes este passo, podemos escrever x x (k) M 1 N k x x (0) Consequentemente, se M 1 N 1, então podemos concluir que para qualquerx (0). lim k x x(k) = 0 A partir da equação (5.10) podemos escrever x x (k+1) C x x (k) = C x x (k+1) +x (k+1) x (k) = C x x (k+1) + C x (k+1) x (k)

144 onde C = M 1 N. Se C < 1, então x x (k+1) C 1 C x(k+1) x (k) Observamos que o papel desempenhado por L na Secção 3.4 é aqui desempenhado pela norma da matriz C (ver a equação( 3.9)). O teorema da série de Neumann diz-nos que se C for uma matriz genérica n n tal que C < 1, entãoi n C é invertível. Se considerar-mos C = M 1 N = I n M 1 M M 1 N = I n M 1 (M+N) = I n M 1 A ou seja, C = I n M 1 A então, se C < 1, pelo teorema da série de Neumann, I n C = I n (I n M 1 A) = M 1 A é invertível eatambém é invertível. Posto isto temos o seguinte resultado: se existir uma norma natural tal que C < 1, com C = M 1 N então o método iterativo da forma (5.5) converge para qualquer vector inicialx (0). Existe um resultado mais forte que este que nos dá uma condição necessária e suficiente para que haja convergência dum método iterativo: um método iterativo da forma (5.5) converge para qualquer vector inicialx (0) se e só seρ(c) < 1, onde ρ(c) representa o raio espectral da matriz C. O raio espectral de uma matriz A define-se por ρ(a) = max{ λ : det(a λi n ) = 0} onde os λ s são os valores próprios da matriz A, ou seja, os números complexos para os quais a matriz A λi n não é invertível. Por conseguinte, estes números são as raízes da equação característica de A: det(a λi n ) = 0 Da equação (5.3) segue que, para qualquer norma matricial natural, temos x x (k) ρ(c) k x x (0) Por conseguinte, dado um sistema linear, é desejável seleccionar um método iterativo que tenha um valor mínimo de ρ(a). Não existe nenhum resultado geral para nos indicar qual

145 dos métodos, Jacobi ou Gauss-Seidel, converge mais rapidamente. Contudo, existem casos especiais onde se sabe a resposta. Se a ij 0, para todo o i j e a ii > 0, para qualquer i = 1,...,n, então uma é uma só situação acontece de entre as seguintes: 1. 0 ρ(c G ) < ρ(c J ) < 1; 2. 1 < ρ(c J ) < ρ(c G ); 3. ρ(c G ) = ρ(c J ) = 0; 4. ρ(c G ) = ρ(c J ) = 1. Consequentemente, quando um dos métodos converge, então ambos convergem e o de Gauss-Seidel converge mais rapidamente. Quando um diverge, então ambos divergem e a divergência do método de Gauss-Seidel é mais pronunciada. Uma vez que a velocidade de convergência depende do raio espectral devemos escolher um método em que a matriz do sistema tenha um raio tão pequeno quanto possível; ver a Secção 5.4. No caso do método de Jacobi temos C = D 1 (L+U) 0 a 12 a 11 a 13 a 11 a 21 a 22 0 a 23 a 22 =... a n 1,1 a n 1,n 1 a n 1,2 a n 1,n 1 a n1 a nn a n2 a nn a n 1,3 a n 1,n 1 a n 1,3 a nn... a 1,n 2 a a 2,n 2 a 22. a 1,n 1 a 11 a 2,n 1 a 22. a 1n a 11 a 2n a a n 1,n 2 a n 1,n 1 0 a n 1,n a n 1,n 1... a n 1,n 2 a nn a n 1,n 1 a nn 0. Por conseguinte, C = max n i=1:n j=1,j i a ij a ii Sendo assim, C < 1 max n i=1:n j=1,j i a ii > n j=1,j i a ij a ii < 1 a ij, i = 1,...,n (5.11) Quando uma matriz satisfaz a condição (5.11), diz-se que tem a diagonal estritamente dominante por linhas. Por conseguinte: se a matriz A tiver a diagonal estritamente dominante por linhas, então o método de Jacobi converge qualquer que seja o vector inicialx (0).

146 Diz-se que uma matriz tem a diagonal estritamente dominante por colunas se n a jj > a ij, j = 1,...,n i=1,i j Finalmente, um resultado sobre uma condição suficiente para a convergência dos métodos de Jacobi e Gauss-Seidel e cuja demonstração se encontra em textos de análise numérica: se a matriz A tiver a diagonal estritamente dominante, por linhas ou colunas, então os métodos de Jacobi e Gauss-Seidel convergem idependentemente do vector inicialx (0) Exemplos Considere o sistema linear x 1 x 2 x 3 = Uma vez que 5 > > > a matriz do sistema tem a diagonal estritamente dominante por linhas. Por conseguinte, tanto o método de Jacobi como o de Gauss-Seidel convergem, qualquer que seja a aproximação inicial. Considere-se, por exemplo, (0,0,0) T. Em seguida, vamos calcular três iteradas aplicando cada um destes métodos. Método de Jacobi: neste caso obtém-se x (k+1) 1 = (b 1 a 12 x (k) 2 a 13 x (k) 3 )/a 11 x (k+1) 2 = (b 2 a 21 x (k) 1 a 23 x (k) 3 )/a 22 x (k+1) 3 = (b 3 a 31 x (k) 1 a 32 x (k) 2 )/a 33 (5.12) ou seja, x (k+1) 1 = (3 2x (k) 2 x (k) 3 )/5 x (k+1) 2 = (2+x (k) 1 )/4 x (k+1) 3 = (1+x (k) 1 3x (k) 2 )/( 6)) (5.13)

147 1 a iteração (k = 0): 2 a iteração (k = 1): x (2) 1 = (3 2x (1) 2 x (1) 3 x (1) 1 = (3 2x (0) 2 x (0) 3 )/5 = 3/5 x (1) 2 = (2+x (0) 1 )/4 = 1/5 x (1) 3 = (1+x (0) 1 3x (0) 2 )/( 6)) = 1/6 )/5 = (3 2(1/5) ( 1/6))/5 = x (2) 2 = (2+x (1) 1 )/4 = (2+(3/5))/4 = 0.65 x (2) 3 = (1+x (1) 1 3x (1) 2 )/( 6)) = (1+(3/5) 3(1/5))/( 6)) = a iteração (k = 2): x (3) 1 = (3 2x (2) x (3) 2 x (2) 3 )/5 = (3 2(0.65) ( ))/5 = = (2+x (2) )/4 = (2+(3/5))/4 = x (3) 3 = (1+x (2) 1 3x (2) 2 )/( 6)) = (1+( ) 3(0.65))/( 6)) = (5.14) (5.15) (5.16) Na Figura 5.4 está representada, na escala logarítmica, a distância entre iteradas sucessivas em função do número da iterada. São precisas 16 iteradas para obter uma distância inferior a log 10 ( x (k) x (k 1) ) k Figura 5.4: Uma representação logarítmica de x (k) x (k 1) (método de Jacobi). Método de Gauss-Seidel: neste caso obtém-se x (k+1) 1 = (b 1 a 12 x (k) 2 a 13 x (k) 3 )/a 11 x (k+1) 2 = (b 2 a 21 x (k+1) 1 a 23 x (k) 3 )/a 22 x (k+1) 3 = (b 3 a 31 x (k+1) 1 a 32 x (k+1) 2 )/a 33 (5.17)

148 ou seja, x (k+1) 1 = (3 2x (k) 2 x (k) 3 )/5 x (k+1) 2 = (2+x (k+1) 1 )/4 x (k+1) 3 = (1+x (k+1) 1 3x (k+1) 2 )/( 6) (5.18) 1 a iteração (k = 0): x (1) 1 = (3 2x (0) x (1) 2 x (0) 3 )/5 = 3/5 2 = (2+x (1) )/4 = (2+3/5)/4 = 0.65 x (1) 1 3 = (1+3/5 3x (1) 2 )/( 6) = a iteração (k = 1): x (2) 1 = (3 2x (1) 2 x (1) 3 )/5 = (3 2(0.65) ( ))/5 = x (2) 2 = (2+x (2) 1 )/4 = (2+( ))/4 = x (2) 3 = (1+x (2) 1 3x (2) 2 )/( 6)) = (1+( ) 3( ))/( 6) = a iteração (k = 2): x (3) 1 = (3 2x (2) 2 x (2) 3 )/5 = (3 2( ) ( ))/5 = x (3) 2 = (2+x (3) 1 )/4 = (2+( ))/4 = x (3) 3 = (1+x (3) )/( 6) = (1+( ) 3( ))/( 6) = x (3) 2 (5.19) (5.20) (5.21) ou seja, dada a aproximação x (k), a aproximação seguinte x (k+1) obtém-se através de x (k+1) = (L+D) 1 (b Ux (k) ) = ou de outra forma, ( x (k+1) i = 1 i 1 b i a ij x (k+1) j a ii j=1 n j=i+1 a ij x (k) j ) (5.22) Na Figura 5.5 está representada, na escala logarítmica, a distância entre iteradas sucessivas em função do número da iterada. São precisas 16 iteradas para obter uma distância inferior a Compare estes resultados com a taxa de decrescimento do método de Jacobi para o mesmo exemplo (ver 5.5) Problemas 1. (a) Escreva a expressão geral da sucessão de iteradas do método de Gauss-Seidel para o sistema linear x 1 = 1 1 e calcule a segunda iterada partindo do vector nulo. x 2

149 0 1 2 log 10 ( x (k) x (k 1) ) k Figura 5.5: Uma representação logarítmica de x (k) x (k 1) (método de Gauss-Seidel). (b) O método converge? Justifique. 2. Considere o sistema linear α α x 1 x 2 x 3 = (a) Indique uma condição para α que garanta a convergência do método de Jacobi. (b) Seja α = 4. Calcule duas iteradas pelo método de Jacobi partindo do vector x (0) = (0,0,0) T. 3. Considere o sistema linear 2x 1 +6x 2 = 2 4x 1 +x 2 = 1 (a) Escreva a expressão geral do método de Jacobi aplicado a este sistema. (b) Tomando x (0) = (1,1) T, calcule duas iterada pelo método de Jacobi. (c) O método converge? Justifique. 4. Considere o sistema linear x 1 x 2 x 3 = 1 1 1

150 (a) Tomando x (0) = (1,2,3) T, calcule duas iteradas pelo método de Gauss-Seidel. (b) O método converge? Justifique. (c) Baseando-se nas respectivas matrizes de iteração, C, qual dos dois métodos iterativos, Gauss-Seidel ou Jacobi, daria em princípio os melhores resultados? 5. Considere o sistema seguinte: 3x x 3 = 2 x 1 +2x x 3 = 1 x 2 +4x 3 = 2 (a) Tomando como aproximação inicial o vector nulo mostre que pode aplicar o método de Gauss-Seidel para aproximar a solução do sistema e calcule duas iteradas. (b) Indique uma estimativa do erro da primeira componente da segunda iterada. 6. Considere o vector inicial [0 a 0] T para resolver o seguinte sistema de equações x 3 2 2x 1 +5x 3 = 0 x 3 x 2 2 +x 1 = β x 2 1 +ex 3 = 1 (5.23) onde a e β são números reais. Ao resolver este sistema somos conduzidos a resolver um sistema linear com a matriz 2 3a 2 5 A = 1 2a (a) Calcule o segundo membro do sistema linear e mostre como se chega a esta matriz A. (b) Para a = 1, obtenha a primeira iterada x (1) que aproxima a solução do sistema (5.23). (c) Se pretender resolver o sistema linear pelo método de Jacobi, quais são todos os valores de a para os quais o método não converge? 7. O sistema de equações, Ax = b, 1 a a 1 x = b pode, sob certas condições, ser resolvido pelo método iterativo w wa x (k+1) = x (k) +wb wa w (a) Para que valores deaométodo converge sew = 1? (b) Se a = 1/2 e w = 1/2 o método converge?

151 5.4 Método de relaxação de SOR O método de relaxação de SOR (successive over-relaxation) é uma variante do método de Gauss-Seidel que resulta numa convergência mais rápida. A ideia do método é introduzir um parâmetro de relaxaçãoω e, em vez dem = L+D, considerar a matriz M ω = 1 ω (ωl+d) = L+ 1 ω D e, por conseguinte, a matriz N assume a forma N ω = 1 ( ω [(ω 1)D+ωU] = 1 1 ) D+U ω Sendo assim podemos proceder da seguinte forma: Ax = b (M ω +N ω )x = b M ω x = b N ω x (ωl+d)x = ωb [(ω 1)D+ωU]x O método de SOR é um método iterativo e para o obter tem de ser resolver a equação acima em ordem a x: x = (D+ωL) 1 {ωb [ωu+(ω 1)D]x} Uma vez que a matriz (D+ωL) é triangular inferior, tal como no método de Gauss-Seidel, podemos calcular os elementos do vector actual x (k+1) a partir do vector anterior x (k) fazendo substituições sucessivas: x (k+1) i = (1 ω)x (k) i + ω a ii (b i i 1 j=1 a ij x (k+1) j n j=i+1 a ij x (k) j ), i = 1,2,...,n (5.24) Observa-se que quando ω = 1 este método reduz-se ao método de Gauss-Seidel. Se ω > 1 então trata-se de sobre-relaxação. Se ω < 1 então trata-se de sub-relaxação. Exemplo 29 Considere o sistema linear x 1 x 2 x 3 = 1 2 3

152 comx (0) = (0,0,0) T e o factor de relaxaçãoω = 1.3. Para aplicar o método de SOR a este sistema começa-se por escrever a equação (5.24) aplicada a um sistema3 3: x (k+1) 1 = (1 ω)x (k) 1 +ω(b 1 a 12 x (k) 2 a 13 x (k) 3 )/a 11 x (k+1) 2 = (1 ω)x (k) 2 +ω(b 2 a 21 x (k+1) 1 a 23 x (k) 3 )/a 22 x (k+1) 3 = (1 ω)x (k) 3 +ω(b 3 a 31 x (k+1) 1 a 32 x (k+1) 2 )/a 33 (5.25) Aplicando o sistema anterior ao sistema do exemplo, obtém-se x (k+1) 1 = 0.3x (k) (1 6x (k) 2 3x (k) 3 )/5 x (k+1) 2 = 0.3x (k) (2+x (k+1) 1 +2x (k) 3 ))/4 x (k+1) 3 = 0.3x (k) (3 2x (k+1) 1 3x (k+1) 2 )/( 6) (5.26) 1 a iteração (k = 0): x (1) 1 = 0.3x (0) (1 6x (0) 2 3x (0) 3 )/5 = 0.3(0)+1.3(1 6(0) 3(0))/5 = x (1) 2 = 0.3x (0) (2+x (1) 1 +2x (0) 3 ))/4 = 0.3(0)+1.3(2+(0.2600) +2(0)))/4 = x (1) 3 = 0.3x (0) (3 2x (1) 1 3x (1) 2 )/( 6) = 0.3(0) + 1.3(3 2(0.2600) 3(0.7345))/( 6) = (5.27) 2 a iteração (k = 1): x (2) 1 = 0.3x (1) (1 6x (1) 2 3x (1) 3 )/5 = 0.3(0.2600) + 1.3(1 6(0.7345) 3( ))/5 = x (2) 2 = 0.3x (1) (2+x (2) 1 +2x (1) 3 ))/4 = 0.3(0.7345) + 1.3(2 +( ) + 2( )))/4 = x (2) 3 = 0.3x (1) (3 2x (2) 1 3x (2) 2 )/( 6) = 0.3( ) + 1.3(3 2( ) 3(0.0927))/( 6) = (5.28) 3 a iteração (k = 2): x (3) 1 = 0.3x (2) (1 6x (2) 2 3x (2) 3 )/5 = 0.3( ) + 1.3(1 6(0.0927) 3( ))/5 = x (3) 2 = 0.3x (2) (2+x (3) 1 +2x (2 3 ))/4 = 0.3(0.0927) + 1.3(2 +(1.1466) + 2( )))/4 = x (3) 3 = 0.3x (2) (3 2x (3) 1 3x (3) 2 )/( 6) = 0.3( ) + 1.3(3 2(1.1466) 3(0.3649))/( 6) = (5.29)

153 A escolha do factor de relaxação não é necessariamente fácil e depende da matriz A do sistema Ax = b. Para matrizes A definidas positivas pode demonstrar-se que, se 0 < ω < 2 então o método de SOR converge, ou seja, ρ(c ω ) < 1. onde C ω = M 1 ω N ω. Contudo, geralmente estamos interessados em convergência rápida em vez de apenas convergência. Dados dois métodos, o que converge mais rapidamente é aquele que tem menor raio espectral. A obtenção do factor de relaxação óptimo, ou seja, aquele que minimiza o raio espectral da matriz C ω, é difícil excepto em certos casos. Frequentemente, utiliza-se uma aproximação do factor óptimo, aproximação esta obtida experimentando diversos valores de ω e observando o resultado em termos de rapidez de convergência (estimativa heurística).

154

155 Capítulo 6 Sistemas não lineares 6.1 Método de Newton para sistemas Talvez o método mais utilizado para resolver sistemas não lineares seja o método de Newton. É um bom método para se estudar porque a maioria dos métodos para resolver sistemas não lineares podem ser considerados adaptações do método de Newton. Muitas das vantagens e inconvenientes que caracterizam o método de Newton são a base para o desenvolvimento de métodos mais sofisticados. Um exemplo de um sistema não linear é o seguinte: (x 1 2) 2 +(x 2 1) 2 = 4 (6.1) (x 1 3) 2 +(x 2 2) 2 = 1 (6.2) Este sistema é não linear porque não pode ser escrito como uma combinação linear de x = (x 1,x 2 ) T, onde a notação T significa transposto. A partir da segunda equação podemos escrever (x 1 3) 2 +(x 2 2) 2 = 1 (x 2 2) 2 = 1 (x 1 3) 2 x 2 2 = ± 1 (x 1 3) 2 x 2 = 2± 1 (x 1 3) 2 (6.3) Os sinais de+ede correspondem às metades de cima e de baixo dos círculos, respectivamente. Na Figura 6.1 observam-se duas intersecções: uma da metade de cima e a outra na metade de baixo do círculo mais pequeno. Na Figura 6.2 observamos localmente a intercepção da metade de cima do círculo com raio menor. 155

156 3.5 ( a ) x x 1 Figura 6.1: Dois círculos (x 1 2) 2 +(x 2 1) 2 = 4 e (x 1 3) 2 +(x 2 2) 2 = 1.

157 ( b ) x , , , , , ,58870 x 1 Figura 6.2: Ampliação da intercepção na metade de cima do círculo mais pequeno.

158 Para descobrir a intercepção que se encontra na metade de cima, substituímos a última equação de (6.3), com o sinal +, na primeira equação do sistema não linear e obtém-se ( (x 1 2) (x 1 3) 1) 2 = 4 ou seja, para a raiz pertencente à metade de cima dos círculos temos o seguinte sistema: ( (x 1 2) ) 2 1 (x 1 3) 2 = 4 (6.4) x 2 = 2+ 1 (x 1 3) 2 (6.5) A equação (6.4) é uma equação não linear numa única variável x 1. Resolvendo esta equação, por exemplo, pelo método de Newton uni-dimensional (ver Secção 4.2) e substituindo o resultado em (6.5) obtemos uma aproximação para a raiz pretendida: x = ( , ) T Infelizmente, na maioria das situações não é fácil eliminar variáveis e reduzir o sistema não linear a sistemas de dimensão menos elevada; nos sistemas lineares isto pode ser feito utilizando o método de eliminação de Gauss. Em vez disto, vamos averiguar como aplicar o método de Newton directamente a um sistema de equações. Bases: Secções 3.3, 3.1 e Teoria O método de Newton baseia-se na hipótese de que qualquer função com derivadas parciais contínuas assemelha-se localmente a um planon-dimensional. Por exemplo, nas Figuras 6.3 e 6.4 podemos observar uma função bidimensional com derivadas parciais contínuas. Embora a função pareça ter grandes variações, quando nos aproximamos de um ponto f(x 1,x 2 ) = 200sin(x 1 +x 2 ) (π +x 1 +x 2 ) a função assemelha-se a um plano liso, ou seja, localmente a função comporta-se como um plano bidimensional. Para obter o método de Newton quando temos uma única equação, lineariza-se a equação não linear em torno de x i e resolve-se a equação linear resultante para obter a aproximação seguinte x i+1. Aqui o procedimento é semelhante, ou seja, o método consiste em substituir as equações não lineares pela sua linearização em torno do ponto x i. Isto irá resultar num sistema linear denequações. A nova aproximação da raizx i+1, obtém-se resolvendo este sistema linear.

159 200 sin(x 1 +x 2 )/(π+x 1 +x 2 ) x x 1 Figura 6.3: Representação de uma função com duas variáveis.

160 200 sin(x 1 +x 2 )/(π+x 1 +x 2 ) x 2 x 1 Figura 6.4: (π,π,200sin(2π)/(3π)). Observação local de uma função com duas variáveis na vizinhança do ponto

161 Se a função g(x) = g(x 1,x 2 ) é uma função com duas variáveis então o desenvolvimento em série de Taylor até à primeira ordem, em torno do ponto ( x (0) 1, x (0) 2 ) é o seguinte: g(x 1,x 2 ) = g(x (0) 1,x (0) 2 )+ g(x(0) 1,x(0) 2 ) x 1 (x 1 x (0) 1 )+ g(x(0) 1,x(0) (x 2 x (0) 2 )+... x 2 onde os termos, omitidos no desenvolvimento, são termos de ordem superior que envolvem derivadas parciais de ordem mais elevada e potências de (x 1 x (0) 1 ) e (x 2 x (0) 2 ) também de ordem mais elevada. Se tivermos um sistema não linear f 1(x 1,x 2 ) = 0 f 2 (x 1,x 2 ) 0 2 ) e aplicando este desenvolvimento a cada equação deste sistema obtemos f 1(x 1,x 2 ) f 2 (x 1,x 2 ) = f 1(x (0) 1,x (0) f 2 (x (0) 1,x (0) f 1(x (0) 1,x(0) 2 ) f 2 (x (0) 1,x (0) 2 ) 2 )+ f 1(x (0) 1,x(0) 2 ) 2 )+ f 2(x (0) 1,x(0) 2 ) + x 1 (x 1 x (0) x 1 (x 1 x (0) 1 )+ f 1(x (0) 1,x(0) 2 ) 1 )+ f 2(x (0) 1,x(0) 2 ) f 1 (x (0) 1,x(0) 2 ) f 1 (x (0) 1,x(0) 2 ) x 1 x 2 f 2 (x (0) 1,x(0) 2 ) f 2 (x (0) 1,x(0) 2 ) x 1 x 2 2 ) x 2 (x 2 x (0) x 2 (x 2 x (0) 2 ) x 1 x (0) 1 x 2 x (0) 2 ou seja, f(x) f(x (0) )+J f (x (0) )(x x (0) ) (6.6) onde x = (x 1,x 2 ) T, x (0) = (x (0) 1,x (0) 2 ) T e J f (x (0) ) é a matriz Jacobiana calculada no ponto x (0). Comparando com o método de Newton uni-dimensional vemos que na generalização, a dimensões superiores a 1, a derivada foi substituída pela matriz Jacobiana. Para um sistema com n equações a n incógnitas, a equação mantém-se com x = (x 1,x 2 ) e x (0) = (x (0) 1,x (0) 2 ) substituídos porx = (x 1,x 2,...,x n ) ex (0) = (x (0) 1,x (0) 2,...,x (0) n ), respectivamente, e com a matriz Jacobiana dada por: J f (x (0) ) = f 1 (x (0) ) x 1 f 1 (x (0) ) x 2... f 2 (x (0) ) x 1 f 2 (x (0) ) x f n(x (0) ) x 1 f n(x (0) ) x f 1 (x (0) ) x n f 2 (x (0) ) x n. f n(x (0) ) x n Em cada passo do método de Newton, assume-se que temos a aproximação x (i) da raiz e a aproximação seguinte, x (i+1) se obtém resolvendo o sistema linearizado f(x (i) )+J f (x (i) )(x (i+1) x (i) ) = 0

162 em ordem a x (i+1). Na prática, obtém-se x (i+1) resolvendo o sistema linear J f (x (i) ) x (i) = f(x (i) ) (6.7) e depois fazendo a seguinte soma entre dois vectores: x (i+1) = x (i) + x (i) Podemos combinar estes dois passos e escrever x (i+1) = x (i) J f (x (i) ) 1 f(x (i) ) No caso uni-dimensional temos J f (x) = f (x). Para dimensões superiores é preferível resolver o sistema linear (6.7) em vez de inverter a matriz Jacobiana Procedimento Problema Dadas n funções f 1 (x),..., f n (x), onde x = (x 1,...,x n ) T (n variáveis), encontrar um vector z (denominada a raiz) tal que f(z) = 0. Hipóteses Iremos assumir que cada funçãof k (x) é contínua, k = 1,...,n, tem derivadas parciais contínuas e a matriz Hessiana é definida positiva. Ferramentas Iremos utilizar amostragem, derivadas parciais, iteração e resolução de sistemas lineares. O modelo dá informação sobre as derivadas parciais. O erro é obtido utilizando o desenvolvimento em série de Taylor. Requisitos iniciais Temos de ter uma aproximação inicial da raiz x (0) e de ter obtido a matriz Jacobiana J f (x). Processo iterativo Dada uma aproximaçãox (i) da raiz, a aproximação seguinte obtém-se através de: 1. resolver o sistema de equações lineares em ordem a x (i) J f (x (i) ) x (i) = f(x (i) ) 2. calcular x (i+1) = x (i) + x (i)

163 Note-se que em cada passo temos de calcular a matriz Jacobiana num novo ponto e resolver o sistema linear. Condições de paragem Existem três condições que podem originar a paragem do método iterativo. A norma utilizada nestas condições pode ser a 1, 2 ou infinito. 1. Paramos se ambas as seguintes condições se verificarem: a distância entre iteradas sucessivas é suficientemente pequena, ou seja, x (i+1) x (i) < ǫ passo ; a norma função calculada no ponto x i+1 é suficientemente pequena, ou seja, f(x (i+1) ) < ǫ abs. 2. Se a matriz Jacobiana é indeterminada, ou seja, o seu determinante é próximo de zero (det(j f (x (i) )) 0), então o processo iterativo falha e paramo-lo. 3. Se foi atingido o número máximo de iterações e ainda não se verificou a primeira condição de paragem. Neste caso paramos o processo iterativo e indicamos que a solução não foi encontrada. Se o processo iterativo parar devido à verificação da condição 1, então consideramos que x (i+1) é a nossa aproximação da raiz, ou seja z x (i+1). Se pararmos o processo porque uma das condições 2 ou 3 não for verificada, então consideramos que a solução não existe ou escolhemos outra aproximação inicial Exemplos Exemplo 30 Suponhamos que temos de novo o problema da intercepção entre os dois círculos descrito anteriormente e representado através das equações (6.1) e (6.2). Iremos calcular várias iterações até que, usando a norma infinito, x (i) < ǫ passo = 10 6 e f(x (i+1) ) < ǫ abs = 10 6, começando com x (0) = (2,3) T. A matriz Jacobianan do sistema é J f (x) = 2x 1 4 2x 2 2 2x 1 6 2x 2 4

164 Cálculo da primeira iterada,x (1) : J f (x (0) ) x (0) = f(x (0) ) x (0) = 0 1 Resolvendo em ordem a x (0) obtém-se x (0) = ( ,0) T e, por conseguinte, a aproximação seguinte será: x (1) = x (0) + x (0) = (2.5,3) T Observamos que x (0) = 0.5 > 10 6 f(x (1) ) = 0.25 > 10 6 Cálculo da segunda iterada,x (2) : J f (x (1) ) x (1) = f(x (1) ) x (1) = Resolvendo em ordem a x (1) obtém-se x (1) = ( , ) T e, por conseguinte, a aproximação seguinte será: Observamos que x (2) = x (1) + x (1) = ( , ) T x (1) = > 10 6 f(x (2) ) = > 10 6 Cálculo da terceira iterada,x (3) : J f (x (2) ) x (2) = f(x (2) ) x (2) = Resolvendo em ordem a x (2) obtém-se x (2) = ( , ) T e, por conseguinte, a aproximação seguinte será: x (3) = x (2) + x (2) = ( , ) T Observamos que x (2) = > 10 6 f(x (3) ) = > 10 6

165 Cálculo da quarta iterada,x (4) : J f (x (3) ) x (3) = f(x (3) ) x (3) = Resolvendo em ordem a x (3) obtém-se x (3) = ( , ) T e, por conseguinte, a aproximação seguinte será: x (4) = x (3) + x (3) = ( , ) T Observamos que x (3) = > 10 6 f(x (4) ) = < 10 6 Cálculo da quinta iterada,x (5) : J f (x (4) ) x (4) = f(x (4) ) x (4) = Resolvendo em ordem a x (4) obtém-se x (4) = ( , ) T e, por conseguinte, a aproximação seguinte será: x (5) = x (4) + x (4) = ( , ) T Observamos que x (4) = < 10 6 f(x (5) ) = < 10 6, ou seja, paramos a sucessão de iteradas Problemas 1. Determinar uma aproximação da raiz situada na metade de baixo do círculo mais pequeno do sistema constituído pelas equações (6.1) e (6.1). 2. Obtenha uma aproximação da solução do sistema f(x) = 0 com ǫ abs = ǫ passo = 10 6 e x 2 1 +x 2 2 +x f(x) = x 3 x 2 sin(x 1 ) 3x 2 +4x 3

166 3. Represente graficamente as funções f 1 (x) = x 3 1 +x 2 1 e f 2 (x) = x 3 2 x 2 +1 no quadrado [ 3; 3] [ 3; 3]. Obtenha aproximações da raiz do sistema x3 1 +x 2 x 3 1 x 2 = Considere o seguinte sistema x 3 +5y 2z = 0 e y z 2 = 1 x 2 +y +z = µ µ R (6.8) Partindo do vector inicial x (0) = (c,0,0) T, c R, para chegar à aproximação x (1) somos levados a resolver um sistema linear com a matriz 3c A = c 1 1 (a) Mostre como se obteve A e calcule o segundo membro do sistema. (b) Resolva o sistema (6.8) calculando 3 iteradas pelo método de Newton, utilizando na resolução de cada sistema linear o método de Jacobi com 2 iteradas. Calcule x (i+1) x (i) para i = 0,1,2. 5. Considere o sistema de equações: 2x+y +ǫcosz = 1 x+3y 3ǫxz = 0 ǫx 2 +y +3z = 0 Para ǫ = 1 e x (0) = 0 justifique que pode usar o método de Newton e escreva o valor da primeira iterada. 6. Pretende-se resolver o seguinte sistema pelo método de Newton: φ(x) = 1 3x 2 +4x 3 = 3 2x x 1 +2x 3 = 1 Considerandoφ(x) = e x 1 3etomando x (0) = (0,2,3) T, calcule a primeira iterada.

167 7. Pretende-se resolver o seguinte sistema pelo método de Newton: x 3 1 3x 1x 2 = 1 3x 2 1x 2 x 2 2 = 0 (a) Tomando x (0) = (1,1) T, calcule a primeira iterada. (b) Calcule a diferença entre iteradas sucessivas, x (1) x (0). 8. Use o método de Newton para encontrar a solução do seguinte sistema: log e (x 2 1 +x2 2 ) sin(x 1x 2 ) = log e 2+log e π e x 1 x 2 +cos(x 1 x 2 ) = 0 Utilizex (0) = (2,2) T e faça duas iteradas. Calcule x (i+1) x (i) para i = 0 e i = Pretende-se resolver o seguinte sistema pelo método de Newton: x 2 1 +x 2 = 3 x 2 1 x 2 = 3 (a) Tomando x (0) = (1,4) T, calcule a primeira iterada. (b) Calcule a diferença entre iteradas sucessivas, x (1) x (0). (c) Faça um esboço gráfico das funçõesf 1 (x) = x 2 1 +x 2 3 ef 2 (x) = x 2 1 x 2+3 no quadrado [ 1;1] [2;4]. (d) Calcule o erro da aproximação x (1), ou seja, z x (1). Comente. 10. Considere o vector inicial [0 a 0] T para resolver o seguinte sistema de equações x 3 2 2x 1 +5x 3 = 0 x 3 x 2 2 +x 1 = β x 2 1 +ex 3 = 1 onde a e β são números reais. Ao resolver este sistema somos conduzidos a resolver um sistema linear com a matriz 2 3a 2 5 A = 1 2a (a) Calcule o segundo membro do sistema linear e mostre como se chega a esta matriz A. (b) Para a = 1, obtenha a primeira iterada x (1) que aproxima a solução do sistema.

168 6.2 Método do ponto fixo para sistemas O método de Newton é um exemplo do método do ponto fixo em que escrevemos o sistema f(z) = 0 na forma z = g(z) e depois, partindo do vector inicialx (0), calculamos as aproximações sucessivas através de x (i+1) = g(x (i) ), i = 0,1,2,... (6.9) e esta sucessão, sob determinadas condições, irá convergir para o ponto fixo z de g. A análise do método do ponto fixo para sistemas difere pouco da análise efectuada para o caso em que temos uma única equação (ver a Secção 3.4). A única diferença é que, neste caso, a distância entre a aproximação x (i+1) e o vector exacto z se mede utilizando uma norma, em vez de módulo. Teorema 3 Suponha-se que a função g transforma o conjunto S nele próprio, onde S R n (g : S S). Ou seja, sex S, entãog(x) S. Além disso, assuma-se que g é contractiva, isto é, g(x) g(y) K x y para todo oxeyems e uma constante K < 1. Então, 1. g tem um ponto fixo ems. 2. Sezéum ponto fixo degems, então o método do ponto fixo (6.9) converge parazqualquer que seja o vector inicialx (0) S, isto é, Mais concretamente, lim i z x(i) = 0 z x (i) K 1 K x(i) x (i 1) z x (i) Ki 1 K x(1) x (0)

169 Na realidade o método converge para um ponto fixozdegsegfor contínua e diferenciável e se o vector inicial estiver suficientemente próximo de z no qual J g (z) < 1. Convém salientar que, estas condições são suficientes para o método convergir, mas não são necessárias. Às vezes o método converge e estas condições não se verificam. Quando g é contínua e diferenciável tem-se K = J g (z). Exemplo 31 Considere o sistema de equações não lineares 0.5 x 1 = 1+(x 1 +x 2 ) 2 x 2 = (x 1 x 2 ) 2 Para calculark = J g (z) temos que proceder da seguinte forma: J g (x) = x 1+x 2 [1+(x 1 +x 2 ) 2 ] 2 x 1+x 2 [1+(x 1 +x 2 ) 2 ] 2 x 1 x 2 [1+(x 1 x 2 ) 2 ] 2 x 1 x 2 [1+(x 1 x 2 ) 2 ] 2 logo, Considere-se a função então { } 2 x1 +x 2 2 x 1 x 2 J g (z) = max [1+(x 1 +x 2 ) 2 ] 2, [1+(x 1 x 2 ) 2 ] 2, h(x) = 2x (1+x 2 ) 2 h (x) = 2(1+x2 ) 2 8x 2 (1+x 2 ) = 2(1+x2 4x 2 ) = 2(1 3x2 ) (1+x 2 ) 4 (1+x 2 ) 3 (1+x 2 ) 3 Sendo assim, podemos ver quais são os zeros de h, ou seja, podemos escrever h (x) = 0 x = 1 3 x = 1 3 e calcularh(±1/ 3) = ±3 3/8. Consequentemente, J g (z) = < 1 Neste caso,g é contractiva emr 2. O método do ponto fixo associado a esta funçãogéoseguinte: x (i+1) 1 = (x (i) 1 +x(i) 2 )2 x (i+1) 2 = (x (i) 1 x(i) 2 )2 Se partirmos dex (0) = (0,0,0) T e calcularmos, por exemplo, três iteradas vem: 1 a iterada (i = 0): x (1) 1 = (x (0) 1 +x(0) 2 x (1) 2 = (x (0) 1 x(0) 2 )2 = )2 =

170 2 a iterada (i = 1): 3 a iterada (i = 2): x (2) 1 = (x (1) x (2) 2 = (x (1) 1 +x(1) 2 1 x(1) 2 x (3) 1 = (x (2) 1 +x(2) 2 x (3) 2 = (x (2) 1 x(2) 2 )2 = )2 = )2 = )2 = Para obter uma estimativa do erro da terceira iterada procedemos do seguinte modo: ou seja, z x (3) J g(z) 1 J g (z) x (3) x (2) z x (3) = = 3 3/ /8 (0.1893,1.2800)T (0.1250,0.5000) T 3 3/ /8 (0.0643,0.7800)T 3 3/8 1 3 (0.7800) = / Convergência do método de Newton No caso do método de Newton tem-se g(x) = x [J f (x)] 1 f(x) Esta equação também pode escrever-se na forma J f (x)[g(x) x] = f(x) (6.10) Assumindo quef tem primeiras e segundas derivadas contínuas, podemos utilizar o desenvolvimento em série de Taylor e escrever: 0 = f(z) = f(x+z x) = = f(x)+j f (x)(z x)+o( z x 2 ) Substituindo (6.10) na equação anterior vem 0 = J f (x)[ (g(x) x)+(z x)]+o( z x 2 )

171 ou seja, Consequentemente, J f (x)[g(x) z] = O( z x 2 ) g(x) z c [J f (x)] 1 z x 2 para alguma constante c. Se J f (z) for invertível, e como J f (x) é contínua por hipótese, é possível encontrar números positivos δ e M tal que [J f (x)] 1 existe para todo o x numa vizinhança δ de z e tal que [J f (x)] 1 M Em seguida, escolhendo ǫ como o menor dos valores δ e (Mc) 1, tem-se que, para todo o x no conjunto S = {x : z x ǫ} se verifica g(x) z Mc z x 2 (Mcǫ) z x Por conseguinte, g transforma o conjunto nele próprio. Além disso, se z x < ǫ, então K = Mc z x < 1. Logo, z é um ponto fixo de g e se escolhermos um vector inicial x (0) numa vizinhança ǫ dez, o método irá convergir para z. O seguinte teorema foi demonstrado por Leonid Kantorovich em 1940 e dá condições suficientes de convergência para o método de Newton generalizado convergir. Nele aparece a noção de conjunto convexo. Um subconjunto S de um espaço vectorial real é convexo quando qualquer que seja o segmento de recta que ligue dois pontos pertencentes a S ele está contido em S. Ou seja, S diz-se convexo se, para todo o x,y S e todo o t [0;1], o ponto (1 t)x+ty S. Num espaço Euclidiano, diz-se que um conjunto é convexo se para quaisquer par de pontos dentro doo conjunto, qualquer ponto pertencente ao segmento de recta que os junta também pertence ao conjunto. Por exemplo, uma esfera ou um cubo são convexos. Por outro lado, qualquer conjunto que tenha um buraco não é convexo. Teorema 4 (Kantorovich) SejaD R n um conjunto aberto e convexo ef C 1 (D). Suponha-se que para alguma norma emr n e algum x (0) D são verificadas as seguintes condições: 1. det(j f (x)) 0 para qualquer x D e existem 1 > 0 tal que [J f (x)] 1 1 M 1 para qualquer x D.

172 2. Existe uma constante M 2 > 0 tal que J f (x) J f (y) M 2 x y para quaisquer x, y D. 3. Sendo verifica-se a desigualdade ǫ 0 := 2 [J f (x)] 1 f(x (0) ) = 2 x (1) x (0) e K := M 2 2M, 1 < ǫ 0 < Toda a bola B(x (0),ǫ 0 ) está contida emd, B(x (0),ǫ 0 ) D. Então: 1. f tem um único zeroz B(x (0),ǫ 0 ); 2. a sucessão do método de Newton com vector inicialx (0) converge paraz; 3. verifica-se a estimativa de erro a priori z x (i) 1 K (Kǫ 0) 2i Se f C 2 (D), a condição 2 pode substituir-se por: 2. Existe M 2 > 0 tal que H fi (x) M 2, para qualquer x D e qualquer i {1,2,...,n}, onde f i designa ai-ésima componente de f e H fi é a matriz Hessiana def i, com componentes (H fi ) jk = 2 f i x j x k Problemas 1. Considere o sistema de equações não-lineares 3x 1 +x 2 2 +x2 3 = 0 x 2 1 3x 2 +x 2 3 = 0 x 2 1 +x2 2 3x 3 1 = 0 (a) Mostre que o sistema tem uma solução única z no conjunto { D = x R 3 : x 1 }. 3

173 (b) Obtenha um valor aproximado x (2) para a solução do sistema usando duas iteradas do método do ponto fixo partindo da condição inicial x (0) = (0,0,0) T. Apresente uma estimativa do erro z x (2). 2. Considere o sistema de equações não-lineares 2x 1 cos(x 1 +x 2 ) = 2 3x 2 sin(x 1 +x 2 ) = 6 (a) Mostre que o sistema tem uma solução única z no conjunto [ 1 D = 2, 3 ] [ 5 2 3, 7 ] 3, e que esta é também a única raiz do sistema em R 2. (b) Obtenha um valor aproximado x (2) para a solução única z do sistema usando duas iteradas do método do ponto fixo partindo da condição inicialx (0) = (1,2) T. Apresente uma estimativa do erro z x (2) 1. (c) Obtenha um valor aproximado x (2) para a solução única z do sistema usando duas iteradas do método de Newton generalizado partindo da condição inicial x (0) = (1,2) T. Apresente uma estimativa do erro z x (2) 1. Nota: utilize um método à sua escolha para resolver o sistema linear que ocorre na aplicação do método de Newton generalizado.

174

175 Capítulo 7 Método dos Mínimos quadrados Regressão é uma técnica utilizada para descobrir uma relação matemática (função matemática) entre uma ou mais variáveis utilizando um conjunto de pontos individuais. O tipo de regressão mais frequente é a regressão linear (ajuste de um conjunto de pontos a uma linha recta) construída utilizando o método dos mínimos quadrados. No método dos mínimos quadrados, a função aproximadora escolhida é aquela que minimiza a soma dos quadrados das distâncias entre todas as funções de um determinado tipo (classe) e o conjunto dos pontos experimentais. Na teoria da aproximação existem dois tipos de problemas no ajuste de curvas a conjuntos de pontos. O primeiro é descobrir uma curva que passe nos diversos pontos (por exemplo, a interpolação polinomial apresentada no Capítulo 8). O outro problema consiste em descobrir a melhor curva que pode ser utilizada para representar os dados, embora possa não passar por eles. O método dos mínimos quadrados é utilizado para resolver este tipo de problema. Se a função obtida representar convenientemente os dados, então ela pode ser utilizada para previsão. Dado um conjunto de pontos(x i,y i ) podemos não conseguir, ou não fazer sentido, encontrar uma função que passe em todos os pontos experimentais. Nesse caso, podemos tentar encontrar uma função com uma determinada forma que passe tão próximo quanto possível dos pontos. Este tipo de situação acontece com frequência quando a relação entre a resposta y e a variável explicativa x é uma relação estatística. Quando os dados estão afectados por uma componente aleatória, então as observações tendem a não cair directamente na curva. Por exemplo, considerese os pontos experimentais representados na Figura 7.1. Eles representam o resultado de uma experiência que consiste em relacionar a massa muscular com a idade. Para isso um médico mediu a massa muscular em dezasseis indivíduos, do mesmo sexo, entre os quarenta e os oitenta 175

176 anos, recolheu os valores, representou graficamente e ajustou os pontos experimentais com uma recta Massa Muscular Idade Figura 7.1: Regressão linear com uma linha recta para relacionar a massa muscular e a idade. Neste capítulo, estudamos duas técnicas para ajustar curvas a um conjunto de pontos experimentais: Regressão linear com polinómios (ajuste a linhas rectas). Regressão linear geral (ajuste com polinómios de ordem mais elevada e outras funções não polinomiais). O termo "linear" em regressão refere-se aos coeficientes desconhecidos do tipo de função ajustadora. Por exemplo, a funções f(x) = a 1 x + a 0, f(x) = a 1 x 3 + a 0 e f(x) = a 1 e x + a 0 e x são todas lineares nos coeficientes desconhecidosa 1 ea 0. A função f(x) = a 0 x/(1+a 1 x 2 ) é não linear ema 1 e a Regressão linear simples O procedimento geral que consiste em ajustar uma combinação linear de funções base a um conjunto de pontos experimentais denomina-se regressão linear. Quando a função aproximadora é simplesmente uma recta, isto éf(x) = a 1 x+a 0, então o procedimento chama-se regressão linear simples.

177 7.1.1 Teoria Pontos experimentais y = x y = 1.4 x Massa Muscular Idade Figura 7.2: Regressão linear com uma linha recta para relacionar a massa muscular e a idade. Na Figura 7.2 estão representados os resultados da experiência descrita anteriormente. Nela também estão representadas duas rectas da forma f(x) = a 1 x + a 0 para aproximar os pontos experimentais. A linha a cheio parece aproximar melhor os pontos, mas como é que ela se obtém? Esta recta é a que minimiza a soma dos quadrados dos erros SSE(a 0,a 1 ) = n [y i f(x i )] 2 = i=1 n [y i (a 1 x i +a 0 )] 2 i=1 A função SSE(a 0,a 1 ) é uma função de duas variáveis. Sabemos do cálculo que o mínimo desta função ocorre quando as derivadas parciais em relação a cada uma das variáveis for zero: a 1 SSE(a 0,a 1 ) = 0, a 0 SSE(a 0,a 1 ) = 0 ou seja, n n 2 [y i (a 1 x i +a 0 )]x i = 0, 2 [y i (a 1 x i +a 0 )] = 0 i=1 i=1 Estas duas equações são chamadas as equações normais e podem ser escritas na forma ou seja, n n n n n a 1 x 2 i +a 0 x i = x i y i, a 1 x i +a 0 1 = i=1 i=1 i=1 i=1 i=1 i=1 x 2 i xi a 1 xi y = i (7.1) xi n yi a 0 n y i

178 Podemos resolver este sistema com os métodos que aprendemos no ensino secundário e obtemos a 1 = n x i y i x i yi x n 2 x 2 i (, a x i ) 2 0 = i yi x i y i xi n x 2 i ( x i ) 2 Felizmente, existe uma maneira de resolver o sistema ainda mais simples através da utilização de uma matriz denominada matriz de Vandermonde que também é utilizada na interpolação polinomial. A matriz de Vandermonde para este problema é dada por x 1 1 x V = x n 1 onde n é o número de pontos experimentais (no caso do exemplo da Figura 7.2 temos n = 16). Utilizando esta matriz podemos escrever o sistema (7.1) na forma (7.2) V T Va = V T y (7.3) onde y = (y 1,...,y n ) T e a = (a 1,a 0 ) T. Em Matlab podemos construir facilmente a matriz de Vandermonde e depois obter as estimativas â 1 e â 0 : x = [ ] ; y = [ ] ; V = [x, ones(size(x))]; coef = V \ y % o mesmo que coef =(V * V) \ (V * y) O retorno é coef = e e+002 Podemos observar que a primeira coluna de V contém os valores da função φ 1 (x) = x nos pontos experimentais e que a segunda coluna de V contém os valores da função φ 0 (x) = 1 nos ponto experimentais. Além disso, observamos que φ 1 (x) = x e φ 0 (x) = 1 são as funções base do espaço constituído por todos os polinómios de grau menor ou igual a um. Pensando neste contexto, podemos escrever xi y V T y = i = (x,y) = (φ 1,y) xi (1,y) (φ 0,y)

179 onde (.,.) representa o produto interno associado à norma 2: n (g,h) = g(x i )h(x i ) (7.4) Também podemos observar que (x,x) (x,1) V T V = = (φ 1,φ 1 ) (φ 1,φ 0 ) (1,x) (1,1) (φ 0,φ 1 ) (φ 0,φ 0 ) i=1 Consequentemente o sistema de equações normais pode ser escrito na forma (φ 1,φ 1 ) (φ 1,φ 0 ) a 1 = (φ 1,y) (7.5) (φ 0,φ 1 ) (φ 0,φ 0 ) (φ 0,y) a Procedimento Problema Dado um conjunto de pontos (x i,y i ), com i = 1,...,n, encontrar a função que melhor se ajusta a estes pontos no sentido dos mínimos quadrados. Hipóteses O modelo pode ser representado por y i = ax i +b+ǫ i onde y i é o valor da resposta no i-ésimo ponto experimental x i. a e b são os parâmetros desconhecidos que precisam de ser estimados. ǫ i é um erro aleatório tal que E[ǫ i ] = 0 e Var[ǫ i ] = σ 2, σ > 0 e Cov[ǫ i,ǫ j ] = 0 para i j. Ferramentas Álgebra linear. Processo Para encontrar a recta que melhor se ajusta a um conjunto de pontos no sentido dos mínimos quadrados podemos proceder de duas formas diferentes: 1. Construir a matriz de Vandermonde (7.2) e resolver o sistema (7.3) para obter os estimadores â 1 e â Calcular os produtos internos (φ i,φ j ) e (φ i,y), com i,j = 1,2 para obter o sistema (7.5). Resolver o sistema para obter os estimadores â 1 eâ 0. Após obter a, substituir os coeficientes estimados na função, ou seja, escrever f(x) = â 1 x+â 0 A primeira forma de resolver torna-se mais prática do ponto de vista computacional. Uma alternativa a estes dois procedimentos é utilizar a rotina Matlab que faz o ajuste por este método.

180 7.1.3 Exemplos Exemplo 32 A temperatura do ar numa sala de aula foi registada entre as seis horas da manhã e o meio dia. Os resultados são os seguintes: Hora Temperatura e encontram-se na Figura 7.3. A matriz de Vandermonde é a seguinte Temperatura em graus (y) Tempo em horas (x) Figura 7.3: Temperatura em função da hora do dia entre as seis da manhã e o meio dia. V = Resolvendo o sistemav T Va = V T y obtém-seâ = (2.5357, ) T. Consequentemente, a temperatura (y) e a hora (x) relacionam-se da seguinte forma: y(x) = x Podemos utilizar este modelo para, por exemplo, prever a temperatura na sala às 9 horas e 30 minutos. A previsão é y(9.5) = =

181 À uma da tarde, a previsão y(13) = = Exemplo 33 Um médico mediu a massa muscular num conjunto de indivíduos do mesmo sexo e registou a informação seguinte: Hora Temperatura A matriz de Vandermonde é a seguinte V = T Resolvendo o sistema V T Va = V T y obtém-se â = ( , ) T. Consequentemente, a massa muscular (y) e a idade (x) relacionam-se da seguinte forma: y(x) = x De acordo com esta informação, uma pessoa com 40 anos terá uma massa muscular igual a = quilogramas por metro quadrado. Uma estimativa do erro de aproximação é 16 SSE(â) = [y i ( x )] 2 = i= Problemas 1. Encontrar a recta que melhor se ajusta no sentido dos mínimos quadrados aos pontos da tabela seguinte x i y i Dê uma estimativa do erro da aproximação. 2. Encontrar a recta que melhor se ajusta no sentido dos mínimos quadrados aos pontos da seguinte tabela: x i y i

182 7.2 Regressão linear geral Na secção anterior apresentou-se o caso em que ajustamos uma recta a um conjunto de pontos no sentido dos mínimos quadrados. Nesta secção, vamos considerar o caso geral em que a função aproximadora é linear nos parâmetros desconhecidos Teoria Considere que a função aproximadora pertence a uma classe de funções que podem ser representadas como uma combinação linear das função base φ 0, φ 1,...,φ m : f(x) = m a j φ j (x) (7.6) j=0 onde a 0, a 1,..., a m são constantes reais. A função f que aproxima o conjunto de pontos (x i,y i ), com i = 1,...,n é aquela que minimiza a distância Euclidiana entre os pontos e os elementos da sua classe. A distância entre os pontos e uma função da forma (7.6) é dada por ( n ) 1/2 d(y,f) = y f 2 = [y i f(x i )] 2 O conjunto de constantesa 0,a 1,...,a m que minimiza esta norma é o mesmo que minimiza a soma dos quadrados dos erros i=1 n SSE(a) = y f 2 2 = [y i f(x i )] 2 A norma Euclidiana é induzida por um produto interno e, consequentemente, pode ser definida por g 2 = (g,g) 1/2 em que(.,.) é o produto interno (7.4). O mínimo de SSE(a) obtém-se derivando em ordem a cada constante desconhecida e igualando a zero: Esta equação é equivalente a 2 i=1 a j SSE(a) = 0, j = 0,1,2,...,m. n [y i f(x i )] f(x i ) = 0, j = 0,1,2,...,m. a j i=1 Mas a j f(x i ) = φ j (x i )

183 logo n [y i f(x i )]φ j (x i ) = 0, j = 0,1,2,...,m. i=1 Uma vez que (7.6) se verifica podemos escrever a equação anterior na forma: n n n n a 0 φ 0 (x i )φ j (x i )+a 1 φ 1 (x i )φ j (x i )+...+a m φ m (x i )φ j (x i ) = y i φ j (x i ), j = 0,1,2,...,m. i=1 i=1 i=1 i=1 Esta equação escrita em termos de produtos internos é a seguinte: a 0 (φ 0,φ j )+a 1 (φ 1,φ j )+...+a m (φ m,φ j ) = (y,φ j ), j = 0,1,2,...,m. o que dá origem ao sistema de equações normais (φ 0,φ 0 ) (φ 0,φ 1 )... (φ 0,φ m ) (φ 1,φ 0 ) (φ 1,φ 1 )... (φ 1,φ m )... (φ m,φ 0 ) (φ m,φ 1 )... (φ m,φ m ) a 0 a 1. a m = (y,φ 0 ) (y,φ 1 ). (y,φ m ) (7.7) A matriz do sistema normal pode-se escrever como o produto V T V em que V é a matriz de Vandermonde φ 0 (x 1 ) φ 1 (x 1 )... φ m (x 1 ) φ V = 0 (x 2 ) φ 1 (x 2 )... φ m (x 2 ) (7.8)... φ 0 (x n ) φ 1 (x n )... φ m (x n ) Consequentemente, o sistema normal pode escrever-se como em (7.3) em que neste caso a matriz de Vandermonde é dada por (7.8) ey = (y 1,y 2,...,y n ) T. Quando a função aproximadora é um polinómio de grau menor ou igual a m, f(x) = a 0 +a 1 x+a 2 x a m x m então a matriz de Vandermonde é dada por 1 x 1 x x m 1 1 x V = 2 x x m x n x 2 n... x m n (7.9) e o sistema de equações normais tem a forma n n i=1 x n i i=1 x2 i... n i=1 x n n i i=1 x2 i i=1 x3 i n n n i=1 xm i i=1 xm+1 i i=1 xm+2 i... n i=1 xm i n i=1 xm+1 i n i=1 x2m i a 0 a 1. a m = n i=1 y i n i=1 x iy i. n i=1 xm i y i

184 Uma forma de melhorar as propriedades numéricas do polinómio e do algoritmo de ajuste consiste em centrar e escalar os valores da variável independente: x i = x i x σ x onde x = n i=1 x i/n e σ x = n i=1 (x i x) 2 /(n 1) é a média e o desvio padrão das observações x 1,x 2...,x n, respectivamente. Ao fazer o ajuste pode acontecer haver problemas de mau condicionamento de matrizes. Nessas situações é frequente o problema resolver-se com o escalamento e centramento. O escalamento faz com que todas as observações estejam em pé de igualdade em relação à sua variação nos dados Procedimento Problema Pretende-se ajustar uma função da forma (7.6) a um conjunto de pontos (x i,y i ) pelo método dos mínimos quadrados. Hipóteses O modelo pode ser representado por y i = f(x i )+ǫ i onde y i é o valor da resposta no i-ésimo ponto experimental x i. A função f(x) é da forma (7.6) onde a são os parâmetros desconhecidos que precisam de ser estimados. ǫ i é um erro aleatório tal que E[ǫ i ] = 0 e Var[ǫ i ] = σ 2, σ > 0 e Cov[ǫ i,ǫ j ] = 0 parai j. Ferramentas Álgebra linear. Processo Tal como no caso da regressão linear simples, também aqui podemos proceder de duas formas diferentes: 1. Construir a matriz de Vandermonde (7.8) e resolver o sistema (7.3) para obter os estimadores â. 2. Cálcular os produtos internos (φ k,φ j ) e (φ k,y), com k,j = 1,2,...,m para obter o sistema (7.7). Resolver o sistema para obter os estimadores â. Após obter â, substituir os coeficientes estimados na função, ou seja, escrever f(x) = â 0 φ 0 (x)+â 1 φ 1 (x)+...+â m φ m (x). A primeira forma de resolver torna-se mais prática do ponto de vista computacional. Uma alternativa a estes dois procedimentos é utilizar a rotina Matlab que faz o ajuste por este método.

185 7.2.3 Exemplos Exemplo 34 Encontrar o polinómio de grau menor ou igual a três que melhor se ajusta aos pontos da tabela segundo o método dos mínimos quadrados. x i y i A informação contida nesta tabela encontra-se na Figura 7.4 A matriz de Vandermonde é a seguinte y x Figura 7.4: Diagrama de dispersão. V = Resolvendo o sistemav T Va = V T y ou seja, a 0 a 1 a 2 a 3 =

186 obtém-seâ = (0.0073,0.7417, ,0.0881) T. Consequentemente, f(x) = x x x 3 A função aproximadora está representada na Figura 7.5. Para ilustar o ajuste com os dados centrados e y x Figura 7.5: Diagrama de dispersão e função aproximadora. escalados, vejamos como isso se faz neste exemplo. Em primeiro lugar calculam-se a média e a variância dos x s e vem x = 1.25, σ x = Consequentemente, x = ( , , , , , ) T Neste caso, a matriz de Vandermonde e o sistema de equações normais tem a forma seguinte: V = a a = a a 3

187 Podemos observar na Tabela 7.1 que a matriz do sistema correspondente aos dados centrados e escalados é mais bem condicionada e, consequentemente, os resultados obtidos com esta matriz são mais fiáveis. Tabela 7.1: Normas da matriz do sistema com e sem transformação de dados. norma infinito norma 1 norma 2 A com x A com x Exemplo 35 Pretende-se aproximar os valores da tabela x i y i de duas formas: com um polinómio de grau 2 e com um polinómio de grau três. As matrizes de Vandermonde são as seguintes V 2 = V 3 = Resolvendo o sistemavi TV ia = Vi Ty, comi = 2,3, obtém-sep 2(x) = x x 2 e p 3 (x) = x x x 3. Os erros respectivos são SSE 2 = e SSE 3 = Consequentemente, o polinómio de grau três aproxima melhor os dados do que o de grau dois. Na Figura 7.6 podemos observar as duas aproximações. Exemplo 36 Considere a tabela de valores x i y i

188 observações p 2 (x) p 3 (x) 80 y x Figura 7.6: Aproximação com dois polinómios (grau 2 e grau 3). Pretende-se fazer um ajuste com uma função do tipo f(x) = a 0 sin(πx/2) + a 1 cos(πx/2). Neste caso, temos duas funções base que são φ 0 (x) = sin(πx/2) e φ 1 (x) = cos(πx/2). Calculando os produtos internos vem (φ 0,φ 0 ) = (φ 0,φ 1 ) = 5 (sin(πx i /2)) 2 = 2 i=1 5 sin(πx i /2)cos(πx i /2) = 0 i=1 (φ 1,φ 0 ) = (φ 0,φ 1 ) 5 (φ 1,φ 1 ) = (cos(πx i /2)) 2 = 3 (φ 0,y) = (φ 1,y) = i=1 5 y i sin(πx i /2) = 2 i=1 5 y i cos(πx i /2) = 3 i=1 O sistema de equações normal é a 0 a 1 = 2 3 Consequentemente, a função aproximadora é f(x) = sin(πx/2) cos(πx/2). Na Figura 7.7 estão representados os resultados.

189 y x Problemas Figura 7.7: Aproximação com a função f(x) = sin(πx/2) cos(πx/2). 1. É conhecida a seguinte tabela de valores para uma funçãof: x 0 π 2 π f(x) 0 1+π 2 4π 2 Determine a função do tipo asinx+bcosx que melhor se ajusta a f nos pontos da tabela e pelo método dos mínimos quadrados. 2. Considere a seguinte tabela de valores de uma função (a) Pretende-se determinar a função do tipo x i f(x i ) g(x) = α 4+x + βx 1+x 2 que melhor se ajusta (no sentido dos mínimos quadrados) aos pontos da tabela. Qual é a função aproximadora? Justifique. (b) Calcule a distância, no sentido dos mínimos quadrados, entre a função f e a obtida através do ajuste. 3. Considere a seguinte tabela de valores de uma função

190 x i f(x i ) (a) Pretende-se ajustar uma função do tipog(x) = C+D(x 3)+E(x 3 +1), comc,d,e R, aos4primeiros pontos da tabela. DetermineC,D, ee por forma a minimizar a função SSE(C,D,E) = 3 (f(x i ) (C +D(x 3)+E(x 3 +1))) 2 i=0 (b) Calcule o erro do ajuste da alínea anterior. 4. Considere os seguintes valores para a função x(t) = (1+t)e t x( 0.4) = , x( 0.3) = , x( 0.2) = , x( 0.1) = , x(0) = 1 (a) Obtenha uma aproximação desta função por um polinómio de primeiro grau usando o método dos mínimos quadrados com os três primeiros pontos indicados. (b) O polinómio do primeiro grau que se obteria do mesmo modo mas usando apenas os valores x( 0.4) ex( 0.3) é dado pela expressão p 1 (t) = (t+0.4) Justifique esta afirmação (sem repetir os cálculos do método). 5. Considere a seguinte tabela de valores de uma função i x i f(x i ) Determine a função do tipo h(x) = αx 2 + βcos(πx) que melhor se ajusta (no sentido dos mínimos quadrados) aos pontos da tabela. Calcule a distância, no sentido dos mínimos quadrados, entre a funçãof e a obtida através do ajuste. 6. Considere a seguinte tabela de valores de uma função h x 0.5π 0 0.5π π h(x) Determine a função do tipo α + βcosx + τ sinx que melhor aproxima h no sentido dos mínimos quadrados.

191 7. Sejaf(x) = x 3 +2x+1,x 0 = 0,x 1 = 1,x 2 = 2. Obtenha a aproximação def por uma função do tipog(x) = ae x +be x pelo método dos mínimos quadrados. 8. Obtenha a função h(x) = asin(x) + b que melhor aproxima log e (x) segundo o critério dos mínimos quadrados relativamente aos pontos {1,2,3}. 9. Considere a seguinte tabela de valores de uma função f x i 0 ln2 ln3 f i Determine a função g(x) = e a+x + 1 b que melhor se ajusta no sentido dos mínimos quadrados aos pontos da tabela. 10. Considere a tabela seguinte x i f i (a) Obtenha o polinómio de grau 1,p 1 (x), que se ajusta aos pontos da tabela. (b) Obtenha o polinómio de grau 2,p 2 (x), que se ajusta aos pontos da tabela. Qual é o valor previsto de f no ponto x = 1.4? (c) Admitindo que f (x) p 2(x) M x [1.2;1.5], obtenha um majorante do erro absoluto do valor obtido na alínea anterior. Sugestão: use o teorema de Lagrange. (d) Relativamente aos dois casos anteriores, calcule o valor das somas dos quadrados dos desvios correspondentes aos ajustamentos efectuados. Qual seria o valor dessa soma no caso de fazer o ajuste com um polinómio de grau 3? Justifique. 11. Considere a tabela seguinte x i f i Ajuste a função tabelada por uma função do tipo g(x) = 1 Ax+B Calcule o erro de aproximação e a distância def ag. 12. Determine a função do tipo g(x) = Be x +Ce x que melhor se ajusta aos pontos da tabela

192 x i f i Sejaf tal quef( 2) = 3,f(0) = 6 ef(2) = 15. Ajuste esta função por um polinómio de grau 1 e mostre que 3 [f(x i ) p 1 (x i )] 2 6 i=1 14. Realizou-se uma experiência onde se pretende relacionar duas quantidades x e y e recolheram-se os resultados que estão na tabela: x i y i Os especialistas na área onde se realiza a experiência têm fortes razões para assumir que a relação entre x ey é y = ax+be x, onde a ebsão coeficientes desconhecidos. (a) Calcule os estimadores â e ˆb dos coeficientes desconhecidos a e b, pelo método dos mínimos quadrados. (b) Calcule o erro associado à aproximação anterior: SSE = n [y i f(x i ;â,ˆb)] 2 i=1 onde f(x i ;â,ˆb) é a função aproximadora obtida pelo método dos mínimos quadrados.

193 Capítulo 8 Interpolação polinomial O origem da interpolação remonta aproximadamente ao ano 300 AC na antiga Babilónia. Os babilónios usavam não apenas a interpolação linear, mas também formas mais complexas de interpolação para prever as posições do sol, da lua e dos planetas que eles conheciam na altura. Os agricultores eram os primeiros a usar estas previsões para planear as suas sementeiras. Também na Grécia cerca de 150 DC, se usou a interpolação linear para construir uma função semelhante a uma sinusoidal para calcular posições de corpos celestiais. Cerca do ano 600 DC, os chineses usavam interpolação para construir o calendário Imperial. No ano 625 DC, o astrónomo indiano Brahmagupta introduziu um método de interpolação de segunda ordem da função seno e mais tarde um método de interpolação com pontos não igualmente espaçados. Ao longo dos tempos a interpolação tem sido utilizada para resolver os mais diversos problemas da vida real, especialmente na navegação oceânica. Dois dos métodos de interpolação que se apresentam nesta secção são o método de Newton e o de Lagrange. Newton começou a trabalhar em interpolação em A fórmula de Newton com diferenças divididas aparece em 1676 no livro intitulado "Regula Differentiarum". Em 1795 o Lagrange publicou a fórmula intitulada com o seu nome, embora há quem afirme que o desenvolvimento da dita fórmula se deva a Waring ou a Euler. Dado um conjunto de pontos (x i,y i ), i = 0,1,...,n, pretende-se encontrar uma função, habitualmente um polinómio, que passe em todos estes pontos. Dada a tabela de pontos x i y i

194 na Figura 8.1 está representado o polinómio de grau três que passa nestes pontos, ou seja, tal quep 3 (x i ) = y i, com i = 0,1,2, Y X Figura 8.1: Interpolação com quatro pontos e um polinómio de grau três. Frequentemente em engenharia temos apenas um conjunto de pontos experimentais e a resposta do sistema nesses pontos. A interpolação pode ser usada para estimar a resposta do sistema em pontos que não estão no conjunto de pontos experimentais para os quais sabemos a resposta. Neste capítulo, serão apresentados três métodos para construir o polinómio interpolador com base numa tabela de valores: 1. O método de Vandermonde; 2. O método de Lagrange; e 3. O método de Newton. 8.1 Polinómios Uma das mais úteis e conhecidas classes de funções reais de variável real é a classe dos polinómios. Uma razão para a sua importância é que eles aproximam uniformemente funções contínuas. Dada uma função contínua num intervalo fechado de R, existe sempre um polinómio que está tão próximo quanto queiramos da função. Este resultado está ilustrado nas Figuras 8.2, 8.3 e 8.4 e está expresso no teorema de Weierstrass e que se apresenta em seguida. O teorema de Weierstrass diz-nos que toda a função contínua definida num intervalo[a; b] pode ser aproximada

195 uniformemente tanto quanto desejarmos por um polinómio. Este teorema tem especial relevância em interpolação. Contudo há que salientar que quando a função que pretendemos aproximar tem zonas planas, ou quase planas, paralelas ao eixo dos x s relativamente grandes, então o grau do polinómio é tão elevado que do ponto de vista prático em engenharia torna-se irrealizável computacionalmente. Nesses casos, tem de se optar por aproximações com outro tipo de funções f(x) p 1 (x) f(x) + ε f(x) ε X Figura 8.2: Aproximação por um polinómio de grau 1. Teorema 5 Sejaf definida e contínua em[a;b]. Para cadaǫ > 0, existe um polinómiop(x), tal que f(x) p(x) < ǫ, x [a;b] Definition 1 Seja p n : [a;b] R, n = 0,1,2..., uma sucessão de funções reais de variável real. Diz-se que a sucessão{f n } é uniformemente convergente com limitef : [a;b] R se para qualquer ǫ > 0, existe um número natural N tal que para todo o x [a;b] e todo o n N, f n (x) f(x) < ǫ. A sucessão{f n } converge paraf se e só se o supremoα n = sup x [a;b] f n (x) f(x) tende para zero. Os polinómios também têm outras grandes vantagens. São fáceis de derivar e o seu integral indefinido é fácil de determinar. Além disso, tanto a derivada como o integral de um polinómio também é um polinómio. Por todas estas razões os polinómios são muitos utilizados para aproximar funções contínuas.

196 f(x) p 2 (x) f(x) + ε f(x) ε X Figura 8.3: Aproximação por um polinómio de grau f(x) p 3 (x) f(x) + ε f(x) ε X Figura 8.4: Aproximação por um polinómio de grau 3.

197 Na Secção 3.1 falou-se nos polinómios de Taylor para aproximar funções contínuas e vimos que a série de Taylor é uma das ferramentas fundamentais em análise numérica. Contudo, a interpolação polinomial não utiliza os polinómios de Taylor. Os polinómios de Taylor aproximam bem uma função apenas num ponto específico; concentram a sua precisão num ponto. Um bom polinómio interpolador deve aproximar relativamente bem a função em todos os pontos de um intervalo e os polinómios de Taylor, em geral, não são capazes de fazer isso. Por exemplo, se pensarmos na função f(x) = e x, o seu desenvolvimento em série de Taylor em torno do ponto x 0 = 0 é e x = 1+x+ x2 2! + x3 xn ! n! + xn+1 e ξ (n+1)! onde ξ int(x,0). Os polinómios de Taylor são os seguintes: p 0 (x) = 1, p 1 (x) = 1+x, p 2 (x) = 1+x+ x2 2, p 3 (x) = 1+x+ x2 2 + x3 3!, p 4 (x) = 1+x+ x2 2 + x3 3! + x4 4!,. A representação gráfica destes polinómios encontra-se na Figura 8.5. A aproximação torna-se cada vez pior à medida que nos afastamos do ponto x = 0. Contudo, à medida que o grau do polinómio aumenta, a aproximação fica cada vez melhor, ou seja, o polinómio fica cada vez mais próxima da função e x. Contudo, este comportamento não é geral para todas as funções contínuas. Por exemplo, quando analisamos os polinómios de Taylor da função f(x) = 1/x em torno do ponto x 0 = 1 verificamos que o valor aproximado, por exemplo, nos pontos x = 2,3,4 varia muito de polinómio para polinómio (ver a Figura 8.6 e a Tabela8.1). Os valores exactos são f(1) = 1, f(2) = 0.5, f(3) = 0.333(3) ef(4) = A expressão geral para as derivadas def éf (k) (x) = ( 1) k k!x k 1 e os polinómios de Taylor são: p 0 (x) = 1, p 1 (x) = 1 (x 1), p 2 (x) = 1 (x 1)+(x 1) 2, p 3 (x) = 1 (x 1)+(x 1) 2 (x 1) 3, p 4 (x) = 1 (x 1)+(x 1) 2 (x 1) 3 +(x 1) 4,.

198 9 8 7 e x p 1 (x) p 2 (x) p 3 (x) p 4 (x) X Figura 8.5: A função f(x) = 1/x e alguns polinómios de Taylor. Tabela 8.1: Aproximação através dos polinómios de Taylor. i p i (1) p i (2) p i (3) p i (4)

199 f(x) p 1 (x) p 2 (x) p 3 (x) p 4 (x) p 5 (x) p 6 (x) X Figura 8.6: A função f(x) = 1/x e alguns polinómios de Taylor.

200 Estes comportamentos dos polinómios de Taylor devem-se ao facto de toda a informação usada na aproximação estar concentrada num único ponto x 0. Esta dificuldade faz com que só os polinómios de Taylor sejam utilizados para aproximar valores de uma função perto do ponto x 0 em torno do qual se faz o desenvolvimento. Antes de passarmos às secções seguintes convém lembrar duas definições: 1. Um monómio é um polinómio da forma x n e o grau deste monómio é n; 2. Quando um polinómio de escreve na sua forma expandida, ou seja, como a soma de produtos de escalares por monómios, p(x) = a n x n +...+a 2 x 2 +a 1 x+a 0, o grau do polinómio é o máximo dos graus dos monómios que compõem o polinómio. Por exemplo, o grau de p(x) = 3x 5 +x 3 8x 2 +5 é 5. Observamos assim que a soma de dois polinómios de graundá um polinómio de grau menor ou igual a n. Além disso, o grau do polinómio obtido multiplicando dois polinómios é igual à soma dos graus dos polinómios envolvidos na multiplicação. 8.2 Método de Vandermonde O método de Vandermonde é o método mais directo para construir um polinómio interpolador. A substituição dos pontos experimentaisx i no polinómio e a exigênciap(x i ) = y i dá origem a um sistema linear de equações, onde as incógnitas são os coeficientes no polinómio, que pode ser resolvido, por exemplo, pelo método de eliminação de Gauss. Este método generaliza-se para situações em que a função aproximadora não é um polinómio. Bases Capítulo Teoria Dada a tabela de pontos x i y i

201 pretende-se encontrar o polinómio de grau menor ou igual a dois que interpola os pontos desta tabela, ou seja, tal quep(x i ) = y i. Para isso escrevemos as equações seguintes: p 2 (0) = 0 p 2 (4) = 64 p 2 (9) = 81 Uma vez quep 2 (x) se pode escrever na forma p 2 (x) = a 2 x 2 +a 1 x+a 0, obtém-se a 0 = 0 16a 2 +4a 1 +a 0 = 64 81a 2 +9a 1 +a 0 = 81 ou seja, a 2 a 1 a 0 = Se tivermos uma tabela com (n + 1) pontos (x 0,y 0 ), (x 1,y 1 ),..., (x n,y n ) podemos obter o polinómio de grau menor ou igual anque passa nestes pontos do seguinte modo: 1. escreverp n (x) = a n x n +...+a 2 x 2 +a 1 x+a 0 ; 2. calcular o polinómio nos pontos x 0, x 1,..., x n e escrever p(x i ) = y i, i = 0,1,...,n; 3. resolver o sistema de equações resultante. Em vez de seguir estes três passos podemos escrever logo o sistema Va = y, (8.1) onde é a matriz de Vandermonde, V = x n 0 x n x 0 1 x n 1 x n x x n n x n 1 n... x n 1 y = (y 0,y 1,...,y n ) T.. (8.2)

202 é o vector das respostas e a = (a n,a n 1,...,a 1,a 0 ) T são os coeficientes desconhecidos do polinómio. Será que este sistema tem solução única? Dados dois pontos vemos que só há uma recta que passa nesses pontos. E se tivermos mais do que dois pontos? Aí não é tão fácil de ver que existe um único polinómio a passar pelos pontos. Teorema 6 Dadosx 0,x 1,...,x n pontos distintos, então existe um único polinómio interpoladorp n (x) com grau menor ou igual anque passa através dos n pontos (x 0,y 0 ), (x 1,y 1 ),..., (x n,y n ), onde x i,y i R. Demonstração Suponha-se que p(x) e q(x) são dois polinómios de grau n que passam nos pontos(x 0,y 0 ),(x 1,y 1 ),...,(x n,y n ), ondex 1,...,x n são pontos distintos. O polinómior(x) = p(x) q(x) é de grau menor ou igual a n e tem (n+1) raízes porque r(x i ) = 0 para i = 0,1,...,n. Contudo, um polinómio de grau n não pode ter(n+1) raízes a menos que seja o polinómio nulo. Um sistema linear de equações tem solução única se o seu determinante for diferente de zero. Pode demonstrar-se por indução que det(v) = n n (x i x j ) i=0 j=i+1 Este determinante é diferente de zero se e só se os pontos x i forem distintos. Consequentemente, o polinómio interpolador é único Procedimento Primeiro problema Dado um conjunto de pontos (x i,y i ), com i = 0,1,...,n, encontrar o polinómio p n (x) = a n x n +...+a 2 x 2 +a 1 x+a 0 (de grau menor ou igual an) que os interpola, ou seja que passa nos pontos. Hipóteses Os pontos x 0, x 1,..., x n têm de ser distintos. Processo Construir a matriz de Vandermonde (8.2) calculando o valor das funções base x 0, x, x 2,... x n nos pontos x 0, x 1,...,x n. Resolver o sistema (8.1). Por exemplo, considere-se a tabela

203 x i y i A matriz de Vandermonde para obter o polinómio interpolador de grau menor ou igual a 4, que interpola os pontos desta tabela, é dada por x n 0 x0 n 1... x 0 1 x V = n 1 x n x x n n xn n 1... x n 1 Esta matriz pode obter-se utilizando o Matlab através de: x = [ ]; V = vander(x) V = ou alternativamente, x = [ ] ; V = [x.^4 x.^3 x.^2 x x.^0]; Os coeficientes desconhecidos do polinómio são obtidos da seguinte forma: y = [ ] ; a = V \ y a = Segundo problema Dado um conjunto de pontos (x i,y i ), com i = 0,1,...,n, encontrar uma função da forma g(x) = a n φ n (x)+...+a 2 φ 2 (x)+a 1 φ 1 (x)+a 0 φ 0 (x) onde φ k s são as funções base. No caso da interpolação polinomial tém-se φ k (x) = x k.

204 Hipóteses Os pontos x 0, x 1,..., x n têm de ser distintos e as funções φ k têm de ser linearmente independentes. Processo Construir a matriz de Vandermonde modificada calculando o valor das funções base φ n (x),..., φ 1 (x), φ 0 (x) nos pontos x 0, x 1,...,x n : φ n (x 0 ) φ n 1 (x 0 )... φ 1 (x 0 ) φ 0 (x 0 ) φ V = n (x 1 ) φ n 1 (x 1 )... φ 1 (x 1 ) φ 0 (x 1 ).... φ n (x n ) φ n 1 (x n )... φ 1 (x n ) φ 0 (x n ) Resolver o sistema Va = y. Por exemplo, considere-se a tabela x i y i A matriz de Vandermonde modificada para obter uma função do tipo g(x) = a 2 x+a 1 cos(x)+a 0 sin(x) que interpola os pontos desta tabela é dada por x 0 cos(x 0 ) sin(x 0 ) V = x 1 cos(x 1 ) sin(x 1 ) x 2 cos(x 2 ) sin(x 2 ) Esta matriz pode obter-se utilizando o Matlab através de: x = [ ] ; V = [x.^0 cos(x) sin(x)] V = Os coeficientes desconhecidos do polinómio são obtidos da seguinte forma: y = [ ] ; a = V \ y a =

205 8.2.3 Exemplos Exemplo 37 Encontrar o polinómio que interpola os pontos (1, 1.3), (2, 1.6), (3, 1.9). Como temos três pontos o polinómio é de grau menor ou igual a dois, ou seja, p 2 (x) = a 2 x 2 + a 1 x + a 0. A matriz de Vandermonde é dada por V = Resolvendo o sistemava = y, ondex = (1,2,3) T ey = (1.3,1.6,1.9) T, obtém-sea = (0.0,0.3,1.0) T. Por conseguinte, o polinómio interpolador é p(x) = 0.3x+1.0. Exemplo 38 Encontrar o polinómio que interpola os pontos (2, 2), (4, 1), (6, 4) e (8, 2). Como temos três pontos o polinómio é de grau menor ou igual a três, ou seja,p 3 (x) = a 3 x 3 +a 2 x 2 +a 1 x+a 0. A matriz de Vandermonde é dada por V = Resolvendo o sistemava = y, onde x = (2,4,6,8) T ey = (2,1,4,2) T, obtém-se a = ( ,2.7500, , ) T. Por conseguinte, o polinómio interpolador é p 3 (x) = x x x Exemplo 39 Um amplificador operacional (ampop) é um amplificador de voltagem electrónico DC-couple com alto ganho com uma entrada diferencial e, frequentemente, com uma única saída. Os amplificadores operacionais são "building blocks" importantes para um grande número de circuitos eléctricos. Eles são um tipo de amplificadores diferenciais. A saída de um amplificador diferencial obtém-se multiplicando a diferença entre duas entradas (voltagem offset de entrada) por uma constante (ganho diferencial), ou seja, V out = A d (V in + V + in ), onde V in e V in são as voltagens de entrada e A d é o ganho diferencial. Se um ampop tem um ganho de voltagem de dez e uma voltagem offset de entrada de dez microvolts, então irá aparecer na saída um nível de cem microvolts sem nenhuma entrada. Os fabricantes tentam desenhar ampops de tal forma que a voltagem offset de entrada seja tão pequena quanto possível para minimizar este erro de voltagem na saída do amplificador, especialmente em aplicações onde são amplificadas pequenas voltagens. Suponhamos que são amostradas várias voltagens de offset de entrada e as respectivas saídas num ampop. O resultado da amostragem encontra-se na tabela seguinte:

206 x i y i A matriz de Vandermonde é V = e o polinómio interpolador é p 2 (x) = 2x 2 3x. Uma vez que sabemos que quando a voltagem offset de entrada é zero então a saída é zero, ou seja p 2 (0) = 0, podíamos logo considerar que a 0 = 0 e em vez de trabalharmos com uma matriz3 3 trabalharíamos com a matriz de Vandermonde seguinte: V = Exemplo 40 Encontrar o polinómio interpolador dos pontos da tabela utilizando o Matlab. x i y i x = [ ] ; y = [ ] ; V = vander(x) V = 1.0e+003 * a = V \ y a = Por conseguinte, o polinómio interpolador ép 4 (x) = 0.04x x 3 0.7x 2 2x 3. Na Figura 8.7 estão representados o polinómio e os pontos da tabela.

207 X Figura 8.7: Interpolação com cinco pontos e um polinómio de grau quatro. Exemplo 41 Encontrar a função da forma g(x) = a 2 x + a 1 cos(x) + a 0 sin(x) que interpola os pontos (0.2, 0.6),(1.5, 0.1) e(2.3, 3.5). x = [ ] ; y = [ ] ; V = [x cox(x) sin(x)] V = a = V \ y a = Logo a função interpoladora é g(x) = x cos(x) sin(x); ver a Figura 8.8 onde estão representados a função interpoladora e os pontos da tabela.

208 X Figura 8.8: Interpolação com três pontos e uma função não polinomial. 8.3 Método de Lagrange Vimos anteriormente que o problema da interpolação nos leva à resolução de um sistema linear. Se usarmos o base usual dos polinómios {x n,x n 1,...,x x,x,1}, então o sistema linear a que somos conduzidos tem como matriz do sistema a matriz de Vandermonde. Escolhendo outra base, podemos obter um sistema muito mais fácil de resolver. Se escolhermos a base de Lagrange, a matriz do sistema é a matriz identidade e, por conseguinte, obtém-se logo a solução. A base de Lagrange inverte a matriz de Vandermonde Teoria O método de Vandermonde é um método simples para encontrar o polinómio interpolador de uma função, mas nem sempre é o mais conveniente do ponto de vista prático. O método de Lagrange é um método simples e intuitivo especialmente se o número de pontos não for elevado, isto é, se o número de pontos estiver entre dois e quatro inclusive.

209 A base de Lagrange é dada por l i (x) = n j=0,j i Podemos observar que para k i obtemos l i (x k ) = e também verificamos que x x j x i x j = x x 0 x i x 0... x x i 1 x i x i 1 x x i+1 x i x i+1... x x n x i x n n j=0,j i l i (x i ) = x k x j x i x j = x k x 0 x i x 0... x k x k x i x k... x k x n x i x n = 0 n j=0,j i x i x j x i x j = x i x 0 x i x 0... x i x n x i x n = 1 ou seja, todos os polinómios da base de Lagrange valem zero se x = x i e valem 1 se x = x k com k i: 1, se i = k l i (x k ) = δ ik = 0, se i k A função δ ik é conhecida como função delta de Kronecker. Quando construímos o sistema de Vandermonde com esta base e função aproximadora p n (x) = a 0 l 0 (x) + a 1 (x)l 1 (x) a n l n (x) obtemos a 0 a 1. a n f(x 0 ) f(x = 1 ). f(x n ) Como a matriz do sistema é a matriz identidade vem directamente a i = f(x i ) e, por conseguinte, o polinómio interpolador de Lagrange é dado por: Podemos verificar que de facto p n (x 0 ) = p n (x) = n f(x i )l i (x) i=0 n f(x i )l i (x k ) = f(x 0 )l 0 (x 0 )+f(x 1 )l 1 (x 0 )+...+f(x n )l n (x 0 ) = i=0 = = f(x 0 ) n p n (x 1 ) = f(x i )l i (x k ) = f(x 0 )l 0 (x 1 )+f(x 1 )l 1 (x 1 )+...+f(x n )l n (x 1 ) = i=0 = = f(x 1 ). p n (x n ) = n f(x i )l i (x k ) = f(x 0 )l 0 (x n )+f(x 1 )l 1 (x n )+...+f(x n )l n (x n ) = i=0 = = f(x n )

210 Exemplo 42 Considere a tabela de valores x i y i 2 4 Para obtermos o polinómio interpolador de Lagrange que passa nos pontos da tabela, temos de construir a base de Lagrange: l 0 (x) = x x 1 x 0 x 1 = x = 1 8 (5x 4) l 1 (x) = x x 0 x 1 x 0 = x ( 0.8) 0.8 ( 0.8) = 1 8 (5x+4) Em seguida, fazemos a somay 0 l 0 (x)+y 1 l 1 (x) para obter x x 1 x x 0 p 1 (x) = y 0 +y 1 = 2 x 0 x 1 x 1 x 0 8 (5x 4)+ 4 8 (5x+4) = 1 4 (5x 4) (5x+4) = 2 4 x+1 Na Figura 8.9 está representado o polinómio interpolador de Lagrange e os produtos y 0 l 0 (x) ey 1 l 1 (x) p 1 (x) y 0 l 0 (x) y 1 l 1 (x) X Figura 8.9: Polinómio interpolador de Lagrange, função exacta e produtos y i l i (x), i = 0,1,2. Exemplo 43 Considere a tabela de valores x i y i

211 Neste caso, a base de Lagrange é dada por: l 0 (x) = x x 1 x x 2 x 0 x 1 x 0 x 2 x 0 = x = x(x 1.5) l 1 (x) = x x 0 x x 2 x 1 x 0 x 1 x 2 = x ( 0.8) 0 ( 0.8) x = (x+0.8)(x 1.5) l 2 (x) = x x 0 x x 1 x 2 x 0 x 2 x 1 = x ( 0.8) 1.5 ( 0.8) x = (x+0.8)x Por conseguinte, o polinómio interpolador de Lagrange obtém-se fazendo a somay 0 l 0 (x)+y 1 l 1 (x)+y 2 l 2 (x) p 2 (x) = y 0 x x 1 x 0 x 1 x x 2 x 0 x 2 +y 1 x x 0 x 1 x 0 x x 2 x 1 x 2 +y 2 x x 0 x 2 x 0 x x 1 x 2 x 1 = ( )(0.5435)x(x 1.5) +(0)( )(x + 0.8)(x 1.5) +( )(0.2899)(x + 0.8)x = x(x 1.5) x(x+0.8) = x x Na Figura 8.10 estão representados a função f(x) = tan(x) e o seu polinómio interpolador de Lagrange nos pontos 0.8, 0, e 1.5. Exemplo 44 Considere a tabela de valores x i y i Neste caso, a base de Lagrange é dada por: l 0 (x) = x x 1 x x 2 x 0 x 1 x 0 x 2 x 0.2 = x = (x 0.2)(x 1.4)

212 20 15 p 2 (x) f(x) X Figura 8.10: Polinómio interpolador de Lagrange, função exacta e produtos y i l i (x), i = 0,1,2. l 1 (x) = x x 0 x x 2 x 1 x 0 x 1 x 2 = x ( 0.9) 0 ( 0.9) x = (x+0.9)(x 1.4) l 2 (x) = x x 0 x x 1 x 2 x 0 x 2 x 1 = x ( 0.9) 1.4 ( 0.9) x = (x+0.8)(x 0.2) Por conseguinte, o polinómio interpolador de Lagrange obtém-se fazendo a somay 0 l 0 (x)+y 1 l 1 (x)+y 2 l 2 (x) p 2 (x) = y 0 x x 1 x 0 x 1 x x 2 x 0 x 2 +y 1 x x 0 x 1 x 0 x x 2 x 1 x 2 +y 2 x x 0 x 2 x 0 x x 1 x 2 x 1 = ( )(0.3953)(x 0.2)(x 1.4)+(0.2027)( )(x+0.9)(x 1.4)+ +(5.7979)(0.3623)(x + 0.9)(x 0.2) = (x 0.2)(x 1.4) (x+0.9)(x 1.4) (x+0.9)(x 0.2) A Figura 8.11 mostra os produtos y i l i (x), i = 0,1,2, o polinómio interpolador de Lagrange e a função exacta f(x) = tan(x). Podemos observar que y 0 l 0 (x) vale zero nos pontos 0.2 e 1.4 e vale y 0 = no ponto 0.9. O produto y 1 l 1 (x) vale zero nos pontos 0.9 e 1.4 e assume o valor y 1 = em 0.2. Finalmente, y 2 l 2 (x) tem o valor zero nos pontos 0.9 e 0.2 e vale y 2 = em1.4.

213 p (x) 2 f( 0.9) l (x) 0 f(0.2) l (x) 1 f(1.4) l (x) 2 f(x) X Figura 8.11: Polinómio interpolador de Lagrange, função exacta e produtos y i l i (x), i = 0,1,2. Exemplo 45 Considere a tabela de valores x i y i Neste caso, a base de Lagrange é dada por: l 0 (x) = x x 1 x x 2 x x 3 x 0 x 1 x 0 x 2 x 0 x 3 x ( 0.8) = ( 1.2) ( 0.8) x 0 ( 1.2) 0 = (x+0.8)x(x 1.5) l 1 (x) = x x 0 x x 2 x x 3 x 1 x 0 x 1 x 2 x 1 x 3 x ( 1.2) = ( 0.8) ( 1.2) x 0 ( 0.8) 0 = (x+1.2)x(x 1.5) l 2 (x) = x x 0 x x 1 x x 3 x 2 x 0 x 2 x 1 x 2 x 3 = x ( 1.2) 0 ( 1.2) x ( 0.8) 0 ( 0.8) x = (x+1.2)(x+0.8)(x 1.5) l 3 (x) = x x 0 x x 1 x x 2 x 3 x 0 x 3 x 1 x 3 x 2 = x ( 1.2) 1.5 ( 1.2) x ( 0.8) 1.5 ( 0.8) x = (x+1.2)(x+0.8)x x 1.5 ( 1.2) 1.5 x 1.5 ( 0.8) 1.5

214 O polinómio interpolador de Lagrange obtém-se fazendo a somay 0 l 0 (x)+y 1 l 1 (x)+y 2 l 2 (x)+y 3 l 3 (x): p 3 (x) = y 0 x x 1 x 0 x 1 x x 2 x 0 x 2 x x 3 x 0 x 3 +y 1 x x 0 x 1 x 0 x x 2 x 1 x 2 x x 3 x 1 x 3 + x x 0 +y 2 x x 1 x x 3 x x 0 +y 3 x x 1 x x 2 x 2 x 0 x 2 x 1 x 2 x 3 x 3 x 0 x 3 x 1 x 3 x 2 = ( )( )(x + 0.8)x(x 1.5) +( )(1.3587)(x + 1.2)x(x 1.5) + +(0)( )(x+1.2)(x+0.8)(x 1.5)+( )(0.1074)(x+1.2)(x+0.8)x = (x+0.8)x(x 1.5) (x+1.2)x(x 1.5) (x+1.2)(x+0.8)x Exemplo 46 Considere-se a função f(x) = 1/x nos pontos 0.2, 1.2,2.2, 3.2 e 4.2: x i y i 5 5/6 5/11 5/16 5/21 Como temos quatro pontos o polinómio interpolador é de grau menor ou igual a 3. A base é constituída pelas seguintes funções: l 0 (x) = x x 1 x x 2 x x 3 x x 4 x 0 x 1 x 0 x 2 x 0 x 3 x 0 x 4 = x x x x = 1 24 (x 1.2)(x 2.2)(x 3.2)(x 4.2) = 1 15 (5x 6)(5x 11)(5x 16)(5x 21) l 1 (x) = x x 0 x x 2 x x 3 x x 4 x 1 x 0 x 1 x 2 x 1 x 3 x 1 x 4 = x x x x = 1 6 (x 0.2)(x 2.2)(x 3.2)(x 4.2) = 4 15 (5x 1)(5x 11)(5x 16)(5x 21) l 2 (x) = x x 0 x x 1 x x 3 x x 4 x 2 x 0 x 2 x 1 x 2 x 3 x 2 x 4 = x x x = 1 4 (x 0.2)(x 1.2)(x 3.2)(x 4.2) x = 2 5 (5x 1)(5x 6)(5x 16)(5x 21)

215 l 3 (x) = x x 0 x x 2 x x 4 x x 4 x 3 x 0 x 3 x 2 x 3 x 4 x 3 x 4 = x x x x = 1 6 (x 0.2)(x 1.2)(x 2.2)(x 4.2) = 4 15 (5x 1)(5x 6)(5x 11)(5x 21) l 4 (x) = x x 0 x x 1 x x 2 x x 3 x 4 x 0 x 4 x 1 x 4 x 2 x 4 x 3 = x x x x = 1 24 (x 0.2)(x 1.2)(x 2.2)(x 3.2) = 1 15 (5x 1)(5x 6)(5x 11)(5x 16) Estes polinómios estão representados na Figura polinómio interpolador construído a partir destas função base p 4 (x) = f(x 0 )l 0 (x)+f(x 1 )l 1 (x)+f(x 2 )l 2 (x)+f(x 3 )l 3 (x)+f(x 4 )l 4 (x) = 5l 0 (x)+ 5 6 l 1(x) l 2(x) l 3(x) l 4(x) Na Figura 8.13 podemos observar a função e o = 1 3 (5x 6)(5x 11)(5x 16)(5x 21) 2 9 (5x 1)(5x 11)(5x 16)(5x 21) (5x 1)(5x 6)(5x 16)(5x 21) 1 12 (5x 1)(5x 6)(5x 11)(5x 21) (5x 1)(5x 6)(5x 11)(5x 16)

216 l 0 (x) l 1 (x) l 2 (x) l 3 (x) l 4 (x) X Figura 8.12: Base de Lagrange com cinco pontos f(x) = 1 / x p 4 (x) Figura 8.13: Polinómio interpolador de Lagrange e funçãof(x) = 1/x com cinco pontos.

217 8.4 Método de Newton O método de Newton é uma técnica para construir polinómios interpoladores que pode ser realizada de uma forma simples num programa de computador. O algoritmo é numericamente estável recursivo e rápido. O método de Lagrange é fácil de utilizar com lápis e papel, pelo menos para graus iguais ou inferiores a 2, mas é péssimo do ponto de vista de programação. Se tivermos o polinómio interpolador de Lagrange que passa nos pontos (x 0,y 0 ),..., (x n,y n ), este dá-nos pouca informação acerca do polinómio interpolador que passa nos pontos(x 0,y 0 ),...,(x n,y n ) e ainda no ponto(x n+1,y n+1 ). O método de Newton dá-nos uma maneira de, dado um polinómio interpolador que passa em n + 1 pontos, construir um polinómio interpolador que passa nesses n + 1 pontos e mais um ponto (x n+1,y n+1 ). Para perceber o processo de construção iremos ver como se constrói um polinómio de grau 1 a partir de um de grau zero e um de grau 2 a partir de um de grau 1. Considere-se a tabela x i y i Com base nesta tabela iremos construir os polinómios de p 0 (x), p 1 (x), e p 2 (x) de graus zero, um e dois que interpolam a função. p 0 (x) interpola a função no primeiro ponto, p 1 (x) interpola a função nos primeiro e segundo pontos e p 2 (x) interpola a função em todos os pontos da tabela. Polinómio constante (um ponto, n = 0). O polinómio constante que passa no ponto (x 0,y 0 ) é dado porp 0 (x) = y 0. Neste caso, p 0 (x) = 2 como podemos observar na Figura Polinómio linear (dois pontos, n = 1). Dadop 0 (x) defina-se p 1 (x) tal que p 1 (x) = p 0 (x)+ p 1 (x) Comop 0 (x) = y 0 vem, p 1 (x) = p 1 (x) y 0

218 Y X Figura 8.14: Polinómio interpolador de grau zero. O polinómio p 1 (x) tem grau menor ou igual a um e tem um zero emx = x 0, logo p 1 (x) = c 1 (x x 0 ) Das duas últimas equações, e atendendo que p 1 (x 1 ) = y 1, segue que c 1 (x 1 x 0 ) = y 1 y 0 Logo Por conseguinte, No caso dos pontos da tabela obtém-se c 1 = y 1 y 0 x 1 x 0 p 1 (x) = y 0 + y 1 y 0 x 1 x 0 (x x 0 ) p 1 (x) = 2+ 3 ( 2) (x 1) = 2+5(x 1) 2 1 O polinómio linear que passa nos pontos (1, 2) e (2,3) e o polinómio p 1 (x) estão representados na Figura 8.15.

219 4 3 pontos p 1 (x) p 1 (x) 2 1 Y X Figura 8.15: Polinómio interpolador de grau um. Polinómio quadrático (três pontos, n = 2). Neste caso, define-se o polinómio p 2 (x) = p 1 (x)+ p 2 (x) ou seja, p 2 (x) = p 2 (x) p 1 (x) O polinómio p 2 (x) tem dois zeros: p 2 (x 0 ) = 0 p 2 (x 1 ) = 0 e sendo assim, Por conseguinte, Masp 2 (x 2 ) = y 2 e logo p 2 (x) = c 2 (x x 0 )(x x 1 ) c 2 (x 2 x 0 )(x 2 x 1 ) = p 2 (x 2 ) p 1 (x 2 ) p 1 (x 2 ) = y 0 + y 1 y 0 x 1 x 0 (x 2 x 0 ) c 2 (x 2 x 0 )(x 2 x 1 ) = y 2 y 0 y 1 y 0 x 1 x 0 (x 2 x 0 )

220 Somando e subtraindo x 1 e y 1 no segundo membro da equação obtém-se ou seja, c 2 (x 2 x 0 )(x 2 x 1 ) = y 2 y 0 +y 1 y 1 y 1 y 0 x 1 x 0 (x 2 x 0 +x 1 x 1 ) c 2 (x 2 x 0 )(x 2 x 1 ) = y 2 y 0 +y 1 y 1 y 1 y 0 x 1 x 0 (x 2 x 1 ) y 1 y 0 x 1 x 0 (x 1 x 0 ) Daqui obtém-se c 2 = y 2 y 1 (x 2 x 0 )(x 2 x 1 ) + y 1 y 0 (x 2 x 0 )(x 2 x 1 ) y 1 y 0 (x 2 x 0 )(x 2 x 1 ) y 2 y 1 (x 2 x 0 )(x 2 x 1 ) O segundo e o quarto termos da soma cancelam-se e vem c 2 = Reduzindo ao mesmo denominador, ou seja, Definindo podemos escrever y 2 y 1 (x 2 x 0 )(x 2 x 1 ) y 1 y 0 (x 2 x 0 )(x 2 x 1 ) c 2 = (y 2 y 1 )(x 1 x 0 ) (y 1 y 0 )(x 2 x 0 ) (x 2 x 0 )(x 2 x 1 )(x 1 x 0 ) c 2 = y 2 y 1 x 2 x 1 y 1 y 0 x 1 x 0 x 2 x 0 y 10 = y 1 y 0 x 1 x 0 e y 21 = y 2 y 1 x 2 x 1 c 2 = y 21 y 10 x 2 x 0 No caso da tabela o polinómio interpolador é o seguinte: p 2 (x) = 2+5(x 1)+ (1 3)(2 1) (3 ( 2))(4 1) (x 1)(x 2) = (4 1)(4 2)(2 1) = 2+5(x 1) 2(x 1)(x 2) A representação gráfica deste polinómio encontra-se na Figura A fórmula geral para o polinómio de grau menor ou igual a n que interpola os pontos (x 0,y 0 ), (x 1,y 1 ),..., (x n,y n ) é a seguinte: p n (x) = y 0 +y 10 (x x 0 )+y 210 (x x 0 )(x x 1 )+...+y n (x x 0 )...(x x n 1 ) É de salientar que o coeficiente y n...210, conhecido como a diferença dividida de maior ordem (ordem n), que é o coeficiente do termo x n do polinómio interpolador p n (x). Teorema 7 Sejam k + 1 nós distintos x 0,..., x k e [a;b] int[x 0,...,x k ]. Seja f definida em [a;b] e f C k (a;b). Então existe umξ (a;b) tal que y n = f(k) (ξ) k!

221 5 4 3 pontos p 2 (x) p 2 (x) 2 Y X Procedimento Figura 8.16: Polinómio interpolador de grau um. Problema Encontrar o polinómio interpolador de Newton que passa nos pontos da tabela x i x 0 x 1... x n y i y 0 y 1... y n ou seja, descobrir os coeficientes desconhecidos do polinómio p n (x) = y 0 +y 10 (x x 0 )+y 210 (x x 0 )(x x 1 )+...+y n (x x 0 )...(x x n 1 ) Hipóteses Os valores x i são todos distintos, x i x j para i j. Polinómio linear Construir a tabela seguinte e substituir as constantes obtidas do polinómiop 1 (x) = y 0 +y 10 (x x 0 ). x 0 y 0 ց ր y 10 = y 1 y 0 x 1 x 0 x 1 y 1

222 Polinómio quadrático Construir a tabela seguinte e substituir as constantes obtidas do polinómio p 2 (x) = y 0 +y 10 (x x 0 )+y 210 (x x 0 )(x x 1 ) x 0 y 0 ց ր y 10 = y 1 y 0 x 1 x 0 ց x 1 y 1 y 210 = y 21 y 10 x 2 x 0 ց ր ր y 21 = y 2 y 1 x 2 x 1 x 2 y 2 Polinómio cúbico Construir a tabela seguinte e substituir as constantes obtidas do polinómiop 3 (x) = y 0 +y 10 (x x 0 )+y 210 (x x 0 )(x x 1 )+y 3210 (x x 0 )(x x 1 )(x x 2 ) x 0 y 0 ց ր y 10 = y 1 y 0 x 1 x 0 ց x 1 y 1 y 210 = y 21 y 10 x 2 x 0 ց ր ց y 21 = y 2 y 1 x 2 x 1 y 3210 = y 321 y 210 x 3 x 0 ր ց ր x 2 y 2 y 321 = y 32 y 21 x 3 x 1 ց ր ր y 32 = y 3 y 2 x 3 x 2 x 3 y 3

223 Foi ilustrado o procedimento para graus 1,2 e 3. As constantes y i,i+1, y i,i+1,i+2,..., y i,i+1,...,i+k são chamadas diferenças divididas de ordem 1, 2,..., k. A generalização do cálculo das diferenças divididas para ordens superiores a 4 é a seguinte y i,i+1,...,i+k 1,i+k = y i+1,...,i+k y i,...,i+k 1 x i+k x i Qualquer permutação da ordem dos nós não altera o resultado, ou seja, por exemplo,y 123 = y 213 = y 321. Com base nesta notação, podemos considerar que os valoresy i são as diferenças divididas de ordem zero. Por vezes também se usa a seguinte notação para as diferenças divididas: f[x i,x i+1 ], f[x i,x i+1,x i+2 ],...,f[x i,x i+1,...,x i+k ] e f[x i,x i+1,...,x i+k 1,i+k ] = f[x i+1,...,x i+k ] f[x i,...,x i+k 1 ] x i+k x i 8.5 Fenómeno de Runge e oscilação polinomial Os polinómios interpoladores não são muito bons para aproximar funções descontínuas. Em particular, podemos observar que o erro exige que a função seja contínua até determinada ordem. Infelizmente, muitos resultados experimentais estão associados a ruído aleatório o que, devido à sua natureza, é não diferenciável. Consequentemente, usando interpolação irá resultar em erros significativos especialmente quando o número de pontos aumenta. Nesta secção, iremos ver os efeitos da interpolação polinomial ilustrando diversas características que dão origem a uma grande fonte de erro. A resultante falta de precisão é chamada oscilação polinomial. O teorema de aproximação de Weierstrass diz que para qualquer função contínua definida num intervalo fechado [a; b], existe uma sucessão de polinómios que converge uniformemente para essa função; ver Teorema 5. Este teorema não garante que entre esses polinómios alguns sejam interpoladores. Este teorema só fornece uma base para aproximar funções usando polinómios interpoladores. Descontinuidades Os polinómios são muito maus para interpolar funções com descontinuidades. Qualquer análise do erro não pode ser realizada devido à falta de continuidade. Para ilustrar este problema podemos observar as Figuras 8.17 e 8.18, onde está representada uma função com uma única descontinuidade a ser interpolada utilizando cinco e sete pontos, respectivamente.

224 X Figura 8.17: Interpolação com cinco pontos X Figura 8.18: Interpolação com sete pontos. Não linearidade Um exemplo de uma função não linear que não pode ser facilmente interpolada é a função Gaussiana f(x) = e x2. Os coeficientes da série de Taylor desta função não caiem tão rapidamente como é usual noutras funções tais como a função exponencial f(x) = e x ou as funções trigonométricas. Consequentemente, os polinómios interpoladores produzem resultados piores do que o esperado a menos que os pontos estejam muito próximos uns dos outros. Nas Figuras 8.19, 8.20, 8.21 e 8.22 podemos ver a interpolação com 5, 7 e 9 pontos, respectivamente. Outro exemplo de uma função não linear que não pode ser facilmente interpolada é a função f(x) = 2+0.5atan(5x). Nas Figuras 8.23, 8.24, e 8.25 podemos ver a interpolação com 5, 7 e 9 pontos, respectivamente.

225 f(x) = e x2 p 4 (x) X Figura 8.19: Interpolação com cinco pontos f(x) = e x2 p 6 (x) X Figura 8.20: Interpolação com sete pontos f(x) = e x2 p 6 (x) Figura 8.21: Interpolação com oito pontos.

226 X Figura 8.22: Interpolação com oito pontos f(x) = atan( 5 x ) p 4 (x) X Figura 8.23: Interpolação com cinco pontos f(x) = atan( 5 x ) p 6 (x) Figura 8.24: Interpolação com sete pontos.

227 f(x) = atan( 5 x ) p 8 (x) Figura 8.25: Interpolação com oito pontos.

228 Erros nos pontos Devido ao seu bom comportamento, a função exponencial é bastante bem aproximada por polinómios. Nas Figuras 8.26 e 8.27 estão representados o erro relativo δ = (e x p 8 (x))/e x e o erro erro = e x p 8 (x) no intervalo [ 0.2;8.2], ondep 8 (x) é o polinómio interpolador da função f(x) = e x nos pontos 0, 1,2,..., e = e x p 8 (x) 3 ERRO X Figura 8.26: Erro absoluto Interpolação com nove pontos δ = (e x p 8 ) / e x δ X Figura 8.27: Erro relativo Interpolação com nove pontos.

229 Na Figuras 8.28 estão representados o polinómio interpolador de grau 5 que interpola a função f(x) = e x nos pontos 1, 2, 3, 4, 5 e 6 e a própria função, restringidos ao intervalo [0.8;5]. O polinómio é o seguinte: p 5 (x) = x x x x x Nas Figuras 8.29 e 8.30 podem observar-se os erros relativos absolutos no intervalo [0.8;5] e x p 5 (x) X Figura 8.28: Função f(x) = e x e polinómio interpolador p 5 (x) ERRO erro = e x p 5 (x) X Figura 8.29: Erro absoluto de interpolação com seis pontos. Na Figura 8.31 podemos observar as oscilações que aparecem quando os valores das respostas estão afectados com 10% de erro. Observa-se que estas oscilações são bastante maiores que as obtidas quando os valores utilizados na interpolação são os exactos. O vector de re-

230 4 2 δ = (e x p 5 (x)) / e x 0 δ X Figura 8.30: Erro relativo de interpolação com seis pontos. spostas utilizado foi y = (2.9901,6.6502, , , , ) T e manteve-se x = (1,2,3,4,5,6) T e x p 5 (x) X Figura 8.31: Polinómio interpolador com seis pontos com respostas com erro de 10%. Na Figura 8.32 estão representados os dois polinómios, sem e com erro nas respostas, e a função exacta. Podemos visualizar o polinómio interpolador construído com os valores exactos e o polinómio interpolador obtido com os valores afectados de um erro de 10%. Este exemplo mostra como é que um pequeno erro de ruído pode resultar numa redução significativa da precisão da interpolação polinomial; ver também a Figura Quando o grau do polinómio é baixo,

231 f(x) p 5 (x) p er 5 (x) X Figura 8.32: Polinómios interpoladores e função exacta f(x) = e x. este tipo de comportamento não é tão significativo. 4 2 ERRO RELATIVO SEM RUÍDO ERRO RELATIVO COM RUÍDO 0 ERRO RELATIVO X Figura 8.33: Erros relativos dos polinómios com e sem ruído.

232 Erro e espaçamento Quando interpolamos utilizando dois pontos, o erro propaga-se de uma forma linear. Na Figura 8.34 podemos observar cinco polinómios da família de polinómios interpoladores em torno dos pontos (0, 2 ± 0.1) e(5, 4 ± 0.1): f(x) = x p 1a = x p 1b = x p 1c = x p 1d = x Considerando f(x) = x a função exacta, podemos observar na Figura 8.35 o comportamento do erro dos polinómios p 1a, p 1b, p 1c e p 1d que estão afectados de um erro no vector de respostas f(x) p 1a (x) p 1b (x) p 1c (x) p 1d (x) X Figura 8.34: Polinómios interpoladores e função exacta f(x) = e x. A partir da fórmula do erro de interpolação podemos observar que para resultados influenciados com ruído, os nós de interpolação não devem estar muito próximos mesmo quando o grau do polinómio interpolador não é elevado. Também podemos observar este facto nas Figuras 8.36, 8.38 e Se numa interpolação com um polinómio de grau menor ou igual a dois os nós estiverem igualmente espaçados, então os erros nos y s não se propagam tão significativamente.

233 ERRO RELATIVO p (x) 1a p (x) 1b p (x) 1c p (x) 1d X Figura 8.35: Polinómios interpoladores e função exacta f(x) = e x p 1a (x) p 1b (x) p 1c (x) X Figura 8.36: Polinómios interpoladores e função exacta f(x) = e x.

234 9 8 7 p 1a (x) p 1b (x) p 1c (x) Figura 8.37: Polinómios interpoladores e função exacta f(x) = e x ERRO RELATIVO ERRO RELATIVO COM p 2a (x) ERRO RELATIVO COM p 2b (x) X Figura 8.38: Polinómios interpoladores e função exacta f(x) = e x.

235 Fenómeno de Runge Na secção anterior, vimos que tem de se ter em atenção o espaçamento entre os nós. O fenómeno de Runge mostra que considerar nós igualmente espaçados não é apropriado. O fenómeno de Runge é um problema de oscilação nos extremos do intervalo (fronteira) que ocorre quando o grau do polinómio interpolador é elevado. Este fenómeno foi descoberto por Carl Runge quando estava a investigar o comportamento do erro de interpolação ao interpolar certas funções. Esta descoberta foi muito importante porque mostra que nem sempre aumentar o grau do polinómio melhora a precisão. Os polinómios interpoladores da função f(x) = 1/(1+25x 2 ) em nós igualmente espaçados no intervalo[ 1;1] não converge para a função. Em vez disso, oscila cada vez mais junto à fronteira do intervalo. Podemos ver nas Figuras 8.39 e 8.40 alguns polinómios interpoladores com três, cinco, nove e dezasseis nós f(x) p 2 (x) p 4 (x) p 8 (x) X Figura 8.39: Polinómios interpoladores de graus 2, 4 e 8 da função f(x) = 1/(1+25x 2 ). A razão deste comportamento tem a ver com o comportamento do erro de interpolação (8.3). No caso da função de Runge as primeiras derivadas são as seguintes f (x) = (50x)/(25x 2 +1) 2 f (x) = 5000x2 (25x 2 +1) 3 50 (25x 2 +1) 2 f (x) = 15000x (25x 2 +1) x3 (25x 2 +1) 4 f (4) = x 4 (25x 2 +1) x 2 (25x 2 +1) (25x 2 +1) 3

236 f(x) p 16 (x) X Figura 8.40: Polinómio interpolador de grau 16 da funçãof(x) = 1/(1+25x 2 ). f (5) = x 3 (25x 2 +1) x 5 5 (25x 2 +1) x 6 (25x 2 +1) 4 f (6) = x 2 (25x 2 +1) x 4 (25x 2 +1) x 6 (25x 2 +1) (25x 2 +1) 4 f (7) = x x x x (25x 2 +1) 7 (25x 2 +1) 6 (25x 2 +1) 8 (25x 2 +1) 5 f (8) = x 4 (25x 2 +1) x 2 (25x 2 +1) x 6 (25x 2 +1) x 8 (25x 2 +1) (25x 2 +1) 5 f (9) = x x x 7 (25x 2 +1) 7 (25x 2 +1) 8 (25x 2 +1) x 9 9 (25x 2 +1) x (25x 2 +1) 6 Na Tabela 8.2 podemos observar o valor das derivadas nos pontos da fronteira do intervalo [ 1;1] (f (k) (1) = f (k) ( 1)). O valor das derivadas de ordem mais elevada nos pontos da fronteira ainda é maior. Por conseguinte, o majorante do erro, entre os pontos de interpolação, torna-se cada vez maior à medida que o grau do polinómio aumenta. Como é que podemos atenuar o problema das oscilações? Uma hipótese é usar mais nós de interpolação junto aos extremos do intervalo. Mais especificamente, a densidade assimptótica dos pontos no intervalo [ 1;1] deve ser dada por 1/ 1 x 2. Um exemplo deste tipo de nós é o conjunto de nós de Chebyshev, para o qual o erro vai diminuindo à medida que o grau do polinómio interpolador aumenta. Este exemplo demonstra que quando os nós estão igualmente

237 Tabela 8.2: Derivadas da função de Runge. f (1) f (1) f (1) f (4) (1) f (5) (1) f (6) (1) f (7) (1) f (8) (1) f (9) (1) espaçados geralmente não é bom usar polinómios de grau elevado. Dado um intervalo [a; b], os nós de Chebyshev são os seguintes: x i = a+b 2 + b a 2 cos (2i+1)π 2n+2, i = 0,...,n. Podemos ver, nas Figuras 8.41 e 8.42, que o erro de interpolação utilizando nove pontos depende da função mas também depende da escolha dos nós de interpolação. Quando utilizamos nós igualmente espaçados, o erro da função de Runge é maior junto aos extremos do intervalo e atenua-se no meio do intervalo. Quando utilizamos os nós de Chevyshev (maior densidade de pontos junto às pontas) o erro nunca chega a ser muito elevado, ou seja, é limitado por uma constante não muito elevada. As oscilações podem ser evitadas se usarmos funções spline, ou seja, funções seccionalmente polinomiais tal que em cada sub-intervalo a função é um polinómio de grau baixo. Para tentar diminuir o erro podemos utilizar um maior número de sub-intervalos em vez de aumentar o grau dos polinómios dentro de cada sub-intervalo. Podemos também fazer a minimização sujeita a constrangimentos. Mais concretamente, usar um polinómio de grau relativamente elevado, mas com a condição de que a primeira (ou segunda derivada, isto é, a curvatura) tenha uma norma em L 2 mínima. Outro método de ajuste é o método dos mínimos quadrados com um grau de polinómio baixo. Geralmente, com k nós igualmente espaçados, se n < 2 k então o método dos mínimos quadrados é bem condicionado.

238 / ( x 2 ) p 8 (x) com nós igualmente espaçados p 8 (x) com nós de Chevyschev X Figura 8.41: Interpolação da função de Runge com nove pontos (igualmente espaçados e nós de Chebyshev) e(x) = f(x) p 8 e(x) Chevy = f(x) p 8 Chevy X Figura 8.42: Erro de interpolação da função de Runge com nove pontos igualmente espaçados e nove nós de Chevyshev.

239 Funções oscilatórias A interpolação de funções oscilatórias pode levar a aproximações muito pouco precisas. Nas Figuras 8.43, 8.44, 8.45 e 8.46 podemos observar a interpolação das funções sin(x), sin(2x), sin(3x) e sin(4x), respectivamente. À medida que a frequência aumenta, a precisão da aproximação através do polinómio interpolador diminui. Na primeira figura observamos uma boa aproximação e na última surge uma aproximação muito imprecisa. Se soubermos que os resultados vêm de um sistema que se sabe ter a resposta sinusoidal com uma frequência ω conhecida, então o melhor é utilizar uma função aproximadora da forma g(x) = a 2 sin(ωx)+a 1 cos(ωx). 2 1 sin(x) p 6 (x) X Figura 8.43: Interpolação da função f(x) = sin(x) com sete pontos sin(2x) p 6 (x) X Figura 8.44: Interpolação da função f(x) = sin(2x) com sete pontos. Observação 4 A interpolação não deve ser usada se a resposta do sistema for descontínua. Se a resposta for oscilatória então deverá ser amostrada a uma taxa de pelo menos quatro vezes a frequência. Pelo menos no caso da interpolação polinomial este critério para a escolha dos pontos experimentais é fundamental. Quando interpolamos resultados afectados de erro aleatório, devemos ter um cuidado especial com o grau do polinómio. Quanto maior for o ruído menor deverá ser o grau do polinómio e maior deverá ser a distância

240 sin(3x) p 6 (x) X Figura 8.45: Interpolação da função f(x) = sin(3x) com sete pontos. 4 3 sin(4x) p 6 (x) X Figura 8.46: Interpolação da função f(x) = sin(4x) com sete pontos. entre os pontos. Devemos ter cuidado quando utilizamos nós igualmente espaçados no caso de polinómios de grau elevado porque neste caso vamos observar grandes oscilações no polinómio interpolador. Definition 2 Extrapolação é usar um conjunto de pontos (x 0,y 0 ),...,(x n,y n ) para estimar um ponto fora do intervalo[x 0 ;x n ]. 8.6 Análise do erro de interpolação Suponha-se x 0, x 1,..., x n números distintos no intervalo [a;b] e suponha-se que é amostrada uma função f C n+1 [a;b] n vezes, resultando nos pontos (x 0,y 0 ),..., (x n,y n ), onde y i = f(x i ).

241 Podemos interpolar estes pontos com um polinómio de grau menor ou igual a n, mas também interessa saber qual o erro associado quando usamos este polinómio para previsão. Pode demonstrar-se que para cadax [a;b] existe umξint[x 0,...,x n,x] tal que e n (x) = f(x) p n (x) = fn+1 (ξ) (n+1)! (x x 0)(x x 1 )...(x x n ) (8.3) Observa-se que para x = x i (i = 0,1,...,n) o erro é zero. Por exemplo, o polinómio interpolador da função f(x) = e x +x 3 10x 2 nos nós 0, 2.5 e 4 é o seguinte: p 2 (x) = (x 0)+2.451(x 0)(x 2.5). Na Figura 8.47 estão representados a função, o polinómio interpolador e o erro em cada ponto no intervalo [0;4] f(x) p 2 (x) e 2 (x) X Figura 8.47: Interpolação com quatro pontos e um polinómio de grau três. Uma vez quef (x) = e x +6 obtemos e 2 (x) = eξ +6 3! (x 0)(x 2.5)(x 3) = eξ +6 w(x) 3! ondew(x) = x(x 2.5)(x 3). Além disso, f (x) e 4 +6 = para qualquerx [0;4], logo e 2 (x) (x 0)(x 2.5)(x 3) Podemos obter um majorante do erro válido em qualquer ponto no intervalo [0;4] através da majoração da função w(x). Para isso resolve-se a equação w (x) = 0, ou seja x 3 11x x = 0

242 e obtém-se x = ou x = Por conseguinte, w(2.7613) = , w( ) = e e 2 (x) (60.598)(3.0241) = Problemas 1. Para cada um dos seguintes problemas utilize os três métodos que aprendeu. (a) Encontrar o polinómio que interpola os pontos (1, 1.3),(2, 1.6),(3, 1.9). (b) Encontrar o polinómio que interpola os pontos (2, 2),(4, 1),(6, 4) e(8, 2). (c) Encontrar o polinómio interpolador dos pontos da tabela x i y i Represente graficamente o polinómio e os pontos da tabela. (d) Encontrar a função da forma g(x) = a 2 x+a 1 cos(x)+a 0 sin(x) que interpola os pontos (0.2, 0.6),(1.5, 0.1) e (2.3, 3.5). (e) Encontrar o polinómio de grau menor ou igual a um que interpola os pontos (2,3) e (5,7). (f) Encontrar o polinómio cúbico que interpola os pontos ( 2,21),(0,1),(1,0),(3, 74). (g) Encontrar o polinómio cúbico que interpola os pontos (1, 5),(2, 7),(4, 11),(6, 15). (h) Utilize o Matlab para obter o polinómio que interpola os pontos: (1.3, 0.51),(0.57, 0.98),( 0.33, 1.2),( 1.2, 14),(2.1, 0.35),(0.36, 0.52). 2. Será que os valores de x terão de estar ordenados por ordem crescente para que o método de Vandermonde e de Newton funcione? Faça a experimentação em Matlab com dois exemplos. 3. (a) Calcule o polinómio de grau 2 que interpola a função f definida pela expressão f(x) = 3x 2 x 3 2 no intervalo[0,3] usando os nós de interpolação {0,1,2}.

243 (b) Obtenha um majorante do erro de interpolação no intervalo [0,3]. 4. Considere a seguinte tabela de valores de uma função real de variável real: x f(x) (a) Determine o polinómio interpolador de f nos pontos da tabela, utilizando a fórmula de Newton. (b) A partir do polinómio obtido na alínea anterior e sabendo quef(x) = x 3 +a 2 x 2 +a 1 x+a 0, obtenha f(x). 5. Considere a seguinte tabela de valores de uma função x i f(x i ) (a) Utilizando a fórmula de Newton com diferenças divididas, calcule p 2 (2.1), onde p 2 é o polinómio interpolador de f nos SEGUNDO, TERCEIRO e QUARTO pontos da tabela. (b) Supondo que f (x) 12, para qualquer x [0.5;3.5], determine uma estimativa do erro de interpolação no ponto x = Considere a seguinte tabela de valores de uma função x i f(x i ) (a) Considerando os 3 pontos da tabela no intervalo [1;3] e utilizando a fórmula de Lagrange, construa o polinómio interpolador def(x). (b) Suponha quef(x) = 2e x +c 1 x+c 2 x 2, com c 1,c 2 R. Determine um majorante para o erro p 2 (x) f(x) no ponto 1.8. (c) Suponha quef(x) = c 0 +c 1 x+c 2 x 2, com c 0,c 1,c 2 R. Neste caso, quais são os valores das constantes c 0, c 1 e c 2? Justifique. 7. Considere a seguinte tabela de valores de uma função

244 i x i f(x i ) Utilizando a fórmula de Newton com diferenças divididas, calcule p 2 (1.8), onde p 2 é o polinómio interpolador de f nos segundo, terceiro e quarto pontos da tabela. Supondo que f (x) C para qualquer x [1.5;2.5], onde C é uma constante real, determine uma estimativa do erro de interpolação no ponto x = Seja 0 < ǫ < 1 e f uma função de classe C 3 em[0;1]. (a) Calcule o polinómio p ǫ que interpola f nos pontos 0,ǫe1. (b) Calcule a função lim p ǫ(x) = p(x) ǫ 0 (c) Indique uma expressão para a diferença f(x) p(x) no caso em que a terceira derivada de f é constante. 9. Numa estrada em linha recta fez-se uma experiência com um automóvel. De cinco em cinco segundos, mediram-se as suas velocidades e as distâncias percorridas em relação ao ponto de partida. Os valores observados encontram-se na tabela seguinte: Instante Distância Velocidade (a) Utilize um polinómio interpolador p pos (x) para prever a posição do automóvel no instante t = 17 segundos. (b) Utilize um polinómio interpolador p vel (x) para prever a velocidade do automóvel no instante t = 17 segundos. (c) Dê uma previsão da velocidade instantânea do automóvel no instante t = 17 segundos, utilizando o polinómio interpolador obtido na alínea (a). 10. Considere a seguinte tabela de valores de uma função f. x i f(x i ) 3 1 4

245 (a) Utilizando a fórmula interpoladora de Newton, determine uma expressão do polinómio p 2 que interpola f nos pontos da tabela. (b) Baseando-se no resultado da alínea anterior, obtenha o polinómio do 3 o grau que também interpolaf nos pontos da tabela e ainda emx = 4 e tal que a sua terceira derivada é constante e igual a Considere a seguinte tabela de valores de uma funçãof, a qual se sabe ser um polinómio de grau dois. x i f(x i ) y Construa a tabela de diferenças divididas e responda às seguintes questões: (a) Qual o valor de f[ 1, 0, 1]? Justifique. (b) Utilizando a fórmula interpoladora de Newton baseada nos pontos da tabela, calcule f( 0.5). O valor obtido é exacto ou aproximado? 12. Considere a seguinte tabela de valores da funçãof(x) = x 2 +1/x x i f(x i ) (a) Obtenha a expressão do polinómio interpolador de Lagrange nos três pontos tabelados. (b) Obtenha a expressão do polinómio interpolador de Newton nos três pontos tabelados. (c) Calcule o valor interpolado para x = 1.3. Obtenha um majorante do erro a partir da expressão do erro de interpolação e compare-o com o erro efectivamente cometido. (d) Seja x [0.8;1.6]. Obtenha um majorante do erro f( x) p 2 ( x) a partir da expressão do erro de interpolação.

246

247 Capítulo 9 Integração numérica A integração numérica é formada por um conjunto alargado de algoritmos para determinar o valor numérico de integrais definidos; o termo "integração numérica" também é utilizado na resolução numérica de equações diferenciais. Quando nos referimos a integrais uni-dimensionais é usual usar o termo "quadratura" como sinónimo de método de integração numérica. O problema básico em integração numérica é calcular o valor aproximado do integral I(f) = b a f(x)dx (9.1) Quando é que há necessidade de utilizar integração numérica? Na prática surgem muitas situações em que só se conhece o valor da função integranda em determinados pontos experimentais. Nesse caso, é usual recorrer à integração numérica. Por vezes, também acontece que a função integranda pode ser impossível ou difícil de calcular como é o caso de f(x) = e x2. Na prática, podemos não precisar mesmo do valor exacto e mesmo que se consiga calcular o valor exacto do integral, pode ser mais fácil usar integração numérica. Dada uma tabela de valores de uma função, a aproximação do integral obtém-se fazendo uma soma ponderada dos valores da tabela. Os nós de integração, ou pontos experimentais onde se recolhe o valor da função, e os pesos variam de método para método. Os métodos aqui apresentados baseiam-se em interpolação polinomial. Eles obtêm-se integrando o polinómio interpolador em vez da função porque, ao contrário da função, o polinómio interpolador é fácil de integrar. 247

248 9.1 Teorema do valor intermédio para integrais Teorema 8 Se f e g são funções contínuas no intervalo [a;b], e g é não negativa em (a;b), então existe ξ (a;b) tal que b a b f(x)g(x)dx = f(ξ) g(x)dx a Demonstração Uma vez que f é contínua num intervalo fechado, f é limitada e satisfaz m = min f f(x) max f = M x [a;b] x [a;b] para todo o x [a;b]. Por conseguinte, uma vez que g é não negativa para qualquer x [a;b] tém-se m g(x) f(x)g(x) Mg(x) Integrando vem b m g(x)dx a b a f(x)g(x)dx M b a g(x)dx Se b g(x)dx = 0, entãog é identicamente zero e o resultado é trivial. Caso contrário, a m b a f(x)g(x)dx b a g(x)dx M e o resultado segue do teorema do valor intermédio. Bases: Secções 3.1, 8.3, 9.1 e Método do ponto médio O método mais simples baseado em interpolação é interpolar a função por um polinómio de grau zero. Se esse polinómio passar no ponto ( (a+b)/2,f((a+b)/2) ) então obtemos a regra do ponto médio como se segue. Sabe-se que, pelo desenvolvimento em série de Taylor, que f(x) = f(x 0 )+f (x 0 )(x x 0 )+ f (ξ x ) (x x 0 ) 2, 2!

249 onde ξ x int(x,x 0 ) e x 0 = (a+b)/2. Consequentemente, ou seja, I(f) = b a f(x)dx = b a f(x 0 )dx+ b I(f) = (b a)f((a+b)/2)+f (x 0 ) a f (x 0 )(x x 0 )dx+ b a (x x 0 )dx+ b a b a f (ξ x ) (x x 0 ) 2 dx 2! f (ξ x ) (x x 0 ) 2 dx 2! Como b a (x x 0)dx = 0, o segundo termo da soma é zero. Em relação ao terceiro termo da soma, assumimos que f C 2 (a,b) e como (x x 0 ) 2 não muda de sinal aplicamos o teorema do valor intermédio para integrais (Teorema 8) para obter I(f) = (b a)f((a+b)/2)+ f (τ) 2 b a (x x 0 ) 2 dx, τ [a;b] Utilizando a transformação de variável u = x x 0 no integral anterior obtém-se du = dx e consequentemente onde h = b a. I(f) = (b a)f((a+b)/2)+ f (τ) 2 b x0 a x 0 u 2 dx = (b a)f((a+b)/2)+ h3 24 f (τ) 9.3 Método dos Trapézios O método dos Trapézios obtém-se integrando o polinómio de grau menor ou igual a 1 que passa nos pontos (a,f(a)) e (b,f(b)). Esta técnica reduz-se a calcular a área do trapézio ilustrado na Figura 9.1, ou seja, b a f(x)dx (b a) f(a)+f(b) Teoria Dada uma função f(x) definida no intervalo [a;b], podemos aproximá-la por um polinómio de grau menor ou igual a 1 que passa nos pontos(a,f(a)) e(b,f(b)). Esse polinómio pode obter-se utilizando a interpolação de Lagrange: p 1 (x) = f(a) x b a b +f(b)x a b a

250 Figura 9.1: A regra dos Trapézios aplicada à funçãof(x) = x 2 sin(2x)+3 no intervalo [2;4.5]. O método dos trapézios obtém-se integrando o polinómio interpolador, ou seja, isto é, Consequentemente, I(f) = b a f(x)dx = b a p 1 (x)dx+ b a e 1 (x)dx b x b b I(f) = f(a) a a b dx+f(b) x a b a b a + f (ξ x )(x a)(x b)dx a I(f) = b a b 2 [f(a)+f(b)]+ f (ξ x )(x a)(x b)dx a Uma vez que (x a)(x b) não muda de sinal em [a;b] e assumindo que f C 2 [a;b], podemos aplicar o Teorema 8, do valor intermédio para integrais, ao segundo integral para obter ou seja, I(f) = b a f(x)dx = b a 2 onde a regra dos Trapézios simples é dada por (b a)3 [f(a)+f(b)] f (τ), τ (a;b) 12 I(f) = T(f)+E T (f) T(f) = b a 2 [f(a)+f(b)] e o erro associado é E T (f) = (b a)3 f (τ) (9.2) 12

251 Observa-se que T(f) é a área de um Trapézio com altura (b a) e lados com larguras f(a) e f(b). Além disso, também podemos observar que a regra dos Trapézios é do tipo T(f) = A 0 f(x 0 )+A 1 f(x 1 ) em que A i = b a l i (x)dx, i = 0,1 onde l 0 (x) e l 1 (x) são os polinómios da base de Lagrange que geram o espaço dos polinómios de grau menor ou igual a 1. A regra dos Trapézios permite aproximar o integral de uma função no intervalo [a;b], mas o erro depende do comprimento do intervalo e, consequentemente, não pode ser reduzido. Se dividirmos o intervalo [a;b] em sub-intervalos mais pequenos e aplicarmos a regra dos Trapézios em cada um deles podemos obter uma aproximação melhor do integral, ou seja, uma aproximação com um erro mais pequeno. Por exemplo, na Figura 9.2 está representada a aplicação da regra dos Trapézios simples para integrar a função f(x) = 10sin((3πx)/8)e x/2 no intervalo [0;8] Figura 9.2: A regra dos Trapézios simples aplicada à função f(x) = 10sin((3πx)/8)e x/2 no intervalo[0;8]. Na Figura 9.3 podemos observar a regra dos Trapézios aplicada a oito sub-intervalos no intervalo [0;8]. A soma das áreas dos oito trapézios vai ser uma aproximação melhor do que a área de um único trapézio que, neste caso, dá zero.

252 Figura 9.3: A regra dos Trapézios composta aplicada à função f(x) = 10sin((3πx)/8)e x/2 no intervalo [0;8]. No caso em que se divide o intervalo[a;b] em n sub-intervalos n 1 I(f) = i=0 xi+1 x i f(x)dx n 1 i=0 x i+1 x i [f(x i )+f(x i+1 )] 2 onde n é o número de sub-intervalos. Se os nós de integração forem igualmente espaçados, ou seja, obtém-se onde T n (f) = h n 1 [f(x i )+f(x i+1 )] = 2 i=0 x i = a+hi, i = 0,1,2,...,n, h = b a n I(f) T n (f) = h 2 [f(x 0)+f(x 1 )+f(x 1 )+f(x 2 )+...+f(x n 2 )+f(x n 1 )+f(x n 1 )+f(x n )] = = h 2 [f(x n 1 0)+f(x n )+2 f(x i )] Esta regra é denominada regra dos Trapézios composta. i=1 O erro na regra dos Trapézios simples é dada por (9.2). O erro para a regra dos Trapézios

253 composta é a soma dos erros em cada sub-intervalo, ou seja onde τ i [x i ;x i+1 ]. Mas n 1 En T (f) = i=0 min a x b f (x) 1 n (x i+1 x i ) 3 f (τ i ) = h3 n 1 f (τ i ) n i=1 i=0 f (τ i ) max a x b f (x) Se assumirmos quef C 2 [a;b], então existe τ (a;b) tal que f (τ) = 1 n f (τ i ) n Consequentemente, E T n i=1 (f) = (b a)h2f (τ) (9.3) 12 Observação 5 O erro na regra dos Trapézios simples também se pode obter a partir do desenvolvimento em série de Taylor e a integração por partes. Considere o desenvolvimento f(a) = f(x)+f (x)(a x)+ 1 2 f (ξ x )(a x) 2 onde ξ x [a;x]. Integrando ambos os membros em relação à variávelxentre a ebobtém-se ou seja, donde, b a f(a)dx = (b a)f(a)dx = (b a)f(a)dx = b a b b Mas utilizando a integração por partes consequentemente, (b a)f(a)dx = 2 a a f(x)dx+ b a f (x)(a x)dx+ b a 1 2 f (ξ x )(a x) 2 dx b b b f(x)dx+a f (x)dx xf 1 (x)dx+ a a a 2 f (ξ x )(a x) 2 dx f(x)dx+a[f(b) f(a)] b a b a xf (x)dx+ b xf (x)dx = [xf(x)] b a f(x)dx b a f(x)dx+af(b) af(a)+ Aplicando o teorema do valor intermédio ao último integral obtém-se e assim podemos escrever (b a)f(a)dx = 2 b a b a a b a b a 1 2 f (ξ x )(a x) 2 dx 1 2 f (ξ x )(a x) 2 dx f(x)dx f(b)(b a)+ 1 6 f (ξ)(b a) 3 f(x)dx = b a 2 [f(a)+f(b)] 1 12 f (ξ)(b a) 3

254 9.3.2 Procedimento Problema O problema é calcular o valor aproximado do integral (9.1) I(f) = b a f(x)dx Hipóteses Assume-se que f(x) é uma função real de variável real. Para estimar o erro com a equação (9.3) tem de se considerar como hipótese quef C 2 [a;b] para que se possa calcular o valor f (τ) que surge na fórmula do erro. Processo iterativo Antes de começar o processo iterativo é preciso calcular a primeira aproximação do integral, ou seja, calcular uma aproximação com a regra dos Trapézios simples no intervalo [a;b]: h = b a, T 1 = h 2 [f(a)+f(b)] Parak = 2,3,...,k max divide-se o intervalo[a;b] emn = 2 k 1 sub-intervalos, ou seja, calculase e uma nova aproximação do integral T n = h 2 [ h = b a 2 n 1 f(x 0 )+f(x n )+2 2 n 1 1 i=1 f(x i ) O processo iterativo pára quando uma das seguintes condições se verificar: 1. a distância entre iteradas sucessivas é suficientemente pequena, T n T n/2 < ǫ; 2. foi atingido um número máximo de iterações igual a k max e a condição 1 não se verificou. Neste caso, assume-se que a solução não foi encontrada ou nem sequer existe. ] 9.4 Método de Simpson O método de Simpson tal como a regra dos Trapézios é um método baseado em interpolação. No método de Simpson obtemos uma aproximação do integral (9.1) integrando o polinómio interpolador da função que passa nos pontos (a,f(a)), ((a + b)/2,f((a + b)/2)) e (b,f(b)); ver a Figura 9.4.

255 Figura 9.4: A regra de Simpson aplicada à função f(x) = x 2 sin(2x)+15 no intervalo [1;4] Teoria Dada uma função f(x) definida no intervalo [a;b], podemos aproximá-la por um polinómio de grau menor ou igual a 2,p 2 (x), que passa nos pontos(a,f(a)),((a+b)/2,f((a+b)/2)) e(b,f(b)). Esse polinómio pode obter-se utilizando, por exemplo, a interpolação de Lagrange: I(f) = b a f(x)dx Daqui pode obter-se a regra de Simpson simples b a p 2 (x)dx = S(f) S(f) = b a [f(a)+4f((a+b)/2)+f(b)] (9.4) 6 Para obter o erro da fórmula de Simpson podemos utilizar o desenvolvimento em série de Taylor. Sabemos do teorema fundamental do cálculo que I(f) = b a f(x)dx = F(b) f(a) (9.5)

256 Seja h = (b a)/2, c = (a + b)/2 e considerem-se os seguintes desenvolvimentos em série F(b) = F(c+h) = F(c)+hF (c)+ h2 2 F (c)+ h3 3! F (c)+ h4 4! F(4) (c)+ h5 5! F(5) (ξ 1 ) = F(c)+hf(c)+ h2 2 f (c)+ h3 3! f (c)+ h4 4! f (c)+ h5 5! f(4) (ξ 1 ) (9.6) F(a) = F(c h) = F(c) hf (c)+ h2 2 F (c) h3 3! F (c)+ h4 4! F(4) (c) h5 5! F(5) (ξ 2 ) = F(c) hf(c)+ h2 2 f (c) h3 3! f (c)+ h4 4! f (c) h5 5! f(4) (ξ 2 ) (9.7) onde ξ 1,ξ 2 [a;b]. Substituindo (9.6) e (9.6) em (9.5), obtém-se Assumindo quef C 4 [a;b] tém-se I(f) = 2hf(c)+ h3 3 f (c)+ h5 5! f(4) (ξ 1 )+ h5 5! +f(4) (ξ 2 ) h 5 5! f(4) (ξ 1 )+ h5 5! +f(4) (ξ 2 ) = h5 5! [f(4) (ξ 1 )+f (4) (ξ 2 )] = h5 5! 2f(4) (ξ) = h5 60 f(4) (ξ 3 ) onde ξ 3 [a;b]. Por conseguinte, Do Capítulo 10 sabemos que (9.8) I(f) = 2hf(c)+ h3 3 f (c)+ h5 60 f(4) (ξ 3 ) (9.9) f (c) = 1 h2 h2[f(b) 2f(c)+f(a)] 12 [f(4) (ξ 4 )] (9.10) para algum ξ 4 [a;b]; ver a equação (10.4). Aplicando (9.10) a (9.9) obtemos I(f) = h h5 [f(a)+f(c)+f(b)] f(4) (ξ 4 ) h2 12 [f(4) (ξ 3 )] = h h5 [f(a)+f(c)+f(b)] 3 90 f(4) (ξ) onde ξ [a;b]. equivalente Observamos que a regra de Simpson simples é dada por (9.4), ou de forma I(f) = h [f(a)+4f((a+b)/2)+f(b)] (9.11) 3 e o erro correspondente é o seguinte: E S (f) = h5 90 f(4) (ξ) (9.12) Tal como na regra dos Trapézios, podemos obter uma aproximação mais precisa dividindo o intervalo [a; b] em n sub-intervalos, aplicando a regra de Simpson por cada dois sub-intervalos

257 sucessivos e depois somando as várias parcelas. Quando a distância entre os pontos é constante e igual ah, ou seja, x i = a+hi, i = 0,1,2,...,n, h = b a n a esta regra chama-se regra de Simpson composta. Como neste caso por cada vez que se aplica a regra precisamos de dois sub-intervalos, o númerontem de ser par (ou seja, o número de pontos tem de ser ímpar). Na Figura 9.5 podemos observar a regra de Simpson aplicada a oito sub-intervalos no intervalo[0; 8]. A área total obtida por aplicação de quatro vezes o método de Simpson simples vai ser uma aproximação melhor do que a área obtida por aplicação da regra de Simpson simples uma única vez Figura 9.5: A regra de Simpson composta aplicada à função f(x) = 10sin((3πx)/8)e x/2 no intervalo[0;8]. No caso em que se divide o intervalo [a;b] em n sub-intervalos com nós igualmente espaçados n/2 I(f) = i=1 x2i x 2i 2 f(x)dx Utilizando (9.11) obtém-se S n (f) = h n/2 [f(x 2i 2 )+4f(x 2i 1 )+f(x 2i )] 3 i=1

258 ou seja, O erro associado obtém-se da forma: onde ξ i [x 2i 2 ;x 2i ], ou seja, ou seja, S n (f) = h n/2 n/2 1 f(x 0 )+f(x n )+4 f(x 2i 1 )+2 f(x 2i ) 3 onde ξ [a;b]. Masn = (b a)/h, logo En S (f) = h5 90 En S (f) = h5 90 E S n i=1 n/2 f (4) (ξ i ) i=1 n/2 f (4) (ξ i ) i=1 En S n (f) = h f(4) (ξ) (f) = (b a)h4f (4) (ξ) 180 i= Procedimento Problema O problema é calcular o valor aproximado do integral (9.1) I(f) = b a f(x)dx Hipóteses Assume-se que f(x) é uma função real de variável real. Para estimar o erro com a equação (9.3) tem de se considerar como hipótese quef C 4 [a;b] para que se possa calcular o valor f (4) (τ) que surge na fórmula do erro. Processo iterativo Antes de começar o processo iterativo é preciso calcular a primeira aproximação do integral, ou seja, calcular uma aproximação com a regra de Simpson simples no intervalo [a;b]: h = (b a)/2, S 2 = b a 6 [f(a)+4f((a+b)/2)+f(b)] Parak = 3,4,...,k max divide-se o intervalo[a;b] emn = 2 k 1 sub-intervalos, ou seja, calculase h = b a 2 n 1 e uma nova aproximação do integral S n = h n/2 n/2 1 f(x 0 )+f(x n )+4 f(x 2i 1 )+2 f(x 2i ) 3 O processo iterativo pára quando uma das seguintes condições se verificar: i=1 i=1

259 1. a distância entre iteradas sucessivas é suficientemente pequena, S n S n/2 < ǫ; 2. foi atingido um número máximo de iterações igual a k max e a condição 1 não se verificou. Neste caso, assume-se que solução não foi encontrada ou nem sequer existe. 9.5 Método dos coeficientes indeterminados Foi referido anteriormente que a aproximação do integral (9.1) se obtém fazendo uma soma ponderada dos valores de f(x) em determinados nós conhecidos como nós de integração. Os pesos variam de método para método. No caso geral, uma fórmula de quadratura baseada em n + 1 nós pode representar-se na forma: Q(f) = n A i f(x i ) (9.13) i=0 Vimos que no caso do método dos Trapézios a fórmula é construída aproximando a função pelo seu polinómio interpolador de grau menor ou igual a 1 que interpola a função emx 0 = a ex 1 = b. Devido à unicidade do polinómio interpolador, se a função for um polinómio de grau menor ou igual a 1, então o erro é zero. Consequentemente, o método de construção do método dos Trapézios é equivalente a impor que o erro seja zero para polinómios de grau menor ou igual a 1. A partir da fórmula do erro (9.2) podemos observar que o erro na regra dos Trapézios não é zero quando a função integrando é, por exemplo, um polinómio de grau dois. Quando temos um destes casos, em que o erro é zero para polinómios de grau menor ou igual a um e diferente de zero para polinómios de grau 2, diz-se que a fórmula de quadratura tem grau 1. De uma maneira geral, dizer que o erro é zero para polinómios de grau menor ou igual a n, equivale a considerar Q(a n x n +...+a 1 x+a 0 ) = I(a n x n +...+a 1 x+a 0 ) ComoQeI são funcionais lineares, esta equação pode escrever-se na forma a n Q(x n )+...+a 1 Q(x)+a 0 Q(1) = a n I(x n )+...+a 1 I(x)+a 0 I(1) ou seja, Q(x n ) = I(x n ). =. Q(x) = I(x) Q(1) = I(1) (9.14)

260 Diz-se que uma fórmula de quadratura tem grau n se Q(x k ) = I(x k ), k = 0,1,...,n Q(x n+1 ) I(x n+1 ) ou seja, o erro é zero quando integra polinómios de grau menor ou igual a n e o erro é diferente de zero quando integra polinómios de grau n+1. Um método alternativo para calcular os pesos nas quadraturas com grau não inferior a n, é o método dos coeficientes indeterminados. Para que a fórmula de quadratura (9.13) tenha grau não inferior anénecessário e suficiente que se verifique o sistema (9.14), ou seja, n A i x n i = i=0. n A i x i = i=0 n A i = i=0 b a. b a b a x n dx xdx dx Podemos escrever este sistema na forma matricial: A 0 b a x 0 x 1... x n A 1 (b = 2 a 2 )/ x n 0 x n 1... x n n A n (b n+1 a n+1 )/(n+1) A matriz deste sistema é a transposta da matriz de Vandermonde (7.9) (considerando os nós de x 0 a x n e assumindo m = n) que, como foi observado no capítulo 8, é invertível se os nós forem distintos. Consequentemente, dados os nós de integração distintos x 0,x 1,...,x n, existe uma única solução para os pesos A 0, A 1,..., A n. Exemplo 47 Considere-se o integral e a fórmula de quadratura com três nós I(f) = 2 2 f(x)dx Q(f) = A 0 f( 1)+A 1 f(0)+a 2 f(1)

261 Os pesosa i s obtêm-se pelo método dos coeficientes indeterminados resolvendo o sistema: A 0 2 ( 2) A 1 = (2 2 ( 2) 2 )/2 ( 1) (2 3 ( 2) 3 )/3 ou seja, A 0 = 8/ ,A 1 = 4/ e A 2 = 8/ Consequentemente, A 2 Q(f) = 8 3 f( 1) 4 3 f(0)+ 8 3 f(1) Qual será o grau desta fórmula? Pela forma como foi construída tem pelo menos grau 2. Observa-se que Q(x 3 ) = 8 3 ( 1)3 4 3 (0) (1)3 = 0 I(x 3 ) = 2 2 x 3 dx = x = 0 Q(x 4 ) = 8 3 ( 1)4 4 3 (0) (1)4 = I(x 4 ) = x 4 dx = x5 2 5 = ( 2)5 2 5 = ou seja, Q(x k ) = I(x k ) parak = 0,1,2,3 e Q(x 4 ) I(x 4 ), logo a fórmula de quadratura tem grau 3. 2 Observando queq(f) = I(p n ), sendop n (x) o polinómio interpolador def(x) nos nósx 0,x 1,...,x n, obtém-se através da fórmula de interpolação de Lagrange Q(f) = b a n l i (x)f(x i )dx = i=0 n b i=0 a l i (x)dxf(x i ) ou seja, como vimos nas secções anteriores, os pesos A i s podem obter-se através da base de Lagrange l 0,l 1,...,l n, A i = b a l i (x)dx 9.6 Quadraturas de Gauss Todas as fórmulas apresentadas neste capítulo têm a forma (9.13). Existem dois grupos de métodos que são os mais utilizados na prática: Fórmulas de Newton-Côtes Fórmulas de Gausss

262 As fórmulas de Newton-Côtes usam nós igualmente espaçados e as de Gauss usam nós não igualmente espaçados. Quanto às fórmulas de Newton elas podem ser fechadas, sex 0 = a ex n = b, ou abertas, se todos os nós estiverem no intervalo aberto (a; b). As fórmulas de Newton-Côtes mais utilizadas são a regra dos Trapézios e a regra de Simpson. Nas fórmulas de Gauss a razão pela qual não se escolhem os nós igualmente espaçados relaciona-se com a minimização do erro de integração. Em vez de escolher à partida os nós igualmente espaçados como nas Fórmulas de Newton-Côtes e depois calcular os pesos, por exemplo, pelo método dos coeficientes indeterminados, a ideia nas fórmula de Gauss é escolher pesos e nós simultaneamente de modo que o erro de integração seja zero para polinómios de grau o mais elevado possível, ou seja, pretende-se que a fórmula tenha o maior grau possível. Nas Figuras 9.6 e 9.7 está ilustrada a diferença entre a regra dos Trapézios e a regra de Gauss com dois nós. Na regra dos Trapézios escolhe-se à partida x 0 = a e x 1 = b e depois obtém-se A 0 e A 1 de tal forma que a fórmula tenha pelo menos grau 1. A aproximação do integral é a área do trapézio resultante. Na quadratura de Gauss escolhe-se x 0 e x 1 de forma que a área do trapézio resultante seja exactamente igual à área abaixo da curva da função f(x) Figura 9.6: Regra dos Trapézios. Dado um integral da forma (9.1) podemos sempre transformá-lo noutro integral em que o intervalo de integração seja [ 1;1], através da mudança de variável: x = a+ b a (t+1), 1 t 1 (9.15) 2

263 Figura 9.7: Quadratura de Gauss com dois nós. A função integranda correspondente é dada por ( ) (b a)t+(a+b) g(t) = f 2 Consequentemente, b a f(x)dx = b a ( ) (b a)t+(a+b) f dt = b a 1 g(t)dt As fórmulas de quadratura de Gauss que se irão obter são para integrais da forma I(g) = 1 1 g(t)dt Para que a fórmula de quadratura tenha grau pelo menos m, o erro tem de ser zero para polinómios de grau menor ou igual a m, ou seja, pelo método dos coeficientes indeterminados, os pesos e os nós têm de ser tais que n 1 A i t k i = t k dt, i = 0,1,...,m (9.16) i=0 1 Como existem 2(n+1) incógnitas neste sistema não linear (t 0,t 1,...,t n e A 0,A 1,...,A n ), deverá haver2(n+1) equações e, consequentemente, m+1 = 2(n+1), ou seja, m = 2n+1. Para n = 0, o sistema (9.16) tem a forma Q(1) = I(1) Q(t) = I(t)

264 ou seja, A 0 = 2 A 0 x 0 = 0 e a solução é A 0 = 2 e t 0 = 0. Logo a fórmula de integração é Q(g) = 2g(0) Para n = 1, o sistema reduz-se a ou seja, Q(1) = I(1) Q(t) = I(t) Q(t 2 ) = I(t 2 ) Q(t 3 ) = I(t 3 ) A 0 +A 1 = 2 A 0 t 0 +A 1 t 1 = 0 A 0 t 2 0 +A 1 t 2 1 = 2/3 A 0 t 3 0 +A 1t 3 1 = 0 A solução deste sistema ét 0 = 3/3 et 1 = 3/3 e, consequentemente, ( ) ( ) 3 3 Q(g) = g +g 3 3 Para n = 2, os pesos e os nós determinam-se de tal forma que a área que fica abaixo da parábola seja igual á área que fica por baixo da curva da função g(t), sendo a parábola o polinómio interpolador da função nos pontos (t 0,g(t 0 )),(t 1,g(t 1 )) e (t 2,g(t 2 )). Neste caso, o sistema tem a forma Q(1) = I(1) Q(t) = I(t) Q(t 2 ) = I(t 2 ) Q(t 3 ) = I(t 3 ) Q(t 4 ) = I(t 4 ) Q(t 5 ) = I(t 5 ) ou seja, A 0 +A 1 +A 2 = 2 A 0 t 0 +A 1 t 1 +A 2 t 2 = 0 A 0 t 2 0 +A 1t 2 1 +A 2t 2 2 = 2/3 A 0 t 3 0 +A 1 t 3 1 +A 2 t 3 2 = 0 A 0 t 4 0 +A 1t 4 1 +A 2t 4 2 = 2/5 A 0 t 5 0 +A 1 t 5 1 +A 2 t 5 2 = 0

265 A fórmula de quadratura correspondente é Q(g) = 5 ( 3 ( )+ 9 g 89 5 g(0)+ 59 ) 3 g 5 Estas fórmulas podem ser extendidas para valores de n mais elevados, mas os sistemas correspondentes são cada vez mais difíceis de resolver. Pode demonstrar-se que os nós de integração de uma fórmula de Gauss com n + 1 nós coincidem com os zeros do polinómio de Legendre de grau n+1dado por 1 d n+1 P n+1 (t) = 1) n+1 2 n+1 (n+1)! dt n+1(t2 Estes polinómios podem obter-se utilizando a fórmula de recorrência P 0 (t) = 1 P 1 (t) = t P n+1 (t) = 1 n+1 [(2n+1)tP n(t) np n 1 (t)], n = 1,2,... Na tabela 9.1 encontram-se os pesos e os nós das fórmulas de Gauss para n = 0,1,2,3,4 e 5. Convém de novo salientar que estes pesos e nós correspondem ao intervalo de integração [ 1;1]. Para aplicar as fórmulas a um intervalo genérico [a;b], devemos usar a transformação (9.15). Tabela 9.1: Nós e pesos das fórmulas de Gauss. n Nós t i Pesos A i ± ± ± ± ± ± ± ± ±

266 9.7 Problemas 1. É conhecida a seguinte tabela de valores para uma funçãof: (a) Calcule um valor aproximado de π 0 x 0 π 2 π f(x) 0 1+π 2 4π 2 f(x)dx pela regra do trapézio composta. (b) Sabendo que existemαeβ tais que a função é do tipof(x) = sin(π+αx)+βx 2, pode o valor obtido na alínea anterior ser o valor exacto do integral? Porquê? 2. Considere a fórmula de quadratura com três nós Q(f) = 2λ 3 [f(x 0)+f(0)+f(x 2 )] (9.17) para aproximar o integral I(f) = λ λ f(x)dx, λ 0 (a) Obtenha x 0 e x 2 de modo que a fórmula tenha pelo menos grau 2. Para esses valores de x 0 ex 2 qual o grau da fórmula de quadratura? (b) Sejaλ = 2. Calcule λ λ 1/(1+x2 )dx utilizando o método (9.17) e a fórmula de Simpson simples. 3. A partir da tabela pretende-se calcular o integral x i f(x i ) I(f) = 2 1 f(x)dx (a) Utilizando o maior número de pontos, obtenha o valor deste integral utilizando: i. A regra dos Trapézios. ii. A regra de Simpson. (b) Sabendo que max x [1;2] f (x) 1540, faça uma estimativa do passo h máximo que deveria utilizar se pretendesse calcular o integral com um erro E T n (f) inferior a10 3, utilizando o método dos Trapézios.

267 4. Utilizou-se uma regra de Newton-Cotes composta com n sub-intervalos, para calcular o integral de uma função de classe C 6. seguinte: n E n (f) Qual foi a regra utilizada? Justifique. Os resultados recolhidos encontram-se na tabela E n (f)/e 2n (f) Considere a seguinte tabela de valores de uma função x i f(x i ) (a) Obtenha2valores aproximados para 7 f(x)dx, de duas formas diferentes, recorrendo 1 a fórmulas de quadratura compostas e utilizando o maior número de pontos da tabela. (b) Supondo que a derivada de ordem n def verifica max x [ 1;7] f(n) (x) C, n com C R, determine uma expressão, em função dec, para o erro de integração E(f) num dos casos que considerou na alínea anterior. 6. Considere os seguintes valores para a função x(t) = (1+t)e t x( 0.4) = , x( 0.3) = , x( 0.2) = , x( 0.1) = , x(0) = 1 Obtenha um valor aproximado do integral x(t)dt através da regra de Simpson com quatro sub-intervalos. 7. Determine a fórmula de quadratura Q(f) = A 0 f(0) + A 1 f(1), para aproximar integrais do tipo I(f) = 1 0 f(x)dx, de modo que seja exacta para funções da formah(x) = αx 2 +βcos(πx). Determine os valores aproximados para 1 xdx usandoq(f) e a regra de Simpson simples, respectivamente. 0

268 8. Considere a seguinte tabela de valores de uma função h x 0.5π 0 0.5π π h(x) Aproxime pela regra de Simpson o valor do integral entre 0 e π da função h tabelada. 9. Determine os valores A 1,A 2 e t tais que a regra de quadratura Q(f) = A 1 f( 1)+A 2 f(t) para aproximar 1 f(x)dx tenha o maior grau de precisão possível e indique, justificando, 1 qual é esse grau. 10. Suponha uma funçãof definida no intervalo [0;3] do seguinte modo 3 2x, 0 x 1 f(x) = 3x 2, 1 x 4 Determine valores parai(f) = 4 f(x)dx dos seguintes modos. 0 (a) Utilize a regra dos Trapézios composta, no intervalo [0;4], por forma a que o valor obtido seja exacto. Justifique. (b) Utilize a regra de Simpson, no intervalo [0; 4], usando apenas três pontos. Como justifica que, neste caso, não se obtenha o valor exacto? 11. Considere o integral I(f) = 1 0 e x2 dx (a) Determine o seu valor aproximado com quatro sub-intervalos usando as regras de Trapézios e de Simpson. (b) Qual é o número mínimo de sub-intervalos que deverá usar para obter um erro inferior a ǫ = 10 4 quando utiliza a regra dos Trapézios e a regra de Simpson? 12. Utilize a fórmula de quadratura de Gauss com n = 1, ou seja com dois nós, para aproximar o valor do integral I(f) = 3 0 x 2 e x dx 13. Utilize a fórmula de quadratura de Gauss com n = 2, ou seja com três nós, para aproximar o valor do integral I(f) = 3 0 (7+14x 6 )dx

269 14. Use as quadraturas de Gauss com dois e três nós para aproximar os seguintes integrais: (a) π/4 0 sin(x)dx; (b) x dx; (c) π/3 0 cos(3cos 2 (x))dx; (d) 1 0 ln(3+sin(x))dx; (e) dx; x Considere a seguinte tabela de valores de uma função x i f(x i ) (a) Utilizando a fórmula de Newton, determine o polinómio interpolador de f nos três primeiros pontos da tabela. (b) Sabendo que f(x) é um polinómio de grau 2, determine o valor exacto de 5 1 f(x)dx utilizando a regra de Simpson. Justifique a sua resposta. 16. Pretende-se aproximar o integral I(f) = por uma fórmula de integração do tipo 1 0 f(x)dx Q(f) = β[f(x 0 )+f(x 1 )] ondeβ,x 0,x 1 R. Determine β,x 0,x 1 de modo que a fórmula Q(f) seja exacta para polinómios de grau Considere a seguinte tabela de valores de uma função x i f(x i ) (a) Calcule as aproximações dei = 13 1 f(x)dx utilizando i. a regra de Simpson simples ii. a regra de Simpson composta

270 (b) Supondo que f é um polinómio de grau 4, determine I utilizando as duas aproximações obtidas na alínea anterior. (c) Utilizando a fórmula de Newton com diferenças divididas, obtenha o polinómio que interpola f nos pontos da tabela correspondentes aos nósx i = 3,4,7. (d) Utilize a alínea anterior para obter o polinómio de grau 3 que interpola f nos mesmos pontos e cuja terceira derivada vale Pretende-se que a fórmula de quadratura Q(f) = A 0 f( 1)+A 1 f(0)+a 2 f(1) tenha grau 2 para aproximar o integral I(f) = 2 2 f(x)dx (a) DetermineA 1, utilizando os polinómios de Lagrange. Sabendo quea 0 = A 2, determine também estes coeficientes. (b) Sabendo que I(f) = Q(f)+Cf (4) (ξ), sendoc uma constante real e ξ ( 2;2), calcule o valor da constante C. 19. Para aproximar o integral I(f) = construa uma fórmula de quadratura 4 0 xf(x)dx Q(f) = A 0 f(0)+a 1 f(3) (a) Determine as constantes A 0 e A 1 de modo a que a fórmula seja exacta quando f é um polinómio de grau 1. Qual o grau de precisão da fórmula? (b) Supondo que f C 3 [0;4], obtenha uma expressão para o erro associado à fórmula de quadratura obtida na alínea anterior, que envolva a derivada de terceira ordem f (3). 20. Para aproximar o integral definidoi(f) = 1 f(x)dx, considere uma fórmula de quadratura 1 do tipo: com 0 < x 0 1. Q(f) = A 0 f( x 0 )+A 1 f(x 0 ), (a) Calcule A 0 e A 1, usando o método dos coeficientes indeterminados.

271 (b) Defina grau de uma quadratura e determine o grau da quadratura obtida, no caso de x 0 = 1 3. (c) Usando a quadratura Q(f), com x 0 = 1, calcule 1 1 (x + 1)2 dx. Sem calcular o valor exacto do integral, determine o erro da aproximação obtida.

272

273 Capítulo 10 Derivação Em muitas situações práticas, deparamos com o problema de encontrar a derivada de uma função cuja forma é desconhecida e cuja informação que temos sobre a função é uma tabela de dados/resultados. Por exemplo, um acumulador pode ler a rotação total de um sensor e a derivada irá dar o índice de rotação. Uma das razões pela qual se usam polinómios para aproximar tabelas de dados/resultados é que dada uma função contínua num intervalo fechado, existe um polinómio arbitrariamente próximo de qualquer ponto nesse intervalo. Outra razão é que os polinómios são fáceis de integrar e derivar. Sendo assim, não é de estranhar que muitos dos métodos numéricos para integração e derivação se baseiem em polinómios aproximadores da função. Nas Secções 10.1 e 10.2 iremos estudar algumas técnicas para o cálculo numérico da primeira e segunda derivadas. Estes resultados também são usados para obter a solução numérica de equações diferenciais no Capítulo Fórmulas de diferenças divididas centradas Dados três pontos igualmente espaçados, podemos encontrar o polinómio interpolador de grau menor ou igual a 2 que passa nestes pontos, encontrar a derivada e calcular a derivada no ponto médio para obter uma boa aproximação da derivada no ponto médio. Bases: Capítulo

274 Teoria Suponha-se que se pretende aproximar a derivada da função f(x) num ponto x 0. Dado um valor pequeno de h, então se tivermos os valores da função nos pontos x 0 h, x 0 e x 0 + h, podemos obter o polinómio interpolador que passa nos pontos (x 0 h,f(x 0 h)), (x 0,f(x 0 )) e (x 0 +h,f(x 0 +h)). Na Figura 10.1 está representada uma função para a qual se pretende aproximar a derivada no ponto x 0 = 1. Seja h = 0.8, então podemos calcular o polinómio interpolador nos f(x) x Figura 10.1: A função f(x) = sin(x) 0.1 com x 0 = 1. pontos(1 0.8, f(1 0.8)),(1, f(1)) e( , f( )); ver a Figura As instruções Matlab para calcular e representar o polinómio interpolador são: y=[ ]; py=sin(y)-0.1; p=polyfit(y,py,2) p = plot(x,polyval(p,x)) Por conseguinte, o polinómio interpolador é dado por p 2 (x) = x x A sua inclinação no ponto x 0 = 1 pode obter-se calculando a sua derivada no ponto x 0 = 1: p 2 (x) = x e p 2 (1) Na Figura 10.3 está representada a tangente ao

275 p 2 (x) 0.7 f(x) 0.6 f(x) e p 2 (x) x Figura 10.2: A função f(x) = sin(x) 0.1 e o polinómio interpolador. polinómio interpolador emx 0 = 1; note-se que a tangente é dada por T p x 0 = p 2 (x 0 )+p 2(x 0 )(x x 0 ) = sin(1) x (ver equação 4.2). Se observarmos a aproximação da inclinação usando o polinómio interpolador e a inclinação exacta vemos na Figura 10.4 que são próximas uma da outra, mas são diferentes. Uma vez que estamos a considerar pontos em ambos os lados de x 0, o método denominase diferença dividida centrada. No âmbito das diferenças divididas centradas, consideramos duas fórmulas, uma que usa a interpolação em três pontos e a outra que utiliza a interpolação em cinco pontos. Com mais pontos, a instabilidade dos polinómios interpoladores reduz a vantagem de considerar fórmulas com mais pontos.

276 p 2 (x) 0.7 f(x) f(x) e p 2 (x) x Figura 10.3: A funçãof(x) = sin(x) 0.1, o polinómio interpolador e a tangente T p x T f x x Figura 10.4: Comparação das duas inclinações (exacta e aproximada utilizando interpolação quadrática).

277 Fórmulas de diferenças divididas de segunda ordem centradas Interpolando nos três pontos (x 0 h,f(x 0 h)), (x 0,f(x 0 )) e (x 0 + h,f(x 0 + h)), temos a fórmula usual f (x 0 ) 1 2h [f(x 0 +h) f(x 0 h)] (10.1) Esta fórmula obtém-se utilizando os desenvolvimentos em fórmula de Taylor: f(x 0 +h) = f(x 0 )+hf (x 0 )+ h2 2 f (x 0 )+ h3 3! f (ξ 1 ) f(x 0 h) = f(x 0 ) hf (x 0 )+ h2 2 f (x 0 ) h3 3! f (ξ 2 ) Subtraindo estas duas equações, obtemos f (x 0 ) = 1 2h [f(x 0 +h) f(x 0 h)] h2 12 [f (ξ 1 )+f (ξ 2 )] (10.2) Observa-se que o erro é O(h 2 ) e que a fórmula se aplica desde que f exista. Se f for contínua em [x 0 h;x 0 +h], então Por conseguinte, min [x 0 h;x 0 +h] f (x) 1 2 [f (ξ 1 )+f (ξ 2 )] max [x 0 h;x 0 +h] f (x) 1 2 [f (ξ 1 )+f (ξ 2 )] = f (ξ) para algum ξ [x 0 h;x 0 +h]. Aplicando este resultado na equação (10.2), obtém-se f (x 0 ) = 1 2h [f(x 0 +h) f(x 0 h)] h2 6 [f (ξ)] (10.3) Considere-se a Tabela 10.1 de dados/resultados, onde foram recolhidos os instantes no tempo (dados) onde é medido o ângulo (resultado) de um prato de satélite. Pretende-se Tabela 10.1: Ângulo de um prato de satélite ao longo do tempo. Tempo Ângulo aproximar o índice de alteração do ângulo no instante 1.4 utilizando a aproximação (10.1). Para isso, basta calcular: f (1.4) 1 2(0.1) [f(1.5) f(1.3)] = 1 [ ] = (0.1)

278 Outra fórmula de segunda ordem pode obter-se utilizando os desenvolvimentos em série de Taylor até à quarta ordem: f(x 0 +h) = f(x 0 )+hf (x 0 )+ h2 2 f (x 0 )+ h3 3! f (x 0 )+ h4 4! f (ξ 1 ) f(x 0 h) = f(x 0 ) hf (x 0 )+ h2 2 f (x 0 ) h3 3! f (x 0 )+ h4 4! f (ξ 2 ) Somando estas duas equações e rearranjando os termos, obtemos para algum ξ [x 0 h;x 0 +h]. f (x 0 ) = 1 h 2[f(x 0 +h) 2f(x 0 )+f(x 0 h)] h2 12 [f(4) (ξ)] (10.4) Com base na Tabela 10.1 podemos, por exemplo, calcular: f (1.5) [f(1.6) 2f(1.5)+f(1.4)] = [ ] = Fórmula de diferenças divididas de quarta ordem centradas Podemos aproximar a primeira e a segunda derivada utilizando as seguintes fórmulas de diferenças finitas de O(h 4 ) com os cinco pontos (x 0 2h,f(x 0 2h)) (x 0 h,f(x 0 h)), (x 0,f(x 0 )) e (x 0 +h,f(x 0 +h)),(x 0 +2h,f(x 0 +2h)): f (x 0 ) 1 12h [ f(x 0 +2h)+8f(x 0 +h) 8f(x 0 h)+f(x 0 2h)] (10.5) f 1 (x 0 ) 12h 2[ f(x 0 +2h)+16f(x 0 +h) 30f(x 0 )+16f(x 0 h) f(x 0 2h)](10.6) Procedimento Problema Aproximar a primeira e/ou segunda derivada de uma função univariada f(x) num ponto x 0. Iremos assumir que temos uma tabela de pontos (x i,f(x i )). Hipóteses Se usarmos uma aproximação de O(h 2 ) e pretendermos estimar o erro, então assumimos que a função tem segunda derivada limitada. Se em vez disso, utilizarmos uma aproximação deo(h 4 ) e também pretendermos estimar o erro, então assumimos que a função tem quarta derivada limitada. Ferramentas Desenvolvimento em fórmula de Taylor ou interpolação. Requisitos iniciais Temos de ter uma tabela de pelos menos três pontos (x i,f(x i )).

279 Processo iterativo Se pretendermos calcular uma aproximação para a primeira derivada no ponto(x i,f(x i )) e soubermos os pontos (x i 1,f(x i 1 )) e (x i+1,f(x i+1 )), então podemos calcular: f (x i ) f(x i+1) f(x i 1 ) x i+1 x i 1 ou seja, podemos utilizar a aproximação (10.1). Se o objectivo for aproximar a segunda derivada, então podemos utilizar a equação (10.4). Se a tabela for extensa o suficiente para conhecermos dois pontos em ambos os lados de x i, então podemos utilizar as fórmulas (10.5) e (10.6). Análise do erro No caso das diferenças divididas de primeira ordem vimos que o erro é dado por (10.9), ou seja éo(h). A precisão não é muito elevada, mas por vezes há necessidade de utilizar estas fórmulas, como é o caso tratado no exemplo 48. Da equação (10.3) observamos que o erro associado a esta fórmula é h2 6 [f (ξ)] ou seja, é um O(h 2 ). Na fórmula (10.4) temos um erro dado por: ou seja, um erro O(h 2 ). h2 12 [f(4) (ξ)] Em relação às fórmulas de quarta ordem, se fizermos uma combinação linear dos desenvolvimentos em série de Taylor de f(x i +2h), f(x i +h), f(x i h) e f(x i 2h) até à quinta ordem, obtemos o erro: ou seja, 1 45 f(5) (ξ 1 )h f(5) (ξ 2 )h f(5) (ξ 3 )h f(5) (ξ 4 )h f(5) (ξ 1 )h f(5) (ξ 2 )h f(5) (ξ 3 )h f(5) (ξ 4 )h 4 Os coeficientes das fracções somam = 6. Consequentemente, o erro vem dado por ou seja, o erro é O(h 4 ) f(5) (ξ)h 4 = 1 30 f(5) (ξ)h 4

280 Exemplos Exemplo 48 A Tabela 10.3 contém os valores da carga (Q) de um condensador de 100 nf medidos em vários instantes no tempo (t). Na Figura 10.5 estão representados os dados/resultados desta tabela. Tabela 10.2: Carga de um condensador ao longo do tempo. t(ns) Q(nC) x Carga (coulomb) Tempo (segundo) x 10 7 Figura 10.5: Valores da carga de um condensador ao longo do tempo. Suponha-se que se pretende aproximar a corrente (I) no ponto t = 150 da Tabela Sabemos que I = dq dt ondei, eqrepresentam a corrente e a carga, respectivamente. Sendo assim, o que se pretende é aproximar é Q (150). Como temos informação sobre dois pontos, tanto à direita como à esquerda do ponto 150, optamos

281 por utilizar a fórmula que nos permite obter um erro mais pequeno, ou seja, a fórmula de quarta ordem (10.5): Q 1 (150) 12(50) [ Q(250)+8Q(200) 8Q(100)+Q(50)] 1 = 12(50) [ ] = ou seja, no instante t = 150 ns, a corrente à entrada do condensador é aproximadametei = Também podemos utilizar a fórmula (10.2) para, por exemplo, obter os valores aproximados da corrente nos instantes 50, 100,150,200,250,300 e 350 (ver a Tabela 10.3): Q (50) 1 [Q(100) Q(0)] = h Q (100) 1 [Q(100) Q(0)] = h Q (150) 1 [Q(100) Q(0)] = h Q (200) 1 [Q(100) Q(0)] = h Q (250) 1 [Q(100) Q(0)] = h Q (300) 1 [Q(100) Q(0)] = h Q (350) 1 [Q(100) Q(0)] = h Para obter os valores aproximados da corrente nos extremos t = 0 e t = 400 podemos utilizar a fórmula das diferenças divididas à frente (10.8) e atrás (10.7), respectivamente (ver a Tabela 10.3): Q (0) Q(50) Q(0) = h Q (400) Q(400) Q(350) = h Tabela 10.3: Corrente à entrada de um condensador em carga ao longo do tempo. t(ns) I(A)

282 10.2 Fórmulas de diferenças divididas não centradas Utilizando pontos em ambos os lados de um ponto x 0 resulta numa melhor aproximação para a derivada. Infelizmente, é muito frequente em engenharia, especialmente em aplicações em tempo real, termos dados do passado para estimar a derivada no presente. Por exemplo, pode ser necessário usar o índice de variação actual de um sinal para ajustar um sistema, mas a informação que temos disponível é relativa a pontos do passado. Fórmulas semelhantes às centradas, mas que usam apenas pontos menores ou iguais ax 0 para aproximar as derivadas emx 0 são denominadas diferenças divididas a trás. Fórmulas que utilizam os pontos maiores ou iguais a x 0 para calcular as derivadas emx 0 são denominadas diferenças divididas à frente. Bases: Capítulo Teoria Suponha-se que pretendemos aproximar a derivada da função num ponto x 0. Dado um valor pequeno de h, se conhecermos o valor da função nos pontos x 0 h e x 0 então podemos obter o polinómio interpolador, de grau menor ou igual a um, da função que passa nos pontos (x 0 h,f(x 0 h)) e(x 0,f(x 0 )). Na Figura 10.6 está representada uma função na qual pretendemos aproximar a derivada no ponto x 0 e a tangente em x 0 = 1.3 que é dada por Tx f 0 = sin(1.3) 0.1+ cos(1.3) (x 1.3). Na mesma Figura 10.6 podemos observar a aproximação da derivada através de um polinómio interpolador linear. Observamos que a aproximação da inclinação usando o polinómio interpolador e a inclinação exacta são próximas uma da outra, mas são diferentes. Para h = 0.6 o polinómio interpolador nos pontos (0.7,f(0.7)) e (1.3,f(1.3)) é dado por p 1 (x) = x ; as instruções Matlab para calcular e representar o polinómio interpolador são: y = [ ]; py = sin(y) - 0.1; p = polyfit(y,py,1) p = plot(x,polyval(p,x))

283 p 1 (x) T f x 0 f(x) f(x) x Figura 10.6: A função f(x) = sin(x) 0.1 com x 0 = 1.3, o polinómio interpoldor e a tangente em x 0 = p 2 (x) T f x 0 f(x) f(x) 0.2 T p x x Figura 10.7: A funçãof(x) = sin(x) 0.1 com x 0 = 1.3, o polinómio interpolador e a tangente em x 0 = 1.3.

284 De modo semelhante, se conhecermos o valor da função nos três pontos x 0 2h, x 0 h e x 0, podemos obter o polinómio interpolador de grau menor ou igual a dois que passa nos pontos (x 0 2h,f(x 0 2h)),(x 0 h,f(x 0 h)) e(x 0,f(x 0 )). Parah = 0.6, podemos observar na Figura 10.7, a função, o polinómio interpolador nos pontos (0.1,f(0.1)), (0.7,f(0.7)) e (1.3,f(1.3)) e as recta tangentes emx 0 = 1.3 da função e do polinómio interpolador. As linhas tangentes estão próximas mas, mais uma vez, são diferentes. O polinómio interpolador é dado por p 2 (x) = x x A inclinação do polinómio emx 0 = 1.3 obtém-se calculando p 2 (1.3) = (2)(0.3126)(1.3) A tangente ao polinómio interpolador emx 0 = 1.3 é dada por T p x 0 = p 2 (1.3)+p 2(1.3)(x 1.3). Uma vez que estamos a considerar pontos à esquerda de x 0, as fórmulas denominam-se diferenças divididas à esquerda. Iremos ver duas fórmulas com base na interpolação em dois e três pontos. Com mais pontos a instabilidade dos polinómios interpoladores reduz as vantagens de ir à procura de fórmulas de ordens mais elevadas. Se considerarmos pontos à esquerda de x 0, as fórmulas denominam-se diferenças divididas para trás. Se, por outro lado, os pontos utilizados na aproximação estiverem todos à direita, então as fórmulas denominam-se diferenças divididas para a frente. Fórmula de diferenças divididas não centradas de primeira ordem Se considerar-mos o desenvolvimento em série de Taylor: e resolvermos em ordem a f (x 0 ), obtém-se f(x 0 h) = f(x 0 ) hf (x 0 )+ h2 2 f (ξ) f (x 0 ) = f(x 0) f(x 0 h) h ou seja, obtemos a fórmula das diferenças divididas para trás h 2 f (ξ) f (x 0 ) 1 h [f(x 0) f(x 0 h)] (10.7)

285 Esta fórmula corresponde a interpolar os pontos (x 0 h,f(x 0 h)) e (x 0,f(x 0 )), derivar e depois calcular no ponto x 0. Se, por outro lado, considerarmos f(x 0 +h) = f(x 0 )+hf (x 0 )+ h2 2 f (ξ) onde ξ [x 0 ;x 0 +h] e resolvermos esta equação em ordem a f (x 0 ) obtém-se f (x 0 ) = 1 h [f(x 0 +h) f(x 0 )] h 2 f (ξ) ou seja, f (x 0 ) 1 h [f(x 0 +h) f(x 0 )] (10.8) A esta aproximação chama-se fórmula das diferenças divididas para a frente. Em ambas temos um erro associado da forma: h 2 f (ξ) (10.9) Neste caso, o erro é zero se a função for um polinómio de grau menor ou igual a um. Fórmula de diferenças divididas não centradas de segunda ordem Considerando os desenvolvimentos em série de Taylor def(x 0 2h),f(x 0 h), até à terceira ordem e, depois, calculando f(x 0 2h) 4f(x 0 h)+3f(x 0 ) podemos obter a fórmula de segunda ordem f (x 0 ) 1 2h [f(x 0 2h) 4f(x 0 h)+3f(x 0 )] (10.10) Esta fórmula também se pode obter interpolando nos três pontos(x 0 2h,f(x 0 2h)),(x 0 h,f(x 0 h)) e(x 0,f(x 0 )), derivando e depois calculando no ponto x 0. Fórmula de diferenças divididas não centradas de ordens mais elevadas É possível construir polinómios interpoladores com quatro e mais pontos, mas convém lembrar que os polinómios interpoladores começam a ter grandes oscilações principalmente junto aos extremos quando o número de pontos é elevado. Consequentemente, as fórmulas começam a não ser muito exactas. o erro de uma fórmula para trás com base em n pontos é dada por: ( 1) n n f(n) h n 1 Observe-se que o coeficiente 1/n não cresce tão rapidamente como o coeficiente das diferenças divididas centradas que segue 1 6, 1 30, 1 630, , , ,

286 Procedimento Problema Aproximar a primeira derivada de uma função univariadaf(x) num pontox 0. Iremos assumir que temos uma tabela de pontos (x i,f(x i )). Hipóteses Se pretendermos estimar o erro temos que assumir que a segunda derivada é limitada se utilizarmos uma aproximação O(h 2 ). Ferramentas Desenvolvimento em fórmula de Taylor ou interpolação. Requisitos iniciais Temos de ter uma tabela de pelos menos três pontos (x i,f(x i )). Processo iterativo Se pretendermos calcular uma aproximação para a primeira derivada no ponto (x i,f(x i )) e tivermos conhecimento do ponto anterior (x i 1,f(x i 1 )), então podemos calcular: f (x 0 ) f(x i) f(x i 1 ) x i x i 1 = 1 h [f(x i) f(x i h)] onde h = x i x i 1. Se tivermos informação nos dois pontos anteriores então podemos calcular f (x 0 ) 1 2h [3f(x i) 4f(x i 1 )+f(x i 2 )] = 1 2h [3f(x i) 4f(x i h)+f(x i 2h)] Análise do erro No caso das diferenças divididas de primeira ordem vimos que o erro é dado por (10.9), ou seja éo(h). A precisão não é muito elevada, mas por vezes há necessidade de utilizar estas fórmulas, como é o caso tratado no exemplo 48. Para determinar o erro nas fórmulas de segunda ordem precisamos de utilizar os dois desenvolvimentos em série de Taylor: f(x 0 h) = f(x 0 ) hf (x 0 )+ h2 2 f (x 0 ) h3 3! f (ξ 1 ) f(x 0 2h) = f(x 0 ) 2hf (x 0 )+ (2h)2 2 f (x 0 ) (2h)3 f (ξ 1 ) 3! Subtraindo à segunda quatro vezes a primeira e resolvendo em ordem af (x 0 ) obtém-se f (x 0 ) = 1 2h [f(x 0 2h) 4f(x 0 h)+3f(x 0 )]+ h2 3 [2f (ξ 1 ) f (ξ 2 )] Uma vez que a soma dos coeficientes entre parentesis é 1, podemos fazer a aproximação 2f (ξ 1 ) f (ξ 2 ) f (ξ) no intervalo [x 0 2h;x 0 ] e, por conseguinte, a fórmula éo(h 2 ).

287 Podemos observar que o erro associado à diferença dividida centrada de segunda ordem (10.3) tem um coeficiente igual a 1/6 e, por conseguinte, esta diferença dividida centrada tem aproximadamente metade do erro absoluto da diferença dividida para trás de segunda ordem. Considere a função f(x) = x 4 e o ponto x 0 = 0.6. Na Tabela 10.4 encontram-se as aproximações da primeira derivada com ambas as fórmulas de segunda ordem, centrada e para trás, e os erros para h = 0.1, h = 0.05 e h = Utilizou-se o valor exacto da derivada: f (0.6) = 4(0.6) 3. Tabela 10.4: Comparação dos erros de duas fórmulas de diferenças divididas. h Centrada Para trás Erro (centrada) Erro (para trás) Erro/2 (para trás) Problemas 1. Obtenha as fórmulas (10.5) e (10.6) e mostre que são ambaso(h 4 ). 2. A Tabela seguinte contém os valores da carga (Q) de um condensador de 100 nf medidos em vários instantes no tempo (t). t (ns) Q (nc) Sabemos que I = dq, onde I, Q e t representam a corrente, a carga e o tempo, respectivamente. Calcule aproximações dos valores da corrente nos instantes t = 100 e t = 150 dt e coloque-os na tabela: Instante, t Corrente,I 3. Calcule f (0.4) e f (0.4) usando a tabela abaixo e utilizando fórmulas de diferenças divididas centradas.

288 x f(x) (a) Utilizando fórmulas de diferenças divididas determine as entradas que faltam na seguinte tabela. x i f 1 (x i ) f 1 (x i) f 1 (x i) f 2 (x i ) f 2 (x i) f 2 (x i) (b) Sabendo que os valores da tabela foram obtidos com as funções i. f 1 (x) = e x 4x 2 +2x 5 ii. f 2 (x) = cos(x) calcule os erros exactos e os majorantes correspondentes às fórmulas de diferenças divididas que utilizou para preencher as tabelas. 5. Considere a tabela seguinte com valores de uma função tal que f(x) (n) 20: x i f(x i ) (a) Calcule aproximações def (1.0) e f (1.0) o mais exactas possível. (b) Obtenha um majorante para o erro das aproximações obtidas. 6. Numa estrada em linha recta fez-se uma experiência com um automóvel. De cinco em cinco segundos, mediu-se a sua distância percorrida em relação ao ponto de partida. Os valores observados encontram-se na tabela seguinte: Instante Distância Velocidade

289 Utilize fórmulas de diferenças divididas para prever a velocidade do automóvel em cada instante, em que foi feita a medição, e preencha os valores que faltam na tabela. 7. Num circuito RL com voltagem V, resistência R e indutância L verifica-se V = L di dt +RI, onde I é a corrente. Com base na tabela de valores observados da corrente num circuito RL com L = 0.98 henries e R = ohms, calcule valores aproximados da voltagem quando t = 1.00,t = 101,t = 1.02, t = 1.03 e t = 1.04, e complete a tabela. t I V 8. Num circuito RLC com voltagem V, resistência R, indutância L e capacidadec verifica-se V(t) = RI(t)+L di t dt (t)+c I(τ)dτ, onde I é a corrente. Com base na tabela de valores observados da corrente num circuito RL com L = 0.98 Henries, R = Ohms e C = 2 Farad, calcule valores aproximados da voltagem quando t = 1.00, t = 101, t = 1.02, t = 1.03 e t = 1.04, e complete a tabela. Para o cálculo do integral utilize uma fórmula de quadratura à sua escolha. t I V 9. Obtenha as fórmulas f (x 0 ) 1 12h [ f(x 0 +2h)+8f(x 0 +h) 8f(x 0 h)+f(x 0 2h)] f 1 (x 0 ) 12h 2[ f(x 0 +2h)+16f(x 0 +h) 30f(x 0 )+16f(x 0 h) f(x 0 2h)] e mostre que são ambas O(h 4 ). Calcule valores aproximados de f (0.4) e f (0.4) sendo f(x) a função tabelada na tabela seguinte. x f(x)

290

291 Capítulo 11 Problemas com valor inicial É já desde o tempo de Newton que certos fenómenos físicos são investigados através da representação do fenómeno sob a forma de equações diferenciais. Neste contexto, uma equação diferencial é uma equação de evolução que especifica, dadas determinadas condições iniciais, como é que o sistema evolui no tempo. Uma vez que é mais fácil medir o índice de mudança de uma quantidade do que a própria quantidade, muitas leis físicas em ciência expressam-se em termos de equações diferenciais. Uma equação diferencial é aquela que envolve pelo menos uma derivada de uma função desconhecida. Seja y(t) uma função deremredenotemos pory (t), y (t),...,y (k) as suas derivadas dy(t), dt d 2 y(t) dt 2... d k y(t) dt k Uma equação diferencial ordinária é uma equação que envolve t, y e as suas derivadas até uma certa ordem, ou seja, contém t, y, y, y,... A ordem de uma equação diferencial é a ordem k da maior derivada que aparece na equação. Neste capítulo, iremos preocupar-nos em resolver numericamente equações diferenciais ordinárias de primeira ordem sujeitas a uma determinada condição inicial, isto é, resolver problemas da forma y = f(t,y) (11.1) y(t 0 ) = y 0 ondet 0 é um ponto por onde a curvay(t) passa. Estes problemas denominam-se problemas de valor inicial. 291

292 Existem muitos métodos para resolver problemas do tipo (11.1). Os métodos que serão aqui apresentados irão servir para introduzir a ideia básica de muitos outros métodos mais sofisticados e podem ser aplicados facilmente a sistemas de equações de primeira ordem. Estes sistemas serão apresentados na Secção 11.6 onde se apresenta uma técnica para converter um problema de valor inicial de ordem elevada num sistema de equações de primeira ordem. Quando resolvemos uma equação diferencial com um método numérico não esperamos obter a solução directamente como uma fórmula explícita y(t) em função de t. Em vez disso, geralmente construímos uma tabela da forma onde t 0 t 1 t 2... t n (11.2) y 0 y 1 t 2... y n t i = t 0 +ih, i = 0,1,2,...,n com h = (b a)/n sendo o tamanho do passo e onde y i representa o valor aproximado da solução exacta no ponto t i. A solução exacta no ponto t i representa-se pory(t i ) Método de Euler O método de Euler é um método simples para resolver numericamente problemas de valor inicial. Tem a vantagem de não necessitar das derivadas da função f. Contudo, para obtermos uma precisão aceitável é preciso valores de h bastante pequenos. A palavra Euler pronuncia-se óiler. Bases: Secção Teoria Para obter o método de Euler considera-se o desenvolvimento em série de Taylor de y em torno do ponto t i para i = 0,1,2,...,n 1. Assuma-se que y é duas vezes continuamente diferenciável no intervalo [t 0 ;t n ]. Então, podemos escrever y(t i+1 ) = y(t i +h) = y(t i )+hy (t i )+ h2 2 y (ξ)

293 para algum ξ [t i ;t i+1 ]. Comoy (t i ) = f(t i,y(t i )) vem Consequentemente, Utilizando a notação y i y(t i ), então y(t i+1 ) = y(t i +h) = y(t i )+hf(t i,y(t i ))+ h2 2 y (ξ) (11.3) y(t i+1 ) y(t i )+hy (t i ) = y(t i )+hf(t i,y(t i )) y i+1 = y i +hf(t i,y i ), i = 0,1,2,...,n 1. (11.4) Este método denomina-se por Método de Euler. Na Figura 11.1 pode observar-se uma interpretação geométrica deste método. A recta tangente que toma o valor zero em t i e tem inclinação y (t i ) é dada por y (t i )(t t i ). Somando y i obtemos a recta tangente que passa em y i e tem inclinação y (t i )(t t i ): T ti = y i +y (t i )(t t i ) y i +f(t i,y i )(t t i ) A aproximação seguinte ay i obtém-se no ponto de intercepção desta tangente com a linha vertical t = t i+1, ou seja, y i+1 = y i + hf(t i,y i ), onde se utilizou o facto de t i+1 t i = h. O conceito que estamos a utilizar é o seguinte: uma função contínua pode ser aproximada localmente por uma linha recta que é a tangente. Para visualizar melhor o método, considere-se a equação diferencial y = y t+1, (11.5) a rede de pontos da forma (t,y) [0;4] [ 1;3] e calcule-se a inclinação nestes pontos. Em seguida, para cada ponto da rede, represente-se graficamente uma seta com a inclinação nesse ponto. O resultado da representação gráfica encontra-se na Figura Sendo assim, uma solução que passe através, ou perto, de um dos pontos da grelha tem de ter uma inclinação igual a, ou próxima, da inclinação da seta. Quase que conseguimos traçar manualmente as soluções se seguirmos as setas. Podemos observar, na Figura 11.3, quatro condições iniciais diferentes: y(0) = 0.5, y(0) = 0, y(0) = 0.5 e y(0) = 1. Observe-se que cada solução tem uma inclinação que se aproxima de qualquer seta por onde pode passar. Se y(0) = 0.5 e pretendermos aproximar y(1), segue-se a inclinação em (0, 0.5) entre t = 0 e t = 1 (ver a Figura 11.4). Assim, obtemos y(1) = 2. Neste exemplo particular, podemos calcular analiticamente a solução do problema de valor inicial. Também podemos utilizar a instrução Matlab

294 100 y(t) y 20 i+1 hf(t i,y i ) y i t i t i+1 t Figura 11.1: Interpretação geométrica do método de Euler. dsolve( Dy=y-t+1, y(0)=0.5 ) para determinar a solução exacta que é dada por: y(t) = t+ 1 2 et (11.6) De facto y(0) = 0+e 0 /2 = 0.5. Além disso, se reescrevermos (11.6) na forma y (t) = et = 1 t+(t+ 1 2 et ) observamos que y(t) satisfaz a equação diferencial y (t) = y(t) t+1que é a equação diferencial (11.5).

295 Figura 11.2: As inclinações definidas pela equação diferencial para vários valores de t e y. Figura 11.3: Quatro condições iniciais para diferentes condições iniciais.

296 Figura 11.4: Aproximando y(1) com condição inicial y(0) = 0.5 e a inclinação nesse ponto.

297 Método de Euler e integração numérica O método de Euler para resolver equações diferenciais corresponde a utilizar o extremo esquerdo do intervalo como nó de integração quando se integra a equação diferencial. concretamente, dada a equação diferencial y (t) = f(t,y(t)) podemos escrever ou seja, Consequentemente, ti+1 t i y (t)dt = y(t i+1 ) y(t i ) = y(t i+1 ) = y(t i )+ ti+1 t i ti+1 t i ti+1 t i f(t,y(t))dt f(t,y(t))dt f(t,y(t))dt Mais Para resolver o integral do lado direito desta equação, aproxima-se a função integranda pelo polinómio interpolador de grau zero que coincide com a função no extremo esquerdo do intervalo [t i ;t i+1 ]. Ou seja, y(t i+1 ) = y(t i )+ Uma vez que df dt (ξ t,y(ξ t )) = y (ξ t ) vem ti+1 y(t i+1 ) = y(t i )+(t i+1 t i )f(t i,y(t i ))+ t i f(t i,y(t i ))+(t t i ) df dt (ξ t,y(ξ t ))dt ti+1 t i (t t i )y (ξ t )dt Assumindo y C[t i ;t i+1 ], ou seja y C 2 [t i ;t i+1 ], e uma vez que a função (t t i ) não muda de sinal em[t i ;t i+1 ], podemos aplicar o teorema do valor médio para integrais (ver Secção 9.1) e obter y(t i+1 ) = y(t i )+(t i+1 t i )f(t i,y(t i ))+y (η) Daqui obtém-se o método de Euler (11.4). ti+1 = y(t i )+hf(t i,y(t i ))+ h2 2 y (η), η [t i ;t i+1 ] t i (t t i )dt Procedimento Problema Encontrar uma solução aproximada para um problema de valor inicial da forma (11.1). Ou seja, com base no problema (11.1), construir a Tabela Hipóteses Assume-se quey C 2 ([t 0 ;t n ]) e quef(t,y) é contínua em ambas as variáveis na região onde a solução passa no plano-ty.

298 Ferramentas Desenvolvimento em série de Taylor. Requisitos iniciais Sejam y 0, t 0, n e t n. É preciso calcular h = (t n t 0 )/n e construir a rede de pontos t 0,t 1,...t n. Processo iterativo Dado a aproximação da função no ponto t i, y i, a aproximação no ponto seguinte da rede,t i+1, obtém-se calculandoy i+1 = y i +hf(t i,y i ). Condições de paragem O processo pára quando a Tabela 11.2 estiver completamente preenchida, ou seja, a variável de ciclo i vai desde 0 até n com passo unitário. Análise do erro Para estudar a convergência do método de Euler começamos por subtrair a equação (11.4) da equação (11.3) e obtemos y(t i+1 ) y i+1 = y(t i ) y i +h[f(t i,y(t i )) f(t i,y i )]+ h2 2 y (ξ) Considerando que o erro no ponto t i se denota por e i = y(t i ) y i e assumindo que f é Lipschitziana com constante de Lipschitz L vem e i+1 e i +hl y(t i ) y i + h2 2 y (ξ) ou seja, onde e i+1 e i (1+Lh)+ h2 2 K 2, i = 0,1,2... (11.7) L = max t [a;b] y f(t,y), K 2 = max y (x) (11.8) t [a;b] O termo h 2 K/2 é um majorante do erro cometido no passo actual e o outro termo é um majorante do erro propagado vindo dos passos anteriores. Para mostrar a convergência do método, majoramos o erro correspondente à aproximação y N = b e depois mostramos que ele tende para zero quandohtende para zero. Para calcular este majorante temos de utilizar o seguinte Lema: Lema 1 Suponha-se que existem números δ e K tal que a sucessãod 0, d 1, d 2,..., satisfaz d i+1 (1+δ)d i +K, i = 0,1,2,... (11.9) então para qualquer i 0 d i e iδ d 0 +K eiδ 1 δ (11.10)

299 Demonstração: Suponha-se que a sucessão d 0, d 1, d 2,..., satisfaz (11.9). Como para i = 0 se tem d 1 (1+δ)d 0 +K, temos para i = 1 d 2 (1+δ)d 1 +K (1+δ) 2 d 0 +K[1+(1+δ)] Consequentemente, para i = 2 d 3 (1+δ) 3 d 0 +K[1+(1+δ)+(1+δ) 2 ] Por indução supomos que d i (1+δ) i d 0 +K[1+(1+δ)+(1+δ) (1+δ) i 1 ] (11.11) e então d i+1 (1+δ)d i +K (1+δ) i+1 d 0 +K[1+(1+δ)+(1+δ) (1+δ) i ] e isto completa o argumento por indução. Observamos que o termo i 1 (1+δ)+(1+δ) (1+δ) i 1 = (1+δ) j em (11.11) é uma progressão geométrica em que o primeiro termo é a 1 = 1 e a razão q = (1+δ), ou seja,a j+1 = (1+δ) j, j = 0,1,...,i 1. Consequentemente, j=0 d i (1+δ) i d 0 +K (1+δ)i 1 (1+δ) 1 = (1+δ)i d 0 +K (1+δ)i 1 δ (11.12) Por outro lado, desenvolvendo a função e δ (δ > 0) em trono do ponto zero vem e δ = 1+δ + δ2 2 eτ, 0 < τ < δ ou seja, Por conseguinte, e segue que 1+δ = e δ δ2 2 eτ, 0 < τ < δ 1+δ e δ (1+δ) i e iδ Aplicando este resultado a (11.12) obtém-se o resultado (11.10).

300 Aplicando o Lema 1 à desigualdade (11.7) obtém-se Contudoe 0 = 0 e ih Nh = b a, logo e i e 0 e ihl + hk 2 2L (eihl 1) (11.13) e i hk 2 2L (el(b a) 1) (11.14) Observa-se que o erro é majorado por uma constante vezes h, ou seja, o majorante é um O(h). Esta estimativa do erro ignora os efeitos da aritmética em precisão finita. Quando a tolerância é da mesma ordem de grandeza da unidade de arredondamento da máquina não é correcto ignorar os erros de arredondamento. Também quando é preciso utilizar um passo muito pequeno para obtermos uma solução aproximada suficientemente precisa, os erros de arredondamento não podem ser ignorados. Note-se que quando calculamos f(t i,y i ) na nossa máquina o que na realidade obtemos é f(t i,y i ) + ǫ i. De modo semelhante, quando calculamos é cometido um erro ρ i, ou seja, y i+1 = y i +h[f(t i,y i )+ǫ i ] y i+1 = y i +hf(t i,y i )+hǫ i +ρ i (11.15) Nesta situação, um majorante para o erro obtém-se de forma semelhante ao majorante anterior. Subtraindo a equação (11.4) da equação (11.15) obtemos y(t i+1 ) y i+1 = y(t i ) y i +h[f(t i,y(t i )) f(t i,y i )]+ h2 2 y (ξ) hǫ i ρ i Consequentemente, ou seja, onde e i+1 e i +hl e i + h2 2 y (ξ)+h ǫ i + ρ i L = max t [a;b] y f(t,y), K 2 = max e i+1 e i (1+Lh)+ h2 2 K 2 +hǫ+ρ t [a;b] y (x), max ǫ i ǫ, i=0,n 1 max ρ i ρ i=0,n 1 Aplicando o Lema 1 à desigualdade anterior obtém-se ( ) h e i e 0 e ihl 2 e ihl + 2 K 1 2 +hǫ+ρ hl

301 Consequentemente, e i el(b a) 1 L ( hk2 2 +ǫ+ ρ ) h Com base neste majorante, podemos observar que os efeitos dos erros de arredondamento são cada vez maiores à medida que o passo h diminui. Embora a tendência natural seja diminuir o passo para obter maior precisão. Na realidade existe uma precisão máxima possível que se consegue atingir e essa precisão máxima depende do problema, do método numérico e do sistema de vírgula flutuante usado na máquina onde são feitos os cálculos. Na realidade os efeitos dos erros de arredondamento são mais complicados do que se pode ver através do majorante, mas a majoração está qualitativamente correcta. Na Figura 11.5 podemos observar experimentalmente o comportamento do erroe(1) = y(1) y N em função do número de sub-intervalos N, para o problema y = 2e y com y(0) = 2. O Matlab faz os cálculos com muita precisão pelo que na maioria dos casos, o efeito dos erros de arredondamento não é visível mesmo que h seja muito pequeno, ou seja, N grande. Para ilustrar o comportamento em situações mais complicadas utilizou-se a função chop no código. Observa-se que para valores de h não muito pequenos a solução aproximada é bastante precisa. Depois à medida que h tende para zero observamos o erro a diminuir até atingir um óptimo e, em seguida, o erro começa a oscilar e a aumentar ERRO NO PONTO t = NÚMERO DE SUBINTERVALOS Figura 11.5: Erro em função do número de subintervalos N = (b a)/h (método de Euler).

302 Exemplos Exemplo 49 Considere o problema de valor inicial y = 2t y y(0) = 1 Para obter um valor aproximado dey(1) comh = 0.1 e uma vez que f(t,y) = 2t y, podemos escrever y i+1 = y i +hf(t i,y i ) = y i +h(2t i y i ) = y i +h(2ih y i ), i = 0,1,2...,9. Parai = 0 tem-se e com i = 1 vem y 1 = 1+0.1( ( 1)) = 0.9 y 2 = 1+0.1( ) = 0.79 Continuando o procedimento obtemos os valores presentes na Tabela Nesta mesma tabela também estão os valores das inclinações em cada ponto. Tabela 11.1: Aplicação do método de Euler à equaçãoy = 2t y com y(0) = 1. i t i f(t i,y i ) y i Exemplo 50 Considere o problema de valor inicial y = 2 e y y(0) = 2

303 1. Obtenha um valor aproximado de y(1) comh = Neste caso, f(t,y) = 2 e y e os pontos da rede são t 0 = 0, t 1 = 0.25, t 2 = 0.5, t 3 = 0.75 e t 4 = 1. Consequentemente, o método de Euler tem a forma y i+1 = y i +2he y i, i = 0,1,2,3. Ou seja, y 0 = 2 y 1 = y 0 +2he y 0 = y 2 = y 1 +2he y 1 = y 3 = y 2 +2he y 2 = y 4 = y 3 +2he y 3 = A tabela de valores correspondente será: t i y i Sabendo que y(t) é uma função positiva, mostre que o erro do valor calculado para x(1) é inferior a (e 2 1)/4. Aplicando a majoração (11.34) obtém-se e 4 hk 2 2L ( e (t 4 t 0 )L 1 ) Masy (t) = 2e y(t) y (t) = 4e 2y(t). Uma vez quey(t) é positiva, y (t) 4 = K 2. Além disso, y (2e y ) = 2e y 2 = L Por conseguinte, e ( e (1 0) 2 1 ) = 1 4 (e2 1) Obtenha os erros absoluto e relativo do valor calculado parax(1). Contudo, neste caso podemos saber a solução exacta utilizando Matlab. A instrução exacta = dsolve( Dy=2*exp(-y), y(0)=2 ) retorna

304 exacta = log(2*t + exp(2)) Os erros absoluto e relativo obtêm-se escrevendo absoluto = abs(log(2*1 + exp(2)) ) relativo = abs((log(2*1 + exp(2)) )/log(2*1 + exp(2))) o retorno é absoluto = E-3 relativo = E-3 Se fizermos o quociente 0.25(e 2 1)/ , ou seja, o majorante é cerca de239.4 vezes maior do que o erro efectivamente cometido. Exemplo 51 Considere o problema de valor inicial do exemplo anterior. Para este problema, a solução exacta é log e (2t + e 2 ), o erro absoluto exacto em t i é e i = y i log e (2t i + e 2 ) e o majorante do erro absoluto emt i é ou seja, e i hk 2 2L ( e (t i t 0 )L 1 ) e i h ( e 2ih 1 ) = Majorante1 Uma vez que sabemos que y (t) = 4e 2log e (2t+e2) podemos determinar um majorante melhor: Majorante2 = max t [t 0 ;t i ] 4e 2log e (2t+e2) = 4e 2log e (2t 0+e 2) = 4e 2log e (e2) = 4e 4 = Considere h = 0.1, então aplicando o método de Euler podemos obter a Tabela Observamos que, neste exemplo, t aumenta, os majorantes dos erros vão sendo cada vez maiores comparativamente com o valor exacto do erro e são consideravelmente bastante maiores que os erros efectivamente cometidos. Por conseguinte, o majorante do erro é conservativo. Este comportamento do erro é o mais comum na resolução deste tipo de problemas.

305 Tabela 11.2: Aplicação do método de Euler à equaçãoy = 2e y com y(0) = 2. t i f(t i,y i ) y i e i = y i y((t i ) Majorante2 Majorante Métodos de Taylor de ordem mais elevada Estes métodos obtêm-se fazendo o desenvolvimento em série de Taylor de y em torno do ponto t i para i = 0,1,2,...,n 1. Para a sua obtenção considera-se que existem as derivadas parciais de f até certa ordem. O método de Euler é o caso mais simples dos métodos de Taylor porque corresponde ao método de Taylor de ordem 1. Considere-se o desenvolvimento até à terceira ordem Uma vez quey (t i ) = f(t i,y(t i )) vem y(t i+1 ) = y(t i +h) = y(t i )+hy (t i )+ h2 2! y (t i )+ h3 3! y (ξ) (11.16) y (t i ) = f t (t i,y(t i ))+y (t i ) f y (t i,y(t i )) Substituindo esta expressão em (11.16) obtém-se = f t (t i,y(t i ))+f(t i,y(t i )) f y (t i,y(t i )) [ y(t i+1 ) = y(t i )+hf(t i,y(t i ))+ h2 f 2! t (t i,y(t i ))+f(t i,y(t i )) f y (t i,y(t i )) ]+ h3 3! y (ξ) (11.17) Por conseguinte, o método de Taylor de ordem 2 é dado por [ y i+1 = y i +hf(t i,y i )+ h2 f 2! t (t i,y i )+f(t i,y i ) f ] y (t i,y i )

306 e o erro local de truncatura associado é e(t i+1 ) = h3 3! y (ξ) Se fizermos o desenvolvimento em série de Taylor até à ordem 4 podemos obter o método de Taylor de ordem 3 e assim sucessivamente. Para ilustrar este tipo de métodos, considere-se o problema de valor inicial y = 2ty 2 e o desenvolvimento até à quarta ordem y(1) = 2 y(t i+1 ) = y(t i +h) = y(t i )+hy (t i )+ h2 2! y (t i )+ h3 3! y (t i )+ h4 4 y(4) (ξ)+... As derivadas de y podem obter-se a partir da equação diferencial y = 2ty 2 : y = 2ty 2 y = 2(y 2 +2yy ) y = 2{2yy +2[(y ) 2 +yy ]} Por conseguinte, dada uma aproximação y i, um passo h e um ponto t i, a aproximação seguinte obtém-se através de: y i = 2t i y 2 i y i = 2(y 2 i +2y iy i ) y i = 2{2y i y i +2[(y i )2 +y i y i ]} y i+1 = y i +hy i + h2 2! y i + h3 3! y i Note-se que podemos fazer substituições sucessivas para obter fórmulas para y e y que não contenham derivadas de y no lado direito. Contudo, isto não foi necessário porque elas são recursivas. Os métodos de Taylor têm a vantagem de se conseguirem ordens elevadas. Neste caso, conseguem-se boas precisões com passos relativamente pequenos. Contudo, há uma grande desvantagem. Eles dependem da diferenciação repetida da equação diferencial. A necessidade de um trabalho analítico prévio é uma desvantagem bastante grande. Por exemplo, se houver um engano na diferenciação, esse erro vai permanecer e é, por vezes, difícil ser detectado. Bases: Secção 3.1.

307 Procedimento Problema Encontrar uma solução aproximada para um problema de valor inicial da forma (11.1). Ou seja, com base no problema (11.1), construir a Tabela Hipóteses Assume-se que y C k+1 ([t 0 ;t n ]) e que f(t,y) é contínua e tem derivadas parciais contínuas em ambas as variáveis na região do plano-ty onde a solução passa. Ferramentas Desenvolvimento em série de Taylor. Requisitos iniciais Calcular analiticamente as sucessivas derivadas de y. É preciso y 0, t 0, n e t n. Determinarh = (t n t 0 )/n e construir a rede de pontos t 0,t 1,...t n. Processo iterativo Dada a aproximação da função no ponto t i, y i, a aproximação no ponto seguinte da rede,t i+1, obtém-se calculando y i =... y i =... y i =..... y (k) i =... y i+1 = y i +hy i + h2 2! y i + h3 3! y i hk k! y(k) i Condições de paragem O processo pára quando a Tabela 11.2 estiver completamente preenchida, ou seja, a variável de ciclo i vai desde 0 até n com passo unitário. Análise do erro No método de Taylor de ordem k retemos os termos da série de Taylor até à ordem k. Por conseguinte, o erro local de truncatura é a soma dos termos restantes do desenvolvimento em série de Taylor que não foram incluídos. Pelo teorema de Taylor, estes termos podem ser comprimidos num único termo da forma h k+1 (k +1)! y(k+1) (ξ) onde ξ [t i ;t i+1 ]. Neste caso, diz-se que o erro local de truncatura éo(h k ) Exemplos

308 Exemplo 52 Suponhamos que se pretende obter, através do método de Taylor de ordem 2 e com h = 0.1, um valor aproximado dey(0.3), sendoy solução do problema y = t 2 y (cost) 2, y(0) = 2 Para isso começa-se por identificar a funçãof(t,y) = t 2 y (cost) 2 e calculam-se as derivadas f f (t,y) = 2ty +2costsint, t (t,y) = t2 y Por conseguinte, y i = t 2 i y i (cost i ) 2 y i = f t (t i,y i )+y i f y (t i,y i ) = 2t i y i +2cost i sint i y i t2 i y i+1 = y i +hy i + h2 2 y i Para aproximary(0.3) são precisas três iteradas poist 0 = 0, t 1 = 0.1, t 2 = 0.2 e t 3 = 0.3. Cálculo da primeira iterada (i=0): Cálculo da primeira iterada (i=1): Cálculo da primeira iterada (i=2): y 0 = t 2 0 y 0 (cost 0 ) 2 = (0 2 )(2) (cos(0)) 2 = 1 y 0 = 2t 0 y 0 +2cost 0 sint 0 y 0t 2 0 = 2(0)(2)+2(cos(0))(sin(0)) y 0 (02 ) = 0 y 1 = y 0 +hy 0 + h2 2 y 0 = y 1 = t 2 1 y 1 (cost 1 ) 2 = (1.9) (cos(0.1)) 2 = y 1 = 2t 1 y 1 +2cost 1 sint 1 y 1t 2 1 = 2(0.1)(1.9)+2(cos(0.1))(sin(0.1)) y 1 (0.1)2 = y 2 = y 1 +hy 1 + h2 2 y 1 = y 2 = t 2 1 y 1 (cost 1 ) 2 = ( ) (cos(0.2)) 2 = y 2 = 2t 1 y 1 +2cost 1 sint 1 y 1t 2 1 = 2(0.2)( )+2(cos(0.2))(sin(0.2)) y 2 (0.2)2 = y 3 = y 2 +hy 2 + h2 2 y 2 =

309 11.3 Método de Heun O método dos trapézios em integração numérica, [f(a)+f(b)](b a)/2, é muito melhor que o método que usa apenas o extremo esquerdo do intervalo como nó de integração, f(a)(b a), porque utiliza o valor da função em dois pontos em vez de um. De modo semelhante, o método de Euler usa apenas o valor da inclinação no extremo esquerdo do intervalo [t i ;t i+1 ], enquanto que o método de Heun utiliza o valor da inclinação em ambos os extremos deste intervalo para encontrar a inclinação média. O nome Heun lê-se "óin". Bases: Secções 3.1 e Teoria Sejam K 0 = f(t i,y i ) e K 1 = f(t i+1,y i+1 ) as inclinações aproximadas nos pontos t i e t i+1, respectivamente; a inclinaçãok 0 = f(t 0,y 0 ) não é uma aproximação, ou seja, a primeira inclinação é exacta. Se a variação da inclinação for aproximadamente linear no intervalo [t i ;t i+1 ], então podemos utilizar (K 0 + K 1 )/2 como um valor razoável para a média das inclinações neste intervalo. Consequentemente, y i+1 = y i + h 2 (K 0 +K 1 ) que é uma equação implícita em relação a y i+1. Sendo assim, utilizamos o método de Euler para aproximar y i+1 no lado direito da equação e obtemos y i+1 = y i + h 2 [f(t i,y i )+f(t i+1,y i+1 )] ou seja, y i+1 = y i + h 2 [f(t i,y i )+f(t i +h,y i +hf(t i,y i ))] (11.18) Este método é denominado por método de Heun. Para observar graficamente o comportamento do método, considere-se o problema de valor inicial y = y/2 t+1 y(0) = 0.5 Na Figura 11.6 podemos observar a aproximação de y(1) através do método de Euler, isto é, seguindo a inclinaçãok 0 = f(t 0,y 0 ) = 1.25 obtemos y(1) y 1 = = 1.75.

310 Se aproximarmos a inclinação no ponto(1,1.75) obtemosk 1 = f(t 1,y 1 ) = f(1,1.75) = Podemos observar esta inclinação na Figura A média destas duas inclinações é (K 0 + K 1 )/2 = Por conseguinte, utilizando o método de Heun, aproxima-se y(1) seguindo esta inclinação média ao longo da distância igual a uma unidade, ou seja, y 1 = y 0 + h 2 (K 0 +K 1 ) = = Esta aproximação encontra-se na Figura 11.8 e podemos observar que ela é muito melhor que a representada na Figura Figura 11.6: Aproximação de y(1) utilizando o método de Euler Método de Heun e integração numérica O método de Heun para resolver equações diferenciais corresponde a utilizar o método dos Trapézios quando se integra a equação diferencial (ver Secção 9.3). Mais concretamente, dada a equação diferencialy (t) = f(t,y(t)) podemos escrever ti+1 t i y (t)dt = ti+1 t i f(t,y(t))dt

311 Figura 11.7: Inclinação no ponto (1,1.75). Figura 11.8: Aproximação dey(1) através do método de Heun.

312 ou seja, Consequentemente, y(t i+1 ) y(t i ) = y(t i+1 ) = y(t i )+ ti+1 t i ti+1 f(t,y(t))dt f(t,y(t))dt Para resolver o integral do lado direito desta equação, aproxima-se a função integranda pelo polinómio interpolador de grau menor ou igual a um que coincide com a função nos extremos do intervalo [t i ;t i+1 ]. Ou seja, aplicamos o método dos Trapézios, apresentado na Secção 9.3 e vem y(t i+1 ) = y(t i )+ h 2 [f(t i,y(t i ))+f(t i+1,y(t i+1 ))] h3 d 2 f 12 dt (ξ,y(ξ)), ξ [t i;t 2 i+1 ] Uma vez que df dt (ξ,y(ξ)) = y (ξ) vem y(t i+1 ) = y(t i )+ h 2 [f(t i,y(t i ))+f(t i+1,y(t i+1 ))] h3 12 y (ξ), ξ [t i ;t i+1 ] onde se assume y C[t i ;t i+1 ], ou sejay C 3 [t i ;t i+1 ]. Daqui resulta o método de Heun dado por (11.18) com o erro dado por t i e(t i+1 ) = h3 12 y (ξ), ξ [t i ;t i+1 ] (11.19) Procedimento Problema Encontrar uma solução aproximada para um problema de valor inicial da forma (11.1). Ou seja, com base no problema (11.1), construir a Tabela Hipóteses Assume-se quey C 3 ([t 0 ;t n ]) e quef(t,y) é contínua em ambas as variáveis na região onde a solução passa no plano-ty. Ferramentas Desenvolvimento em série de Taylor. Requisitos iniciais Sejam y 0, t 0, n e t n. É preciso calcular h = (t n t 0 )/n e construir a rede de pontos t 0,t 1,...t n. Processo iterativo Dada a aproximação da função no ponto t i, y i, a aproximação no ponto seguinte da rede,t i+1, obtém-se calculando K 0 = f(t i,y i ) K 1 = f(t i +h,y i +hk 0 ) y i+1 = y i + h 2 (K 0 +K 1 )

313 Condições de paragem O processo pára quando a Tabela 11.2 estiver completamente preenchida, ou seja, a variável de ciclo i vai desde 0 até n com passo unitário. Análise do erro O erro de truncatura no método de Heun é dado por (11.19). Consequentemente, o erro é O(h 3 ). Esta fórmula do erro pode também obter-se através do desenvolvimento em série de Taylor. Considere o problema de valor inicial y = f(t,y) y(t 0 ) = y 0 e o desenvolvimento em série de Taylor de y(t i +h) em torno do ponto t i : y(t i +h) = y(t i )+hy (t i )+ h2 2 y (t i )+ h3 3! y (ξ) (11.20) A segunda derivada pode ser aproximada pela fórmula das diferenças divididas para a frente (ver (10.8)) aplicada à primeira derivada de y: Seja K 0 = y (t i ) = f(t i,y i ) e y (t i ) = y (t i +h) y (t i ) h K 1 = y (t i +h) = f(t i +h,y(t i +h)) = f(t i +h,y(t i )+hy (t i )+y (ξ)h/2)) = f(t i +h,y(t i )+hf(t i,y i )+y (ξ)h/2)) = f(t i +h,y(t i )+hk 0 +y (ξ)h/2)) f(t i +h,y(t i )+hk 0 ) então, podemos reescrever (11.21) na forma h 2 y (ξ) (11.21) y (t i ) K 1 K 0 h h 2 y (ξ) Substituindo esta aproximação em (11.20) obtém-se ou seja, isto é, y(t i +h) y(t i )+hk 0 + h2 2 [K 1 K 0 h h 2 y (ξ)]+ h3 3! y (τ) y(t i +h) y(t i )+hk 0 + h 2 (K 1 K 0 ) h3 4 y (ξ)+ h3 6 y (τ) y(t i +h) y(t i )+hk 0 + h 2 (K 1 K 0 ) h3 12 y (ρ) Consequentemente, o erro no método de Heun é dado por (11.19).

314 Exemplos Considere-se o problema de valor inicial y (t) t 2 = cos(y(t)/t 2 ) y(2) = 1 no intervalo [2;3]. Este problema pode ser escrito na forma y = t 2 cos(y/t 2 ) y(2) = 1 Pretende-se aproximar y(2.2) com h = 0.1. A função f tem a forma f(t,y) = t 2 cos(y/t 2 ) e, por conseguinte, o método de Heun é dado por K 0 = t 2 i cos(y i /t 2 i) K 1 = f(t i +h,y i +hk 0 ) y i+1 = y i + h 2 (K 0 +K 1 ) Uma vez que t 0 = 2 e pretende-se aproximar a função no ponto t = 2.2, é preciso calcular duas iteradas; note-se que t 1 = 2.1 e t 2 = 2.2. Cálculo da primeira iterada: K 0 = t 2 0cos(y 0 /t 2 0) = K 1 = f(t 0 +h,y 0 +hk 0 ) = f(2.1, )= y 1 = y 0 + h 2 (K 0 +K 1 ) = Cálculo da segunda iterada: K 0 = t 2 1cos(y 1 /t 2 1) = K 1 = f(t 1 +h,y 1 +hk 0 ) = f(2.2, )= y 2 = y 1 + h 2 (K 0 +K 1 ) =

315 11.4 Métodos de Runge-Kutta Os métodos de Taylor têm a desvantagem de precisar do cálculo analítico das derivadas parciais de f e da sua respectiva programação. Os métodos de Runge Kutta conseguem evitar esta desvantagem e produzir valores y i com a mesma precisão, que os métodos de Taylor. Em vez do cálculo das derivadas, os métodos de Runge-Kutta utilizam combinações inteligentes de valores def(t,y). Os métodos de Runge-Kutta mais simples são os de ordem 2. Considere-se o desenvolvimento em série (11.17): [ y(t i+1 ) = y(t i )+hf(t i,y(t i ))+ h2 f 2! t (t i,y(t i ))+f(t i,y(t i )) f y (t i,y(t i )) ]+ h3 3! y (ξ) Esta equação pode ser escrita na forma y(t i+1 ) = y(t i )+ h 2 f(t i,y(t i ))+ h 2 [ f(t i,y(t i ))+h f t (t i,y(t i ))+hf(t i,y(t i )) f y (t i,y(t i )) ]+ h3 3! y (ξ) (11.22) Por outro lado, utilizando o desenvolvimento em série de Taylor em duas variáveis, podemos escrever f(t i +h,y i +hf(t i,y i )) = f(t i,y i )++h f t (t i,y(t i ))+hf(t i,y(t i )) f y (t i,y(t i ))+O(h 2 ) Comparando esta equação com (11.22) segue que y(t i+1 ) = y(t i )+ h 2 f(t i,y(t i ))+ h 2 f(t i +h,y i +hf(t i,y i ))+O(h 3 ) (11.23) O método numérico correspondente é um dos métodos de Runge-Kutta de ordem 2 e a sua fórmula é: y i+1 = y i + h 2 [f(t i,y i )+f(t i +h,y i +hf(t i,y i ))] Este método também é conhecido pelo método de Heun dado na equação (11.18). Em geral, os métodos de Runges-Kutta são dados a partir de y(t i +h) = y(t i )+ahf(t i,y(t i ))+bhf(t i +αh,y i +βhf(t i,y i ))+O(h 3 ) (11.24) ondea, b, α, e β são parâmetros que podem ser escolhidos. Esta equação pode ser reescrita com a ajuda do desenvolvimento em série em duas variáveis como [ y(t i +h) = y(t i )+ahf(t i,y(t i ))+bh f(t i,y(t i ))+αh f t (t i,y(t i ))+βhf(t i,y(t i )) f ] y (t i,y(t i )) +O(h 3 ) (11.25)

316 Comparando a equação (11.25) com a equação (11.22) podemos impor as seguintes condições: a+b = 1 bα = 1/2 bβ = 1/2 Uma possível solução é a = b = 1/2 e α = β = 1 que é a solução correspondente ao método de Heun da equação (11.18). Outra possível solução é a = 0, b = 1 e α = β = 1/2. O método resultante é o método do ponto médio, também por vezes denominado método de Euler modificado: y i+1 = y i +hf(t i + h 2,y i + h 2 f(t i,y i )) (11.26) O método de Runge-Kutta clássico de ordem 4, para resolver problemas de valor inicial, está para o método de Heun assim como o método de Simpson está para o método dos Trapézios. Este método tem em conta a inclinação nos pontos intermédios assim como nos extremos com vista a encontrar uma boa média da inclinação ao longo do intervalo. Bases: Secções 3.1 e Teoria Um método frequentemente utilizado é o método de Runge-Kutta clássico de ordem 4. A obtenção das fórmulas para este método é bastante trabalhosa. Contudo, uma vez obtidas, podem ser facilmente implementadas numa linguagem de programação. Diz-se que é de ordem 4 porque reproduz os termos da série de Taylor até à ordem 4 inclusive. Consequentemente, o erro local de truncatura éo(h 5 ). O método de Runge-Kutta é dado por K 0 = f(t i,y i ) (11.27) K 1 = f(t i + h 2,y i + h 2 K 0) K 2 = f(t i + h 2,y i + h 2 K 1) K 3 = f(t i +h,y i +hk 2 ) y i+1 = y i + h 6 (K 0 +2K 1 +2K 2 +K 3 ) (11.28)

317 Na fórmula deste método podemos observar a média ponderada de quatro valores K 0, K 1, K 2 e K 3, onde K 0 e K 3 têm o peso 1 e K 1 e K 2 têm o peso 2. O valor K 0 é simplesmente o valor da inclinação em (t i,y i ) e é dado por K 0 = f(t i,y i ) K 1 é o valor da inclinação da função y no ponto médio do intervalo [t i ;t i+1 ], t i +h/2: f(t i + h 2,y(t i + h 2 )) = f(t i + h 2,y(t i)+ h 2 f(t i,y(t i ))+...) f(t i + h 2,y i + h 2 f(t i,y i )) f(t i + h 2,y i + h 2 K 0) Consequentemente, K 1 = f(t i + h 2,y i + h 2 K 0) dá-nos uma estimativa da inclinação da solução no ponto médio t i + h/2. Esta aproximação da inclinação em t i +h/2 utiliza a inclinação em t i que é K 0. O valor K 2 = f(t i + h 2,y i + h 2 K 1) utiliza K 1 para estimar a inclinação em t i +h/2: f(t i + h 2,y(t i + h 2 )) f(t i + h 2,y i + h 2 K 1) Esta fórmula é muito parecida com K 1 com a diferença que onde aparece K 0 agora surge K 1. Essencialmente, o valor def aqui calculado é outra estimativa da inclinação da solução no ponto médio do intervalo. O quarto valor K 3 = f(t i +h,y i +hk 2 ) é uma estimativa do valor da inclinação emt i +h: f(t i +h,y(t i +h)) f(t i +h,y i +hk 2 ) y i +hk 2 é uma estimativa do valor de y no extremo direito do intervalo, com base no salto de y previsto por hk 3. Em resumo, cada uma das quantidades hk j s dá-nos uma estimativa do tamanho do salto de y dado pela solução actual ao longo de todo o intervalo [t i ;t i+1 ]. O primeiro usa o método de Euler, os dois seguintes usam estimativas da inclinação da solução no ponto médio do intervalo e

318 o último usa uma estimativa da inclinação no extremo direito do intervalo. CadaK j usa o anterior K j como base para a sua previsão do salto de y. Sendo assim, o método de Runge-Kutta (11.28) é simplesmente a estimativa do valor de y em t i mais uma média ponderada de quatro estimativas de salto para o intervalo, onde essas estimativas se baseiam na inclinação no ponto médio e nos extremos do intervalo. Considere-se o problema de valor inicial y = y/2 t+1 y(0) = 0.5 Na Figura 11.9 encontra-se a aproximação para y(1) através do método de Euler, ou seja, seguindo a inclinação k 0 = f(t 0,y 0 ) = 1.25, obtemos y(0.5) = Figura 11.9: Aproximação de Euler para o valor de y(0.5). A aproximação da inclinação em (0.5,1.125) é K 1 = f(0.5,1.125) = Esta inclinação é representada pela linha azul na Figura Podemos usar esta segunda inclinação para aproximary(0.5) K 1 = ; ver a Figura

Representação de Dados

Representação de Dados Representação de Dados Introdução Todos sabemos que existem diferentes tipos de números: fraccionários, inteiros positivos e negativos, etc. Torna-se necessária a representação destes dados em sistema

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Cálculo Numérico Aula : Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Computação Numérica - O que é Cálculo Numérico? Cálculo numérico é uma metodologia para resolver problemas matemáticos

Leia mais

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação A Informação e sua Representação (Parte III) Prof.a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais

Métodos Numéricos e Estatísticos Parte I-Métodos Numéricos Teoria de Erros

Métodos Numéricos e Estatísticos Parte I-Métodos Numéricos Teoria de Erros Métodos Numéricos e Estatísticos Parte I-Métodos Numéricos Lic. Eng. Biomédica e Bioengenharia-2009/2010 O que é a Análise Numérica? Ramo da Matemática dedicado ao estudo e desenvolvimento de métodos (métodos

Leia mais

Capítulo SETE Números em Ponto Fixo e Ponto Flutuante

Capítulo SETE Números em Ponto Fixo e Ponto Flutuante Capítulo SETE Números em Ponto Fixo e Ponto Flutuante 7.1 Números em ponto fixo Observação inicial: os termos ponto fixo e ponto flutuante são traduções diretas dos termos ingleses fixed point e floating

Leia mais

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de Escola Secundária c/3º CEB José Macedo Fragateiro Curso Profissional de Nível Secundário Componente Técnica Disciplina de Sistemas Digitais e Arquitectura de Computadores 29/21 Módulo 1: Sistemas de Numeração

Leia mais

CAP. I ERROS EM CÁLCULO NUMÉRICO

CAP. I ERROS EM CÁLCULO NUMÉRICO CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção

Leia mais

Licenciatura em Engenharia Electrotécnica e de Computadores 1998/99. Erros

Licenciatura em Engenharia Electrotécnica e de Computadores 1998/99. Erros Licenciatura em Engenharia Electrotécnica e de Computadores Análise Numérica 1998/99 Erros Objectivos: Arredondar um número para n dígitos significativos. Determinar os erros máximos absoluto e relativo

Leia mais

Aritmética Binária e. Bernardo Nunes Gonçalves

Aritmética Binária e. Bernardo Nunes Gonçalves Aritmética Binária e Complemento a Base Bernardo Nunes Gonçalves Sumário Soma e multiplicação binária Subtração e divisão binária Representação com sinal Sinal e magnitude Complemento a base. Adição binária

Leia mais

Aula 6 Aritmética Computacional

Aula 6 Aritmética Computacional Aula 6 Aritmética Computacional Introdução à Computação ADS - IFBA Representação de Números Inteiros Vírgula fixa (Fixed Point) Ponto Flutuante Para todos, a quantidade de valores possíveis depende do

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Representação de grandeza com sinal O bit mais significativo representa o sinal: 0 (indica um número

Leia mais

Sistemas de Numeração

Sistemas de Numeração Sistemas de Numeração Representação da Informação para seres humanos Números (1,2,3,4...) Letras (a,a,b,b,c,c...) Sinais de pontuação (:,;...) Operadores aritméticos (+,-,x,/) Representação da Informação

Leia mais

Sistemas de Numerações.

Sistemas de Numerações. Matemática Profº: Carlos Roberto da Silva; Lourival Pereira Martins. Sistema de numeração: Binário, Octal, Decimal, Hexadecimal; Sistema de numeração: Conversões; Sistemas de Numerações. Nosso sistema

Leia mais

Unidade 5: Sistemas de Representação

Unidade 5: Sistemas de Representação Arquitetura e Organização de Computadores Atualização: 9/8/ Unidade 5: Sistemas de Representação Números de Ponto Flutuante IEEE 754/8 e Caracteres ASCII Prof. Daniel Caetano Objetivo: Compreender a representação

Leia mais

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária 1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste

Leia mais

2. Sistemas de Numeração, Operações e Códigos. 2. Sistemas de Numeração, Operações e Códigos 1. Números Decimais. Objetivos.

2. Sistemas de Numeração, Operações e Códigos. 2. Sistemas de Numeração, Operações e Códigos 1. Números Decimais. Objetivos. Objetivos 2. Sistemas de Numeração, Operações e Códigos Revisar o sistema de numeração decimal Contar no sistema de numeração binário Converter de decimal para binário e vice-versa Aplicar operações aritméticas

Leia mais

Universidade Federal de São João Del Rei - UFSJ

Universidade Federal de São João Del Rei - UFSJ Universidade Federal de São João Del Rei - UFSJ Instituída pela Lei 0.45, de 9/04/00 - D.O.U. de /04/00 Pró-Reitoria de Ensino de Graduação - PROEN Disciplina: Cálculo Numérico Ano: 03 Prof: Natã Goulart

Leia mais

Universidade do Minho Departamento de Electrónica Industrial. Sistemas Digitais. Exercícios de Apoio - I. Sistemas de Numeração

Universidade do Minho Departamento de Electrónica Industrial. Sistemas Digitais. Exercícios de Apoio - I. Sistemas de Numeração Universidade do Minho Departamento de Electrónica Industrial Sistemas Digitais Exercícios de Apoio - I Sistemas de Numeração CONVERSÃO ENTRE SISTEMAS DE NUMERAÇÃO Conversão Decimal - Binário Números Inteiros

Leia mais

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Introdução O Cálculo Numérico

Leia mais

Aula 3 - Sistemas de Numeração

Aula 3 - Sistemas de Numeração UEM Universidade Estadual de Maringá DIN - Departamento de Informática Disciplina: Fundamentos da Computação Profª Thelma Elita Colanzi Lopes thelma@din.uem.br Aula 3 - Sistemas de Numeração O ser humano,

Leia mais

Introdução. A Informação e sua Representação (Parte II) Universidade Federal de Campina Grande. Unidade Acadêmica de Sistemas e Computação

Introdução. A Informação e sua Representação (Parte II) Universidade Federal de Campina Grande. Unidade Acadêmica de Sistemas e Computação Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Introdução à Computação A Informação e sua Representação (Parte II) Prof. a Joseana Macêdo Fechine Régis de Araújo joseana@computacao.ufcg.edu.br

Leia mais

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos Trabalho compilado da Internet Prof. Claudio Passos Sistemas Numéricos A Informação e sua Representação O computador, sendo um equipamento eletrônico, armazena e movimenta as informações internamente sob

Leia mais

Representação Binária de Números

Representação Binária de Números Departamento de Informática Notas de estudo Alberto José Proença 01-Mar-04 Dep. Informática, Universidade do Minho Parte A: Sistemas de numeração e representação de inteiros A.1 Sistemas de numeração

Leia mais

Sistemas de numeração

Sistemas de numeração E Sistemas de numeração Aqui estão apenas números ratificados. William Shakespeare A natureza tem algum tipo de sistema de coordenadas geométrico-aritmético, porque a natureza tem todos os tipos de modelos.

Leia mais

Exemplo de Subtração Binária

Exemplo de Subtração Binária Exemplo de Subtração Binária Exercícios Converta para binário e efetue as seguintes operações: a) 37 10 30 10 b) 83 10 82 10 c) 63 8 34 8 d) 77 8 11 8 e) BB 16 AA 16 f) C43 16 195 16 3.5.3 Divisão binária:

Leia mais

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2 INFORMÁTICA Sistemas de Numeração Professor: Rogério R. de Vargas 2014/2 Sistemas de Numeração São sistemas de notação usados para representar quantidades abstratas denominadas números. Um sistema numérico

Leia mais

Sistemas Numéricos e a Representação Interna dos Dados no Computador

Sistemas Numéricos e a Representação Interna dos Dados no Computador Capítulo 2 Sistemas Numéricos e a Representação Interna dos Dados no Computador 2.0 Índice 2.0 Índice... 1 2.1 Sistemas Numéricos... 2 2.1.1 Sistema Binário... 2 2.1.2 Sistema Octal... 3 2.1.3 Sistema

Leia mais

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores

ARQUITETURA DE COMPUTADORES. Sistemas de Numeração. 1 Arquitetura de Computadores ARQUITETURA DE COMPUTADORES Sistemas de Numeração 1 Sistemas de Numeração e Conversão de Base Sistema Decimal É o nosso sistema natural. Dígitos 0,1,2,3,4,5,6,7,8 e 9. Números superiores a 9; convencionamos

Leia mais

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 UNIVERSIDADE FEDERAL DE VIÇOSA Departamento de Matemática - CCE Cálculo Numérico - MAT 271 Prof.: Valéria Mattos da Rosa As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia

Leia mais

Índice de conteúdos. Índice de conteúdos. Capítulo 2. Representação de Números e Erros...1. 1.Representação de números em diferentes bases...

Índice de conteúdos. Índice de conteúdos. Capítulo 2. Representação de Números e Erros...1. 1.Representação de números em diferentes bases... Índice de conteúdos Índice de conteúdos Capítulo 2. Representação de Números e Erros...1 1.Representação de números em diferentes bases...1 1.1.Representação de números inteiros e conversões de base...1

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática UFG 1S/2004 Representação de Dados e Aritimética Computacional Roteiro Números inteiros sinalizados e nãosinalizados Operações

Leia mais

Utilização do SOLVER do EXCEL

Utilização do SOLVER do EXCEL Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de

Leia mais

Alguns apontamentos da história da Análise Numérica

Alguns apontamentos da história da Análise Numérica Análise Numérica 1 Âmbito da Análise Numérica Determinar boas soluções aproximadas num tempo computacional razoável? Slide 1 Porquê? Porque em muitos problemas matemáticos e respectivas aplicações práticas

Leia mais

Lista de Exercícios Sistemas de Numeração

Lista de Exercícios Sistemas de Numeração Lista de Exercícios Sistemas de Numeração 1- (Questão 5 BNDES Profissional Básico Análise de Sistemas - Suporte ano 010) Um administrador de sistemas, ao analisar o conteúdo de um arquivo binário, percebeu

Leia mais

COMPUTAÇÕES NUMÉRICAS. 1.0 Representação

COMPUTAÇÕES NUMÉRICAS. 1.0 Representação COMPUTAÇÕES NUMÉRICAS.0 Representação O sistema de numeração decimal é o mais usado pelo homem nos dias de hoje. O número 0 tem papel fundamental, é chamado de base do sistema. Os símbolos 0,,, 3, 4, 5,

Leia mais

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Sumário Unidade Lógica Aritmetrica Registradores Unidade Lógica Operações da ULA Unidade de Ponto Flutuante Representação

Leia mais

Notas de Cálculo Numérico

Notas de Cálculo Numérico Notas de Cálculo Numérico Túlio Carvalho 6 de novembro de 2002 2 Cálculo Numérico Capítulo 1 Elementos sobre erros numéricos Neste primeiro capítulo, vamos falar de uma limitação importante do cálculo

Leia mais

Sistemas de Numeração. Engenharia da Computação 3 Período Alex Vidigal Bastos

Sistemas de Numeração. Engenharia da Computação 3 Período Alex Vidigal Bastos UNIPAC Sistemas Digitais Sistemas de Numeração Engenharia da Computação 3 Período Alex Vidigal Bastos 1 Agenda Objetivos Introdução Sistema Binário Sistema Octal Sistema Hexadecimal Aritméticas no Sistema

Leia mais

1. Sistemas de numeração

1. Sistemas de numeração 1. Sistemas de numeração Quando mencionamos sistemas de numeração estamos nos referindo à utilização de um sistema para representar uma numeração, ou seja, uma quantidade. Sistematizar algo seria organizar,

Leia mais

Sistemas de Numeração

Sistemas de Numeração Professor Menezes SISTEMA DE NUMERAÇÃO 1-1 Sistemas de Numeração Observe que alguns números decimais a possuem uma representação muito curiosa no sistema binário: 1 decimal = 1 binário; 2 decimal = 10

Leia mais

ficha 3 espaços lineares

ficha 3 espaços lineares Exercícios de Álgebra Linear ficha 3 espaços lineares Exercícios coligidos por Jorge Almeida e Lina Oliveira Departamento de Matemática, Instituto Superior Técnico 2 o semestre 2011/12 3 Notação Sendo

Leia mais

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU Prof. Dr. Sergio Pilling (IPD/ Física e Astronomia) I Representação dos números, aritmética de ponto flutuante e erros em máquinas

Leia mais

1. Introdução 2. Representação de números 2.1. Conversão Numérica 2.2. Aritmética de ponto flutuante 3. Erros 3.1 Erros Absolutos e Relativos

1. Introdução 2. Representação de números 2.1. Conversão Numérica 2.2. Aritmética de ponto flutuante 3. Erros 3.1 Erros Absolutos e Relativos 1. Introdução 2. Representação de números 2.1. Conversão Numérica 2.2. Aritmética de ponto flutuante 3. Erros 3.1 Erros Absolutos e Relativos 1. Introdução O que é cálculo numérico? Corresponde a um conjunto

Leia mais

Análise de Arredondamento em Ponto Flutuante

Análise de Arredondamento em Ponto Flutuante Capítulo 2 Análise de Arredondamento em Ponto Flutuante 2.1 Introdução Neste capítulo, chamamos atenção para o fato de que o conjunto dos números representáveis em qualquer máquina é finito, e portanto

Leia mais

Aproximações e Erros de Arredondamento. introdução. exactidão e precisão. Aula 2 Métodos Numéricos Aplicados à Engenharia

Aproximações e Erros de Arredondamento. introdução. exactidão e precisão. Aula 2 Métodos Numéricos Aplicados à Engenharia Aproximações e Erros de Arredondamento Aula 2 Métodos Numéricos Aplicados à Engenharia 23/02/07 João Noronha 1 introdução Em muitos problemas de engenharia não é possível a obtenção de soluções analíticas.

Leia mais

CAPÍTULO 6 ARITMÉTICA DIGITAL

CAPÍTULO 6 ARITMÉTICA DIGITAL CAPÍTULO 6 ARITMÉTICA DIGITAL Introdução Números decimais Números binários positivos Adição Binária Números negativos Extensão do bit de sinal Adição e Subtração Overflow Aritmético Circuitos Aritméticos

Leia mais

Como aparecem os erros? Quais os seus efeitos? Como controlar esses efeitos?

Como aparecem os erros? Quais os seus efeitos? Como controlar esses efeitos? &DStWXOR±5HSUHVHQWDomRGH1~PHURVH(UURV,QWURGXomR Como aparecem os erros? Quais os seus efeitos? Como controlar esses efeitos? 7LSRVGH(UURV Erros inerentes à matematização do fenómeno físico: os sistemas

Leia mais

Sistemas de Numeração

Sistemas de Numeração Sistemas de Numeração Um numeral é um símbolo ou grupo de símbolos que representa um número em um determinado instante da evolução do homem. Tem-se que, numa determinada escrita ou época, os numerais diferenciaram-se

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES ARQUITETURA DE COMPUTADORES Sistema de Numeração Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Sistemas Numéricos Principais sistemas numéricos: Decimal 0,

Leia mais

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr. Índice 1. SISTEMAS NUMÉRICOS 1.1 Caracterização dos Sistemas Numéricos 1.2 Sistemas Numéricos em uma Base B Qualquer 1.2.1 Sistema de Numeração Decimal 1.2.2. Sistema de Numeração Binário 1.2.3 Sistema

Leia mais

Erros. Número Aproximado. Erros Absolutos erelativos. Erro Absoluto

Erros. Número Aproximado. Erros Absolutos erelativos. Erro Absoluto Erros Nenhum resultado obtido através de cálculos eletrônicos ou métodos numéricos tem valor se não tivermos conhecimento e controle sobre os possíveis erros envolvidos no processo. A análise dos resultados

Leia mais

Sistemas de Numeração

Sistemas de Numeração Departamento de Informática Sistemas de Numeração Notas de estudo Alberto José Proença Luís Paulo Santos 18-Fev-05 1. Sistemas de numeração e representação de inteiros 1.1. Sistemas de numeração 1.2. Conversão

Leia mais

Eletrônica Digital 1 Módulo1 Capítulo 1 Sistemas Numéricos. Prof. Nilton Costa Junior

Eletrônica Digital 1 Módulo1 Capítulo 1 Sistemas Numéricos. Prof. Nilton Costa Junior Eletrônica Digital 1 Módulo1 Capítulo 1 Sistemas Numéricos Prof. Nilton Costa Junior Sistemas Numéricos Existem vários sistemas numéricos: Decimal Binário Octal Hexadecimal Sistema Decimal representado

Leia mais

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I. 2002 Juliana F. Camapum Wanderley

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I. 2002 Juliana F. Camapum Wanderley Organização e Arquitetura de Computadores Aula 10 Ponto Flutuante Parte I 2002 Juliana F. Camapum Wanderley http://www.cic.unb.br/docentes/juliana/cursos/oac OAC Ponto Flutuante Parte I - 1 Panorama Números

Leia mais

Representação de Dados e Sistemas de Numeração

Representação de Dados e Sistemas de Numeração 1 Representação de Dados e Sistemas de Numeração Sistema de numeração decimal e números decimais (base 10) Sistema de numeração binário e números binários (base 2) Conversão entre binário e decimal Sistema

Leia mais

Aula 1 Representação e Operações Aritméticas em Ponto Flutuante.

Aula 1 Representação e Operações Aritméticas em Ponto Flutuante. Aula 1 Representação e Operações Aritméticas em Ponto Flutuante. MS211 - Cálculo Numérico Marcos Eduardo Valle Departamento de Matemática Aplicada Instituto de Matemática, Estatística e Computação Científica

Leia mais

Aritmética de Ponto Flutuante e Noções de Erro. Ana Paula

Aritmética de Ponto Flutuante e Noções de Erro. Ana Paula Aritmética de Ponto Flutuante e Noções de Erro Sumário 1 Introdução 2 Sistemas de Numeração 3 Representação de Números Inteiros no Computador 4 Representação de Números Reais no Computador 5 Operações

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

3 Sistemas de Numeração:

3 Sistemas de Numeração: 3 Sistemas de Numeração: Os computadores eletrônicos têm como base para seu funcionamento a utilização de eletricidade. Diferente de outras máquinas que a presença ou ausência de eletricidade apenas significam

Leia mais

Capítulo UM Bases Numéricas

Capítulo UM Bases Numéricas Capítulo UM Bases Numéricas 1.1 Introdução Quando o homem aprendeu a contar, ele foi obrigado a desenvolver símbolos que representassem as quantidades e grandezas que ele queria utilizar. Estes símbolos,

Leia mais

SISTEMAS DE NUMERAÇÃO

SISTEMAS DE NUMERAÇÃO Atualizado em Prof. Rui Mano E mail: rmano@tpd.puc rio.br SISTEMAS DE NUMERAÇÃO Sistemas de Numer ação Posicionais Desde quando se começou a registrar informações sobre quantidades, foram criados diversos

Leia mais

Aula 2 Sistemas de Numeração (Revisão)

Aula 2 Sistemas de Numeração (Revisão) Aula 2 Sistemas de Numeração (Revisão) Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm 1 O que fazer com essa apresentação 2 Agenda Breve revisão da aula anterior

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dos dispositivos

Leia mais

Aula 9. Introdução à Computação. ADS IFBA www.ifba.edu.br/professores/antoniocarlos

Aula 9. Introdução à Computação. ADS IFBA www.ifba.edu.br/professores/antoniocarlos Aula 9 Introdução à Computação Ponto Flutuante Ponto Flutuante Precisamos de uma maneira para representar Números com frações, por exemplo, 3,1416 Números muito pequenos, por exemplo, 0,00000001 Números

Leia mais

Teoria dos Números. A Teoria dos Números é a área da matemática que lida com os números inteiros, isto é, com o conjunto

Teoria dos Números. A Teoria dos Números é a área da matemática que lida com os números inteiros, isto é, com o conjunto Teoria dos Números 1 Noções Básicas A Teoria dos Números é a área da matemática que lida com os números inteiros, isto é, com o conjunto Z = {..., 4, 3, 2, 1, 0, 1, 2, 3, 4...}. Ela permite resolver de

Leia mais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu 1 Programação Não Linear Aula 25: Programação Não-Linear - Funções de Uma única variável Mínimo; Mínimo Global; Mínimo Local; Optimização Irrestrita; Condições Óptimas; Método da Bissecção; Método de Newton.

Leia mais

Introdução à Engenharia de

Introdução à Engenharia de Introdução à Engenharia de Computação Tópico: Sistemas de Numeração José Gonçalves - LPRM/DI/UFES Introdução à Engenharia de Computação Introdução O número é um conceito abstrato que representa a idéia

Leia mais

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA. Representação de Dados Tipos de dados: Caracteres (letras, números n e símbolos). s Lógicos. Inteiros. Ponto flutuante: Notações decimais: BCD. A declaração de uma variável vel define o seu tipo. O tipo

Leia mais

APLICAÇÕES DA DERIVADA

APLICAÇÕES DA DERIVADA Notas de Aula: Aplicações das Derivadas APLICAÇÕES DA DERIVADA Vimos, na seção anterior, que a derivada de uma função pode ser interpretada como o coeficiente angular da reta tangente ao seu gráfico. Nesta,

Leia mais

Organização de Computadores. Cálculos Binários e Conversão entre Bases Aritmética Binária

Organização de Computadores. Cálculos Binários e Conversão entre Bases Aritmética Binária Organização de Computadores Capítulo 4 Cálculos Binários e Conversão entre Bases Aritmética Binária Material de apoio 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui

Leia mais

Departamento de Matemática - UEL - 2010. Ulysses Sodré. http://www.mat.uel.br/matessencial/ Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

Departamento de Matemática - UEL - 2010. Ulysses Sodré. http://www.mat.uel.br/matessencial/ Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010. Matemática Essencial Extremos de funções reais Departamento de Matemática - UEL - 2010 Conteúdo Ulysses Sodré http://www.mat.uel.br/matessencial/ Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

Leia mais

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Conceitos Básicos 1-1 BITs e BYTEs Bit = BInary digit = vale sempre 0 ou elemento básico de informação Byte = 8 bits processados em paralelo (ao mesmo tempo) Word = n bytes (depende do processador em questão)

Leia mais

Somatórias e produtórias

Somatórias e produtórias Capítulo 8 Somatórias e produtórias 8. Introdução Muitas quantidades importantes em matemática são definidas como a soma de uma quantidade variável de parcelas também variáveis, por exemplo a soma + +

Leia mais

Operações aritméticas

Operações aritméticas Circuitos Lógicos Operações aritméticas Prof.: Daniel D. Silveira Horário: 4a.f e 6a.f de 10h às 12h 1 Adição binária A soma binária ocorre da mesma forma que a decimal:» A operação sobre os dígitos na

Leia mais

Unidade 3: Sistemas de Numeração Conversões Entre Quaisquer Bases e Aritmética em Bases Alternativas Prof. Daniel Caetano

Unidade 3: Sistemas de Numeração Conversões Entre Quaisquer Bases e Aritmética em Bases Alternativas Prof. Daniel Caetano Arquitetura e Organização de Computadores 1 Unidade 3: Sistemas de Numeração Conversões Entre Quaisquer Bases e Aritmética em Bases Alternativas Prof. Daniel Caetano Objetivo: Apresentar métodos genéricos

Leia mais

Codificação 1. Introdução. C 2 R r {! + codificação

Codificação 1. Introdução. C 2 R r {! + codificação Codificação 1. Introdução A unidade básica de memória é o digito binário (bit). Para representar diferentes em memória é necessário que o bit armazene pelo menos 2 valores. A informação pode ser armazenada

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Capítulo 1. Introdução. 1.1 Sistemas numéricos

Capítulo 1. Introdução. 1.1 Sistemas numéricos EQE-358 MÉTODOS NUMÉRICOS EM ENGENHARIA QUÍMICA PROFS. EVARISTO E ARGIMIRO Capítulo 1 Introdução O objetivo desta disciplina é discutir e aplicar técnicas e métodos numéricos para a resolução de problemas

Leia mais

13 Números Reais - Tipo float

13 Números Reais - Tipo float 13 Números Reais - Tipo float Ronaldo F. Hashimoto e Carlos H. Morimoto Até omomentonoslimitamosaouso do tipo inteiro para variáveis e expressões aritméticas. Vamos introduzir agora o tipo real. Ao final

Leia mais

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Representação da Informação Um dispositivo eletrônico, armazena e movimenta as informações internamente

Leia mais

Representação de números em máquinas

Representação de números em máquinas Capítulo 1 Representação de números em máquinas 1.1. Sistema de numeração Um sistema de numeração é formado por uma coleção de símbolos e regras para representar conjuntos de números de maneira consistente.

Leia mais

Vamos exemplificar o conceito de sistema posicional. Seja o número 1303, representado na base 10, escrito da seguinte forma:

Vamos exemplificar o conceito de sistema posicional. Seja o número 1303, representado na base 10, escrito da seguinte forma: Nova bibliografia: Título: Organização e projeto de computadores a interface Hardware/Software. Autor: David A. Patterson & John L. Hennessy. Tradução: Nery Machado Filho. Editora: Morgan Kaufmmann Editora

Leia mais

20-10-2014. Sumário. Arquitetura do Universo

20-10-2014. Sumário. Arquitetura do Universo Sumário Das Estrelas ao átomo Unidade temática 1 Diferenças entre medir, medição e medida duma grandeza. Modos de exprimir uma medida. Algarismos significativos: Regras de contagem e operações. Esclarecimento

Leia mais

Matemática - UEL - 2010 - Compilada em 18 de Março de 2010. Prof. Ulysses Sodré Matemática Essencial: http://www.mat.uel.

Matemática - UEL - 2010 - Compilada em 18 de Março de 2010. Prof. Ulysses Sodré Matemática Essencial: http://www.mat.uel. Matemática Essencial Equações do Segundo grau Conteúdo Matemática - UEL - 2010 - Compilada em 18 de Março de 2010. Prof. Ulysses Sodré Matemática Essencial: http://www.mat.uel.br/matessencial/ 1 Introdução

Leia mais

Sistemas de Numeração. 1 Introdução aos sistemas numeração

Sistemas de Numeração. 1 Introdução aos sistemas numeração Sistemas de Numeração 1 Introdução aos sistemas numeração Sistemas de Numeração Base Decimal Base Binária Base Octal Base Hexadecimal Sistemas de numeração ria\base Oct tal\ Base He exadecimal l\base Biná

Leia mais

Cálculo numérico. ln 1 = 0. Representação numérica. Exemplo. Exemplos. Professor Walter Cunha. ln 1. I s

Cálculo numérico. ln 1 = 0. Representação numérica. Exemplo. Exemplos. Professor Walter Cunha. ln 1. I s Representação numérica Cálculo numérico Professor Walter Cunha Um conjunto de ferramentas ou métodos usados para se obter a solução de problemas matemáticos de forma aproximada. Esses métodos se aplicam

Leia mais

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio:

Em um sistema de numeração de base b qualquer, um número positivo é representado pelo polinômio: ELETRÔNICA DIGITAl I 1 SISTEMAS DE NUMERAÇÃO INTRODUÇÃO A base dos sistemas digitais são os circuitos de chaveamento (switching) nos quais o componente principal é o transistor que, sob o ponto de vista

Leia mais

Capítulo 1 Erros e representação numérica

Capítulo 1 Erros e representação numérica Capítulo 1 Erros e representação numérica Objetivos Esperamos que ao final desta aula, você seja capaz de: Pré-requisitos Identificar as fases de modelagem e os possíveis erros nelas cometidos; Compreender

Leia mais

CÁLCULO DE ZEROS DE FUNÇÕES REAIS

CÁLCULO DE ZEROS DE FUNÇÕES REAIS 15 CÁLCULO DE ZEROS DE FUNÇÕES REAIS Um dos problemas que ocorrem mais frequentemente em trabalhos científicos é calcular as raízes de equações da forma: f() = 0. A função f() pode ser um polinômio em

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO

REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO Profs. M.Sc. Lucio M. Duarte e Ph.D. Avelino Zorzo 1 Faculdade de Informática - PUCRS 1 REPRESENTAÇÃO DE DADOS Acredita-se que a criação de números veio com

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

a 1 x 1 +... + a n x n = b,

a 1 x 1 +... + a n x n = b, Sistemas Lineares Equações Lineares Vários problemas nas áreas científica, tecnológica e econômica são modelados por sistemas de equações lineares e requerem a solução destes no menor tempo possível Definição

Leia mais

Estabilidade. Carlos Alexandre Mello. Carlos Alexandre Mello cabm@cin.ufpe.br 1

Estabilidade. Carlos Alexandre Mello. Carlos Alexandre Mello cabm@cin.ufpe.br 1 Estabilidade Carlos Alexandre Mello 1 Introdução Já vimos que existem três requisitos fundamentais para projetar um sistema de controle: Resposta Transiente Estabilidade Erros de Estado Estacionário Estabilidade

Leia mais

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS Ciência da Computação Sistemas de Numeração e Conversões Prof. Sergio Ribeiro Material adaptado das aulas do Prof. José Maria da UFPI Conteúdo Conversões de binário para decimal. Conversões de decimal

Leia mais

Sistemas de Numeração. Introdução ao Computador 2010/1 Renan Manola

Sistemas de Numeração. Introdução ao Computador 2010/1 Renan Manola Sistemas de Numeração Introdução ao Computador 2010/1 Renan Manola Introdução Em sistemas digitais o sistema de numeração binário é o mais importante, já fora do mundo digital o sistema decimal é o mais

Leia mais

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13 ORGANIZAÇÃO DE COMPUTADORES MÓDULO 13 Índice 1. Circuitos Digitais - Continuação...3 1.1. Por que Binário?... 3 1.2. Conversão entre Bases... 3 2 1. CIRCUITOS DIGITAIS - CONTINUAÇÃO 1.1. POR QUE BINÁRIO?

Leia mais