Sunteți pe pagina 1din 160

0

Universidade Federal Fluminense UFF Volta Redonda, RJ

INTRODUO AOS MTODOS NUMRICOS


Prof. Diomar Cesar Lobo
Trabalho original preparado por: Prof. Ionildo Jos Sanches e Prof. Digenes Lago Furlan Universidade Federal do Paran. Departamento de Informtica CI-202

URL: http://www.professores.uff.br/diomar_cesar_lobao

SUMRIO
1 2 INTRODUO .....................................................................................................................................4 CONCEITO DE ERRO........................................................................................................................5 2.1 2.2 2.3 2.4 2.5 2.6 3 3.1 3.2 INTRODUO .....................................................................................................................................5 ERROS NA FASE DE MODELAGEM ......................................................................................................5 ERROS NA FASE DE RESOLUO........................................................................................................5 ERROS ABSOLUTOS E RELATIVOS ......................................................................................................5 ERRO DE ARREDONDAMENTO............................................................................................................6 ERRO DE TRUNCAMENTO ..................................................................................................................7 INTRODUO .....................................................................................................................................9 SISTEMA DE NUMERAO ...............................................................................................................10
Sistema de Numerao Decimal .......................................................................................................... 10 Sistema de Numerao Binrio............................................................................................................ 10 Converso do Sistema Decimal para Binrio...................................................................................... 10

REPRESENTAO DOS NMEROS REAIS .................................................................................9

3.2.1 3.2.2 3.2.3

3.3 3.4 4 4.1

ARITMTICA DE PONTO FLUTUANTE ...............................................................................................13 PROPAGAO DE ERROS..................................................................................................................15 INTRODUO ...................................................................................................................................17


Derivada de uma funo num ponto .................................................................................................... 17 Tipos de Mtodos ................................................................................................................................. 17 Isolamento de Razes............................................................................................................................ 18 Classificao dos mtodos ................................................................................................................... 19 Estimativa do Nmero de Iteraes ..................................................................................................... 20 Consideraes Finais........................................................................................................................... 21 Exemplos .............................................................................................................................................. 21 Casos especiais .................................................................................................................................... 23 Consideraes finais ............................................................................................................................ 24 Exemplos .............................................................................................................................................. 24 Casos de convergncia......................................................................................................................... 26 Consideraes finais ............................................................................................................................ 27 Exemplos .............................................................................................................................................. 27 Consideraes finais ............................................................................................................................ 29 Exemplos .............................................................................................................................................. 29 Condies de Newton-Raphson-Fourier .............................................................................................. 30 Exemplos .............................................................................................................................................. 33 Exemplos .............................................................................................................................................. 34 Introduo ............................................................................................................................................ 35 Localizao de Razes .......................................................................................................................... 35 Determinao das Razes Reais ........................................................................................................... 37

ZEROS DE EQUAES TRANSCENDENTES E POLINOMIAIS............................................17


4.1.1 4.1.2 4.1.3 4.1.4

4.2

MTODO DA BISSEO ....................................................................................................................20

4.2.1 4.2.2 4.2.3

4.3

MTODO DA FALSA POSIO ..........................................................................................................22

4.3.1 4.3.2 4.3.3

4.4

MTODO DA ITERAO LINEAR ......................................................................................................25

4.4.1 4.4.2 4.4.3

4.5

MTODO DE NEWTON-RAPHSON OU MTODO DAS TANGENTES .....................................................28

4.5.1 4.5.2 4.5.3

4.6 4.7 4.8

MTODO DA SECANTE .....................................................................................................................32 MTODO MISTO ..............................................................................................................................34 MTODO PARA EQUAES POLINMIAIS ........................................................................................35

4.6.1 4.7.1 4.8.1 4.8.2 4.8.3

4.8.4

Mtodo de Newton para Zeros de Polinmios ..................................................................................... 38

SISTEMAS LINEARES .....................................................................................................................41 5.1 5.2 INTRODUO ...................................................................................................................................41


Classificao Quanto ao Nmero de Solues .................................................................................... 41 Regra de Cramer.................................................................................................................................. 42 Mtodo da Eliminao de Gauss ......................................................................................................... 43 Mtodo de Jordan................................................................................................................................. 45 Exemplos .............................................................................................................................................. 45 Clculo dos Fatores L e U ................................................................................................................... 47 Mtodo de Gauss-Jacobi ( Algbrico )................................................................................................. 51 Mtodo de Gauss-Jacobi ( Matricial ) ................................................................................................. 53 Mtodo de Gauss-Seidel ( Algbrico ) ................................................................................................. 55 Mtodo de Gauss-Seidel ( Matricial ) .................................................................................................. 56 Segunda Abordagem da Frmula Matricial do Mtodo Gauss-Seidel ................................................ 58 Mtodo da Sobrerelaxao Sucessiva................................................................................................. 63 Condies Necessria e Suficiente para Convergncia do Mtodo de Gauss-Jacobi e Gauss-Seidel 64 5.1.1 5.2.1 5.2.2 5.2.3 5.2.4

MTODOS DIRETOS (ALGORITMOS DIRETOS)..................................................................................42

5.3 5.4

FATORAO LU-CROUT-CHOLESKY-DOOLITLE .............................................................................46 MTODOS ITERATIVOS (ALGORITMOS ITERATIVOS)........................................................................51

5.3.1 5.4.1 5.4.2 5.4.3 5.4.4 5.4.5 5.4.6 5.4.7

INTERPOLAO ..............................................................................................................................66 6.1 6.2 6.3 6.4 6.5 6.6 INTRODUO ...................................................................................................................................66
Conceito de Interpolao ..................................................................................................................... 66 Obteno da Frmula .......................................................................................................................... 67 Exemplos .............................................................................................................................................. 68 Obteno da Frmula .......................................................................................................................... 69 Exemplos .............................................................................................................................................. 69 Obteno da Frmula .......................................................................................................................... 72 Exemplos:............................................................................................................................................. 73 6.1.1 6.2.1 6.2.2 6.3.1 6.3.2 6.4.1 6.4.2

INTERPOLAO LINEAR...................................................................................................................67 INTERPOLAO QUADRTICA .........................................................................................................69 INTERPOLAO DE LAGRANGE ........................................................................................................71 INTERPOLAO PARABLICA PROGRESSIVA ...................................................................................74 INTERPOLAO DE NEWTON COM DIFERENAS DIVIDIDAS .............................................................75
Diferenas Divididas............................................................................................................................ 75 Propriedade do Operador Diferenas Divididas................................................................................. 76 Exemplos .............................................................................................................................................. 76 Diferenas Ordinrias ou Finitas ........................................................................................................ 79 Relao entre diferenas divididas e diferenas ordinrias ................................................................ 79 Gregory-Newton usando Diferenas Ordinrias ................................................................................. 79 Exemplos .............................................................................................................................................. 79 Spline Linear ........................................................................................................................................ 81 Spline Quadrtica ................................................................................................................................ 84 Spline Cbica Natural.......................................................................................................................... 87 Consideraes Gerais sobre Interpolao........................................................................................... 93

6.6.1 6.6.2 6.6.3

6.7

INTERPOLAO DE GREGORY-NEWTON ..........................................................................................78

6.7.1 6.7.2 6.7.3 6.7.4

6.8

INTERPOLAO SPLINES: LINEAR, QUADRTICA, CBICA ..............................................................80

6.8.1 6.8.2 6.8.3 6.8.4

AJUSTE DE CURVAS .......................................................................................................................95 7.1 MTODO DOS QUADRADOS MNIMOS ..............................................................................................96


Ajuste Linear Simples........................................................................................................................... 97 Ajuste Polinomial ................................................................................................................................. 99 7.1.1 7.1.2

INTEGRAO NUMRICA..........................................................................................................103 8.1 8.2 INTRODUO .................................................................................................................................103


Frmulas de Newton-Cotes................................................................................................................ 104 8.1.1

REGRA DOS RETNGULOS .............................................................................................................105

8.2.1

Exemplos ............................................................................................................................................ 106 Regra do Trapzio Repetida............................................................................................................... 108 Exemplos ............................................................................................................................................ 108 Regra de Simpson Repetida................................................................................................................ 110 Exemplos ............................................................................................................................................ 110

8.3 8.4

REGRA DOS TRAPZIOS .................................................................................................................107 REGRA DE SIMPSON .......................................................................................................................109

8.3.1 8.3.2 8.4.1 8.4.2

SOLUO NUMRICA DE EQUAES DIFERENCIAIS ORDINRIAS...........................112 9.1 9.2 9.3 9.4 9.5 9.6 INTRODUO .................................................................................................................................112 TIPOS DE EQUAES DIFERENCIAIS...............................................................................................112
Equaes Diferenciais Ordinrias..................................................................................................... 112 Equaes Diferenciais Parciais ......................................................................................................... 113

9.2.1 9.2.2

SOLUO DE EQUAES DIFERENCIAIS ........................................................................................113 ORDEM DE UMA EQUAO DIFERENCIAL ORDINRIA ...................................................................114 REDUO DE EQUAES DIFERENCIAIS ORDINRIAS ...................................................................114 SOLUO NUMRICA DE EQUAES DIFERENCIAIS ORDINRIAS PROBLEMA DE VALOR INICIAL 116
Mtodo de Euler ................................................................................................................................. 117

9.6.1

9.7 ANLISE DO ERRO PARA O MTODO DE EULER NA SOLUO NUMRICA DO PROBLEMA DE VALOR INICIAL ....................................................................................................................................................120 9.8 MTODO DE EULER MODIFICADO .................................................................................................121
9.8.1 9.8.2 9.8.3 9.8.4 9.8.5 9.8.6 Mtodo Heum ..................................................................................................................................... 124 Mtodo Runge-Kutta .......................................................................................................................... 127 Derivao do Mtodo de Runge-Kutta de Segunda Ordem ............................................................... 128 Mtodo de Heun ................................................................................................................................. 128 Mtodo de Euler Modificado.............................................................................................................. 129 Mtodo de Ralston.............................................................................................................................. 129

9.9 MTODO DE RUNGE_KUTTA TERCEIRA ORDEM............................................................................131 9.10 MTODO DE RUNGE_KUTTA QUARTA ORDEM ..........................................................................131 9.11 MTODOS DE PASSOS MLTIPLOS .............................................................................................132 9.12 IDIA BASICA DOS MTODOS DE PASSOS MLTIPLOS ................................................................133
9.12.1 9.12.2 9.12.3 9.12.4 9.12.5 Mtodos Explcitos ............................................................................................................................. 134 Algoritmos de Adans-Bashforth de ordem m ..................................................................................... 134 Mtodos Implcitos ............................................................................................................................. 134 Algoritmos de Adans-Moulton de ordem m........................................................................................ 134 Passos para se obter y n +1 ................................................................................................................. 135

9.13 10

SOLUO DE SISTEMAS DE EQUAES DIFERENCIAIS ...............................................................137

UTILIZANDO O MATLAB.........................................................................................................146

1 Introduo
Clculo Numrico a obteno da soluo de um problema pela aplicao de mtodo numrico; a soluo do problema ser caracterizada, ento, por um conjunto de nmeros, exatos ou aproximados. Mtodo Numrico um algoritmo composto por um nmero finito de operaes envolvendo apenas nmeros (operaes aritmticas elementares, clculo de funes, consulta a uma tabela de valores, consulta a um grfico, arbitramento de um valor, etc.).
Problema Fsico
Modelagem

Modelo Matemtico

Resoluo

Soluo

Modelagem a fase de obteno do modelo matemtico que descreve o comportamento do sistema fsico. Resoluo a fase de obteno da soluo atravs da aplicao de mtodos numricos (este o objetivo de estudo do Clculo Numrico).

2 Conceito de Erro
2.1 Introduo A noo de erro est presente em todos os campos do Clculo Numrico. De um lado, os dados, em si, nem sempre so exatos e, de outro lado, as operaes sobre valores no exatos propagam esses erros a seus resultados. Finalmente, os prprios mtodos numricos, freqentemente mtodos aproximados, buscam a minimizao dos erros, procurando resultados o mais prximo possvel do que seriam valores exatos. Erro a diferena entre o valor exato e o valor apresentado. No prximo captulo, sobre representao de nmeros reais, iremos analisar vrias situaes em que ocorrem erros, quando utilizamos o computador para realizar os clculos. A seguir, analisaremos os erros que ocorrem durante as fases de modelagem e resoluo e tambm sobre erros de arredondamento e erros de truncamento. 2.2 Erros na Fase de Modelagem Ao se tentar representar um fenmeno do mundo fsico por meio de um mtodo matemtico, raramente se tem uma descrio correta deste fenmeno. Normalmente, so necessrias vrias simplificaes do mundo fsico para que se tenha um modelo. Exemplo: Estudo do movimento de um corpo sujeito a uma acelerao constante. Tem-se a seguinte equao: d = do + vo * t + 1/2 * a * t2 onde: d do vo t a : distncia percorrida : distncia inicial : velocidade inicial : tempo : acelerao

Determinar a altura de um edifcio com uma bolinha de metal e um cronmetro: 3s d = 0 + 0 * 3 + 1/2 * 9.8 * 32 = 44.1m Este resultado confivel? 1. Fatores no considerados: resistncia do ar velocidade do vento, etc. 2. Preciso dos dados de entrada: Se o tempo fosse 3,5s d = 60.025m Variao de 16,7% no cronmetro 36% na altura. 2.3 Erros na Fase de Resoluo Para a resoluo de modelos matemticos muitas vezes torna-se necessria a utilizao de instrumentos de clculo que necessitam, para o seu funcionamento, que sejam feitas certas aproximaes. Tais aproximaes podem gerar erros, tais como: converso de bases, erros de arredondamento e erros de truncamento. 2.4 N: Erros Absolutos e Relativos Erro absoluto (EA) a diferena entre o valor exato de um nmero N e o seu valor aproximado

N = N + EAN EAN = N - N

(N > N EAN > 0 N < N EAN < 0) Erro absoluto

Por exemplo, sabendo-se que p (3.14, 3.15) tomaremos para p um valor dentro deste intervalo e teremos, ento, |EAp| = |p - p| < 0.01. Erro Relativo definido como o erro absoluto dividido pelo valor aproximado:
ER N = EAN N' = N - N' N'

Erro Relativo

claro que EAN s poder ser determinado se N for exatamente conhecido; como isso raro, em clculos numricos costuma-se trabalhar com uma limitao mxima para o erro, ao invs do prprio (indicando-se, ento, | E | < e, onde e o limite). Por exemplo, se a = 3876.373 e s desejamos a parte inteira a, o erro absoluto ser: Da = | a - a' | = 0.373 Se fizermos o mesmo com o nmero b = 1.373, teremos: Db = | b - b' | = 0.373 Obviamente, o efeito de aproximao de b muito maior do que em a, mas o erro absoluto o mesmo nos dois casos. O erro relativo, entretanto, pode traduzir perfeitamente este fato, pois: 0,373 0,373 da = @ 0,000096 < 10-4 db = @ 0,373 < 5*100 3876 1 2.5 Erro de Arredondamento Ao se aplicar um mtodo numrico, os erros devidos aos valores iniciais, intermedirios e finais conduzem a um erro global (diferena entre o exato e o obtido) tambm chamado de arredondamento. Erros iniciais so os cometidos no arredondamento dos dados iniciais. Os erros intermedirios so decorrentes dos erros cometidos durante a aplicao do mtodo numrico e os erros finais decorrentes da apresentao final do resultado. Os tipos de arredondamentos mais conhecidos so: Arredondamento para baixo ou por falta; Arredondamento para cima ou por excesso; Arredondamento para o numero de maquina mais prximo. Critrio de Arredondamento: no clculo manual, ao registrar um valor aproximado, costuma-se usar a seguinte regra: 1. somar meia unidade aps a ltima casa decimal a conservar; 2. desprezar as demais casas. Assim, com 2 nmeros significativos tem-se:

2 = 1.414 ... @ 1.41 2 = 1.259 ... @ 1.26

(1.414 ... + 0.005 = 1.419 ... 1.41) (1.259 ... + 0.005 = 1.264 ... 1.26)

O uso deste critrio limita o erro a meia unidade da ltima casa conservada: E=

2 - 1.41 = 1.41421 ... - 1.41 = 0.00421 < 0.005

Os valores aproximados obtidos podem ser inferiores (valor aproximado por falta) ou superiores (valor aproximado por excesso) aos exatos; 1.41 o valor aproximado, por falta, de 2 ; 1.26 o valor de 3 2 , aproximado por excesso. Para concluir este item de erro de arredondamento, deve-se ressaltar a importncia de se saber o nmero de dgitos significativos do sistema de representao da mquina que est sendo utilizada para que se tenha a noo da preciso do resultado obtido. Alm da preciso decimal, o clculo do chamado psilon da mquina nos d uma idia da exatido da mquina. O e da mquina o menor nmero de ponto flutuante, tal que: 1 + e > 1. Alguns mtodos para clculo de e no do seu valor exato, mas isto nem sempre necessrio, pois o que importa a sua ordem de grandeza. O programa abaixo, escrito na linguagem Matlab, calcula uma aproximao do e da mquina:
Eps=1.0; while (Eps + 1 > 1) Eps = Eps / 2.0; sprintf('A maquina acha que %1.25f%s',Eps,' end;

vale zero!')

O programa acima, executado num Pentium, obteve a seguinte resposta:


A maquina acha que 0.0000000000000001110223025 vale zero!

Logo, o nmero de dgitos significativos 19. 2.6 Erro de Truncamento So erros provenientes da utilizao de processos que deveriam ser infinitos ou muito grandes para a determinao de um valor e que, por razes prticas, so truncados. Estes processos infinitos so muito utilizados na avaliao de funes matemticas, tais como, exponenciao, logaritmos, funes trigonomtricas e vrias outras que uma mquina pode ter. Exemplo: Uma mquina poderia calcular a funo seno(x) e exponencial(x) utilizando as seguintes tcnicas: 3 5 7 x x x seno(x) = x + + ... 3! 5! 7! ex = 1 + Fazendo truncamento: seno(x) @ x x + 3!
3

x +

x + 2!

x + ... 3!

x 5!

x x + ... + ( -1)n 7! n!

ex @ 1 +

x +

x + 2!

x x + ... + 3! n!

A soluo a de interromper os clculos quando uma determinada preciso atingida. De uma maneira geral, pode-se dizer que o erro de truncamento pode ser diminudo at chegar a ficar da ordem do erro de arredondamento; a partir desse ponto, no faz sentido diminuir-se mais, pois o erro de arredondamento ser dominante.

3 Representao dos Nmeros Reais


3.1 Introduo

Nmeros

{{ { {
Complexos (2+3-1 ) Irracionais (p; 2 ) Reais Inteiros (-1004; 2) Racionais Fracionrios

Ordinrios (32/7; 1/3) Decimais (-3.15; 0.33...)

Algumas das propriedades bsicas da aritmtica real no valem mais quando executadas no computador, pois, enquanto na matemtica alguns nmeros so representados por infinitos dgitos, no computador isso no possvel, pois uma palavra de memria finita e a prpria memria tambm. Exemplos:

2,

3, p e

1 . 3

Se desejssemos calcular a rea de uma circunferncia de raio 100m, obteramos os seguintes resultados: a) A = 31400m2 b) A = 31416 m2 c) A = 31415.92654 m2 Como justificar as diferenas entre os resultados? possvel obter o valor exato desta rea? Os erros ocorridos dependem da representao dos nmeros na mquina utilizada. A representao de um nmero depende da base escolhida ou disponvel na mquina em uso e do nmero mximo de dgitos usados na sua representao. O nmero p, por exemplo, no pode ser representado atravs de um nmero finito de dgitos decimais. No exemplo mostrado acima, o nmero p foi escrito como 3.14, 3.1416 e 3.141592654 respectivamente nos casos (a), (b) e (c). Em cada um deles foi obtido um resultado diferente, e o erro neste caso depende exclusivamente da aproximao escolhida para p, Qualquer que seja a circunferncia, a sua rea nunca ser obtida exatamente, uma vez que p um nmero irracional. Como neste exemplo, qualquer clculo que envolva nmeros que no podem ser representados atravs de um nmero finito de dgitos no fornecer como resultado um valor exato. Quanto maior o nmero de dgitos utilizados, maior ser a preciso obtida. Por isso, a melhor aproximao para o valor da rea da circunferncia aquela obtida no caso (c). Alm disso, um nmero pode ter representao finita em uma base e no-finita em outras bases. A base decimal a que mais empregamos atualmente. Um computador opera normalmente no sistema binrio. Observe o que acontece na interao entre o usurio (ou dados do programa) e o computador: os dados de entrada so enviados ao computador pelo usurio no sistema decimal; toda esta informao convertida para o sistema binrio, e as operaes todas sero efetuadas neste sistema. Os resultados finais

10

sero convertidos para o sistema decimal e, finalmente, sero transmitidos ao usurio. Todo este processo de converso uma fonte de erros que afetam o resultado final dos clculos. Na prxima seo, iremos estudar os processos de converso de nmeros do sistema decimal para o sistema binrio e vice-versa. Estudaremos tambm a forma de armazenamento feita pelos computadores digitais. 3.2 Sistema de Numerao Existem vrios sistemas numricos, dentre os quais destacam-se o sistema decimal (base 10), o octal (base 8) e o hexadecimal (base 16). Em um sistema numrico com base b, existem b dgitos e o maior b 1. De um modo geral, um nmero na base b, (ajaj-1...a2a1a0)b, 0 ak (b 1), k = 1, 2, ..., j, pode ser escrito na forma polinomial: ajbj + aj-1bj-1+...+ a2b2 + a1b1 + a0b0 Com esta representao, podemos facilmente converter um nmero representado em qualquer sistema para o sistema decimal.
3.2.1 Sistema de Numerao Decimal

No sistema de numerao usual, o sistema decimal, usamos dez dgitos 0, 1, ..., 9. Um nmero maior que 9 representado usando uma conveno que atribui significado posio ou lugar ocupado por um dgito. Por exemplo, em virtude das posies ocupadas pelos dgitos individuais no nmero 2015, este nmero tem significado numrico calculado como: 2015 = 2*103 + 0*102 + 1*101 + 5*100 = 2000 + 0 + 10 + 5 = 2015 Notamos que um nmero expresso como uma soma de potncias de 10 multiplicadas por coeficientes apropriados. No sistema decimal, 10 a base do sistema. Existem 10 dgitos, o maior sendo 9. Em um sistema numrico com base b, existem b dgitos e o maior b -1.
3.2.2 Sistema de Numerao Binrio

No sistema binrio existem apenas 2 dgitos: 0 e 1. Como os circuitos eletrnicos usados no computador apresentam 2 estados possveis, convencionou-se chamar o estado desligado de 0 e o estado ligado de 1. Cada dgito de um nmero representado no sistema binrio denominado bit (contrao de BInary digiT), o conjunto de 4 bits denominado nibble e o de 8 bits de byte, termo bastante utilizado na rea de informtica.
3.2.2.1 Converso do Sistema Binrio para Decimal

Quando um nmero escrito no sistema binrio, os dgitos individuais representam os coeficientes de potncias de 2. Por exemplo, o nmero decimal 19 escrito em representao binria como 10011, pois este arranjo de dgitos binrios significa: 10011 = 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 16 + 0 + 0 + 2 + 1 = 19
3.2.3 Converso do Sistema Decimal para Binrio

A converso de um nmero decimal para binrio feita da seguinte forma:

11

19 LSB 1

2 9 1

2 4 0 2 2 0 2 1 1 MSB 2 0

19(10) = 10011(2) O bit menos significativo de um nmero binrio recebe a notao de LSB (Least Significant Bit) e o bit mais significativo de MSB (Most Significant Bit).
3.2.3.1 Converso de Nmeros Binrios Fracionrios em Decimais

Consideremos agora a converso de um nmero fracionrio binrio (base 2) para um nmero decimal (base 10). 0.12510 = 0*100 + 1*10-1 + 2*10-2 + 5*10-3 = 0.1 + 0.02 + 0.005 = 0.12510 0.0012 = 0*20 + 0*2-1 + 0*2-2 + 1*2-3 = 0 + 0 + 0 + 0.125 = 0.12510 0.1012 = 0*20 + 1*2-1 + 0*2-2 + 1*2-3 = 0 + 0.5 + 0 + 0.125 = 0.62510
3.2.3.2 Converso de Nmeros Decimais Fracionrios em Binrios

Consideremos agora a converso de um nmero fracionrio da base 10 para a base 2. Um nmero real entre 0 e 1 pode ter representao finita no sistema decimal, mas representao infinita no sistema binrio. No caso geral, seja r um nmero entre 0 e 1 no sistema decimal e (0.d1d2...dj...)2 sua representao no sistema binrio. Os dgitos binrios d1, d2, ..., dj, ... so obtidos atravs do seguinte algoritmo: Passo 0: Passo 1: r1 = r; k = 1 Calcule 2rk. Se 2rk = 1, faa: dk = 1, caso contrrio, faa: dk = 0 Faa rk+1 = 2rk- dk Se rk+1 = 0, pare. Caso contrrio: k = k + 1. Volte ao passo 1.

Passo 2:

Passo 3:

Observar que o algoritmo pode ou no terminar aps um nmero finito de passos. Para r = (0.125)10 teremos: r1 = 0.125. k = 1 2r1 = 0.25 d1 = 0 r2 = 0.25 - d1 = 0.25 d2 = 0

k = 2 2r2 = 0.5

12

r3 = 0.5 k = 3 2r3 = 1.0 d3 = 1 r4 = 0

Temos ento 0.12510 = 0.0012, sendo portanto a representao binria finita. J para r = 0.110, teremos: r1 = 0.1 k = 1 2r1 = 0.2 d1 = 0 r2 = 0.2 d2 = 0 r3 = 0.4 d3 = 0 r4 = 0.8 d4 = 1 r5 = 0.6 d5 = 1 r6 = 0.2 = r2

k = 2 2r2 = 0.4

k = 3 2r3 = 0.8

k = 4 2r4 = 1.6

k = 5 2r5 = 1.2

Como r6 = r2, teremos que os resultados para k de 2 e 5 se repetiro e ento: r10 = r6 = r2 = 0.2 e assim indefinidamente. Conclumos que: (0.1)10 = (0.00011001100110011...)2 e, portanto, o nmero (0.1)10 no tem representao binria finita. O fato de um nmero no ter representao finita no sistema binrio pode acarretar a ocorrncia de erros aparentemente inexplicveis em clculos efetuados em sistemas computacionais binrios. Um computador que opera no sistema binrio ir armazenar uma aproximao para (0.1)10, uma vez que possui uma quantidade fixa de posies para guardar os dgitos de mantissa de um nmero, e esta aproximao ser usada para realizar os clculos. No se pode, portanto, esperar um resultado exato. Podemos agora entender melhor por que o resultado da operao:
1000

S=

. 01
n=1

no obtido corretamente num computador. Supondo uma mquina digital que trabalhe com apenas 9 dgitos na mantissa, o nmero (0.1)10 seria armazenado como (0.000110011)2 e este nmero representa exatamente (0.099609375)10. Portanto, todas as operaes que envolvem (0.1)10 seriam realizadas com esta aproximao. Veremos na prxima seo a representao de nmeros em aritmtica de ponto flutuante com o objetivo de se entender melhor a causa de resultados imprecisos em operaes numricas.
1000

O programa em Matlab a seguir permite calcular


x=0; for i=1:1000 x = x + 0.1; sprintf('x = %0.20f', x) end

. 01 , sendo 100 o valor exato dessa somatria.


i=1

13

Quando essa somatria efetuada utilizando o computador o valor : 99.99999999999859300000. Se escrever um programa em linguagem C usando double (maior preciso) o resultado ser 99.99999999999859310000. 3.3 Aritmtica de Ponto Flutuante Usa-se, rotineiramente, duas formas para fazer o armazenamento dos nmeros em mquinas: ponto fixo (para valores inteiros) e ponto flutuante (para valores reais). Uma mquina de calcular, ou um computador digital, representa um nmero real no sistema denominado aritmtica de ponto flutuante. Neste sistema, o nmero x representado na forma: x= onde: b: a base em que a mquina opera; di: so nmeros inteiros contidos no intervalo 0 di (b - 1); i = 1, 2, ..., t; d1 0; e: representa o expoente de b e assume valores entre I e S; I, S: limite inferior e limite superior, respectivamente, para a variao do expoente.

d1 b
1

d2 2 b

d3 3 b

+ ... +

dt t b

d1 b1

d2 b2

d3 b3

+ ... +

dt chamada de mantissa e a parte do nmero que representa bt

os seus dgitos significativos e t o nmero de dgitos significativos do sistema de representao, comumente chamado de preciso da mquina. Exemplo 1: No sistema de base b = 10 (decimal), tem-se:
1 0.12510 = 1 10 + 2 10
2

5 3 10

. 10

3 3.141510 = 0.31415 101 = 1 10

1 10
2

4 10
3

1 10
4

5 5 10

. 10

Os nmeros assim representados esto normalizados, isto , a mantissa um valor entre 0 e 1. A forma normalizada utilizada nas operaes envolvendo ponto flutuante em computadores digitais. No sistema de base b = 2 (binrio), tem-se:
1 1010 = 10102 = 0.101 24 = 1 2 + 0 2
2

1 3 2

.2

410 = 1002 = 0.1 * 23 =

1 * 23 2

Exemplo 2: Numa mquina de calcular cujo sistema de representao utilizado tenha b=2, t = 10, I = -15 e S = 15, o nmero 2510 e 3.510 assim representado: 2510 = 110012 = 0.11001 * 25 = 0.11001 * 2101 sendo (5)10 = (101) 2
1 0 0 1 0 0 0 0 0 1 101 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 * 2 2 2 2 2 2 2 2 2 2 2

14

ou, de uma forma mais compacta: 1100100000 Mantissa 0101 expoente

Cada dgito chamado de bit, portanto, nesta mquina so utilizados 10 bits para a mantissa, 4 para o expoente e mais um bit para o sinal da mantissa (se bit=0 positivo, se bit=1 negativo) e um bit para o sinal do expoente, resultando, no total, 16 bits, que so assim representados: 2510 = 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1 Valor da Mantissa Expoente Sinal da Mantissa Sinal Exp.

3.510 = 0.111 * 210 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 O maior valor representado por esta mquina descrita no exemplo 2 seria: 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 que, na base decimal, tem o seguinte valor: 0.1111111111 * 21111 = 3273610 E o menor valor seria: -0.1111111111 * 21111 = - 3273610

Logo, os nmeros que podem ser representados nesta mquina estariam contidos no intervalo [-32736; 32736]. Nesta mquina, ainda, o valor zero seria representado por: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 O prximo nmero positivo representado seria: 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0.1 * 2-15 = 0.000015259 O subsequente seria: 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0.1000000001 * 2-15 = 0.000015289 Atravs desses exemplos pode-se concluir que o conjunto dos nmeros representveis neste sistema um subconjunto dos nmeros reais, dentro do intervalo mostrado anteriormente. Considere, por exemplo, uma mquina que opera no sistema: b = 10; t = 3; e [-5,5].

Os nmeros sero representados da seguinte forma nesse sistema:

15

0.d1d2d3 * 10e, 0 dj 9, d1 0, e [-5, 5] O menor nmero (m), em valor absoluto, representado nesta mquina : m = 0.100 * 10-5 = 10-6 e o maior nmero (M), em valor absoluto, : M = 0.999 * 105 = 99900 Considere o conjunto dos nmeros reais R e o seguinte conjunto: G = {x R | m | x | M} Dado um nmero real x, vrias situaes podero ocorrer: 1. x G: por exemplo, x = 235.89 = 0.23589 * 103. Observe que este nmero possui 5 dgitos na mantissa. Esto representados exatamente nesta mquina os nmeros: 0.235*103 e 0.236*103. Se for usado o truncamento, x ser representado por 0.235*103 e, se for usado o arredondamento, x ser representado por 0.236*103. Na prxima seo, sobre erros, estudaremos o truncamento e o arredondamento; 2. | x | < m: por exemplo, x = 0.345*10-7. Este nmero no pode ser representado nesta mquina porque o expoente e menor que -5. Esta uma situao em que a mquina acusa a ocorrncia de underflow; 3. | x | > M: por exemplo, x = 0.875*109. Neste caso o expoente e maior que 5 e a mquina acusa a ocorrncia de overflow. Algumas linguagens de programao permitem que as variveis sejam declaradas em preciso dupla. Neste caso, esta varivel ser representada no sistema de aritmtica de ponto flutuante da mquina, mas com aproximadamente o dobro de dgitos disponveis na mantissa. importante observar que, neste caso, o tempo de execuo e requerimento de memria aumenta de forma significativa. O C fornece trs tipos para nmeros de ponto flutuante. Cada tipo tem um intervalo e uma preciso especificada: Tipo
float double long double

N de bits Inicio 32 64 80

Intervalo Fim
3.4E+38 1.7E+308 3.4E+4932 3.4E-38 1.7E-308 3.4E-4932

O tipo long double o tipo de ponto flutuante com maior preciso. importante observar que os intervalos de ponto flutuante, na tabela acima, esto indicados em faixa de expoente, mas os nmeros podem assumir valores tanto positivos quanto negativos. 3.4 Propagao de Erros Durante as operaes aritmticas de um mtodo, os erros dos operandos produzem um erro no resultado da operao; sendo A, a, B, b os valores exatos e aproximados, respectivos, e Ea e Eb, os erros dos operandos. A + B = (a + Ea) + (b + Eb) = a + b + Ea + Eb A - B = (a + Ea) - (b + Eb) = a - b + Ea - Eb \ EAA+B = Ea + Eb \ EAA-B = Ea - Eb

16

A * B = (a + Ea) (b + Eb) = ab + aEb + bEa + Eb*Ea

\ EAA*B = aEb + bEa + Eb*Ea

Vejamos atravs de um exemplo, como os erros descritos anteriormente podem influenciar o desenvolvimento de um clculo. Exemplo: Suponha-se que as operaes abaixo sejam processadas em uma mquina com 4 dgitos significativos e fazendo-se: x1 = 0.3491*104 e x2 = 0.2345*100 tem-se: (x2 + x1) - x1 = (0.2345*100 + 0.3491*104) - 0.3491*104 = 0.3491*104 - 0.3491*104 = 0.0000 x2 + (x1 - x1) = 0.2345*100 + (0.3491*104 - 0.3491*104) = 0.2345 + 0.0000 = 0.2345 Os dois resultados so diferentes, quando no deveriam ser, pois a adio uma operao distributiva. A causa desta diferena foi um arredondamento feito na adio (x2 + x1), cujo resultado tem 8 dgitos. Como a mquina s armazena 4 dgitos, os menos significativos foram desprezados. Ao se utilizar mquinas de calcular deve-se estar atento a essas particularidades causadas pelo erro de arredondamento, no s na adio, mas tambm nas outras operaes.

17

4 Zeros de Equaes Transcendentes e Polinomiais


4.1 Introduo Seja F(x) uma funo real definida num intervalo [a, b]. Chama-se raiz(es) desta funo em [a, b] a todo x (csi) (a, b) tal que F(x) = 0, como mostra a figura abaixo.
y f(x)

a 0

4.1.1

Derivada de uma funo num ponto

A funo : A R diz-se derivvel no ponto de acumulao a A quando existe e finito o limite:


lim Dy Dx = lim
x a

Dx 0

f ( x ) - f (a ) x-a

Dx 0

lim

f ( a + Dx ) - f ( a ) Dx

Quando f derivvel em a, o limite chamado derivada de f no ponto a.


4.1.2 Tipos de Mtodos

Pode-se dizer que so dois os mtodos para se achar a(s) raiz(es) de uma equao: Mtodo direto: quando fornece soluo em apenas um nico passo. Esta raiz exata, a menos de erros de arredondamento. Exemplo: Seja F(x) = x2 - 3x + 2. A soluo direta pode ser obtida atravs da frmula de Baskara com a - b b2 - 4ac expresso: X = , que ter como conjunto soluo {1, 2}. 2a
a = 1; b = -3; c = 2; delta = b*b - 4*a*c; if (delta >= 0) %f(x) = x^2 - 3*x + 2

x1 = (-b + sqrt(delta)) / (2*a); x2 = (-b - sqrt(delta)) / (2*a); sprintf('x1 = %15.8f\n',x1) sprintf('x2 = %15.8f\n',x2) else sprintf('Nao possui raizes reais\n'); end

Mtodo iterativo ou indireto: um processo de clculo infinito, recursivo, em que o valor obtido a cada passo depende de valores obtidos em passos anteriores. Este tipo de mtodo, na maioria das vezes, no obtm soluo exata para as razes, mas sim uma soluo aproximada dentro de uma faixa de erro considerada aceitvel. importante salientar, que normalmente, os mtodos iterativos so mais precisos quando executados em um computador que permite agilizar os clculos matemticos, obtendo assim uma melhor preciso.

18

Exerccio: Calcular

4 e de

2 usando o Mtodo de Newton definido por:

x x + x n -1 , para n = 1, 2, 3, ... x n = n -1 2 onde: x: o nmero a ser calculado a raiz x0: uma atribuio inicial qualquer diferente de zero (por exemplo, x0 = 1).

Como vimos anteriormente, o clculo das duas razes de uma equao do segundo grau, colocada sob a forma ax2 + bx + c = 0, so facilmente obtidas pela frmula de Baskara. Entretanto, se colocarmos uma expresso em que aparea uma equao transcendente, a soluo j no to simples, como demonstram os exemplos abaixo: ex + x = 0 cos(x) x = 0 ln(x) + x 2 = 0 Mesmo um polinmio de grau maior que trs j no tem uma soluo algbrica simples como a da equao do segundo grau, a no ser em casos particulares. Vamos analisar como enfrentar esse problema, to comum em diversas reas da engenharia, da economia, das cincias, da fsica, entre tantas outras. Essas equaes, com enorme freqncia, nos levam a razes reais no racionais que, ao serem representadas no computador, necessariamente, o sero de forma aproximada, pelas razes j expostas no captulo anterior, tendo em vista que necessitariam de infinitos dgitos, em suas mantissas, para serem representadas. Alm disso, em geral, estamos interessados em obter esses valores, essas razes, com uma determinada preciso, com um erro tolervel, com algumas casas decimais, sem a pretenso de obter valores exatos. Isso mais do que suficiente, para a maioria dos problemas prticos encontrados. Os mtodos numricos a serem apresentados, partindo de valores inicialmente propostos, buscam aprimorar esses valores, diminuindo os erros, aproximando-se, assim, dos valores das razes procuradas, at que os erros sejam aceitveis, podendo-se garantir que sejam erros inferiores a valores pr-definidos. Para se calcular uma raiz duas etapas devem ser seguidas: Isolar a raiz, ou seja, achar um intervalo [a, b], o menor possvel, que contenha uma e somente uma raiz da equao f(x) = 0; Melhorar o valor da raiz aproximada, isto , refin-la at o grau de exatido requerido. Com a abordagem iterativa precisamos determinar um intervalo inicial para construirmos a seqncia {xi} e teremos que a raiz x' ser dada por:
x ' = lim xi
i

Alm disto, temos que estipular critrios de parada, pois na pratica no calcularemos infinitos termos, mas apenas o suficiente para atingirmos a exatido desejada.
4.1.3 Isolamento de Razes

Nesta fase feita uma anlise terica e grfica da funo f(x). Para tal fim, usa-se freqentemente um importante teorema da lgebra. Teorema: Se uma funo f(x) contnua num intervalo [a, b] assume valores de sinais opostos nos

19

pontos extremos deste intervalo, isto , f(a). f(b) < 0, ento o intervalo conter, no mnimo, uma raiz da equao f(x) = 0; em outras palavras haver, no mnimo, um nmero x (a, b) tal que f(x) = 0.
4.1.3.1 Nmero de Razes Reais

Na seo anterior vimos como delimitar as razes reais de F(x) = 0. Agora iremos verificar quantas razes existem no intervalo delimitado. Os mtodos a seguir do uma boa indicao sobre o nmero de razes do intervalo. Teorema de Bolzano: Seja F(x) = 0 uma equao algbrica com coeficientes reais e x (a, b): Se F(a).F(b) < 0, ento existe um nmero impar de razes reais (contando suas multiplicidades) no intervalo (a, b). Se F(a).F(b) > 0, ento existe um nmero par de razes reais (contando suas multiplicidades) ou no existe razes reais no intervalo (a, b).

A determinao do nmero de razes de equaes transcendentes geralmente quase impossvel, pois algumas equaes podem ter um nmero infinito de razes. No faremos maiores consideraes sobre este importante tpico, por no ser o objeto de estudo neste momento, e por merecer um trabalho a parte, devido a extenso de seu contedo. Entretanto, podemos salientar que o problema de isolar razes constitui-se da enumerao, localizao e separao das mesmas.
4.1.3.2 Refinamento

Depois de isolar a raiz no intervalo [a, b], passa-se a calcul-la atravs de mtodos numricos. Como veremos adiante, estes mtodos devem fornecer uma seqncia {xi} de aproximao, cujo limite a raiz exata x. Em cada aproximao xn, da raiz exata x, usa-se um destes critrios e compara-se o resultado com a tolerncia e pr-fixada. A verificao, de que xn est "suficientemente" prxima da raiz, pode ser feita de dois modos diferentes (que podem levar a resultados diferentes): | f(xn) | e ( abordagem pelo eixo y)

| xn - xn-1 | e (abordagem pelo eixo x) Observa-se que dependendo dos nmeros envolvidos aconselhvel usar os testes de erro relativo: | x n - x n -1 | e | x n -1 |
4.1.4 Classificao dos mtodos

Mtodos de quebra: Os mtodos de quebra so os mais intuitivos geometricamente; contudo, so os que convergem mais lentamente. Estes mtodos so assim chamados porque a partir de um intervalo que contenha uma raiz da funo, vai-se particionando este intervalo em outros menores, que ainda contenham a raiz. Dependendo da escolha do ponto de quebra do intervalo, poderemos ter diferentes mtodos, tais como. Mtodo da Bisseo; Mtodo da Falsa Posio. Mtodos de ponto fixo: Nos mtodos de ponto fixo comeamos de uma aproximao inicial x0 e construmos a seqncia {xi} na qual cada termo dado por xi+1 = z(xi), onde z uma funo de iterao. Conforme for z, (dzeta) teremos diferentes mtodos de ponto fixo, tais como.

20

Mtodo de Newton-Raphson; Mtodo da Iterao Linear.

Mtodos de mltiplos pontos: Os mtodos de mltiplos pontos constituem uma generalizao do mtodo anterior, onde para determinar um ponto xi+1 utilizamos vrios pontos anteriores: xi, xi-1, ..., xi-p. Exemplo: Mtodo da Secante. 4.2 Mtodo da Bisseo Seja f(x) uma funo contnua no intervalo [a, b] e seja x uma raiz desta funo, sendo que x (a, b), tal que f(x) = 0.
y

f(x)

f(b)

a 0 f(a)

x1 x x4 x

x2

Interpretao geomtrica do mtodo da bisseo

Dividindo o intervalo [a, b] ao meio, obtm-se x1, havendo, pois, dois subintervalos, [a, x1] e [x1, b], a ser considerados. Se f(x1) = 0, ento x = x1; caso contrrio, a raiz estar no subintervalo onde a funo tem sinais opostos nos pontos extremos, ou seja, se f(a). f(x1) < 0 ento x [a, x1], seno f(a). f(x1) > 0 e x [x1, b]. O processo se repete at que se obtenha uma aproximao para a raiz exata x, ou seja, que o critrio de parada seja satisfeito. Ento, por induo, temos: Algoritmo:
xn = a+b , 2

para n = 1, 2, 3, ...

Se f(a). f(xn) < 0, ento teremos b = xn, seno a = xn. Critrio de Parada:

f ( x n ) erro ou | b - a | erro
Restrio: necessrio conhecer um intervalo que contenha o valor desejado x.
4.2.1 Estimativa do Nmero de Iteraes

Considerando uma preciso e e um intervalo inicial [a, b] possvel saber, a priori, quantas iteraes sero efetuadas pelo mtodo da bisseo at que se obtenha | b - a | e, usando o algoritmo deste mtodo. Vimos que: b - a k -1 b0 - a 0 bk - a k = k -1 = 2 2k

21

Deve-se obter o valor de k tal que bk - ak < e, ou seja,


b0 - a 0 <e 2k b0 - a 0 < 2k e

log(b0 - a0) - log(e) < k * log(2)


log(b0 - a 0 ) - log(e ) <k log(2)

Portanto, se k satisfaz a relao acima, ao final da iterao k teremos o intervalo [a, b] que contem a raiz x.
4.2.2 Consideraes Finais


4.2.3

As iteraes no envolvem clculos laboriosos; Apesar de teoricamente seguro, o mtodo pode ter falhas. Se ocorrer um erro de arredondamento, mesmo que pequeno, no momento em que a mquina avalia o sinal do ponto mdio, poderemos ter um intervalo que efetivamente no contm uma raiz; Pode ser difcil encontrar um intervalo [a, b], tal que f(a). f(b) < 0, em equaes com razes de multiplicidade par ou muito prximas; A convergncia muito lenta, pois se o intervalo inicial tal que b0 - a0 >> e e se e for muito pequeno, o numero de iteraes (k) tende a ser muito grande; Deve ser utilizado apenas para diminuir o intervalo que contm a raiz.

Exemplos

Exemplo 1: Encontrar a raiz da funo f(x) = x.ln(x) - 3.2 contida no intervalo [2, 3], com erro 10-2. a+b a) Algoritmo: x n = 2 b) Escolha do intervalo: f(2) = -1.81371 f(3) = 0.09584 x [2, 3] c) Valor do erro: erro 10-2 d) Iteraes: a 2 2.5 2.75 2.875 2.9375 2.9375 Xn 2.5 2.75 2.875 2.9375 2.96875 2.953125 b 3 3 3 3 3 2.96875 f(a) -1.81371 -0.90927 -0.41810 -0.16385 -0.03467 -0.03467 f(xn) -0.90927 -0.41810 -0.16385 -0.03467 0.03042 -0.00217 | xn - a | 0.5 0.25 0.125 0.0625 0.03125 0,015625 e = | f(xn) | 0.90927 0.41810 0.16385 0.03467 0.03042 0.00217

e) Resposta: A raiz desejada x = 2,953125 Exerccio 1: Encontrar a raiz de f(x) = x2 - 3, contida no intervalo [1; 2], com erro 10-2. Resposta: A raiz desejada x = 1.734375

22

Exerccio 2: Encontrar a raiz da funo f(x) = x2 + ln(x) contida no intervalo [0.5, 1], com erro 10-2. Resposta: A raiz desejada x = 0.65625

Exerccio 3: Encontrar a primeira raiz positiva da funo f(x) = e-x - sen(x), com erro 10-2. Resposta: 4.3 A raiz desejada x = 0.59375

Mtodo da Falsa Posio Seja f(x) uma funo contnua no intervalo [a, b] e seja x uma raiz desta funo, sendo que x (a, b), tal que f(x) = 0. No caso do Mtodo da Bisseo, xn obtido atravs da mdia aritmtica entre os extremos a e b: a+b xn = 2 Na maioria das vezes a raiz est mais prxima de um dos extremos do intervalo. Se partirmos do princpio de que a raiz deve estar mais prxima do ponto que apresenta o menor valor da funo, ento, em vez de tomar a mdia aritmtica entre a e b, o mtodo da falsa posio toma a mdia aritmtica ponderada entre a e b com pesos | f(b) | e | f(a) |, respectivamente:

a f ( b) + b f ( a ) f (b) + f ( a )

, visto que f(a) e f(b) tm sinais opostos, temos ento:


(b - a ). f ( a ) , para n = 1, 2, 3, ... f (b) - f ( a )

af (b) - bf ( a ) f (b) - f ( a )

af (b) - bf ( a ) - af (a ) + af ( a ) f (b) - f ( a )

= a-

Graficamente, este mtodo procura particionar o intervalo [a, b], na interseo da reta que une os pontos (a, f(a)) e (b, f(b)) com o eixo x. Este ponto representado como xn. Escolhe-se ento um novo subintervalo conforme for a variao do sinal da curva f. O mtodo da falsa posio aplicado na figura abaixo mostra que f(x1).f(a) < 0, com isso, o novo intervalo que contm pelo menos uma raiz real dado por (a, x1). Continuando o processo, determinamos o ponto x2 e verifica-se, agora, que f(x2).f(x1) < 0, da o processo segue tendo o intervalo (x1, x2). Aps encontrar o ponto x1, devemos verificar, como no caso da bisseo, se a raiz est entre o intervalo (a, x1) ou (x1, b). Se f(a).f(x1) < 0, ento teremos b = x1, caso contrrio teremos a = x1. A partir da o processo se repete at que o critrio de parada seja satisfeito.
y f(b') f(b) f(x)

a x2 0

x x1 f(a)

Representao geomtrica do mtodo da falsa posio

23

O algoritmo deste mtodo tambm pode ser encontrado atravs da anlise dos tringulos formados pela reta (a, f(a)) e (b, f(b)) com o eixo x. Seja o tringulo f(a)x1a e o tringulo f(a)f(b)f(b), ento, pela propriedade da semelhana de tringulos temos:
x -a b-a f (b) - f ( a ) b-a (b - a )( - f ( a )) = \ = 1 \ x1 - a = \ x1 - a - f (a ) f (b) - f ( a ) - f ( a ) f (b) - f ( a )

x1 = a -

(b - a )( f ( a )) f (b) - f ( a )

Se f(a).f(x1) < 0, ento teremos b = x1, seno a = x1. A partir da o processo se repete at que o critrio de parada seja satisfeito. Ento, por induo temos: Algoritmo:
(b - a ). f ( a ) f (b) - f ( a )

=a-

Para n = 1, 2, 3, ...

Se f(a).f(xn) < 0, ento teremos b = xn, seno a = xn. Critrio de Parada: | xn - xn-1 | erro (x0 = a ou x0 = b)

Pode ser usado tambm o critrio: f ( x n ) erro Restrio: necessrio conhecer um intervalo que contenha o valor desejado x.
4.3.1 Casos especiais

Se f(x) contnua no intervalo [a, b] com f(a).f(b) < 0 ento o mtodo da falsa posio gera uma seqncia convergente. Se uma funo cncava ou convexa em [a, b], ou seja, a segunda derivada existe em [a, b] e f(x) no muda de sinal nesse intervalo, ento no mtodo da falsa posio teremos sempre uma das extremidades fixa. Este caso especial tambm chamado de Mtodo das Cordas. A figura abaixo mostra graficamente os quatro casos que podem ocorrer:

f "( x ) > 0 f ( a ) < 0 e f (b) > 0

b ponto fixo

f "( x ) > 0 f ( a ) > 0 e f (b) < 0

a ponto fixo

24
y f(x)

y f(a)

f(b)

a 0 f(a)

x1 x2 x b x

f(x) 0 a x x2 x1 b x f(b)

f "( x ) < 0 f ( a ) < 0 e f (b) > 0


y

a ponto fixo
y
f(x) f(b)

f "( x ) < 0 f ( a ) > 0 e f (b) < 0

b ponto fixo

f(a) f(x)

a x 0 x2 x1 b x

xb 0 a x1 x2 f(b) x

f(a)

Mtodo da falsa posio com uma das extremidades fixa


4.3.2 Consideraes finais

4.3.3

Se o ponto fixo existir e for razoavelmente prximo da raiz, o mtodo tem boa convergncia; caso contrrio, pode ser mais lento que a bisseo.

Exemplos

Exemplo 1: Determinar pelo mtodo da falsa posio a menor raiz positiva da funo de quarto grau f(x) = x4 - 26x2 + 24x + 21 at que o erro absoluto seja igual ou inferior a 0.01. Os clculos devem ser efetuados com 2 casas decimais e com arredondamento. a) Algoritmo:
(b - a ). f ( a ) f (b) - f ( a ) 4 2 f(x) = x - 26x + 24x + 21 f(x) = 4x3 - 52x + 24 f(x) = 12x2 - 52

=a-

b) Escolha do intervalo: Em primeiro lugar, deve-se procurar o intervalo onde possivelmente esteja a primeira raiz positiva. Atravs da anlise do valor da funo nos primeiros pontos do eixo dos x temos que: f(0) = 21, f(1) = 20, f(2) = -19, logo, entre (1, 2) existe uma raiz positiva. c) Valor inicial: a=1 f(1) = -40

b=2 f(2) = -4 f(1).f(2) > 0 \ a concavidade no muda.

25

temos f(x) < 0, f(a) > 0 e f(b) < 0, portanto, b ponto fixo. d) Valor do erro: erro 10-2 e) Iteraes:
x1 = 1 ( 2 - 1)( f (1)) (1)( 20) 20 = 1= 1= 1,51 ( f ( 2) - f (1)) ( -19 - 20) -39

| x1 - a | = | 1,51 - 1 | = 0,51 > erro f(a).f(x1) = (20).(3,16) = 63,2 > 0, portanto a raiz est no intervalo (x1, b), ento a = x1
x 2 = 1,51 ( 2 - 1,51)( f (1,51)) (0,49)( 3,16) (1,55) = 1,51 = 151 . = 1,58 ( f (2) - f (1,51)) -19 - ( 3,16) -22,16

| x2 - x1 | = | 1,58 - 1,51 | = 0,07 > erro f(a).f(x2) = (1,51).(1,58) = 2,3858 > 0, \ a = x2


x 3 = 1,58 ( 2 - 1,58)( f (1,58)) (0,42)(0,24) 0,10 = 1,58 = 1,58 = 1,59 ( f (2) - f (1,58)) -19 - (0,24) -19,24

| x3 - x2 | = | 1,59 - 1,58 | = 0,01 < erro f) Resposta: x = 1,59 a primeira raiz positiva do polinmio. Exerccio 1: Calcular a raiz aproximada para a equao f(x) = cos(x) + x, com e 0.001. Resposta: x = -0.7391 a raiz procurada da equao.

Exerccio 2: Calcular a raiz negativa para a funo f(x) = ex + x, com o erro 0.01. Sabe-se que a raiz est contida no intervalo [-1, 0]. Resposta: 4.4 x = -0.5677 a raiz procurada da equao.

Mtodo da Iterao Linear Seja f(x) uma funo contnua no intervalo [a, b] e seja x uma raiz desta funo, sendo x (a, b), tal que f(x) = 0. Por um artifcio algbrico, pode-se transformar f(x) = 0 em duas funes que lhe sejam equivalentes.
y = x f(x) = 0 y = g (x)

onde g(x) chamada de funo de iterao.

26
y y=g(x) y=x

f(x) 0 x x

Interpretao geomtrica do mtodo da iterao linear

Sendo x0 a primeira aproximao da raiz x, calcula-se g(x0). Faz-se ento, x1 = g(x0), x2 = g(x1), x3 = g(x2) e assim sucessivamente. Ento, por induo, temos: Algoritmo:
x n = g ( x n -1 )

para n = 1, 2, 3, ... | xn - xn-1 | erro

Critrio de Parada:

Melhor extremo: Empiricamente, sabe-se que o mtodo tem sucesso quando | g'(x) | < 1 em todo intervalo. O extremo mais rpido para iniciar o mtodo aquele para o qual o mdulo da primeira derivada menor. Se | g'(a) | < | g'(b) | ento x0 = a, seno x0 = b.
4.4.1 Casos de convergncia

Seja f(x) = x3 - 5x + 3. Possveis g(x): g(x) =


x3 + 3 5
5x - 3 x2

g(x) = (5 x - 3)
-3 x2 - 5

g(x) =

g(x) =

Como podemos ter vrias funes g(x), vamos estabelecer algumas condies para que os resultados sejam satisfatrios. Vamos observar graficamente o problema e verificar que h funes g(x) que no so indicadas para a escolha. Convergncia monotnica 0 < g(x) < 1 Convergncia oscilante -1 < g(x) < 0

27
y y=x y=g(x) y y=x

y=g(x) 0 x0 x1 x2 x x 0 x0 x x x 2 4 x3 x1 x

Divergncia monotnica g(x) > 1


y y=g(x) y=x

Divergncia oscilante g(x) < -1


y y=x

y=g(x)

0 x2 x1 x0 x x

0 x4 x2 x0 x x1x3 x

Convergncia no mtodo da iterao linear


4.4.2 Consideraes finais

A maior dificuldade neste mtodo encontrar uma funo de iterao que satisfaa condio de convergncia; Teste de | g'(x) | < 1 pode levar a um engano se x0 no estiver suficientemente prximo da raiz. A velocidade de convergncia depender de | g'(x) |: quanto menor este valor maior ser a convergncia; Devemos observar que o teste de erro ( | xn - xn-1 | erro ) no implica necessariamente que | xn - x | erro, conforme vemos na figura abaixo:
y y=x

y=g(x)

xn xn-1

4.4.3

Exemplos

Exemplo 1: Dada a funo f(x) = x2 + 3x - 40, obter sua raiz contida no intervalo [4.5, 5.5], pelo MIL, com um erro 10-4. a) Algoritmo: x n = g ( x n -1 ) b) Escolha da funo de iterao: y=x

28

y=

x - 40 -3
2

y' =

- 2x 3

divergncia oscilante

y=

40 x+3

y' =

- 40 ( x + 3) 2 -3 2 40 - 3x

convergncia oscilante

y=

40 - 3 x

y' =

convergncia oscilante

c) Melhor extremo (valor inicial): y=


40 - 3 x

y' = -

3 2 * 40 - 3 x

y'(4.5) = -0.2914 d) Valor do erro: erro 10-4 e) Iteraes: x1 = 5.14782 x2 = 4.95546 x3 = 5.01335 x4 = 4.99599 x5 = 5.00120 x6 = 4.99964 x7 = 5.00011 x8 = 4.99997 x9 = 5.00000

y'(5.5) = -0.3094

x0 = 4.5

| x9 x8 | = 0.00003 < erro

f) Resposta: A raiz desejada x = 5.00000 Exerccio 1: Dada a funo f(x) = x2 + 3x - cos(x) - 2.45, obter sua raiz contida no intervalo [0.5, 1], pelo MIL, com um erro 10-2. Resposta: 4.5 A raiz desejada x = 0.8161

Mtodo de Newton-Raphson ou Mtodo das Tangentes Seja f(x) uma funo contnua no intervalo [a, b] e seja x uma raiz desta funo, sendo x (a, b), tal que f(x) = 0 e f(x) 0.
y f(x) f(x0) f(x1) a 0 f(a) x x2 b a b=x0 x1 x'1

29 Interpretao geomtrica do mtodo de Newton

Tomemos x0 = b. Ento temos:


tga = f ' ( x0 ) \ f ' ( x0 ) = f ( x0 ) f ( x0 ) \ x1 = x0 x0 - x1 f ' ( x0 )

Se x1 - x 0 erro , ento x1 a raiz desejada, seno deve-se calcular x2, que obtido com base no mesmo raciocnio anterior: x 2 = x1 f ( x1 ) . f ' ( x1 )

Se x 2 - x1 erro , ento x2 a raiz desejada, seno deve-se calcular x3, ..., xn, at que

x n - x n -1 erro . Ento, por induo, temos:


Algoritmo:
x n = x n -1 f ( x n -1 ) , f ' ( x n -1 )

para n = 1, 2, 3, ...

Critrio de Parada:

x n - x n -1 erro
Restrio: necessrio conhecer um intervalo que contenha o valor desejado x. Melhor extremo: Para decidir qual o melhor extremo do intervalo (a, b) a iniciar o mtodo, basta verificar qual dos extremos possui funo e segunda derivada com mesmo sinal: f(xi). f''(xi) > 0
4.5.1 Consideraes finais

Para i = {extremos do intervalo}

4.5.2

Requer o conhecimento da forma analtica de f '(x), mas sua convergncia extraordinria.

Exemplos

Exemplo 1: Calcular a raiz positiva da equao f(x) = 2x - sen(x) - 4 = 0, com erro 10-3, usando o mtodo de NR. f ( x n -1 ) a) Algoritmo: x n = x n -1 f ' ( x n -1 ) f(x) = 2x - sen(x) - 4 f(x) = 2 - cos(x) f''(x) = sen(x) b) Escolha do intervalo: f(2) = -0.9093 f(2). f(3) < 0

f(3) = 1.8589 x [2, 3]

c) Melhor extremo (valor inicial): f(2) = -0.9093 f(3) = 1.8589 f''(2) = 0.9093 f''(3) = 0.1411 \ x0 = 3 d) Valor do erro:

30

erro 10 e) Iteraes:
x1 = 3 -

-3

f (3) 1.8589 = 3= 2.3783 f ' (3) 2.9900

| x1 - x0 | = | 2.3783 - 3 | = 0.6217 > erro


x 2 = 2.3783 f (2.3783) 0.0653 = 2.3783 = 2.3543 f ' ( 2.3783) 2.7226

| x2 - x1 | = | 2.3543 - 2.3783 | = 0.0240 > erro


x 3 = 2.3543 f (2.3543) 0.0002 = 2.3543 = 2.3542 f ' ( 2.3543) 2.7058

| x3 - x2 | = | 2.3542 - 2.3543 | = 0.0001 < erro f) Resposta: A raiz desejada x = 2.3542 Exerccio 1: Obter a raiz cbica de 5, usando o mtodo NR sendo o erro 10-3. f(x) = x3 - 5 f'(x) = 3x2 f''(x) = 6x Resposta: A raiz desejada x = 1.7100

Exerccio 2: Calcular a raiz negativa de f(x) = x3 - 5x2 + x + 3, com erro 10-4. f(x) = x3 - 5x2 + x + 3 f(x) = 3x2 - 10x + 1 f''(x) = 6x - 10 Resposta: A raiz desejada x = -0.64575 Exerccio 3: Seja a funo f(x) = sen(x) - tg(x). Deseja-se saber uma das razes desta funo, sabendo-se que est contida no intervalo (3, 4). Todos os clculos devem ser realizados com 4 casas decimais com arredondamento e erro no superior a 0.001. f(x) = sen(x) - tg(x) f'(x) = cos(x) - sec2(x) f''(x) = -sen(x) - 2sec2(x) tg(x) Resposta: A raiz desejada x = 3.1416
4.5.3 Condies de Newton-Raphson-Fourier

Segundo Newton, para haver a convergncia uma raiz em seu mtodo, bastaria que o intervalo (a, b) em anlise fosse suficientemente pequeno. Contudo, Raphson e Fourier concluram que um intervalo pequeno aquele que contm uma e somente uma raiz. Com isso, algumas condies foram estabelecidas para que tal exigncia fosse vlida:

31

1) Se f(a). f(b) > 0, ento existe um nmero par de razes reais (contando suas multiplicidades) ou no existe razes reais no intervalo (a, b) (Teorema de Bolzano); 2) Se f(a).f(b) < 0, ento existe um nmero mpar de razes reais (contando suas multiplicidades) no intervalo (a, b) (Teorema de Bolzano); 3) Se f'(a). f'(b) > 0, ento o comportamento da funo neste intervalo poder ser apenas crescente ou apenas decrescente, e nunca os dois se alternando; 4) Se f'(a). f'(b) < 0, ento a funo ter o comportamento de ora crescer ora decrescer; 5) Se f"(a). f"(b) > 0, ento a concavidade no muda no intervalo em anlise; 6) Se f"(a). f"(b) < 0, ento a concavidade muda no intervalo em anlise. Portanto, haver convergncia uma raiz no intervalo (a, b) se e somente se: f(a). f(b) < 0, f'(a). f'(b) > 0 e f"(a). f"(b) > 0.

Exemplo 2: Seja a funo f(x) = x2 - 9.5x + 8.5, obter a raiz contida no intervalo [8, 9]. Os clculos devem ser realizados com 4 decimais com arredondamento e erro no superior a 0,001. f ( x n -1 ) a) Algoritmo : x n = x n -1 f ' ( x n -1 ) 2 f(x) = x - 9.5x + 8.5 f(x) = 2x - 9.5 f(x) = 2 b) Escolha do intervalo: f(8) = -3.5; f(8). f(9) < 0

f(9) = 4 x [8, 9]

c) Melhor extremo (valor inicial): f(8) = -3,5 f(9) = 4 f'(8) = 6.5 f'(9) = 8.5 f"(8) = 2 f"(9) = 2 \ x0 = 9 d) Valor do erro: erro 10-3 e) Iteraes:

f(8). f(9) < 0 f(8). f(9) > 0 f(8). f(9) > 0

=9-

f ( 9) 4 =9= 8.5294 f ' ( 9) 8 .5 | x1 - x0 | = | 8.5294 - 9 | = 0.4706 > erro f (8.5294) 0.2214 = 8.5294 = 8.5001 f ' (8.5294) 7.5588 | x2 - x1 | = | 8.5001 - 8.5294 | = 0.0293 > erro f (8.5001) 0.0008 = 8.5001 = 8.5000 f ' (8.5001) 7.5002 | x3 - x2 | = | 8.5000 - 8.5001 | = 0.0001 < erro

= 8.5294 -

= 8.5001 -

f) Resposta: A raiz desejada x = 8.5000

32

Exerccio 4: Calcular a raiz da equao f(x) = x3 - x + 1 = 0, contida no intervalo [-2, -1], com um erro 10-3. f(x) = x3 - x + 1 f(x) = 3x2 - 1 f(x) = 6x Resposta: 4.6 A raiz desejada x = -1.3247

Mtodo da Secante Uma grande desvantagem do mtodo de Newton a necessidade de se obter a derivada f(x) e calcular o seu valor numrico a cada iterao. Para contornar este problema podemos substituir o clculo da primeira derivada f(xn) pelo quociente das diferenas, usando assim, um modelo linear baseado nos dois valores calculados mais recentemente: f ( x n ) - f ( x n -1 ) f ' ( xn ) x n - x n -1 onde xn e xn-1 so duas aproximaes para a raiz. Substituindo o valor aproximado da derivada acima, a funo de iterao fica:

xn + 1 = x

f ( xn) f ( xn) - f ( xn - 1) xn - xn - 1 ( xn - xn - 1). f ( xn) f ( xn) - f ( xn - 1)


, para n = 1, 2, 3, ...

xn + 1 = x

Para iniciar o mtodo necessitamos de duas aproximaes (x0 e x1) para a raiz.
y f(x) f(x1)

xo 0
f(x0)

x2

x3

x x4

x1

Interpretao geomtrica do mtodo da secante

Neste mtodo partimos das duas aproximaes iniciais x0 e x1 e determinamos a reta que passa pelos pontos (x0, f (x0)) e (x1, f (x1)). A interseco desta reta com o eixo x fornece o ponto x2. Em seguida calculado uma nova aproximao para a raiz a partir dos pontos (x1, f(x1)) e (x2, f (x2)). O processo se repete at que seja satisfeito o critrio de parada. Observe que neste mtodo no necessitamos da caracterstica que fundamental no mtodo da

33

falsa posio que exige que f(xn). f(xn-1) < 0. importante salientar tambm que a raiz no necessita estar entre as duas aproximaes iniciais (x0 e x1). A convergncia deste mtodo mais rpido que o mtodo da bisseo e o da falsa posio, contudo, pode ser mais lento que o mtodo de Newton-Raphson. Algoritmo:

xn+1 = xn Critrio de parada:

( xn - xn -1 ). f ( xn ) f ( xn ) - f ( xn -1 ) ,

para n = 1, 2, 3, ...

| xn+1 - xn | erro

4.6.1

Exemplos

Exemplo 1: Calcular a raiz da funo f(x) = x2 + x - 6, sendo x0 = 1.5, x1 = 1.7 e o erro 10-2. a) Algoritmo : x n +1 = x n b) Valor inicial: x0 = 1.5 c) Valor do erro: erro 10-2 d) Iteraes:

( xn - xn -1 ). f ( xn ) f ( xn ) - f ( xn -1 )
x1 = 1.7

x 2 = 1.7 - (1.7 - 1.5). f (1.7) = 1.7 -

(0.2)( -1.41) ( -0.282) = 1 .7 = 2.0357 f (1.7) - f (1.5) - 1.41 - ( -2.25) 0.84 | x2 - x1 | = | 2.0357 - 1.7 | = 0.3357 > erro f (2.0357) - f (1.7) 0.1798 - ( -1.41) | x3 - x2 | = | 1.9977 - 2.0357 | = 0.038 > erro

x3 = 2.0357 - (2.0357 - 1.7). f (2.0357) = 2.0357 - (0.3357)(0.1798) = 1.9977 x 4 = 1.9977 - (1.9977 - 2.0357). f (1.9977) = 1.9977 - ( -0.038)( -0.0115) = 2.0000
f (1.9977) - f ( 2.0357) - 0.0115 - (0.1798) | x4 - x3 | = | 2.0000 - 1.9977 | = 0.0023 < erro

e) Resposta: x = 2.0000 a raiz procurada. Exerccio 1: Calcular a raiz da funo f(x) = 3x - cos(x), sendo x0 = 0, x1 = 0.5 e o erro 10-4. Efetue os clculos com 5 casas decimais com arredondamento. Resposta: x = 0.31675 a raiz procurada.

Exerccio 2: Calcular a raiz da funo f(x) = x3 - 4, sendo x0 = 1, x1 = 2 e o erro 0,05. Resposta: x = 1,5914 a raiz procurada.

34

4.7

Mtodo Misto O mtodo misto, consiste na aplicao seqencial dos mtodos NR e Falsa Posio, nesta ordem.

O mtodo NR aplicado no primeiro passo, sempre a partir do melhor extremo. Ento, com o novo resultado obtido x1N , determina-se qual valor dos extremos do intervalo ser substitudo ( f(a). f( x1N ) < 0 F b = x1N , seno a = x1N ) e ento aplica-se o mtodo da Falsa Posio. O resultado obtido em x m ser utilizado na prxima iterao pelo mtodo NR, mas antes feito o teste do erro para verificar o critrio de parada. Assim, por induo, seguem-se as iteraes seguintes. Quando o critrio de parada for satisfeito, tira-se a mdia aritmtica simples do resultado da ltima iterao de ambos os mtodos e obtm-se a resposta desejada. Algoritmo:
xm =
N F xm + xm , 2

para m = 1, 2, 3, ...

Critrio de parada:
F N | x m x m | erro

4.7.1

Exemplos

Exemplo 1: Determinar pelo mtodo misto, a raiz da funo f(x) = 10sen(x) + cos(x) - 10x contida no intervalo [0.5, 1], com tolerncia de 2*10-4 e clculos com 4 casas decimais com arredondamento. F x N + xm a) Algoritmo: x m = m 2 f(x) = 10sen(x) + cos(x) - 10x f(x) = 10cos(x) sen(x) 10 f"(x) = (-10)sen(x) cos(x) b) Valor do erro: erro 0.0002 c) Escolha do intervalo: f(0.5) = 0.6718 d) Iteraes: Melhor extremo: f(0.5) = 0.6718 f"(0.5) = -5.6718
x1N = 1 -

f(1) = -1.0450

f(1) = -1.0450 f"(1) = -8.9550

N \ x0 = 1

f (1) ( -1.0450) = 1= 0.8078 f (1) ( -5.4384)

extremo trocar: \ a = 0.5


x1F = 0.5 -

f(a). f( x1N ) = f(0.5). f(0.8078) = (0.6718)(-0.1594) < 0 b = 0.8078

(0.8078 - 0.5) * f (0.5) (0.3078) * (0.6718) = 0 .5 = 0.7488 f (0.8078) - f (0.5) (-0.1594) - (0.6718)

35

| x1F x1N | = | 0.7488 - 0.8078 | = 0.0590 > erro extremo trocar: \ a = 0.7488
N x 2 = 0.7488 -

f(0.5). f(0.7488) = (0.6718)(0.0521) > 0 b = 0.8078

f (0.7488) (0.0521) = 0.7488 = 0.7643 f (0.7488) (-3.3557)

extremo trocar: \ a = 0.7488


F x 2 = 0.7488 -

f(0.7488). f(0.7643) = (0.0521)(-0.0008) < 0 b = 0.7643

(0.7643 - 0.7488) * f (0.7488) (0.0155) * (0.0521) = 0.7488 = 0.7641 f (0.7643) - f (0.7488) (-0.0008) - (0.0521) F N | x 2 x 2 | = | 0.7641 - 0.7643 | = 0.0002 erro

e) Resposta: 0.7641 + 0.7643 x= = 0.7642 2 Exerccio 1: Dada a funo f(x) = x2 + 3x - cos(x) - 2.45, obter sua raiz contida no intervalo [0.5, 1] pelo mtodo misto, com erro 10-3 e clculos com 4 decimais com arredondamento. f(x) = x2 + 3x - cos(x) - 2.45 f'(x) = 2x + 3+ sen(x) f"(x) = 2 + cos(x) Resposta: 4.8
4.8.1

x=

0.82 + 0.82 = 0.8200 2

Mtodo para Equaes Polinmiais


Introduo

Embora qualquer um dos mtodos estudados anteriormente possam ser usados para encontrar zeros de um polinmio de qualquer grau, o fato de os polinmios aparecerem com tanta freqncia em aplicaes faz com que seja dedicada uma ateno especial. Normalmente, um polinmio de grau n escrito na forma: Pn = a 0 + a1 x + a 2 x 2 + K + a n x n para an0

Sabemos da lgebra elementar como obter os zeros de um polinmio do segundo grau P2(x), ou seja, n = 2. Existem frmulas fechadas, semelhantes frmula para polinmios de grau 2, mas bem mais complicadas, para zeros de polinmios de grau 3 e 4. Agora, para n 5, em geral, no existem frmulas explcitas e somos forados a usar mtodos iterativos para encontrar os zeros dos polinmios. Muitos dos teoremas da lgebra so teis na localizao e classificao dos tipos de zeros de um polinmio. O estudo ser dividido em localizao de razes e determinao das razes reais.
4.8.2 Localizao de Razes

Vejamos alguns teoremas que sero teis para efetuar a localizao de razes.

36

Teorema Fundamental da lgebra: Se Pn(x) um polinmio de grau n 1, ou seja, Pn(x) = a 0 + a1 x + a 2 x 2 + K + a n x n , para a 0 , a1 , a 2 , K , a n reais ou complexos, com an0, ento Pn(x) tem pelo menos um zero, ou seja, existe um nmero complexo x tal que Pn(x) = 0. Para determinarmos o nmero de zeos reais de um polinmio com coeficientes reais, podemos fazer uso da regra de sinal de Descartes: Dado um polinmio com coeficientes reais, o nmero de zeros reais positivos, p, desse polinmio no excede o nmero v de variaes de sinal dos coeficientes. Temos ainda que v p um nmero inteiro, par e no negativo. Exemplos: Dados os polinmios a seguir, determinar o nmero de razes reais positivas: a) P5(x) = + 3x5 2x4 x3 + 2x + 1
+ 1 1 + +

se v - p = 0, p = 2 v = 2 p: ou se v - p = 2, p = 0

b) P5(x) = + 3x5 2x3 + 4x2 x 1


+ 1 1 + 1 -

se v - p = 0, p = 3 v = 3 p: ou se v - p = 2, p = 1

c) P7(x) = + x7 + 1
+ 0 +

v = 0 e p: {v p 0 p = 0}. Para determinar o nmero de razes reais negativas, neg, tomamos Pn(x) e usamos a mesma regra para razes positivas: a) P5(x) = + 3x5 2x4 x3 + 2x + 1 P5(x) = 3x5 2x4 + x3 2x + 1
1 + 1 1 +

se v - neg = 0, neg = 3 v = 3 neg: ou se v - neg = 2, neg = 1

b) P5(x) = + 3x5 2x3 + 4x2 x 1

37

P5(x) = 3x + 2x + 4x + x 1
1 + + + 1 -

se v - neg = 0, neg = 2 v = 2 neg: ou se v - neg = 2, neg = 0

c) P7(x) = + x7 + 1 P7(x) = x7 + 1
1 +

Neste caso, vimos que no existe zero positivo. Temos ainda P7(0) = 1 0. Temos ento que, v = 1 e neg: {v neg = 0 neg = 1}, ou seja, Pn(x) = 0, no tem raiz real positiva, o zero no raiz e tem apenas uma raiz real negativa donde tem trs razes complexas conjugadas.
4.8.3 Determinao das Razes Reais

Estudaremos um processo para se calcular o valor numrico de um polinmio, isto porque em qualquer dos mtodos este clculo deve ser feito uma ou mais vezes por iterao. Por exemplo, o Mtodo de Newton, que veremos a seguir, a cada iterao deve-se fazer uma avaliao do polinmio e uma de sua derivada.
4.8.3.1 Mtodo para Calcular o Valor Numrico de um Polinmio

Para exemplificar o mtodo, estudaremos o processo analisando um polinmio de grau 4: P4(x) = a 4 x 4 + a 3 x 3 + a 2 x 2 + a1 x + a 0 Este polinmio pode ser escrito na forma: P4(x) = (((a4x + a3)x + a2)x + a1)x + a0 conhecida como forma dos parnteses encaixados. Temos ento, no caso de n = 4, que
P4(x) = (((a4x + a3)x + a2)x + a1)x + a0 b4 b3 : : Para se calcular o valor numrico de P4(x) em x = c, basta fazer sucessivamente: b2

b4 = a4 b3 = a3 + b4c

38

b2 = a2 + b3c b1 = a1 + b2c b0 = a0 + b1c P(c) = b0. Portanto, para Pn(x) de grau n qualquer, calculamos Pn(c) calculando as constantes bj, j = n, n 1, ..., 1, 0 sucessivamente, sendo: bn = an bj = aj + bj+1c e b0 ser o valor de Pn(x) para x = c. Podemos calcular o valor de Pn(x) em x = c usando os coeficientes bj obtidos anteriormente. Tomando como exemplo o polinmio de grau 4, temos: P4(x) = a 4 x 4 + a 3 x 3 + a 2 x 2 + a1 x + a 0 P4(x) = 4a 4 x 3 + 3a3 x 2 + 2a 2 x + a1 .

j = n 1, n 2, ..., 1, 0

Usando os valores de aj do clculo anterior e dado que j conhemos b0, b1, b2, b3 e b4: P4(x) = 4a 4 x 3 + 3a3 x 2 + 2a 2 x + a1 = 4b4 c 3 + 3(b3 - b4 c)c 2 + 2(b2 - b3 c)c + (b1 - b2 c) = 4b4 c 3 - 3b4 c 3 + 3b3 c 2 - 2b3 c 2 + 2b2 c + b1 - b2 c Assim, P4(x) = b4 c 3 + b3 c 2 + b2 c + b1 Aplicando o mesmo esquema anterior, teremos: c4 = b4 c3 = b3 + c4c c2 = b2 + c3c c1 = b1 + c2c Calculamos, pois, os coeficientes cj, j = n, n 1, ..., 1 da seguinte forma: cn = bn cj = bj + cj+1c Teremos ento P(c) = c1.
4.8.4 Mtodo de Newton para Zeros de Polinmios

j = n 1, n 2, ..., 1

Seja Pn(x) = a n x n + a n-1 x n -1 + L + a 2 x 2 + a1 x + a 0 uma aproximao inicial para a raiz procurada. Conforme vimos, o Mtodo de Newton consiste em desenvolver aproximaes sucessivas para x a partir da iterao: P( x k ) xk+1 = xk para k = 0, 1, 2, ... P' ( xk ) Exemplo 1: Dada a equao polinomial x5 3.7x4 + 7.4x3 10.8x2 + 10.8x 6.8 = 0, temos que:

39

P5(1) = 2.1 P5(2) = 3.6 Ento, existe uma raiz no intervalo (1, 2). Partindo de x0 = 1.5 e considerando e 0.02, o Mtodo de Newton para polinmios fornece: P(x) = 5x4 14.8x3 + 22.2x2 21.6x + 10.8 ((((x 3.7)x + 7.4)x 10.8)x + 10.8)x 6.8 a5 = 1 a4 = 3.7 a3 = 7.4 a2 = 10.8 a1 = 10.8 a0 = 6.8 b5 = 1 b4 = 3.7 + 1(1.5) = 2.2 b3 = 7.4 2.2(1.5) = 4.1 b2 = -10.8 + 4.1(1.5) = 4.65 b1 = 10.8 4.65(1.5) = 3.825 b0 = -6.8 + 3.825(1.5) = 1.0625 P(1.5) = 1.0625 x1 = x0 e P'(1.5) = 3.7125 c5 = 1 c4 = -2.2 + 1(1.5) = 0.7 c3 = 4.1 0.7(1.5) = 3.05 c2 = -4.65 + 3.05(1.5) = 0.075 c1 = 3.825 0.075(1.5) = 3.7125

P(1.5) (-1,0625) = 1.5 = 1.5 (0.2862) = 1.7862 P' (1.5) (3.7125)

| x1 x0 | = | 1.7862 1.5 | = 0.2862 > e b5 = 1 b4 = 3.7 + 1(1.7862) = 1.9138 b3 = 7.4 1.9138(1.7862) = 3.98158 b2 = 10.8 + 3.98158(1.7862) = 3.68812 b1 = 10.8 3.68812(1.7862) = 4.21228 b0 = 6.8 + 4.21228(1.7862) = 0.72398 P(1.7862) = 0.72398 x2 = x1 e c5 = 1 c4 = 1.9138 + 1(1.7862) = 0.1276 c3 = 3.98158 0.1276(1.7862) = 3.75366 c2 = 3.68812 + 3.75366(1.7862) = 3.01667 c1 = 4.21228 + 3.01667(1.7862) = 9.60065

P'(1.7862) = 9.60065

P(1.7862) (0.72398) = 1.7862 = 1.7862 (0.07541) = 1.71079 P' (1.7862) (9.60065)

| x2 x1 | = | 1.71079 1.7862 | = 0.07541 > e b5 = 1 b4 = 3.7 + 1(1.71079) = 1.98921 b3 = 7.4 1.98921(1.71079) = 3.99688 b2 = 10.8 + 3.99688(1.71079) = 3.96218 b1 = 10.8 3.96218(1.71079) = 4.02154 b0 = 6.8 + 4.02154(1.71079) = 0.08001 c5 = 1 c4 = 1.98921 + 1(1.71079) = 0.27842 c3 = 3.99688 0.27842(1.71079) = 3.52056 c2 = 3.96218 + 3.52056(1.71079) = 2.06077 c1 = 4.02154 + 2.06077(1.71079) = 7.54707

40

P(1.71079) = 0.08001 x3 = x2

P'(1.71079) = 7.54707

P(1.71079) (0.08001) = 1.71079 = 1.71079 (0.01060) = 1.70019 P' (1.71079) (7.54707)

| x3 x2 | = | 1.70019 1.71079 | = 0.0106 < e A raiz procurada : 1.70019 Exerccio 1: Calcular a raiz positiva do polinmio P(x) = 2x3 2x2 + 3x 1, com erro <= 10-4, pelo mtodo de Newton para polinmios. P'(x) = 6x2 4x + 3 A raiz procurada : 0.39661

41

5 Sistemas Lineares
5.1 Introduo Sistemas Lineares so sistemas de equaes com m equaes e n incgnitas formados por equaes lineares. Um sistema linear com m equaes e n incgnitas escrito usualmente na forma:

a x + a x +L+ a x = b 12 2 n 1 1n 11 1 a21 x1 + a22 x 2 + L + a x n = b2 2n ................................................ am1 x1 + am2 x 2 + L + a mn x n = bm


onde aij : coeficientes xj : incgnitas bi : constantes 1 i m, 1 j n j = 1, 2, ..., n i = 1, 2, ..., m

A resoluo de um sistema linear consiste em calcular os valores de xj, j = 1, 2, ..., n, caso eles existam, que satisfaam as m equaes simultaneamente. Usando notao matricial, o sistema linear pode ser representado por AX = B, onde
a11 a12 L a1n b1 a21 a 22 L a 2 n b2 M= ................................. a m1 a m2 L a mn bn

chamada matriz completa ou matriz aumentada do sistema.


a11 a12 L a1n a 21 a22 L a2 n A= a matriz dos coeficientes ............................ a m1 a m2 L a mn x1 X = x 2 o vetor das incgnitas, e M x n b1 B = b2 o vetor constante (termos independentes). M bm
5.1.1 Classificao Quanto ao Nmero de Solues

Um sistema linear pode ser classificado quanto ao nmero de solues em:

42

determinado (o sistema linear tem soluo nica) Compatvel indeterminado (o sistema linear admite infinitas solues)

Incompatvel (o sistema linear no admite soluo). Quando todos os termos independentes forem nulos, isto , se bi = 0, i = 0, 1, ..., m, o sistema dito homogneo. Todo sistema homogneo compatvel, pois admitir pelo menos a soluo trivial (xj = 0, j = 0, 1, 2, ..., n). 5.2 Mtodos Diretos (Algoritmos Diretos) r Um mtodo dito direto quando a soluo exata x do sistema linear obtida realizando-se um nmero finito de operaes aritmticas. So exemplos conhecidos a Regra de Cramer, o Mtodo da Eliminao de Gauss (ou triangulao) e o Mtodo de Jordan.
5.2.1 Regra de Cramer

Seja um sistema linear com nmero de equaes igual ao nmero de incgnitas (um sistema n x n), sendo D o determinante da matriz A, e Dx1, Dx2, Dx3, ..., Dxn os determinantes das matrizes obtidas trocando em M, respectivamente, a coluna dos coeficientes de x1, x2, x3, ..., xn pela coluna dos termos independentes, temos que: O sistema S ser compatvel e ter soluo nica se, e somente se, D 0. Neste caso a nica soluo de S dada por: x1 = D x1 , D x2 = D x 2 , D x3 = Dx 3 , D ... , xn = Dxn D

A aplicao da Regra de Cramer exige o clculo de n + 1 determinantes ( det A e det Ai, 1 i n); para n = 20 o nmero total de operaes efetuadas ser 21 * 20! * 19 multiplicaes mais um nmero semelhante de adies. Assim, um computador que efetue cerca de 100 milhes de multiplicaes por segundo levaria 3 x 105 anos para efetuar as operaes necessrias. Com isso, a regra de Cramer invivel em funo do tempo de computao para sistemas muito grandes.
5.2.1.1 Exemplos

Exemplo 1: Resolva o sistema abaixo pela Regra de Cramer:

x1 + x 2 + x 3 = 1 2 x1 - x 2 + x 3 = 0 x + 2x - x = 0 2 3 1
Calculando os determinantes D, Dx1, Dx2 e Dx3 temos:

1 1

D = 2 -1 1 = 7 1 2 -1
-1 Ento, x1 = D x1 = , D 7 1 3 5 x :- , , T 7 7 7

Dx1 = 0 - 1 1 = -1 0 2 -1
3 x2 = D x 2 = , D 7

Dx2 = 2 0 1 = 3 1 0 -1 e

Dx3 = 2 - 1 0 = 5 1 2 0

5 x3 = Dx 3 = e a soluo do sistema D 7

43

Exerccio 1: Resolva o sistema abaixo pela Regra de Cramer:


2 x 1 + x 2 - x 3 = 0 x1 + 2 x 2 + x 3 = 3 3x1 - x 2 - x 3 = -2

A soluo deste sistema x : ( 0, 1, 1)T


5.2.2 Mtodo da Eliminao de Gauss

O mtodo da eliminao de Gauss consiste em transformar o sistema linear original num outro sistema linear equivalente com matriz dos coeficientes triangular superior, pois estes so de resoluo imediata. Dizemos que dois sistemas lineares so equivalentes quando possuem a mesma soluo. O determinante de sistemas lineares equivalentes so iguais. Com (n - 1) passos o sistema linear AX = B transformado num sistema triangular equivalente: UX = C, o qual se resolve facilmente por substituies. Vamos calcular a soluo de AX = B em trs etapas: 1 etapa: Matriz Completa Consiste em escrever a matriz completa ou aumentada do sistema linear original. 2 etapa: Triangulao Consiste em transformar a matriz A numa matriz triangular superior, mediante uma seqncia de operaes elementares nas linhas da matriz. 3 etapa: Retro-substituio Consiste no clculo dos componentes x1, x2, ..., xn, soluo de AX = B, a partir da soluo do ltimo componente (xn), e ento substituirmos regressivamente nas equaes anteriores. Teorema: Seja AX = B um sistema linear. Aplicando sobre as equaes deste sistema uma seqncia de operaes elementares escolhidas entre: i) Trocar a ordem de duas equaes do sistema; ii) Multiplicar uma equao do sistema por uma constante no nula; iii) Adicionar um mltiplo de uma equao a uma outra equao; obtemos um novo sistema UX = C e os sistemas AX = B e UX = C so equivalentes.
5.2.2.1 Resoluo de Sistemas Triangulares

Seja o sistema linear AX = B, onde A: matriz n x n, triangular superior, com elementos da diagonal diferentes de zero. Escrevendo as equaes deste sistema, temos:
a x + a x + a x + L + 12 2 13 3 11 1 a22 x2 + a23 x3 + L + a33 x3 + L + O

a x =b a x =b a x =b
1n n 2n n 3n n

2 3

M ann x n = bn

Da ltima equao deste sistema temos:

44

xn = xn-1 pode ento ser obtido da penltima equao: xn-1 =

bn a nn

bn-1 - a n-1,n x n a n-1,n-1

e assim sucessivamente obtm-se xn-2, ..., x2, e finalmente x1: b - a x - a x - L - a1n x n x1 = 1 12 2 13 3 a11
5.2.2.2 Estratgias de Pivoteamento

O algoritmo para o mtodo de eliminao de Gauss requer o clculo dos multiplicadores: mik = - aik i = k + 1, ..., n e k = 1, 2, 3, ..., n-1

kk

a cada etapa k do processo. Sendo o coeficiente akk chamado de piv. O que acontece se o piv for nulo? E se o piv estiver prximo de zero? Estes dois casos merecem ateno especial pois impossvel trabalhar com um piv nulo. E trabalhar com um piv prximo de zero pode resultar em resultados totalmente imprecisos. Isto porque em qualquer calculadora ou computador os clculos so efetuados com preciso finita, e pivs prximos de zero so origem a multiplicadores bem maiores que a unidade que, por sua vez, origina uma ampliao dos erros de arredondamento. Para se contornar estes problemas deve-se adotar uma estratgia de pivoteamento, ou seja, adotar um processo de escolha da linha e/ou coluna pivotal. Esta estratgia consiste em: i) no inicio da etapa k da fase de escalonamento, escolher para piv o elemento de maior mdulo entre os coeficientes: aik, i = k, k + 1, ..., n; ii) trocar as linhas k e i se for necessrio.
5.2.2.3 Classificao do Sistema Triangular

Seja U um sistema triangular superior escalonado de m equaes e n incgnitas, teremos as seguintes possibilidades: i) m = n sistema compatvel e determinado; ii) m < n sistema compatvel e indeterminado. Se durante o escalonamento surgir equaes do tipo: 0x1 + 0x2 + ... + 0xn = bm, ento: i) Se bm = 0, ento eliminaremos a equao e continuamos o escalonamento; ii) Se bm 0, ento conclui-se que o sistema incompatvel.
5.2.2.4 Exemplos

Exemplo 1: Resolver o sistema abaixo pelo mtodo de Gauss.

x1 + 2 x 2 + x3 = 3 2 x1 + x 2 - x3 = 0 3x1 - x 2 - x3 = -2

45

1 etapa: Matriz completa:

3 1 2 1 2 1 - 1 0 M= 3 - 1 - 1 - 2
2 etapa: Triangulao: Iremos se referir as equaes como: E1 (primeira equao), E2 (segunda equao) e assim por diante. O componentes x indica o piv.
1 E 3 E 3 - 3E1 0 E 2 E 2 - 2 E1 0 3 -3 -3 -6 - 7 - 4 - 11 2 1

1 7 E3 = E3 - E2 0 3 0

2 -3 0

3 - 3 - 6 3 3 1

3 etapa: Retro-substituio: Da terceira linha temos: 3x3 = 3 x3 = 1 Substituindo x3 na segunda linha temos: -3x2 - 3(1) = -6 x2 = 1 Substituindo x3 e x2 na primeira linha temos: 1x1 + 2(1) + 1(1) = 3 x1 = 0 A soluo deste sistema x : ( 0, 1, 1)T Exerccio 1: Resolver o sistema abaixo pelo mtodo de Gauss:
0,25x1 + 0,5x 2 + x 3 = 0,25 0,09 x1 + 0,3x 2 + x 3 = 0,49 0,01x1 + 0,1x 2 + x 3 = 0,81

A soluo deste sistema x : ( 1, -2, 1)T Exerccio 2: Resolver o sistema abaixo pelo mtodo de Gauss:

0 x1 + 1x 2 - 2 x3 = 0 1x1 - 3 x 2 - 1x3 = 2 - 1x + 4 x - 1x = -2 1 2 3
5.2.3 Mtodo de Jordan

Consiste em aplicar operaes elementares sobre as equaes do sistema linear dado at que se obtenha um sistema diagonal equivalente.
5.2.4 Exemplos

Exemplo 1: Resolver o sistema linear pelo mtodo de Jordan:

46

x1 + x 2 + 2 x 3 = 4 2 x 1 - x 2 - x 3 = 0 x 1 - x 2 - x 3 = -1

1 etapa: Matriz completa:


1 1 2 4 M = 2 -1 -1 0 1 -1 -1 -1

2 etapa: Diagonalizao:

1 E 2 E 2 - 2 E1 0 E 3 E 3 - E1 0

4 -3 -5 -8 -2 -3 -5 1 2

1 2 E3 = E3 - E2 0 3 0

1 -3 0

2 -5 1 3

4 -8 1 3

4 1 0 1 1 3 3 E1 + E 2 E1 0 -3 0 -3 3 0 0 1 1 E 2 E 2 + 15E 3 3 3

E1 E1 - E 3 1 0 0 1 1 E 2 - E 0 1 0 1 3 2 0 0 1 1 E 31 3E 3

3 etapa: Clculo da soluo do sistema: Da primeira linha temos: x1 = 1 Na segunda linha temos: x2 = 1 Na terceira linha temos: x3 = 1 A soluo deste sistema x : ( 1, 1, 1)T 5.3 Fatorao LU-Crout-Cholesky-Doolitle A base do mtodo chamado Fatorao ou Decomposio LU, est apoiada na simplicidade de resoluo de sistemas triangulares. Seja o sistema linear Ax = b O processo de fatorao para resoluo deste sistema consiste em decompor a matriz A dos coeficientes em um produto de dois ou mais fatores e, em seguida, resolver uma sequncia de sistemas lineares que nos conduzir a soluo do sistema linear original. Tal processo geral de eliminao conhecida como mtodo de Crout (ou Cholesky para o caso particular de matrizes simtricas positivas definidas). A matriz A pode ser decomposta no produto A=LU, onde L uma matriz triangular inferior e U uma matriz triangular superior, quando a matriz for no singular (Det (A) 0). Alm disso, se atribuirmos valores fixos aos elementos da diagonal, seja de L (lii = 1 no Mtodo de Doolitle) ou em U (uii = 1 no Mtodo de Crout), esta decomposio ser nica. Suponhamos que seja possvel fatorar a matriz A dos coeficientes num produto de uma matriz triangular inferior com diagonal unitria L e uma matriz triangular superior U, isto :

47

A = LU Nestas condies, o sistema Ax = b pode ser reescrito na forma LUx = b, o que permite o desmembramento em dois sistemas triangulares Ly = b e Ux = y

Resolvendo o primeiro sistema, calculamos y que, usado no segundo sistema, fornecer o vetor procurado x. Dessa maneira, conhecidas L e U, o sistema ser resolvido com 2n2 operaes (dois sistemas 2n 3 triangulares), o que representa um ganho substancial comparado com as operaes do mtodo da 3 eliminao de Gauss.
5.3.1 Clculo dos Fatores L e U

Os fatores L e U podem ser obtidos atravs de frmulas para os elementos lij e uij, ou ento, podem ser construdos usando a idia bsica do mtodo da Eliminao de Gauss. Veremos a seguir como obter L e U atravs do processo de Gauss. Dada uma matriz quadrada A de ordem n, seja Ak a matriz constituda das primeiras k linhas e colunas de A. Suponha que det(Ak) 0 para k = 1, 2, ..., (n 1). Ento, existe uma nica matriz triangular inferior L = (mij), com mii = 1, 1 i n, e uma nica matriz truangular superior U = (uij) tais que LU = A. Ainda mais, det(A) = u11u22...unn. Para a soluo de Ax = b, pode-se decompor A segundo o Mtodo de Crout, da seguinte maneira:

tal que A = L.U. Ento, o sistema torna-se L.U.x = b. Fazendo U.x = y, resolve-se primeiro L.y = b e depois U.x =y. Para um sistema 3x3 podemos escrever:

a11 a 21 a31

a12 a 22 a32

a13 M b1 l11 a 23 M b2 = l 21 a33 M b3 l 31

0 l 22 l 32

0 1 u12 0 0 1 l 33 0 0

u13 M y1 u 23 M y 2 1 M y3

Esta multiplicao de matrizes pode ser usada para definir os valores de l ij , u ij e y i em termos dos

valores a ij e

l11 = a 11

48

l 21 = a 21 l 31 = a 31

u12 = a12 / l11 u13 = a 13 / l11

y1 = b1 / l11

l 22 = a 22 - l 21u12

l 32 = a 32 - l 31 u 12

l 33 = a 33 - l 31u13 - l 32 u 23

y 2 = (b2 - l 21c1 ) / l 22
y3 = (b3 - l 31c1 - l 32 c 2 ) / l 33

Note que o clculo de y pode ser feito da mesma forma que o clculo de u. A sequncia de operaes : 1). Calcular a primeira coluna de L, calcular a primeira linha de U e y1; 2). Calcular a segunda coluna de L, calcular a segunda linha de U e y2; e assim sucessivamente. Os valores de x so obtidos por substituio sucessiva a partir de y (U.x = y)
x3 = y 3 x 2 = y 2 - u 23 x3 x1 = y1 - u13 x3 - u12 x 2

Note que, o vetor c tambm pode ser obtido do sistema parcial L.y = b por substituies sucessivas. Sugere-se usar o processo "tipo escada" para armazenar L e U na mesma rea de memria, o que torna o processo mais eficiente,

a11 a 21 a31

a12 a 22 a32

a13 M b1 l11 u12 a 23 M b2 = l 21 l 22 a33 M b3 l 31 l 32

u13 M y1 u 23 M y 2 l33 M y 3

De uma forma geral, para sistemas de ordem n: - Operaes com o primeiro piv: k = 1

l i1 = a i1
u1j = a1j / l11

i = 1,2,3,...,n j = 2,3,...,n+1

- Operaes com piv genrico: k = 2,3,...,n

k (i = k,k+1,...,n)

49

j > k (j = k+1,...,n+1) Exemplo 1: Resolver o sistema linear a seguir usando a fatorao LU:

x1 + 2 x 2 - x3 = 2 2 x1 + 3 x 2 - 2 x3 = 3 x1 - 2 x 2 + x3 = 0 1 2 - 1 Seja A = 2 3 - 2 1 - 2 1
Calculando os mij e uij, usando o processo de Gauss sem estratgia de pivoteamento parcial. Para triangular A, temos: Etapa 1:
(0 Piv = a11 ) = 1 (0 a 21) 2 = =2 (0) 1 a11 (0 a 31 ) 1 = =1 (0) 1 a11

Multiplicadores: Ento:

m21 =

m31 =
- 1 -1 0 -4 2 2

E1 E1 E 2 E 2 - 2 E1 E 3 E 3 - E1

(1)

1 = 0 0

(1 (1 Uma vez que os elementos a 21) e a 31) so nulos, podemos guardar os multiplicadores nestas posies, ento:

1 2 - 1 A(1) = 2 - 1 0 1 - 4 2
Etapa 2:
(1 Piv = a 22) = 1 (1 a 32) -4 m32 = (1) = =4 -1 a 22

Multiplicadores: Ento:

50

E1 E1 E2 E2 E 3 E 3 - 4E 2
1 2 - 1 = 2 - 1 0 1 4 2

(2)

1 = 0 0

2 -1 0

- 1 0 2

(2)

Os fatores L e U so:

1 0 0 L = 2 1 0 1 4 1

1 2 - 1 U = 0 - 1 0 0 0 2

Para resolvermos o sistema Ax = (2, 3, 0)T, resolvemos Ly = b

1 0 0 y1 2 2 1 0 . y = 3 2 1 4 1 y 3 0
y = (2, 1, 2)T

ou

y1 = 2 2 y1 + y 2 = 3 y1 + 4 y 2 + y 3 = 0

y1 = 2; y2 = 1; y3 = 2

e, com estes valores, calculamos x atravs de Ux = y

1 2 - 1 x1 2 0 - 1 0 . x = - 1 2 0 0 2 x 3 2

ou

x1 + 2 x 2 - x3 = 2 - x 2 = -1 2 x 3 = 2

x3 = 1; x2 = 1; x1 = 1

A soluo do sistema x = (1, 1, 1)T

Exerccio 1: Resolver o sistema linear a seguir usando a fatorao LU:

3x1 + 2 x 2 + 4 x3 = 1 x1 + x 2 + 2 x3 = 2 4 x1 + 3 x 2 + 2 x3 = 3
A soluo do sistema x = (3, 5, 0)T Exerccio 2: Resolver o sistema linear a seguir usando a fatorao LU:
x1 + x 2 + 2 x 3 = 4 2 x 1 - x 2 - x 3 = 0 x 1 - x 2 - x 3 = -1

A soluo do sistema x = (1, 1, 1)T

51

5.4
5.4.1

Mtodos Iterativos (Algoritmos Iterativos)


Mtodo de Gauss-Jacobi ( Algbrico )

Seja o sistema abaixo:

a x + a x + ... + a x = b a x + a x +... + a x = b
11 1 12 2 1n n 21 1 22 2 2n n

1 2

...

a x +a x
n1 1 n2

+ ... + ann x n = bn

Pode-se afirmar que o mesmo convergente, se o sistema estiver na forma diagonalmente dominante, isto :

a a
...

11 22

a a

21 12

a + a a

31 32

+ ... + an1 + ... + an2 + ... + an -1n


ou

a a
...

11 22

a a

12 21

a +a
+

13 23

+ ... +

a + ... + a
+ ... +

1n 2n

nn

1n

2n

nn

n1

n2

nn-1

Ento, isola-se em cada uma das equaes ordenadamente, uma das incgnitas.

x x x
onde,

(1)

= =

a a a

(b1 - a12 x 2 - a13 x 3 -...- a1n x n )


(0) ( 0) ( 0)

11

(1) 2

1
22

(b2 - a21 x1 - a23 x 3 -...- a2 n x n )


( 0) ( 0) ( 0)

...
(1) n

1
nn

(bn - an1 x1 - a n2 x 2 -...- a nn-1 x n-1)


( 0) (0) (0)

x ,x

(0 ) 1

(0) 2

,..., x n so as atribuies inicial do mtodo.


( j) n

(0)

Condies de Parada: Se para todo


5.4.1.1 Exemplos

- xn

( j -1)

erro , ento

( j) n

so as solues do sistema.

Exemplo 1: Resolver por Gauss-Jacobi, com 4 decimais com arredondamento e erro menor ou igual a 0,01 o sistema abaixo: x + 8y z = 16 6x y + z = 7 x + y+ 5z = 18 a) Verificao da convergncia: 6x y + z = 7 x + 8y z = 16 x + y + 5z = 18 b) Isolamento das incgnitas: 1 x= (7+yz) 6

52

1 ( 16 x + z ) 8 1 z = ( 18 x y ) 5

y=

c) Atribuio inicial: x(0) = 0 y(0)=0 d) Iteraes:

z(0)=0

1 1 ( 7 + y(0) z(0) ) = ( 7 + 0 0 ) = 1,1667 6 6 1 1 y(1) = ( 16 x(0) + z(0) ) = ( 16 - 0 + 0 ) = 2 8 8 1 1 z(1) = ( 18 x(0) y(0) ) = ( 18 0 0 ) = 3,6 5 5

x(1) =

1 ( 7 + 2 3,6 ) = 0,9 6 1 y(2) = ( 16 1,1667 + 3,6 ) = 2,3042 8 1 z(2) = ( 18 1,1667 2 ) = 2,9667 5

x(2) =

1 ( 7 + 2,3042 2,9667 ) = 1,0562 6 1 y(3) = ( 16 0,9 + 2,9667 ) = 2,2583 8 1 z(3) = ( 18 0,9 2,3042 ) = 2,9592 5

x(3) =

1 ( 7 + 2,2583 2,9592 ) = 1,0498 6 1 y(4) = ( 16 1,0562 + 2,9592 ) = 2,2379 8 1 z(4) = ( 18 1,0562 2,2583 ) = 2,9371 5

x(4) =

1 ( 7 + 2,2379 2,9371 ) = 1,0501 6 1 y(5) = ( 16 - 1,0498 + 2,9371 ) = 2,2359 8 1 z(5) = ( 18 1,0498 2,2379 ) = 2,9425 5

x(5) =

| x(5) - x(4) | = 0,0003 < erro | y(5) - y(4) | = 0,002 < erro | z(5) - z(4) | = 0,0054 < erro

A soluo deste sistema : (1,0501; 2,2359; 2,9425)T Exerccio 1: Dado o sistema, pede-se sua soluo por Gauss-Jacobi, com 4 decimais com arredondamento e erro menor ou igual a 0,02. 10x + y + z = 12

53

x + 5y+ 9z = 15 2x +8y 4z = 6 A soluo deste sistema : (0,9975; 1,0051; 0,9916)T


5.4.2 Mtodo de Gauss-Jacobi ( Matricial )

Baseado no algoritmo anterior, o mtodo consiste na transformao do algoritmo em um sistema de matriz. Portanto, no algoritmo: n 1 (k ) ( k -1) = ( bi - aij x j ) xi

ii

j =1 j i

a mesma situao pode ser escrita na forma:

a x a x
11 22

(k ) 1 (k ) 2

= ( b1 - a12 x 2

( k -1) ( k -1)

- a13 x 3

( k -1)

- ... - a1n x n

( k -1)

) )

= ( b2 - a21 x1 = ( bn - an1 x1

- a23 x 3

( k -1)

- ... - a2 n x n

( k -1)

...

a x
nn

(k ) n

( k -1)

- an 2 x 2

( k -1)

- ... - ann -1 x n -1 )

( k -1)

Sendo A a matriz dos coeficientes, onde A = D + I + S, no qual D a matriz diagonal, I a matriz inferior e S a matriz superior, a expresso anterior poder ser reescrita na forma:

DX
-1

(k )

B - (S+ I ) X
-1 -1

( k -1)

Multiplicando ambos os termos pela matriz inversa da diagonal,

D D X = D B - D (S + I ) X \ X = - D (S + I ) X +D B
(k ) (k ) -1 ( k -1) -1

( k -1)

X
onde

(k )

J X
-1

( k -1)

+E

J = - D (S+ I ) E =D B
-1

5.4.2.1

Exemplos

Exemplo 1: Seja o sistema abaixo: x + y 5z = -6 4x y + z = 19 x + 3y z = 14 obter a sua soluo por Gauss-Jacobi Matricial com 3 decimais com arredondamento e erro menor ou igual a 0,05. Admitir soluo inicial nula. a) Verificao da convergncia: 4x y + z = 19 x + 3y z = 14 x + y 5z = -6

54

b) Obteno do Algoritmo: 0 0 0 0 - 1 1 1 0 0 S = 0 0 - 1 I = 0 0 0 1 1 0 , ,
1 4 -1 D = 0 0 0 1 3 0 0 0 -1 5

4 0 0 = 0 3 0 0 0 - 5

B
,

19 = 14 - 6

Ento, - 1 0 4 J = 0 - 13 0 0
1 4 =0 0 0 1 3 0

0 0 - 1 1 0 0 1 0 - 1 = - 1 3 1 1 1 0 1 5 5 0 19 19 4 0 14 = 14 3 - 1 - 6 6 5 5 -1 19 4 4 1 ( k -1) + 14 3 X 6 3 0 5

4 0 1 5

-1 4 1 3 0

Ento,
0 (k ) X = - 1 3 1 5 1 4 0 1 5

c) Atribuio inicial: 0 (0) X = 0 0 d) Iteraes: 4,750 5,617 4,850 4,951 5,031 (1) 4,667 \ ( 2) = 3,483 \ (3) = 3,822 \ ( 4 ) = 4,057 \ (5) = 3,995 X = X X X X 1,200 3,083 3,020 2,934 3,002 4,998 0,033 (6) ( 6) ( 5) 3,991 \X = X - X = 0,004 < erro 3,005 0,003 A soluo deste sistema : (4,998; 3,991; 3,005)T Exerccio 1: Dado o sistema abaixo: 5x y = 13 2x + 4y = 14

55

obter a soluo por Gaus-Jacobi Matricial com 4 decimais com arredondamento e erro menor ou igual a 0,005. Admitir soluo inicial nula. A soluo deste sistema : (3,0004; 1,9985)T
5.4.3 Mtodo de Gauss-Seidel ( Algbrico )

Derivado do mtodo de Gauss-Jacobi, este mtodo utiliza a cada iterao os valores j prontos na prpria iterao, para tentar assegurar convergncia mais rpida, ou seja,

x x x
...

(k )

= = =

a a a a

(b1 - a12 x2

( k -1)

- a13 x3

( k -1)

- a14 x4

( k -1)

- ... - a1n x n

( k -1)

11

(k ) 2

1
22

(b2 - a21 x1 - a 23 x3
(k ) (k )

( k -1)

- a 24 x4

( k -1)

- ... - a2 n x n

( k -1)

(k ) 3

1
33

(b3 - a31 x1 - a32 x2 - a34 x4


(k )

( k -1)

- ... - a3n x n

( k -1)

(k ) n

1
nn

(bn - a n1 x1 - a n 2 x2 - a n3 x3 - ... - a nn-1 x n-1)


(k ) (k ) (k ) (k )

Portanto, o algoritmo do mtodo pode ser expresso por:

x
5.4.3.1 Exemplos

(k) i

( bi - aij x j
j =1 j i

ii

(k ) i > j ) ( k - 1) i < j

Exemplo 1: Resolver por Gauss-Seidel, com 4 decimais com arredondamento e erro menor ou igual a 0,005 o sistema abaixo. x + 8y z = 16 6x y + z = 7 x + y+ 5z = 18 a) Verificao da convergncia: 6x y + z = 7 x + 8y z = 16 x + y + 5z = 18 b) Isolamento das incgnitas: 1 x= (7+yz) 6 1 y = ( 16 x + z ) 8 1 z = ( 18 x y ) 5 c) Atribuio inicial: x(0) = 0 y(0)=0 d) Iteraes: z(0)=0

56

1 ( 7 + 0 0 ) = 1,1667 6 1 y(1) = ( 16 1,1667 + 0 ) = 1,8542 8 1 z(1) = ( 18 1,1667 1,8542 ) = 2,9958 5

x(1) =

1 ( 7 + 1,8542 2,9958 ) = 0,9764 6 1 y(2) = ( 16 - 0,9764 + 2,9958 ) = 2,2524 8 1 z(2) = ( 18 0,9764 2,2524 ) =2,9542 5

x(2) =

1 ( 7 + 2,2524 2,9542 ) = 1,0497 6 1 y(3) = ( 16 - 1,0497 + 2,9542 ) = 2,2381 8 1 z(3) = ( 18 1,0497 2,2381 ) = 2,9424 5

x(3) =

1 ( 7 + 2,2381 2,9424 ) = 1,0493 6 1 y(4) = ( 16 - 1,0493 + 2,9424 ) = 2,2366 8 1 z(4) = ( 18 1,0493 2,2366 ) = 2,9428 5

x(4) =

| x(4) - x(3) | = 0,0004 < erro | y(4) - y(3) | = 0,0015 < erro | z(4) - z(3) | = 0,0004 < erro

A soluo deste sistema : (1,0493; 2,2366; 2,9428)T Exerccio 1: Resolver por Gauss-Seidel, com 4 decimais com arredondamento e erro menor ou igual a 0,01 o sistema abaixo. 7x + y z = 13 x + 8y + z = 30 2x y + 5z = 21 A soluo deste sistema : (2,0001; 3,0003; 4,0000)T
5.4.4 Mtodo de Gauss-Seidel ( Matricial )

Seja o sistema abaixo,

a x a x
11 22

(k ) 1 (k ) 2

= b1 - a12 x 2

( k -1) (k )

- a13 x 3

( k -1)

- ... - a1n x n

( k -1)

= b2 - a21 x1 - a23 x 3
(k )

( k -1)

- ... - a2n x n

( k -1)

...

a x
nn

(k ) n

= bn - an1 x1 - an2 x 2 - ... - ann -1 x n -1


(k ) (k )

que pode ser representado na forma matricial:

57

DX

(k )

B -I X

(k )

-S

( k -1)

\(D + I ) X

(k )

B -S X

( k -1)

Multiplicando ambos os membros pela inversa de ( D + I ), temos:


( D + I ) -1 ( D + I ) X
(k )

= ( D + I ) -1 B - ( D + I ) -1 S
-1 ( k - 1)

( k -1)

(k )

= -( D + I ) S X
X
(k )

+ (D + I ) B

-1

=G

( k -1)

+F

onde,

G F
5.4.4.1 Exemplos

= - ( D + I ) -1 S = ( D + I ) -1 B

Exemplo 1: Dado o sistema abaixo, x + 6y = -21 5x y = 19


obter suas solues por Gauss-Seidel Matricial com 3 decimais com arredondamento e erro inferior ou igual a 0,005. Admitir nula a soluo inicial.

a) Verificao da convergncia: 5x y = 19 x + 6y = -21 b) Obteno do Algoritmo:

5 0 = 0 6

0 0 = 1 0

0 - 1 = 0 0

19 = - 21

Ento,

1 - 1 0 0 - 1 0 5 5 = = 130 - 1 6 0 0 0 - 130 1 = 5 - 1 30 0 19 = 1 - 21 6 19 5 - 62 15

Logo,

(k )

1 19 0 5 ( k -1) + 5 = -1 X - 62 0 30 15

c) Atribuio inicial: 0 (0) = X 0

58

d) Iteraes:

X
X

(1)

3,800 2,973 3,001 3,000 ( 2) ( 3) ( 4) = \X = \X = \X = - 4,133 - 3,996 - 4,000 - 4,000


-

( 4)

( 3)

0,001 = < erro 0,000

A soluo deste sistema : (3; -4)T Exerccio 1: Dado o sistema abaixo: 5x y = 13 2x + 4y = 14 obter a soluo por Gaus-Seidel Matricial com 4 decimais com arredondamento e erro menor ou igual a 0,005. Admitir soluo inicial nula. A soluo aproximada deste sistema : (3,0004; 1,9998)T

5.4.5

Segunda Abordagem da Frmula Matricial do Mtodo Gauss-Seidel

Decompe-se a matriz de coeficientes A em:


A = L + D +U

Onde: L Matriz Triangular Inferior D Matriz Diagonal U Matriz Triangular Superior

0 a 21 L = a31 M a n1

0 0 L 0 0 L a32 0 L M M O a n 2 L a nn-1

0 0 0 M 0

d11 0 D= 0 M 0

0 d 22 0 M 0

0 0 d 33 M L

L 0 0 a12 0 0 L 0 L 0 U = 0 0 O M M M 0 0 0 d nn

a13 a 23 0 M L

L a1n L a 2n L M O a n -1n 0 0

59

(L + D + U )x = b Lx + Dx + U x = b D x = b - (L + U ) x x = D -1 b - D -1 L x - D -1U x x
( k +1)

= D -1 b - D -1 L x

( k +1)

- D -1U x

(k )

5.4.5.1

Interpretao Geomtrica do Caso

2 2

Considere o Sistema Linear:


x1 + x 2 = 3 x1 - 3 x 2 = -3

O esquema iterativo utilizando o Mtodo de Gauss-Seidel dado por:


1 ( x1( k +1) = (3 - x 2k ) ) 1 1 ( x 2k +1) = (3 + 3 x1( k +1) ) 3

Para k=0 e x

(0)

= [0 0]T :

x1(1) = 3
( x 21) = 2
(1)

Para k=1 e x

= [3 2]T :

x1( 2) = 1
( x 22) = 4

3
( 2)

Para k=2 e x
x1(3) = 5 x
( 3) 2

= [1 4 ]T : 3

3 14 = 9 3 ]T . 2

A soluo exata dada por: x = [ 3

Esse processo iterativo at convergncia pode ser interpretado geomtricamente num grafico com a componente x1 na abscissa e a componente x 2 na ordenada.

8 x2 7 6 5 4 x1+x2=3

60

Observao 1: Verifica-se pelo grfico acima que a seqncia x 3 ]T . para a soluo exata x = [ 3 2 2

(o )

, x , x

(1)

( 2)

, ......, x

(k )

est convergindo

Observao 2: A sequncia gerado pelo Mtodo de Gauss-Seidel depende fortemente da disposio das equaes. Esta observao pode ser melhor entendida modificando a ordem das equaes do exemplo anterior. Considere o mesmo Sistema Linear anterior, porm modificando a ordem das equaes:
x1 - 3 x 2 = -3 x1 + x 2 = 3

O esquema iterativo utilizando o Mtodo de Gauss-Seidel dado por:


( x1( k +1) = (-3 + 3x 2k ) ) ( x 2k +1) = (3 - x1( k +1) )

Para k=0 e x

(0)

= [0 0]T :

x1(1) = -3
( x 21) = -6
(1)

Para k=1 e x

= [-3 - 6]T :

x1(1) = 15
( x 21) = -12

8 7 (-3,6) 6 5 4 3 x1+x2=3

x2 ......(6,15)

x1-3x2= -3 2 1 0 -1 -2 -5 -4 (0,-3) x (0,0) x1

-3

-2

-1

61

5.4.5.2

Estudo da Convergncia do Mtodo de Gauss-Seidel

Existem dois critrios de suficincia para a convergncia do Mtodo de Gauss-Seidel. O critrio de linhas e o critrio de Sassenfeld. O critrio de linhas o mesmo da Mtodo de Gauss-Jacobi.

Critrio de Linhas Seja o sistema linear A x = b , com A dimenso n n e seja:


n a kj j =1 j k ak = a kk
k =1, n

Se a = max a k < 1 , ento o mtodo Gauss-Seidel gera uma seqncia x do sistema dado, independentemente da escolha da aproximao inicial x

{ } convergente para a soluo


(k ) (0)

A matriz que satisfizer o critrio de linhas chamada de diagonal dominante estrita.

5.4.5.3

Critrio de Sassenfeld

Seja o sistema linear A x = b , com A dimenso n n e seja: a + a13 + a14 + ....... + a1n b 1 = 12 a11 e para j = 2,3,.............n :

bj =
Define-se b = max b j .
j =1, n

a j1 b 1 + a j 2 b 2 + .............. + a jj -1 b j -1 + a jj +1 + ...... + . a j1 a jj

Se b < 1 , ento o Mtodo de Gauss-Seidel gera uma sequncia convergente para a soluo do sistema, qualquer que seja o vetor inicial. Alm disso, quanto menor for o valor de b mais rpida a convergncia. Exemplo: Verificar as condies de convergncia do Mtodo de Gauss-Seidel no sistema abaixo:

62

2 x1 + x 2 + 3 x3 = 3 - x 2 + x3 = 1 x1 + 3x3 = 3

a) Critrio de Linhas 1+ 3 a1 = = 2 > 1 no satisfaz. 2 b) Critrio de Sassenfeld 1+ 3 b1 = = 2 > 1 no satisfaz. 2 Como a convergncia do Mtodo de Gauss-Seidel fortemente dependente da posio das equaes, pode-se trocar a posio das equaes. Tentativa 1: Troca-se a primeira equao pela terceira equao.
x1 + 3x3 = 3 - x 2 + x3 = 1 2 x1 + x 2 + 3 x3 = 3

a) Critrio de Linhas 0+3 a1 = = 3 > 1 no satisfaz. 1 b) Critrio de Sassenfeld 0+3 b1 = = 3 > 1 no satisfaz. 1 Tentativa 2: Troca-se a primeira coluna pela terceira coluna na equao anterior.
3 x3 + 0 x 2 + x1 = 3 x3 - x 2 + 0 x1 = 1 3 x3 + x 2 + 2 x1 = 3

a) Critrio de Linhas 1 a 1 = = 0.33 < 1 satisfaz. 3


1 a 2 = = 1 no satisfaz. 1

b) Critrio de Sassenfeld 1 b 1 = = 0.33 < 1 satisfaz. 3


1 b 2 = 3 = 0.33 < 1 satisfaz. 1 1 1 1 3 + 1 3 = 4 < 1 satisfaz. b3 = 3 2 6

63

Com a ltima modificao o sistema passa a ser convergente para qualquer vetor inicial. Modificaes desse tipo so puramente acadmicas e so difceis de serem realizadas em sistemas reais. Principalmente pelas dimenses dos problemas, resultando num grande esforo computacional, e das incertezas quanto a sua eficincia. Exemplo : Verifique a convergncia do sistema abaixo pelo critrio de linhas e Sassenfeld.

2 x1 + x 2 = 3 x1 + x 2 = 4

Critrio de Linhas
1 2 No satisfaz a2 = 1

a1 =

Critrio de Sassenfeld
1 2 1

b1 =

1 2 =1 b2 = 1 2

Satisfaz

Exemplo : Verifique a convergncia do sistema abaixo pelo critrio de linhas e Sassenfeld.

x1 + 0,5 x 2 - 0,1x3 + 0,1x 4 = 0,2 0,2 x1 + x 2 - 0,2 x3 - 0,1x 4 = -2,6 - 0,1x1 - 0,2 x 2 + x3 + 0,2 x 4 = 1,0 0,1x1 + 0,3 x 2 + 0,2 x3 + x 4 = -2,5
5.4.6 Mtodo da Sobrerelaxao Sucessiva

xi( k +1) = xi( k ) + w( xi( k +1) - xi( k ) )

xi( k +1) =

1 (bi - aij x (jk +1) - aij x (jk ) ) a ii j <i j >i

64

1 < w < 2 - Utilizado para aumentar a velocidade de convergncia. 0 < w < 1 - Utilizado em sistemas com dificuldades de convergncia pelo Mtodo de gauss Seidel.

5.4.7

Condies Necessria e Suficiente para Convergncia do Mtodo de Gauss-Jacobi e Gauss-Seidel

Teorema Seja b n e A = ( M - N ) n no singular. Se M no-singular e o raio espectral de


M -1 N satisfaa r ( M -1 N ) < 1 , ento o processo iterativo definido por M x
( k +1)

= Nx

(k )

+ b converge para

x = A b para qualquer vetor x

-1

(0)

r ( M -1 N ) = max{l : l l ( M -1 N )}

Para o Mtodo de Gauss-Jacobi:


(L + D + U ) x = b Lx + Dx + U x = b D x = b - (L + U )x Dx
( k +1)

= b - (L + U ) x

(k )

M =D N = -( L + U )

Para o Mtodo de Gauss-Seildel:


(L + D + U ) x = b Lx + Dx + U x = b Lx + Dx = b -U x ( L + D) x N = -U
5.4.7.1 Comparao dos Mtodos de Soluo de Sistemas Lineares
( k +1)

= b -U x

(k )

M = ( L + D)

Ax = b

Mtodos Diretos: 1. 2. 3. 4. Processos finitos (convergncia para qualquer sistema no-singular); Apresentam problemas com erros de arredondamento; Utiliza-se tcnicas de pivoteamento para amenizar os problemas de arredondamento; O processo de triangularizao destri a esparsidade da matriz de coeficientes. Tcnicas de Esparsidade so utilizadas para amenizar o enchimento da matriz.

65

5. Para matrizes cheias a soluo requer n operaes sem considerar o pivoteamento. Mtodos Iterativos: 1. Provavelmente mais eficientes para sistemas de grande porte, principalmente com a utilizao de computao de alto desempenho (vetorial e paralela); 2. Tem convergncia assegurada apenas sob certas condies; 3. Conserva a esparsidade da matriz de coeficientes; 4. Os mtodos de G-J e G-s requerem 2n 2 operaes por iteraes; 5. Poucas vantagens adicionais so conseguidas em solues para vetores independentes adicionais com a matriz de coeficientes mantida constante, como no caso da fatorao LU; 6. Carregam menos erros de arredondamento no processo, tendo em vista que a convergncia uma vez assegurada independe da aproximao inicial. Somente os erros da ltima iterao afetam a soluo.

66

6 Interpolao
6.1 Introduo A interpolao outra das tcnicas bem antigas e bsicas do clculo numrico. Muitas funes so conhecidas apenas em um conjunto finito e discreto de pontos de um intervalo [a, b], como, por exemplo, a tabela abaixo que relaciona calor especfico da gua e temperatura: Xi x0 x1 x2 x3 x4 x5 x6 x7 20 25 30 35 40 45 50 55 Temperatura (C) Calor especfico 0.99907 0.99852 0.99826 0.99818 0.99828 0.99849 0.99878 0.99919 Tabela 1 - Calor especfico da gua. A partir desses dados suponhamos que se queira calcular: a) o calor especfico da gua a 32.5 C b) a temperatura para a qual o calor especfico 0.99837. A interpolao tem o objetivo de nos ajudar na resoluo deste tipo de problema, ou em casos em que possumos um conjunto de valores obtidos atravs de alguns experimentos. Interpolar uma funo f(x) consiste em aproximar essa funo por uma outra funo g(x), escolhida entre uma classe de funes definida a priori e que satisfaa algumas propriedades. A funo g(x) ento usada em substituio funo f(x). A necessidade de se efetuar esta substituio surge em vrias situaes, como por exemplo: a) quando so conhecidos somente os valores numricos da funo por um conjunto de pontos (no dispondo de sua forma analtica) e necessrio calcular o valor da funo em um ponto no tabelado (como o caso do exemplo anterior). b) quando a funo em estudo tem uma expresso tal que operaes como a diferenciao e a integrao so difceis (ou mesmo impossveis) de serem realizadas. Neste caso, podemos procurar uma outra funo que seja uma aproximao da funo dada e cujo manuseio seja bem mais simples. As funes que substituem as funes dadas podem ser de tipos variados, tais como: polinomiais, trigonomtricas, exponenciais e logartmicas. Ns iremos considerar apenas o estudo das funes polinomiais.
6.1.1 Conceito de Interpolao

Seja a funo y = f(x), dada pela tabela 1. Deseja-se determinar f ( x ) , sendo: a) x (x0, x7) b) x (x0, x7) e
x xi, i = 0, 1, 2, ..., 7

Para resolver (a) tem-se que fazer uma interpolao. E, sendo assim, determina-se o polinmio interpolador, que uma aproximao da funo tabelada. Por outro lado, para resolver (b), deve-se realizar uma extrapolao. Consideremos (n + 1) pontos distintos: x0, x1, x2, ..., xn, chamados ns da interpolao, e os valores de f(x) nesses pontos: f(x0), f(x1), f(x2), ..., f(xn). A forma de interpolao de f(x) que veremos a seguir consiste em se obter uma determinada

67

funo g(x) tal que: g(x0) = f(x0) g(x1) = f(x1) g(x2) = f(x2) M M g(xn) = f(xn) Graficamente temos:
y

g(x)
(x3, f(x3)) (x5, f(x5)) (x4, f(x4))

(x0, f(x0)) (x1, f(x1))

(x2, f(x2))

f(x)

x0

x1 x2

x3

x4

x5

Interpretao geomtrica para n = 5 6.2


6.2.1

Interpolao Linear
Obteno da Frmula

Dados dois pontos distintos de uma funo y = f(x) : (x0, y0) e (x1, y1), deseja-se calcular o valor de y para um determinado valor de x entre x0 e x1, usando a interpolao polinomial. O polinmio interpolador uma unidade menor que o nmero de pontos conhecidos. Assim sendo, o polinmio interpolador nesse caso ter grau 1, isto , P1(x) = a1x + a0 Para determin-lo, os coeficientes a0 e a1 devem ser calculados de forma que tenha: P1(x0) = f(x0) = y0 P1(x1) = f(x1) = y1 ou seja, basta resolver o sistema linear abaixo:
a 1 x 0 + a 0 = y 0 a1 x 1 + a 0 = y 1 x 0 1 A= x1 1

onde a1 e a0 so as incgnitas e

a matriz dos coeficientes.

O determinante da matriz A diferente de zero, sempre que x0 x1, logo para pontos distintos o sistema tem soluo nica. O polinmio interpolador P1(x) = a1x + a0 tem como imagem geomtrica uma reta, portanto estaremos aproximando a funo f(x) por uma reta que passa pelos dois pontos conhecidos (x0, y0) e (x1,

68

y1). A figura abaixo mostra, geometricamente, os dois pontos, (x0, y0) e (x1, y1), e a reta que passa por eles.
p1(x) y1

y0

x0

x1

6.2.2

Exemplos

Exemplo 1: Seja a funo y = f(x) definida pelos pontos (0.00; 1.35) e (1.00; 2.94). Determinar aproximadamente o valor de f(0.73). P1(x) = a1x + a0 o polinmio interpolador de 1 grau que passa pelos pontos dados. Ento teremos: a) Pontos utilizados: (0.00;1.35) e

(1.00; 2.94)

b) Clculo dos coeficientes: P1(0) = a1 0 + a0 = 1.35 P1(1) = a1 1 + a0 = 2.94

a0 = 1.35 a1 = 1.59

c) Polinmio interpolador: P1(x) = 1.59x + 1.35 (equao da reta que passa pelos pontos dados) d) Resposta: P1(0.73) = 1.59 0.73 + 1.35 P1(0.73) = 2.51 O resultado obtido acima est afetado por dois tipos de erros: a) Erro de arredondamento (EA) - cometido durante a execuo das operaes e no caso de um resultado ser arredondado. b) Erro de truncamento (ET) - cometido quando a frmula de interpolao a ser utilizada escolhida, pois a aproximao de uma funo conhecida apenas atravs de dois pontos dados feita por um polinmio de 1 grau. Exerccio 1: Dada a funo f(x) = 10x4 + 2x + 1 com os valores de f(0.1) e f(0.2) determinar P1(0.15) e o erro absoluto cometido. Polinmio interpolador: P1(0.15) = 1.3085 EA = -0.0034375 P1(x) = 2.15x + 0.986

Exerccio 2: Calcular o calor especfico aproximado da gua a 32,5 C, usando os valores da tabela 1. Usando as temperaturas 30 C e 35 C.

69

Polinmio interpolador: P1(32.5) = 0.99822 6.3


6.3.1

P1(x) = -0.000016x + 0.99874

Interpolao Quadrtica
Obteno da Frmula

Se conhecermos trs pontos distintos de uma funo, ento o polinmio interpolador ser: P2(x) = a2x2 + a1x + a0 O polinmio P2(x) conhecido como funo quadrtica cuja imagem geomtrica uma parbola, portanto, estaremos aproximando a funo f(x) por uma parbola que passa pelos trs pontos conhecidos (x0, y0), (x1, y1) e (x2, y2). Para determinarmos os valores de a2, a1 e a0 necessrio resolver o sistema:
2 a2 x0 + a1x0 + a0 = y0 2 a2 x1 + a1x1 + a0 = y1 a2 x 2 + a1x2 + a0 = y2 2

onde a2, a1 e a0 so as incgnitas e os pontos (x0, y0), (x1, y1) e (x2, y2) so conhecidos. A matriz dos coeficientes :
2 x0 x 0 1 2 V = x1 x1 1 x 2 x 2 1 2

Como os pontos so distintos, ento o sistema ter soluo nica.


6.3.2 Exemplos

Exemplo 1: Utilizando os valores da funo seno, dados pela tabela abaixo, determinar a funo 2 2 sen x quadrtica que se aproxima de f(x) = , trabalhando com trs casas decimais. x +1 x 0
p 6 p 4

sen(x) 0
1 2 2 2

f(x) 0.000 0.328 0.560

a) Pontos utilizados: ( 0; 0 ) ( p/6; 0.328 ) b) Clculo dos coeficientes: P2(x) = a2x2 + a1x + a0

( p/4; 0.560 )

P 2(0) = a 2 02 + a1 0 + a 0 = 0 p p p 2 P 2( 6 ) = a 2 6 + a1 6 + a 0 = 0.328 P 2( p ) = a 2 p 2 + a1 p + a 0 = 0.560 4 4 4

() ()

() ()

70

Da primeira linha temos que a0 = 0. Logo, o sistema passa a ser:


0.274a 2 + 0.524a1 = 0.328 0.617a 2 + 0.785a1 = 0.560

Resolvendo o sistema acima encontraremos a soluo aproximada: a2 = 0.333 a1 = 0.452 a0 = 0

c) Polinmio interpolador: P2(x) = 0.333 x 2 + 0.452x Exemplo 2: Determinar o valor de f(0.2) e o erro absoluto ocasionado pela aplicao da interpolao quadrtica, no clculo deste valor, usando os valores tabelados da funo f(x) = x2 - 2x + 1. Utilizar duas casas decimais. x 0.5 0.3 0.1 a) Pontos utilizados: ( 0.5; 0.25 ) f(x) 0.25 0.49 0.81

( 0.3; 0.49 )

( 0.1; 0.81 )

b) Clculo dos coeficientes: P2(x) = a2x2 + a1x + a0

0.25a 2 + 0.5a1 + a 0 = 0.25 0.09a 2 + 0.3a1 + a 0 = 0.49 0.01a 2 + 0.1a1 + a 0 = 0.81


Resolvendo o sistema pelo mtodo de Gauss, vem: a2 = 1.00 a1 = -2.00 a0 = 1.00 c) Polinmio interpolador: P2(x) = x2 - 2x + 1 d) Resposta: P2(0.2) = (0.2)2 - 2.(0.2) + 1 P2(0.2) = 0.64 Clculo do erro absoluto: EA = f(0.2) - P2(0.2) EA = 0.64 - 0.64 EA = 0 Podemos observar que o polinmio interpolador igual a funo dada. Isto ocorre porque a funo dada polinomial de 2 grau e, a partir de trs pontos da funo, consegue-se determin-la sem erro. Contudo, poder existir o erro de arredondamento.

71

Exerccio 1: Usando trs pontos da Tabela 1, determinar o calor especfico aproximado da gua a 31 C Pontos utilizados: (20; 0.99907), (30; 0.99826) e (40; 0.99828) Polinmio interpolador: P2(x) = 0.00000415x2 - 0.0002885x + 1.00318 P2(31) = 0.99822 6.4 Interpolao de Lagrange As interpolaes vistas anteriormente so casos particulares da interpolao de Lagrange. Vamos estudar agora o polinmio interpolador de grau menor ou igual a n, sendo dados n + 1 pontos distintos. Teorema: Sejam (xi, yi), i = 0, 1, 2, ..., n, n + 1 pontos distintos, isto , xi xj para i j. Existe um nico polinmio P(x) de grau menor ou igual a n, tal que P(xi) = yi, para todo i. O polinmio P(x) pode ser escrito na forma: Pn(x) = a0 + a1x + a2x2 + ... + anxn ou Pn(x) =

a x
i =0 i

P(x) , no mximo, de grau n, se an 0 e, para determin-lo, deve-se conhecer os valores de a0, a1, ..., an. Como Pn(x) contm os pontos (xi, yi), i = 0, 1, ..., n, pode-se escrever que Pn(xi) = yi. Com isso temos:
a + a x + a x 2 +...+ a x n = y 1 0 2 0 n 0 0 0 2 n a0 + a1 x1 + a 2 x1 +...+ a n x1 = y1 ................................................ 2 n + a0 a1 x n + a2 x n +...+ an x n = y n

Resolvendo o sistema acima, determina-se o polinmio Pn(x). Para provar que tal polinmio nico, basta que se mostre que o determinante da matriz A, dos coeficientes das incgnitas do sistema, diferente de zero. A matriz A :
1 x x 2 ... x n 0 0 0 2 n 1 x1 x1 ... x1 A= ............................ 2 n 1 x n x n ... x n

Mas o determinante da matriz A conhecido como determinante das potncias ou de Vandermonde e, da lgebra Linear, sabe-se que seu valor dado por: det(A) =

( x - x ) . Como xi xj para i j, vem que det(A) 0.


i> j i j

Logo, P(x) nico. Exemplo: Sejam os valores: x0 = 1, x1 = 0, x2 = 3 e x3 = 2. Determinar:

(x - x ) .
i j i> j

(x - x )
i j i> j

= (x1 - x0) (x2 - x0) (x2 - x1) (x3 - x0) (x3 - x1) (x3 - x2) =

72

= (-1)(2)(3)(1)(2)(-1) = 12 Este valor igual ao determinante da matriz:


1 1 1 1
6.4.1

1 1 1 0 0 0 3 9 27 2 4 8

Obteno da Frmula

Ser mostrado, agora, a deduo da frmula de interpolao de Lagrange. Sejam x0, x1, x2, ..., xn, (n + 1) pontos distintos e yi = f(xi), i = 0, 1, ..., n. Seja Pn(x) o polinmio de grau n que interpola f em x0, ..., xn. Podemos representar Pn(x) na forma Pn(x) = y0L0(x) + y1L1(x) + ... + ynLn(x), onde os polinmios Lk(x) so de grau n. Para cada i, queremos que a condio Pn(xi) = yi seja satisfeita, ou seja: Pn(xi) = y0L0(xi) + y1L1(xi) + ... + ynLn(xi) = yi A forma mais simples de se satisfazer esta condio impor:
0 se k i Lk(xi) = e, para isso, definimos Lk(x) por 1 se k = i

Lk =

( x - x 0)( x - x1)...( x - xk - 1)( x - xk + 1)...( x - xn) ( xk - x 0)( xk - x1)...( xk - xk - 1)( xk - xk + 1)...( xk - xn)

Como o numerador de Lk(x) um produto de n fatores da forma: (x - xi), i = 0, 1, ..., n, i k, ento Lk(x) um polinmio de grau n e, assim, Pn(x) um polinmio de grau menor ou igual a n. Alm disso, para x = xi, i = 0, ..., n temos: Pn(xi) =

y
k =0

Lk ( x i ) = yiLi(xi) = yi

Ento, a interpolao de Lagrange para o polinmio interpolador : Pn(x) =

y
k =0

Lk ( x )

onde Lk(x) =

(x
j =0 j k

( x - xj ) k - xj )

73

n ( x - xj ) Pn(x) = y k , a frmula da interpolao lagrangeana. j = 0 ( xk - xj ) k =0 j k


n

6.4.2

Exemplos:

Exemplo 1: No caso da interpolao linear, visto anteriormente, temos dois pontos distintos: (x0, f(x0)) e (x1, f(x1)) com n igual a 1. a) Pontos utilizados: (0.00; 1.35) e (1.00; 2.94) b) Clculo dos coeficientes: P1(x) = y0L0(x) + y1L1(x), onde
( x - x1) ( x 0 - x1) ( x - x 0) L1(x) = ( x1 - x 0)

L0(x) =

Assim, P1(x) = y0

( x - x1) ( x - x 0) + y1 ( x 0 - x1) ( x1 - x 0)

que exatamente a equao da reta que passa por (x0, f(x0)) e (x1, f(x1)). c) Polinmio interpolador: ( x - 1) ( x - 0) P1(x) = 1.35 + 2.94 = -1.35x + 1.35 + 2.94x = 1.59x + 1.35 (0 - 1) (1 - 0) que a mesma expresso obtida no exemplo 1 de interpolao linear. Exerccio 1: Determinar o polinmio de interpolao de Lagrange para a funo conhecida pelos pontos tabelados abaixo e o resultado em P(0.5): i 0 1 2 Resposta: P2(0.5) = (0.5)2 = 0.25 xi 0 1 2 yi 0 1 4

Exerccio 2: Determinar o polinmio interpolador de Lagrange para a funo conhecida pelos pontos da tabela abaixo: i 0 1 2 3 Resposta: P3(x) = x3 - 4x + 1 xi -1 0 2 3 yi 4 1 1 16

74

6.5

Interpolao Parablica Progressiva Na interpolao parablica progressiva precisamos de n + 1 pontos, onde n o grau do polinmio desejado. Em seguida, tomamos os pontos mais prximos, do ponto que queremos, na hora de montar a tabela. Polinmio de grau 0:
Polinmio grau 0 G0 CTE

P0(x) = a0 Polinmio de grau 1:


Polinmio grau 0 Polinmio grau 1 + G1 passando por x0 CTE

P1(x) = a0 + a1.(x - x0) Polinmio de grau 2:


Polinmio grau 0 Polinmio grau 1 Polinmio grau 2 + G2 + passando por x0 passando por x0 e por x1 CTE

P2(x) = a0 + a1.(x - x0) + a2.(x - x0).(x - x1) M Polinmio de grau n: Pn(x) = a0 + a1.(x - x0) + a2.(x - x0).(x - x1) + ... + an.(x - x0).(x - x1).(x - x2) ... (x - xn-1)

Impondo que Pn(x) passe por todos os n + 1 pontos da tabela, temos que: Pn(x0) = f(x0) Pn(x1) = f(x1) Pn(x2) = f(x2) M Pn(xn) = f(xn) Validade: x = x0 \ P 0 ( x0 ) = a 0 =

f (x )
0

x=

x1 \ P1 ( x1) = a0 + a1 ( x1 - x0) =

f (x ) \ a
1

= 1

f (x ) - a \a x -x
1 0 1 0

= 1

f (x ) - P (x ) x -x
1 0 1 1 0

75

x=

x2 \ P2 ( x2) = a0 + a1 ( x2 - x0) + a2 ( x2 - x0)( x2 - x1) =


n n n 0 1 n 0 n n 0 n

f (x ) \ a
2

= 2

f (x ) - P (x ) ( x - x )( x - x )
2 1 2 2 0 2 1

x = x \ P ( x ) = a + a ( x - x ) + ... + a ( x - x )...( x - x f (x ) - P (x ) = a ( - )...( - ) x x x x


n n -1 n n n n 0 n -1

n -1

)=

f (x ) \
n

Exemplo 1: Dados os pares abaixo, determinar a expresso analtica destes mesmos: xi f(xi) 1 Hiptese: -5 -8 -3 -4 1 4 2 6

x = x \ P ( x ) = -8
0 0

2 Hiptese:

x = x \a
1

f ( x ) - P ( x ) = -4 + 8 = 2 -3 + 5 x -x
1 0 1 1 0 2 1 2

\ P1 ( x ) = -8 + 2( x + 5) = 2 x + 2

3 Hiptese:

x = x \a
2

= 2

f (x ) - P (x ) = 4 - 4 = 0 ( x - x )( x - x ) (1 + 5)(1 + 3)
2 0 2 1 3 2 3

\ P2 ( x ) = 2 x + 2

4 Hiptese:

x=

x 3 \ a3 =

f (x ) - P (x ) 6-6 = =0 ( x - x )( x - x )( x - x ) ( 2 + 5)( 2 + 3)( 2 - 1)


3 0 3 1 3 2

\ P3 ( x ) = 2 x + 2

Logo, a expresso : P1(x) = 2x + 2 6.6


6.6.1

Interpolao de Newton com Diferenas Divididas


Diferenas Divididas

Seja f(x) uma funo tabelada em n + 1 pontos distintos x0, x1, x2, ... xn. Definimos o operador diferenas divididas por: f[x0] = f(x0) f [ x1 ] - f [ x0 ] f ( x1 ) - f ( x0 ) f[x0,x1] = = x1 - x0 ( x1 - x0 ) f [ x1 , x 2 ] - f [ x0 , x1 ] f[x0,x1,x2] = x 2 - x0 M f [ x1 , x 2 ...x n ] - f [ x0 , x1 ...x n -1 ] f[x0,x1,x2, ... xn] = x n - x0

76

Dizemos que f[x0,x1,x2,...xk] a diferena dividida de ordem k da funo f(x) sobre os k + 1 pontos. Conhecidos os valores que f(x) assume nos pontos distintos x0, x1, x2, ... xn, podemos construir a tabela: xi x0 x1 x2 ... xn-2 xn-1 xn
6.6.2

Ordem 0 f[x0] f[x1] f[x2] ... f[xn-2] f[xn-1] f[xn]

Ordem 1 f[x0,x1] f[x1,x2] f[x2,x3] ... f[xn-2,xn-1] f[xn-1,xn] -

Ordem 2 f[x0,x1,x2] f[x1,x2,x3] f[x2,x3,x4] ... f[xn-2,xn-1,xn] -

....

Ordem n f[x0,x1,x2 ... xn] ... -

Propriedade do Operador Diferenas Divididas

Pode-se provar que as diferenas divididas satisfazem a propriedade de ser simtrico nos argumentos. Exemplo: f[x0,x1] =

f [ x1 ] - f [ x0 ] f [ x0 ] - f [ x1 ] = = f[x1,x0] x1 - x0 x0 - x1

Pode-se provar que cada coeficiente an do polinmio interpolador de Newton corresponde ao operador de grau n de diferenas divididas: f[x0] = a0 f[x0,x1] = a1 f[x0,x1,x2] = a2 M f[x0,x1,x2,...,xn] = an Pn(x) = a0 + a1.(x - x0) + a2.(x - x0).(x - x1) + ... + an.(x - x0).(x - x1).(x - x2) ... (x - xn-1) Pn(x) = f[x0] + f[x0,x1] . (x - x0) + f[x0,x1,x2] . (x - x0) . (x - x1) + ... + f[x0,x1,x2, ... xn] . (x - x0) . (x - x1) . (x - x2) ... (x - xn-1)
6.6.3 Exemplos

Exemplo 1: Obter f(0.5) usando um polinmio interpolador de Newton do segundo grau (3 pontos). Considere a seguinte tabela: xi F(xi) -1 2 0 1 1 2 2 5 3 10

a) Clculo dos coeficientes de Pn(x): X -1 0 1 2 3 Ordem 0 Ordem 1 Ordem 2 Ordem 3 Ordem 4 2 1 0 0 -1 1 1 1 0 2 3 1 5 5 10

x0 x1 x2 x3 x4

77

onde: f[x0] = f(x0) = 2 f[x1] = f(x1) = 1 f[x2] = f(x2) = 2 f[x3] = f(x3) = 5 f[x4] = f(x4) = 10

f [ x1 ] - f [ x0 ] f ( x1 ) - f ( x0 ) 1 - 2 = = = -1 0 +1 x1 - x0 ( x1 - x0 ) f [ x 2] - f [ x1] 2 - 1 f[x1,x2] = = =1 1- 0 x 2 - x1 5-2 f [ x3] - f [ x2] f[x2,x3] = = =3 2 -1 x3 - x 2 f [ x4] - f [ x3] 10 - 5 f[x3,x4] = = =5 3- 2 x4 - x3


f[x0,x1] =

f [ x1 , x 2 ] - f [ x0 , x1 ] 1 + 1 = =1 1+1 x 2 - x0 f [ x 2 , x 3] - f [ x1 , x 2] 3-1 f[x1,x2,x3] = = =1 2-0 x 3 - x1 f [ x3 , x4] - f [ x2 , x3] 5 - 3 f[x2,x3,x4] = = =1 3 -1 x4 - x2


f[x0,x1,x2] =
f [ x1 , x 2 , x 3] - f [ x0 , x1 , x 2] 1 - 1 = =0 2 +1 x 3 - x0 1-1 f [ x 2 , x 3 , x 4] - f [ x1 , x 2 , x 3] f[x1,x2,x3, x4] = = =0 3- 0 x 4 - x1

f[x0,x1,x2,x3] =

f[x0,x1,x2,x3,x4] =

f [ x1 , x 2 , x 3 , x 4] - f [ x0 , x1 , x 2 , x 3] 0-0 = =0 3+1 x 4 - x0

b) Polinmio interpolador: P2(x) = 2 - 1(x + 1) + 1(x + 1)(x - 0) P2(x) = 2 - (x + 1) + x (x + 1) P2(x) = 2 - x - 1 + x2 + x P2(x) = x2 + 1 c) Resposta: P2(0.5) = (0.5)2 + 1 = 1.25 Exemplo 2: Obter f(40) usando um polinmio interpolador de Newton de grau 3 (4 pontos). Considere a seguinte tabela: xi F(xi) 30 0.5 35 0.574 45 0.707 50 0.766 55 0.819

78

a) Clculo dos coeficientes de Pn(x): Pegar os pontos mais prximos do ponto que desejamos: X 30 35 45 50 Ordem 0 0.5 0.574 0.707 0.766 Ordem 1 0.0148 0.0133 0.0118 Ordem 2 -0.0001 -0.0001 Ordem 3 0

x0 x1 x2 x3

Como o polinmio obtido no ter grau 3, devemos escolher um novo conjunto de pontos: X 30 35 45 55 Ordem 0 0.5 0.574 0.707 0.819 Ordem 1 Ordem 2 Ordem 3 0.0148 -0.0001 -0.0000002 0.0133 -0.000105 0.0112

x0 x1 x2 x3 b) Polinmio interpolador:

P3(x) = 0.5 + 0.0148(x - 30) - 0.0001(x - 30)(x - 35) - 0.0000002(x - 30)(x - 35)(x - 45) c) Resposta: P3(40) = 0.5 + 0.0148(10) - 0.0001(10)(5) - 0.0000002(10)(5)(-5) P3(40) = 0.64305 Exerccio 1: Obter f(0.47) usando um polinmio interpolador de Newton do segundo grau (3 pontos). Considere a seguinte tabela: xi F(xi) 0.2 0.16 0.34 0.22 0.4 0.27 0.52 0.29 0.6 0.32 0.72 0.37

Polinmio interpolador: P2(x) = 0.27 + 0.16667(x - 0.4) + 1.041665(x - 0.4)(x - 0.52) P2(0.47) = 0.27802 Exerccio 2: Obter f(0.5) usando um polinmio interpolador de Newton do quarto grau (5 pontos). Considere a seguinte tabela: xi F(xi) -1 1 0 1 1 0 2 -1 3 -2

Polinmio interpolador: -1 1 -1 P4(x) = 1 + 0.(x + 1) + (x + 1)(x) + (x + 1)(x)(x - 1) + (x + 1)(x)(x - 1)(x - 2) 2 6 24 P4(0.5) = 1 - 0.375 - 0.0625 - 0.02344 = 0.53906 6.7 Interpolao de Gregory-Newton Muitas vezes so encontrados problemas de interpolao cuja tabela de pontos conhecidos tem valores que so igualmente espaados, ou seja: x1 - x0 = x2 - x1 = x3 - x2 = ... = xn - xn-1 = h

79

Assim xi+1 - xi = h , para todo i, sendo h uma constante. xi = xi-1 + h xi = x0 + i * h


6.7.1
0

Diferenas Ordinrias ou Finitas

D f(x) = f(x) D1f(x) = f(x + h) - f(x) D2f(x) = D1f(x + h) - D1f(x) ... Dnf(x) = Dn-1f(x + h) - Dn-1f(x) xi x0 x1 x2 ... xn-2 xn-1 xn
6.7.2

Ordem 0 f(x0) f(x1) f(x2) ... f(xn-2) f(xn-1) f(xn)

Ordem 1 D1f(x0) D1f(x1) D1f(x2) ... 1 D f(xn-2) D1f(xn-1) -

Ordem 2 D2f(x0) D2f(x1) D2f(x2) ... 2 D f(xn-2) -

...

Ordem n Dnf(x0) ... -

Relao entre diferenas divididas e diferenas ordinrias

Teorema: Se xj = x0 + j.h, para j = 0, 1, 2, ..., n, ento f[x0,x1,x2,...,xn] = Prova:

Dn f ( x0 ) . n!h n

f[x0] = f(x0) f [ x1 ] - f [ x0 ] f ( x1 ) - f ( x0 ) f ( x0 + h) - f ( x0 ) Df ( x0 ) f[x0,x1] = = = = x1 - x0 ( x1 - x0 ) h h


Df ( x1 ) Df ( x0 ) f [ x1 , x 2 ] - f [ x0 , x1 ] D2 f ( x0 ) h h f[x0,x1,x2] = = = x 2 - x0 2h 2h 2 M e por induo podemos mostrar que esta regra valida para valores maiores que 2.
6.7.3 Gregory-Newton usando Diferenas Ordinrias

Partindo da formula original do mtodo de Newton, que Pn(x) = f[x0] + f[x0,x1].(x - x0) + f[x0,x1,x2].(x - x0).(x - x1) + ...+ f[x0,x1,x2,...,xn].(x - x0).(x - x1).(x x2)...(x - xn-1) podemos derivar a nova formula que utiliza as diferenas ordinrias:
Df ( x0 ) D2 f ( x0 ) Dn f ( x0 ) Pn(x) = f(x0) + .(x - x0) + .(x - x0).(x - x1) + ... + .(x - x0).(x - x1).(x h 2h 2 n!h n x2)...(x - xn-1)
6.7.4 Exemplos

Exemplo 1: Obter f(0.5) usando um polinmio interpolador de Gregory-Newton (G-N) do segundo grau (3 pontos). Considere a seguinte tabela:

80

xi f(xi) a) Tamanho do intervalo: h=1

-1 2

0 1

1 2

2 5

3 10

b) Clculo dos coeficientes de Pn(x): X -1 0 1 2 3 Ordem 0 Ordem 1 Ordem 2 Ordem 3 Ordem 4 2 2 0 0 -1 1 1 2 0 2 3 2 5 5 10

x0 x1 x2 x3 x4

c) Polinmio interpolador: -1 2 P2(x) = 2 + (x + 1) + (x + 1)(x) 2 1 2 1 P2(x) = 2 - (x + 1) + x (x + 1) P2(x) = 2 - x - 1 + x2 + x P2(x) = x2 + 1 d) Resposta: P2(0.5) = (0.5)2 + 1 = 1.25 Exerccio 1: Obter f(0.04) usando um polinmio interpolador de Gregory-Newton do segundo grau (3 pontos). Considere a seguinte tabela: xi F(xi) 0.01 1.01 0.03 1.09 0.05 1.25 0.07 1.49

Polinmio interpolador: P2(x) = 100x2 + 1 P2(0.04) = 1.16 Exerccio 2: Obter f(3.7) usando um polinmio interpolador de Gregory-Newton do terceiro grau (4 pontos), onde f(x) = ln(x). Considere a seguinte tabela: xi F(xi) 1 0 2 0.6931 3 1.0986 4 1.3863

Polinmio interpolador: P3(x) = 0.6931.(x - 1) - 0.1438.(x - 1)(x - 2) + 0.0283.(x - 1)(x - 2)(x - 3) P3(3.7) = 1.30225590 6.8 Interpolao Splines: Linear, Quadrtica, Cbica

Uma funo spline intervalar um polinmio constitudo sobre certas condies de continuidade.

81

6.8.1

Spline Linear

Para um conjunto de dados chamados ns : ( xi , y i , i = 1, 2, L , n) , a spline linear definida por


si ( x) = a i x + bi , for x [xi , xi +1 ] , i = 1, 2, L , n - 1

(1.1)

A condio C0, si ( xi ) = y i e si ( xi +1 ) = y i +1 produz 2(n - 2) equaes para os pontos interior ao domnio de x. Acrescentada a estas condies duas condies nos pontos extremos do domnio de x so estabelecidas produzindo um total de 2n - 2 equaes concordar com 2n - 2 incgnitas: a i , bi , i = 1, 2, L , n - 1 . Aplicando essas condies obtm-se:

s i ( x) = y i

x - xi +1 x - xi y - yi + y i +1 = y i + i +1 ( x - xi ), x [xi , xi +1 ] xi - xi +1 xi +1 - xi xi +1 - xi (1.2)

Est equao resulta em linhas retas juntando pontos vizinhos. Observa-se que, si (x) o polinmio de interpolao de Lagrange para o conjunto de dados: ( xi , y i ) ( xi +1 , y i +1 ) e . A eq(1.2) a soluo intervalar aproximada linearmente em uma dimenso.

Exemplo 1.1. Calcular a spline linear do conjunto de dados abaixo: i 1 2 3 4 5 x 0 5 7 8 10 y 0 2 -1 -2 20 Spline Linear
s1 ( x) = 0 s 2 ( x) = 2 x-5 x-0 +2 = 2.5 x , x [0, 5] 0-5 5-0 x-7 x-5 -1 = -1.5 x + 9.5 , x [5, 7] 5-7 7-5 x-8 x-7 -2 = - x + 6 , x [7, 8] 7-8 8-7 x - 10 x-8 + 20 = 11x - 90 , x [8, 10] 8 - 10 10 - 8

s 3 ( x ) = -1 s 4 ( x ) = -2

82
Linear Spline Interpolation 20 data points linear spline interp1: linear 15 interp1: MATLAB function. Type "help interp1" in MATLAB window for its usage and options. 10 y 5 0 -5 0

5 x

10

Figura 1.1 Spline Linear. Pseudocdigo: Matlab (1) Input dados x(i) ,y(i), i = 1,n; Plot usando smbolos usando plot; (2) For i = 1, n-1, do A = linspace(x(i),x(i+1),nint) % Divide cada intervalo em nint pontos Call c1=linear_spline % Call a funo linear_spline.m Call c2=interp1 % Call a funo do MATLAB (opo default: linear) Plot c1 Plot c2 Enddo

A funo linear_spline.m contruda de acordo com o seguinte algoritmo: (1) (2) (3) Input x, onde se deseja determinar o valor de y; Avalie se x est fora do intervalo; se sim pare o programa; se no, prossegue; Calcule o intervalo onde o valor de x reside; Calcule y de acordo com a eq(1.2).
function f = linear_spline(x,y,xx) n=length(x); % No.de dados em ordem crescente if (xx<x(1)) | (xx>x(n)); error('x esta fora do intervalo!'); % erro end; % procura do intervalo onde xx reside for i = 1:n-1; if (xx>=x(i)) & (xx<=x(i+1)); m=i; break;

83 end; end; % Calcule y(XX) eq(1.2). f = y(m)*(xx-x(m+1))/(x(m)-x(m+1)) ... +y(m+1)*(xx-x(m))/(x(m+1)-x(m));

Examplo 1.2 Calcule as splines intervalar lineares para os dados: i 1 2 3 4 5 6 x 0 1 2 3 4 5 y 1 1 1 -1 -1 -1 Avalie o resultado segundo o grfico na Figura 1.2.
Linear Spline Interpolation 1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.5 1 1.5 2 2.5 x 3 3.5 4 4.5 5 y data points linear spline interp1: linear

Figure 1.2 Spline Linear. claramente notado em ambos os exemplos as splines so linhas retas. Estes conjuntos de dados sero usados em todo este material com o objetivo de comparar os diferentes tipos de splines.

84

6.8.2

Spline Quadrtica

Uma spline quadrtica para cada intervalo definida como:


si ( x) = a i x 2 + bi x + ci , for x [xi , xi +1 ] , i = 1, 2, L , n - 1

(2.1)

A qual posta certas condies para satisfazer as condies de se C0 e C1. Para a condio de ser C0 se obtm: si ( xi ) = yi , si ( xi +1 ) = y i +1 , i = 1,2,...n - 1 Para a condio de ser C1 se obtm:

(2.2)

si ( xi +1 ) = s i+1 ( xi +1 ), i = 1, 2, L , n - 2

(2.3)

Dos trs requerimentos acima, existem 3n-4 condies. Porm as splines quadrticas requer um total de 3n-3 condies, de forma que h necessidade de uma condio a ser adicionada. Usualmente usa-se, s1(x1) = 0 como condio. Com isso se obtm a ento chamada spline natural quadrtica. Certamente outras condies podem ser usadas, tal como s1(x1) = sn-1(xn ). Para determinar a equao da spline, primeiro denote di = si (xi ), ento desde que s(x) uma spline linear para o conjunto de dados (xi, di, i = 1,2, , n), obtm-se

si ( x) = d i +1 =

d i +1 - d i ( x - xi ) + d i xi +1 - xi aqual uma equao linear para a inclinao (slope). Integrando em x, obtm-se d - di si ( x) = i +1 ( x - xi ) 2 + d i ( x - xi ) + y i 2( xi +1 - xi )

x - xi x - x (d i +1 - d i ) x - d i +1 xi + d i xi +1 + d i i +1 = xi +1 - xi xi +1 - xi xi +1 - xi

(2.4)

Nesta soluo a constante de integrao calculada utilizando a condio de contorno C0 : si ( xi ) = y i . Uma spline quadrtica definida uma vez que os d i s sejam conhecidos. Fazendo x = xi+1, obtm-se d - di y i +1 = i +1 ( xi +1 - xi ) 2 + d i ( xi +1 - xi ) + y i 2( xi +1 - xi ) O qual conduz a: y - yi d i +1 = 2 i +1 - d i , i = 1, 2, L, n - 1 xi +1 - xi

(2.5)

A eq(2.5) descreve um esquema recursivo. Se d1 conhecido, ento di+1 pode ser calculado pela eq(2.5). Varias condies podem ser aplicadas para obter d1: Para a ento chamada Spline Natural, d1 = 0 . Se d1 = d2, ento d1 pode ser calculado por y - y1 y - y1 d1 = d 2 = 2 2 - d 1 d1 = 2 x 2 - x1 x 2 - x1

(2.6)

85

Se d1 = dn, ento d1 pode ser calculado por

n -1 n-i +1 yi +1 - yi , n par d1 = (-1) n-1 y -y xi +1 - xi i =2 d1 = d n = 2 (-1) n-i+1 i+1 i - (-1) n d1 xi+1 - xi i =2 sem solucao , n impar (2.7) Esta condio no pode ser aplicada quando n um nmero impar.

Pseudocdigo do algoritmo em Matlab quadratic_spline.m como segue: (1) Input os pontos x(i) ,y(i), i = 1,n; Plot estes pares usando smbolos com a funo plot; (2) For i = 1, n-1, do A = linspace(x(i),x(i+1),nint) % Divide cada intervalo e nint pontos Call c1=quadratic_spline with d1 = 0; % Spline Natural Quadrtica Call c2=quadratic_spline with d1 = d2; Plot c1 Plot c2 Enddo A funo quadratic_spline.m construda de acordo com o seguinte algoritmo: (1) Input x onde se deseja calcular o valor interpolado y; Avaliar se x est fora do intervalo; se sim, pare o programa; se no, prossegue; (2) Calcule o intervalo onde x pertence; (3) Calcule d1; Calcule di (Equao (2.5)); (4) Calcule y de acordo com a equao (2.4).
function f = quadratic_spline(x,y,xx,ioption) n=length(x); % No. de dados em ordem crescente if (xx<x(1)) | (xx>x(n)); error('x esta fora do intervalo!'); % Erro end; % declara o tamanho da matriz para d=ds/dx d=1:1:n; % Calcule d(1) if ioption==1; d(1)=0.0; % Spline Quadratica Natural else; d(1)=(y(2)-y(1))/(x(2)-x(1)); % para d(1)=d(2), eq(2.6) end; % Usa algoritmo recursivo eq(2.5) para calcular todosl d(i) for i = 2:n; d(i)=2.0*(y(i)-y(i-1))/(x(i)-x(i-1))-d(i-1); end; % Calcular qual o intervalo que reside xx for i = 1:n-1; if (xx>=x(i)) & (xx<=x(i+1)); m=i; break; end; end; % Calcule y(xx) para spline quadratica eq(2.4). f = (xx-x(m))*( 0.5*(d(m+1)-d(m))*(xx-x(m))/(x(m+1)-x(m)) ... +d(m) ) + y(m);

86

Examplo 2.1. Dado os mesmo dados do examplo 1.1, calcule a spline quadrtica. Usando a spline natural quadrtica, onde d1 = 0, ento se obtm
d2 = 2 d4 = 2 2-0 -1- 2 - 0 = 0.8, d 3 = 2 - 0.8 = -3.8 5-0 7-5 - 2 +1 20 + 2 + 3.8 = 1.8, d 5 = 2 - 1.8 = 20.2 8-7 10 - 8

s1 ( x) =
s 2 ( x) =

0 .8 - 0 ( x - 0) 2 + 0( x - 0) + 0 = 0.08 x 2 , 2(5 - 0)

x [0, 5]

- 3 .8 - 0 .8 ( x - 5) 2 + 0.8( x - 5) + 2 = -1.15 x 2 + 12.3 x - 289.5, x [5, 7] 2(7 - 5) 1 .8 + 3 .8 ( x - 7) 2 - 3.8( x - 7) - 1 = 2.8 x 2 - 9.4 x + 162.8, x [7, 8] 2(8 - 7) 20.2 - 1.8 ( x - 8) 2 + 1.8( x - 8) - 2 = 4.6 x 2 - 71.8 x + 273.6, x [8, 10] 2(10 - 8)

s3 ( x) =

s 4 ( x) =

Os resultados das splines devido condio d1 = d2, so plotados na figura 2.1. Prximo x = 0, a spline natural tem uma curva achatada devido derivada zero em x = 0. A outra spline tem uma inclinao linear no primeiro intervalo. Para todos os intervalos de dados, estas duas splines so diferentes, embora as diferenas sejam pequenas.
Quadratic Spline Interpolation 20 data points natural quadratic spline quadratic spline with d1=d2

15

10 y 5 0 -5 0

5 x

10

Figure 4.2.1. Spline Quadrtica.

87

Exemplo 2.2. Utlizando os dados do exemplo 1.2, obter as splines quadrticas. A nica mudana necessria no script quadratic_spline1.m trocar o conjunto de dados x e y pelos da tabela do exemplo 1.2. As splines so plotadas na figura 2.2. Note que as splines natural e as splines devido a condio d1 = d2 so exatamente as mesmas. Isso causado pelo fato que ambas as opes produzem o mesmo resultado: d1 = 0. Tambm, as splines no 4 e 5 intervalos tm grandes oscilaes. Seria desejvel uma transio suave no 3 intervalo e as splines apresentam esta transio. Contudo devido a depresso no intervalo 4, existem oscilaes no 4 e 5 intervalos. Geralmente, quando a ordem do polinmio spline maior este problema torna-se mais severo.
Quadratic Spline Interpolation 1.5 data points natural quadratic spline quadratic spline with d1=d2

0.5

0 y -0.5 -1 -1.5 -2 0

0.5

1.5

2.5 x

3.5

4.5

Figura 2.2. Sline Quadrtica.

6.8.3

Spline Cbica Natural

Geralmente, uma funo s chamada de spline do grau k sobre x1 < x 2 < L < x n se (1) s [x1 , x n ]; ( j) (2) s , j = 0, 1, 2, L , k - 1 so todas funes contnuos no [x1 , x n ] onde s(j) a j-sima derivada; (3) s um polinmio de grau k em cada intervalo [xi , xi +1 ] . Se k = 3 , a spline chamada de spline cbica. As curvaturas dadas pelas derivadas segundas podem ser aproximadas por funes lineares em um intervalo e denotando os valores nos pontos xi como
ei = si( xi ), i = 1, 2, L , n

, elas podem ser aproximadas pelo polinmio interpolador de Lagrange no

88

conjunto de dados ( xi , ei , i = 1, 2, L, n) . Contudo x - xi x -x si( x) = ei +1 + ei i +1 , i = 1, 2, L, n - 1 xi +1 - xi xi +1 - xi Integrando em x duas vezes, obtm-se

(3.1)

s i ( x) =

ei +1 e ( x - xi ) 3 + i ( xi +1 - x) 3 + c( x - xi ) + d ( xi +1 - x) 6hi 6hi

(3.2)

Onde hi = xi+1 - xi e c e d so constantes de integrao. Aplicando a condio C0, obtm-se:

c=

y i +1 ei +1 hi y eh ; d= i - i i hi 6 hi 6

(3.3)

A qual conduz a

s i ( x) =

ei +1 e y e h y eh ( x - xi ) 3 + i ( xi +1 - x) 3 + ( i +1 - i +1 i )( x - xi ) + ( i - i i )( xi +1 - x) 6hi 6hi hi 6 hi 6 (3.4)

Logo a spline cbica definida desde que se determina os eis. Os valores de ei podem ser determinados da condio C1 de continuidade. Diferenciando a equao anterior, obtm-se

si ( x) =
e

ei +1 e y e h y eh ( x - xi ) 2 - i ( xi +1 - x) 2 + ( i +1 - i +1 i ) - ( i - i i ) 2hi 2hi hi 6 hi 6

si ( xi ) = -

ei 2 y e h y eh e h eh hi + ( i +1 - i +1 i ) - ( i - i i ) = - i +1 i - i i + bi 2hi hi 6 hi 6 6 3

onde

bi =
Tambm

y i +1 - y i , i = 1, 2, L , n - 1 hi

(3.5)

si-1 ( xi ) =
Fixando

ei y eh y e h e h eh hi2-1 + ( i - i i -1 ) - ( i -1 - i -1 i -1 ) = i -1 i -1 + i i -1 + bi -1 2hi -1 hi -1 6 hi -1 6 6 3
si ( xi ) = si-1 ( xi ) para todos os pontos no interior do intervalo, obtm-se hi -1ei -1 + 2(hi -1 + hi )ei + hi ei +1 = 6(bi - bi -1 ), i = 2, 3, L , n - 1

(3.6)

Um sistema linear tridiagonal de equaes em termos das incgnitas ei s. Existem n incgnitas e n - 2 equaes. Duas condies adicionais so necessrias para determinar as splines cbicas. Quando elas so

89

, as splines resultantes so chamadas de spline cbica natural. Essas equaes podem ser rearranjadas como:
e1 = 0 hi -1ei -1 + u i ei + hi ei +1 = vi en = 0 i = 2, 3, L , n - 1

e1 = en = 0

(3.7)

onde
u i = 2(hi -1 + hi ) vi = 6(bi - bi -1 ) i = 2, 3, L , n - 1

(3.8)

O algoritmo do cdigo cubic_splin.m muito similar ao linear_spline.m, ento o algoritmo para a funo cubic_splin1.,m ser representado aqui. (1) (2) (3) (4) (5) (6) (7) Input x onde se deseja calcular a interpolao y desejado; % s = y aqui. Avaliar se x esta for a do intervalo; se sim, pareo programa; se no, prossegue; Calcule hi e bi (eq(3.5)); Calcule ui e vi (eq(3.8)); Fixe e1 = 0, ento calcule ei (eq(3.7)) Calcule em que intervalo reside x; Calcule y com a eq(3.4).

Example 3.1. Dado os pontos do exemplo 1.1, obter a spline natural cbica. Para calcular a 2 derivadas, primeiro determine h1 = 5, h2 = 2, h3 = 1, h4 = 2 b1 = 0.4, b2 = -1.5, b3 = -1, b4 = 11 Usando os dados acima se pode calcular os uis e vis como u2 = 14, u3 = 6.0, u4= 6.0 v2 = -11.4, v3 =3.0, v4 = 72.0 Ento da eq(3.7), obtm-se

14 2 0 e2 - 11.4 2 6 1 e3 = 3.0 0 1 6 e 72.0 4


Os valores de e2, e3, e e4 pode ser obtido usando o algoritmo de Thomas. Estes valores juntamente com e1= e5 = 0 fornecem: e2 =-0.67211538461538, e3 =-0.99519230769231, e4 =12.33173076923077 As splines cbicas natural so plotadas na figure 3.1. As funes Matlab spline e interp1 com as opes corretas so usadas para produzir as mesmas splines. Duas outras condies so adicionadas nestas funes Matlab como segue

90
( ( ( s1(3) ( x 2 ) = s 23) ( x 2 ) , and s n3)2 ( x n -1 ) = s n3)1 ( x n -1 ) -

20

Cubic Spline Interpolation data points natural cubic spline interp1:spline spline

15

10 y 5 0 -5 0

5 x

10

Figura 3.1. Spline Cbica. INTERPOLACAO por SPLINE CUBICA xi -> Valores de x ci -> Coeficientes Linear bi -> Coeficientes Linear ai -> Coeficientes Cubic fpa -> Primeira Derivada em a 0.0000 fpb -> Primeira Derivada em b 0.0000 -------------------------------------------------------------------x(i) x(i+1) a(i+1) ai bi ci -------------------------------------------------------------------0.00 5.00 -0.0224 0.0000 0.0000 0.9601 5.00 7.00 -0.0829 -0.0560 1.2240 -0.1683 7.00 8.00 2.0553 -0.1659 -0.8341 -4.0553 8.00 10.00 0.0000 1.0276 -5.1106 10.0000 Exemplo 3.2. Dados os pontos do exemplo 1.2, obter as splines cbicas. As splines so plotadas na figura 3.2. Todas as splines apresentam resultados melhores que quelas gerados pela spline quadrticas. As oscilaes so menores. As splines naturais aqui apresentam melhores resultados que os gerados por spline e interp1: spline no 1 e 5 intervalos.

91
Cubic Spline Interpolation 1.5 data points natural cubic spline interp1:spline spline

0.5

-0.5

-1

-1.5

0.5

1.5

2.5 x

3.5

4.5

Figura 3.2. Spline Cbica.


function f = cubic_spline(x,y,xx) %-------------------------------------------------------------------------%echo off; clear; clc; format long; %-------------------------------------------------------------------------% n=length(x); % No. dados em ordem crescente. if (xx<x(1)) | (xx>x(n)); error('for a do intervalo de x!'); % Erro end; % % Inicialize h, b, u, v. h=1:1:n-1; b=1:1:n-1; u=1:1:n-1; v=1:1:n-1; % for i=1:n-1; h(i)=x(i+1)-x(i); % Calcule h(i) b(i)=(y(i+1)-y(i))/h(i); % Calcule b(i) usando eq(3.5) end; % % Calcule u(i), v(i) usando eq(3.8) u(2)=2.0*(h(1)+h(2)); v(2)=6.0*(b(2)-b(1)); for i=3:n-1; u(i)=2.0*(h(i)+h(i-1)); v(i)=6.0*(b(i)-b(i-1)); end; % % Condicoes para Spline Cubica Natural e(1)=0.0; e(n)=0.0; % Calcule e(i) usando eq(3.7) sub(1:n-2) = h(1:n-2); % diagonal inferior dia(1:n-2) = u(2:n-1); % diagonal principal super(1:n-2) = h(2:n-1); % diagonal superior rhs(1:n-2) = v(2:n-1); % lado direito

92 %-------------------------------------------------------[xs]=triDiag(n-2,sub,super,dia,rhs); e(2:n-1)=xs; %-------------------------------------------------------% Calcular intervalo onde xx reside for i = 1:n-1; if (xx>=x(i)) & (xx<=x(i+1)); m=i; break; end; end; % hm=x(m+1)-x(m); xt1=xx-x(m); xt2=x(m+1)-xx; % Calcule y(XX) cubic spline usando eq(3.4). f = (e(m+1)*xt1^3+e(m)*xt2^3)/(6.0*hm) ... +xt1*( y(m+1)/hm-hm*e(m+1)/6.0 ) ... +xt2*( y(m)/hm-hm*e(m)/6.0 ); function [xs]=triDiag(dim,sub,super,diag,rhs) for i=1:dim-1 %Elimination m=sub(i)/diag(i); diag(i+1)=diag(i+1)-m*super(i); rhs(i+1)=rhs(i+1)-m*rhs(i); end x(dim)=rhs(dim)/diag(dim); %Back Substitution for i=dim-1:-1:1 x(i)=(rhs(i)-super(i)*x(i+1))/diag(i); end xs=x;

%************** CUBIC_SPLINE_1 ****************** % %------------------------------------------------clear all; clc; format long; %------------------------------------------------for iexample=1:2; if iexample==1; %x=[-2 -1 0 1 2]; %y=[ 4 -1 2 1 8]; x=[0. 5. 7. 8. 10.0]; % data points for Example 3.1 y=[0. 2. -1. -2. 20.]; else; x=[0. 1. 2. 3. 4. 5.]; % data points for Example 3.2 y=[1. 1. 1. -1. -1. -1.]; end; figure; plot(x,y,'ko'); % Plot original data points hold; n=length(x)-1; nint=11; % Use nint points in plotting for each data interval for i=1:n; % loop for each data interval a=linspace(x(i),x(i+1),nint); % Divide each data interval into nint points for i1=1:nint; c1(i1)=cubic_spline(x,y,a(i1)); % Call cubic_spline function c3(i1)=interp1(x,y,a(i1),'spline'); % Call MATLAB function interp1.m with % option 'spline' c4(i1)=spline(x,y,a(i1)); % Call MATLAB function spline.m end;

93 plot(a,c1,'k'); % Plot points due to cubic_spline plot(a,c3,'k:'); % Plot points due to interp1's spline plot(a,c4,'k+'); % Plot points due to spline function end; legend('data points','natural cubic spline', ... 'interp1:spline','spline',0) % Create legend xlabel('x'), ylabel('y'),title('Cubic Spline Interpolation'); % Title for plot grid; end;

6.8.4

Consideraes Gerais sobre Interpolao

Splines de crescente ordem so obtidas aumentando a ordem de continuidade nos pontos atravs de todos os intervalos, splines quadrtica requer que as primeiras derivadas sejam satisfeitas nos pontos de extremos dos intervalos, splines cbica requer as derivadas segundas, etc. Splines de ordem maior que 3 so raramente usadas em aplicaes prticas. Porm o aumento da ordem paga o esforo para ger-la? Observando os grficos estes revelam que para ordem maior que 1 h oscilaes atravs dos dados. A comparao das splines mostrada nas figuras 4.1 e 4.2. possvel observer que as splines quadrticas, em geral, oscilam mais que as splines cbicas quando comparadas com as splines lineares. Ento aumentando a ordem nem sempre aumenta as oscilaes. Ento qual spline escolher? A Seleo de uma spline apropriada depende da aplicao. Se procura interpolar os dados por si s, talvez a spline linear a melhor escolha. Se os dados forem de natureza cbica a spline cbica ser a melhor escolha. Se desejar conhecer derivadas dos dados, uma spline linear gera saltos nos pontos, portanto algum grau de suavidade seria desejvel. Ento novamente, a escolha dever ser feita em funo da aplicao. Em projetos, as splines permitem suavizao local atravs dos dados e a spline cbica a escolha usual. Como as splines se comparam aos polinmios interpolantes de Hermite que tambm tratam de derivadas? muito importante entender o seguinte conceito: splines concordam atravs das condies de derivadas nos pontos extremos dos intervalos, no derivadas dos dados por si s. Em outras palavras, splines so funes discretas as quais aproximam os dados preenchendo os dados nos intervalos: as condies de suavidade nos pontos de juno so asseguradas assim como nos pontos gerados no interior do intervalo. Por outro lado, a interpolao de Hermite requer derivadas de dados, isto , as derivadas so partes dos dados, i.., posio, velocidade, acelerao. A nica relao entre spline e interpolao de Hermite que ambos so polinmios.
Spline Comparison data points natural cubic spline natural quadratic spline linear spline

20

Figura 4.1 Comparao de Spline.

15

10 y 5 0 -5 0

5 x

10

94
Spline Comparison data points natural cubic spline natural quadratic spline linear spline

1.5

Figura 4.2 Comparao Spline.

0.5

0 y -0.5 -1 -1.5 -2 0

0.5

1.5

2.5 x

3.5

4.5

95

7 Ajuste de Curvas
Uma das formas de se trabalhar com uma funo definida por uma tabela de valores a interpolao polinomial. Contudo, a interpolao no aconselhvel quando: a) preciso obter um valor aproximado da funo em algum ponto fora do intervalo de tabelamento, ou seja, quando se quer extrapolar. b) Os valores tabelados so resultados de algum experimento fsico ou de alguma pesquisa, porque, nestes casos, estes valores podero conter erros inerentes que, em geral, no so previsveis. Surge ento a necessidade de se ajustar a estas funes tabeladas uma funo que seja uma "boa aproximao" para os valores tabelados e que permita extrapolar com certa margem de segurana. O problema do ajuste de curvas no caso em que temos uma tabela de pontos (x1, f(x1)), (x2, f(x2)), ..., (xm, f(xm)) com x1, x2, ..., xm, pertencentes a um intervalo [a, b], consiste em: escolhidas n funes g1(x), g2(x), ..., gn(x), contnuas em [a, b], obter n constantes a1, a2, ..., an tais que a funo j(x) = a1g1(x) + a2g2(x) + ... + angn(x) se aproxime ao mximo de f(x). Genericamente, no caso linear, estaremos supondo que os dados sero aproximados por uma funo do tipo: f(x) @ j(x) = a1g1(x) + a2g2(x) + ... + angn(x) onde as funes g1(x), g2(x), ..., gn(x) so preestabelecidas. Dizemos que este um modelo matemtico linear porque os coeficientes a determinar, a1, a2, ..., an, aparecem linearmente, embora as funes g1(x), g2(x), ..., gn(x) possam ser funes no lineares de x, como por exemplo, g1(x) = ex, g2(x) = (x2 + 2), g3(x) = sen(x), etc. A escolha das funes pode ser feita observando o grfico dos pontos conhecidos ou baseando-se em fundamentos tericos do experimento que nos forneceu a tabela. Portanto, dada uma tabela de pontos (x1, f(x1)), (x2, f(x2)), ..., (xm, f(xm)), deve-se, em primeiro lugar, colcoar estes pontos num grfico cartesiano. O grfico resultante chamado diagrama de disperso. Atravs deste diagrama pode-se visualizar a curva que melhor se ajusta aos dados. Exemplo: Seja a tabela: i xi f(xi) 1 1.0 2.1 2 0.75 1.3 3 0.5 1.1 4 0.25 0.2 5 0 0 6 0.25 0.5 7 0.5 0.6 8 0.75 1.5 9 1.0 2.2

O diagrama de disperso ser conforme mostrado abaixo:


2.5 2 1.5 1 0.5 0 -1.5 -1 -0.5 0 0.5 1 1.5

96

Portanto, natural escolher apenas uma funo g1(x) = x2 e procurar ento j(x) = ax2 (equao geral de uma parbola passando pela origem). Se considerarmos uma experincia onde foram medidos vrios valores de corrente eltrica que passa por uma resistncia submetida a vrias tenses, colocando os valores correspondentes de corrente e tenso em um grfico, poderemos ter:
V Vq

V0

i0

iq

neste caso, existe uma fundamentao terica relacionando a corrente com a tenso V = Ri, isto , V uma funo linear de i. Assim, g1(x) = i e j(i) = ag1(i) O problema determinar qual parbola com equao ax2 se ajusta melhor ao primeiro grfico e qual reta, passando pela origem, melhor se ajusta ao segundo grfico. No caso geral, escolhidas as funes g1(x), g2(x), ..., gn(x) temos de estabelecer o conceito de proximidade entre as funes j(x) e f(x) para obter as constantes a1, a2, ..., an. Uma maneira impor que o desvio (f(xi) j(xi)) seja mnimo, para i = 1, 2, ..., m. veremos a seguir o mtodo conhecido como Mtodo dos Quadrados Mnimos. 7.1 Mtodo dos Quadrados Mnimos O Mtodo dos Quadrados Mnimos provavelmente a tcnica de aproximao mais usada na anlise numrica e em problemas prticos. Isto se deve tanto sua simplicidade quanto ao fato de que em geral, buscamos aproximaes para dados que so medidas obtidas experimentalmente com um certo grau de incerteza. Veremos que o mtodo dos quadrados mnimos comtempla a possvel existncia de erros nos dados a serem aproximados. O critrio de aproximao consiste em minimizar os resduos. Chamaremos de f(x) a funo que ser convenientemente aproximada por outra funo j(x). No caso dos quadrados mnimos lineares, partimos da hiptese de que temos algumas informaes sobre o comportamento de j(x). Poderamos saber, por exemplo, que j(x) uma reta, ou seja: j(x) = a1 + a2x A questo encontrar qual esta reta, ou seja, quais so os valores de a1 e a2 que ajustam os pontos conhecidos. Num outro exemplo, vamos procurar valores para a1, a2 e a3 que tornam a funo: j(x) = a1 + a2x + a3x2 uma boa aproximao dos dados.

97

Sejam dados os pontos (x1, f(x1)), (x2, f(x2)), ..., (xm, f(xm)) e as n funes g1(x), g2(x), ..., gn(x) escolhidas de alguma forma. Considerando que o nmero de pontos m, tabelados, sempre maior ou igual a n o nmero de funes escolhidas ou o nmero de coeficientes ai a se determinar. Nosso objetivo encontrar os coeficientes a1, a2, ..., an tais que a funo j(x) = a1g1(x) + a2g2(x) + ... + angn(x) se aproxime ao mximo de f(x). Seja dk = f(xk) j(xk) o desvio em xk. O conceito de proximidade que dk seja mnimo para todo k = 1, 2, ..., m. No mtodo dos quadrados mnimos consiste em escolher os aj's de tal forma que a soma dos quadrados dos desvios seja mnima.
7.1.1 Ajuste Linear Simples

Dada uma tabela com m valores (xi, f(xi)), i = 1, 2, ..., m, queremos encontrar a reta que melhor ajusta esta tabela, no sentido dos quadrados mnimos. Como o ajuste ser feito por uma reta, tomaremos g1(x) = 1 e g2(x) = x., isto : f(x) @ j(x) = a1 + a2x O resduo para cada par (a1, a2) e para cada x ser r(a1, a2; x) = f(x) a1 a2x. Assim, pelo mtodo dos quadrados mnimos devemos procurar a1 e a2 que minimizam a funo: <r, r> (a1, a2) = < f(x) a1 a2x, f(x) a1 a2x> =

( f (x ) - a
i =1 i

- a 2 xi ) .
2

Do Clculo Diferencial sabe-se que a condio necessria do ponto crtico que as derivadas nele se anulem, esto : <r, r> = <r, r> = 0 a 1 a 2 ou ainda, procedidas as respectivas derivaes na expresso <r, r> temos:
- 2 ( f ( x i ) - a 1 - a 2 x i ) = 0
i =1 m

- 2 ( f ( xi ) - a 1 - a 2 xi )xi = 0
i =1

Aps o desenvolvimento, estas duas equaes formam um sistema linear com as incgnitas a1 e a2, que podem ser reescrito na forma:

i =1 m

f ( xi ) - a 1 - a 2 xi = 0
i =1 i =1 m m

xi f ( xi ) - a1 xi - a 2 xi2 = 0
i =1 i =1 i =1

ou ma1 + a2 xi =
i =1 m

f (x )
i =1 i

98

a1 xi + a2 xi2 =
i =1 i =1

x
i =1

f ( xi )

A soluo deste sistema pode ser obtida pelo mtodo da Eliminao de Gauss. Atravs das substituies retroativas obtm-se:

a1 =

i =1

m f ( xi ) - xi a 2 i =1 m

a2 =

m xi f ( x i ) - x i f ( x i )
i =1 i =1 i =1

m x - xi i =1 i =1
m m 2 i

Assim, a soluo do sistema de equaes lineares a1 e a2 dados pelas equaes acima, e com estes valores os resduos apresentam o seu menor valor. Como este mtodo consiste em achar o mnimo de uma funo quadrtica, ele conhecido como mtodo dos mnimos quadrados. Exemplo 1: Ajustar os dados da tabela abaixo a uma reta de modo que o resduo seja o menor possvel. i xi f(xi) 1 1.3 2.0 2 3.4 5.2 3 5.1 3.8 4 6.8 6.1 5 8.0 5.8

Usando os valores da tabela temos: a) Clculo dos somatrios: m=5

x
i =1

= (1.3) + (3.4) + (5.1) + (6.8) + (8.0) = 24.6

x
i =1 m

2 i

= (1.3)2 + (3.4) 2 + (5.1) 2 + (6.8) 2 + (8.0) 2 = 149.5

f ( x ) = (2.0) + (5.2) + (3.8) + (6.1) + (5.8) = 22.9


i =1 i

x
i =1

f ( xi ) = (1.3)(2.0) + (3.4)(5.2) + (5.1)(3.8) + (6.8)(6.1) + (8.0)(5.8) = 127.54

b) Resoluo do sistema: Assim, os valores de a1 e a2 da melhor reta (no sentido dos quadrados mnimos) so obtidos pelo sistema:

5a 1 + 24.6a 2 = 22.9 24.6a 1 + 149.5a 2 = 127.54


Resolvendo o sistema, obtem-se a1 = 2.0098 e a2 = 0.5224.

99

Usando as frmulas de a1 e a2 temos:

a1 =

f ( x ) - x a
i =1 i i =1 i

m
m m m

22.9 - (24.6)(0.5224) 22.9 - 12.851 = = 2,0098 5 5

a2 =

m xi f ( x i ) - x i f ( x i )
i =1 i =1 i =1

m xi2 - xi i =1 i =1
m m

(5)(127.54) - (24.6)(22.9) 637.7 - 563.34 74.36 = = = 0.5224 2 747.5 - 605.16 142.34 (5)(149.5) - (24.6)

Ento, a melhor reta que passa pelos pontos, usando a equao, : j(x) = 2.0098 + 0.5224x. c) Clculo do quadrado dos resduos: Os valores de j(xi) e os respectivos resduos esto na tabela abaixo: i xi f(xi) j(xi) r(xi) 1 1.3 2.0 2.68892 0.68892 2 3.4 5.2 3.78596 1.41404 3 5.1 3.8 4.67404 0.87404 4 6.8 6.1 5.56212 0.53788 5 8.0 5.8 6.189 0.389

Neste exemplo, a soma dos quadrados dos resduos :

r
i =1

( xi ) = 3.6787

Exerccio 1: Considere o ajuste da tabela abaixo por uma reta: i xi f(xi) 1 2 3 4 5 0 0.25 0.5 0.75 1.00 1.0000 1.2840 1.6487 2.1170 2.7183

Resposta: j(x) = 0.89968 + 1,70784x.

r
i =1

( xi ) = 0.039198
Ajuste Polinomial

7.1.2

O ajuste linear simples um caso especial do ajuste polinomial. A equao geral do ajuste polinomial dada por: j(x) = a1 + a2x + a3x2 + ... + an+1xn e as equaes normais ficam:

100

xi
i

x x
i =1 i =1 m

x x
i =1 i =1 m

i =1 m

xi2 x x
i =1 i =1 m i =1 m 3 i

L L L M

2 i 3 i

2 i

4 i

M
n i

M
n +1 i

x
i =1

x
i =1

x
i =1

n+2 i

a 1 m xin f ( xi ) i =1 i m=1 m n +1 a 2 x f (x ) xi i i i =1 i =1 m m xin + 2 .a 3 = xi2 f ( xi ) i =1 i =1 M M M m m 2n n xi a xi f ( xi ) i =1 n i =1


m

Exemplo 1: Ajustar os pontos da tabela abaixo equao j(x) = a1 + a2x + a3x2. I xi f(xi) 1 2 30.5 2 1.5 20.2 3 0 3.3 4 1 8.9 5 2.2 16.8 6 3.1 21.4

O vetor a a soluo do sistema acima, que, neste caso, torna-se:

m m x i i =1 m xi2 i =1
a) Clculo dos somatrios: m=6

xi x
i =1 m i =1 i =1 m 2 i 3 i

m xi2 a 1 f ( xi ) i =1 i =1 m m 3 x f (x ) xi .a 2 = i i i =1 i =1 m m 2 4 xi a 3 xi f ( xi ) i =1 i =1
m

x
i =1

= (2) + (1.5) + (0) + (1) + (2.2) + (3.1) = 2.8

x
i =1

2 i

= (2)2 + (1.5)2 + (0)2 + (1)2 + (2.2)2 + (3.1)2 = 21.7

x
i =1

3 i

= (2)3 + (1.5)3 + (0)3 + (1)3 + (2.2)3 + (3.1)3 = 30.064

x
i =1 m

4 i

= (2)4 + (1.5)4 + (0)4 + (1)4 + (2.2)4 + (3.1)4 = 137.8402

f ( x ) = (30.5) + (20.2) + (3.3) + (8.9) + (16.8) + (21.4) = 6.9


i =1 i

x
i =1

f ( xi ) = (2)(30.5) + (1.5)(20.2) + (0)(3.3) + (1)(8.9) + (2.2)(16.8) + (3.1)(21.4) = 203.5

101

x
i =1

2 i

f ( xi ) = (2)2(30.5) + (1.5)2(20.2) + (0)2(3.3) + (1)2(8.9) + (2.2)2(16.8) + (3.1)2(21.4) =

128.416 b) Resoluo do sistema: O sistema :

2.8 21.7 a 1 - 6.9 6 2.8 21.7 30.064 .a 2 = 203.5 21.7 30.064 137.8402 a 3 128.416
A soluo deste sistema : a1 = 2.018 a2 = 11.33 a3 = 1.222 Portanto, j(x) = 2.018 + 11.33x 1.222x2. c) Clculo do quadrado dos resduos: i xi f(xi) j(xi) r(xi) 1 2 30.5 29.566 0.934 2 1.5 20.2 21.7625 1.5625 3 0 3.3 2.018 1.282 4 1 8.9 8.09 0.81 5 6 2.2 3.1 16.8 21.4 16.99352 21.36158 0.19352 0.03842

A soma dos quadrados dos resduos :

r
i =1

( xi ) = 5.652312337

Exemplo 2: Considerando a funo tabelada abaixo i xi f(xi) 1 1.0 2.05 2 0.75 1.153 3 0.6 0.45 4 0.5 0.4 5 0.3 0.5 6 0 0 7 0.2 0.2 8 0.4 0.6 9 0.5 0.512 10 0.7 1.2 11 1 2.05

a partir do diagrama de disperso, deve ser ajustada por uma parbola passando pela origem, ou seja, f(x) = j(x) = a3x2 (neste caso temos apenas uma funo g(x) = x2). Temos ento o sistema abaixo:

m m x i i =1 m xi2 i =1

xi x
i =1 m i =1 i =1 m 2 i 3 i

m xi2 0 f ( xi ) i =1 i =1 m m 3 x f (x ) xi . 0 = i i i =1 i =1 m m 2 4 xi a 3 xi f ( xi ) i =1 i =1
m

102

ou seja,

xi2 a3 = x x
i =1 i =1 m i =1 m 3 i

f (x ) x x
i =1 i =1 m i =1 m i i

a3 = a3 =

f ( xi ) f ( xi )

4 i

2 i

Tomando a ltima equao temos: m = 11

x
i =1

4 i

= (1) + (0.3164) + (0.1296) + (0.0625) + (0.0081) + (0) + (0.0016) + (0.0256) + (0.0625) +

(0.2401) + (1) = 2.8464

x
i =1

2 i

f ( xi ) = (2.05) + (0.6486) + (0.162) + (0.1) + (0.145) + (0) + (0.008) + (0.096) + (0.128) + (0.588)

+ (2.05) = 5.8756 Assim, a nossa equao 2.8464a3 = 5.8756 a3 =


5.8756 = 2.0642 2.8464

Portanto, j(x) = 2.0642x2 a parbola que melhor se aproxima, no sentido dos quadrados mnimos, da funo tabelada. Exerccio 1: Ajustar os pontos da tabela abaixo equao j(x) = a1 + a2x + a3x2. i xi f(xi) 1 0.75 1.3 2 0.5 1.1 3 0.25 0.2 4 0 0 5 0.25 0.5 6 0.5 0.6 7 0.75 1.5

Resposta: j(x) = 0.176190476 - 0.024285714x + 2.2666666x2.

r
i =1

( xi ) = 0.25095238095238

103

8 Integrao Numrica
8.1 Introduo Do ponto de vista analtico existem diversas regras, que podem ser utilizadas na prtica. Contudo, embora tenhamos resultados bsicos e importantes para as tcnicas de integrao analtica, como o Teorema Fundamental do Clculo Integral, nem sempre podemos resolver todos os casos. No podemos sequer dizer que para uma funo simples a primitiva tambm ser simples, pois f(x) = 1/x, que uma funo algbrica racional, possui uma primitiva que no o ; a sua primitiva a funo ln(x) que transcendente. Quando no conseguirmos calcular a integral por mtodos analticos, mecnicos ou grficos, ento podemos recorrer ao mtodo algortmico. Em algumas situaes, s podemos usar o mtodo numrico. Por exemplo, se no possuirmos a expresso analtica de f, no podemos, em hiptese nenhuma, usar outro mtodo que no o numrico. A integrao numrica pode trazer timos resultados quando outros mtodos falham. A soluo numrica de uma integral simples comumente chamada de quadratura. Sabemos do Clculo Diferencial e Integral que se f(x) uma funo contnua em [a, b], ento esta funo tem uma primitiva neste intervalo, ou seja, existe F(x) tal que f(x) dx = F(x) + C, com F(x) = f(x); demostra-se que, no intervalo [a, b],

f ( x )dx = F (b) - F (a )
a

tais mtodos, embora variados, no se aplicam a alguns tipos de integrandos f(x), no sendo conhecidas suas primitivas F(x); para tais casos, e para aqueles em que a obteno da primitiva, embora vivel, muito trabalhosa, podem-se empregar mtodos para o clculo do valor numrico aproximado de

f ( x )dx .
a

A aplicao de tais mtodos obviamente necessria no caso em que o valor de f(x) conhecido apenas em alguns pontos, num intervalo [a, b], ou atravs de um grfico. Lembrando que

f ( x )dx = lim f ( xi )Dxi (Riemann), onde xi [xi-1, xi] partes de [a, b], com
n i =1

x0 = a, xn = b e Dxi = | xi xi-1 |, para n suficientemente grande e Dxi suficientemente pequeno, representa uma boa aproximao para

f ( x )Dxi
i i =1

f ( x )dx .
a

Convm lembrar, tambm, que, sendo f(x) no negativa em [a, b],

f ( x )dx
a

representa,

numericamente, a rea da figura delimitada por y = 0, x = a, x = b e y = f(x), como mostra a figura abaixo:

104
y

y=f(x)

A=

f ( x )dx
a

Quando f(x) no for somente positiva, pode-se considerar f(x) em mdulo, para o clculo da rea, conforme figura abaixo:
y

y=f(x)

A c 0 a A b x

A=

f ( x ) + | f ( x )| dx
a c

ou

A = | f ( x )| dx
a

A idia bsica da integrao numrica a substituio da funo f(x) por um polinmio que a aproxime razoavelmente no intervalo [a, b]. Assim o problema fica resolvido pela integrao de polinmios, o que trivial de se fazer. Com este raciocnio podemos deduzir frmulas para aproximar

f ( x )dx .
a

As frmulas que deduziremos tero a expresso abaixo:

f ( x )dx A0 f(x0) + A1 f(x1) + ... + An f(xn), xi [a, b],


a

i = 0, 1, ..., n.

8.1.1

Frmulas de Newton-Cotes

Nas frmulas de Newton-Cotes a idia de polinmio que aproxime f(x) razoavelmente que este polinmio interpole f(x) em pontos de [a, b] igualmente espaados. Consideremos a partio do intervalo [a, b] em subintervalos, de comprimento h, [xi, xi+1], i = 0, 1, ..., n-1. Assim xi+1 - xi = h = (b - a)/n. As frmulas fechadas de Newton-Cotes so frmulas de integrao do tipo xo = a, xn = b e
xn

f ( x )dx =

x0

f ( x )dx @ A0 f(x0) + A1 f(x1) + ... + An f(xn) =

Ai f ( xi) ,
i =0

sendo os coeficientes Ai

determinados de acordo com o grau do polinmio aproximador. Analisaremos a seguir algumas das frmulas fechadas de Newton-Cotes como regra dos retngulos, regra dos trapzios e regra de Simpson.

105

Existem ainda as frmulas abertas de Newton-Cotes, construdas de maneira anloga s fechadas, com xo e xn (a, b). 8.2 Regra dos Retngulos Seja o intervalo finito [a, b] no eixo x que particionado em n subintervalos igualmente espaados [xi, xi+1], com x0 = a e xn = b e hi = xi+1 - xi. Seja f uma funo contnua ou simplesmente Riemann integrvel, cuja integral no conhecida. Nosso objetivo calcular

f ( x )dx
a

pelo mtodo da rea dos retngulos. Tais retngulos podem

ser considerados de diversas maneiras, conforme mostra as figuras abaixo:

R1

R2

R3

R1

R2

R3

R1

R2

R3

(a)

(b)

(c)

No primeiro caso, figura (a), a rea de cada retngulo f(xi) hi; no segundo caso f(xi+1)hi e no ltimo f((xi + xi+1)/2) hi. Em qualquer caso a soma das reas dos retngulos ser uma aproximao para

f ( x )dx .
a

Subdividindo o intervalo [a, b] em n subintervalos, pela regra dos retngulos, que ser indicado por R(h), dada pelas frmulas: R(hn) = R(hn) =
i =0 n -1 i =0

f ( x ).hi
i i +1

n -1

, ou , ou

f (x

).hi

R(hn) =

f
i =0

n -1

xi + xi +1 .hi 2

conforme for tomado o caso (a) ou (b) ou (c) da figura acima. Como hi constante, temos h =
b- a . Ento : n

R(hn) = h f ( xi )
i =0

n -1

ou R(hn) = h f ( xi +1 )
i =0 n -1

ou

106

x + xi +1 R(hn) = h f i 2 i =0
n -1

Em geral, quando utilizarmos a regra dos retngulos iremos efetuar os clculos atravs do caso (c), n -1 x + xi +1 ou seja, R(hn) = h f ( xi ) , sendo xi = i . 2 i =0
8.2.1 Exemplos

Exemplo 1: Calcular

1+ x
0

dx . Considere n = 10 e 4 casas decimais com arredondamento.

a) Nmero de intervalos: n = 10 b) Tamanho do intervalo b- a h= = (1 - 0) / 10 = 0.1 n c) iteraes: i 0 1 2 3 4 5 6 7 8 9 S


xi (0 + 0.1) = 0.05 (0.1 + 0.2) = 0.15 (0.2 + 0.3) = 0.25 (0.3 + 0.4) = 0.35 (0.4 + 0.5) = 0.45 (0.5 + 0.6) = 0.55 (0.6 + 0.7) = 0.65 (0.7 + 0.8) = 0.75 (0.8 + 0.9) = 0.85 (0.9 + 1) = 0.95 -

f( xi ) 0.0499 0.1467 0.2353 0.3118 0.3742 0.4223 0.4569 0.4800 0.4935 0.4993 3.4699

R(0.1) = h f ( x i ) = (0.1).(3.4699) = 0.34699 d) mtodo analtico: 1 x 1 1 1 dx = ln(1 + x 2) = (ln(2) - ln(1)) = 0,34657 . 1 + x2 2 0 2 0 Exemplo 2: Quando no for possvel conhecer f(xi) pode-se usar f( xi ) = (f(xi-1) + f(xi))/2, para o clculo anterior, ter-se-ia: a) Nmero de intervalos: n = 10 b) Tamanho do intervalo: b- a h= = (1 - 0) / 10 = 0.1 n c) iteraes:

107

i -1 0 1 2 3 4 5 6 7 8 9 S

f(xi) 0 0.0990 0.1923 0.2752 0.3448 0.4000 0.4412 0.4698 0.4878 0.4972 0.5000 -

f( xi ) 0.0495 0.1457 0.2338 0.3100 0.3724 0.4206 0.4555 0.4788 0.4925 0.4986 3.4574

R(0.1) = h f ( xi ) = (0.1).(3.4574) = 0.34574 Exerccio 1: Calcular

-1

x dx , para n = 8.
3

R(0.25) = h f ( xi ) = (0.25).(0.0000) = 0.0000 mtodo analtico:


1 1 x4 3 dx = = - = 0. 1 x 4 -1 4 4
1
1

8.3

Regra dos Trapzios Seja o intervalo finito [a, b] no eixo x que particionado em n subintervalos igualmente espaados [xi, xi+1], com x0 = a e xn = b e hi = xi+1 - xi. Seja f uma funo contnua ou simplesmente Riemann integrvel, cuja integral no conhecida. Numericamente: A regra dos trapzios obtida aproximando-se f por um polinmio interpolador do 1 grau (ao invs de zero, como na regra dos retngulos). Se usarmos a frmula de Lagrange para expressar o polinmio p1(x) que interpola f(x) em x0 e x1 temos:

f ( x)dx

x1 ( x - x0 ) ( x - x1 ) p1 ( x)dx = f ( x0 ) + f ( x1 )dx = IT x0 h a= x0 - h

b = x1

Assim, IT =

h [ f ( x0 ) + f ( x1 )] , que a rea do trapzio de altura h = x1 - x0 e bases f(x0) e f(x1). 2

Geometricamente: Podemos ver, conforme mostra a figura abaixo:


f(xi) f(xi+1) f(x) P 1(x)

xi

xi+1

Interpretao geomtrica da regra dos trapzios

108

A rea de cada trapzio (f(xi) + f(xi+1))/2 hi. A soma destas reas ser uma aproximao para

f ( x )dx .
a

8.3.1

Regra do Trapzio Repetida

Dividindo o intervalo [a, b] em n subintervalos, pela regra dos trapzios, o resultado, que ser indicado por T(h), dada pela frmula:
T (hn ) = (
i =0 n -1

f ( xi ) + f ( xi +1 ) ).hi 2

Como hi constante, temos h =

b- a . Ento : n
n -1 i =0

T (hn ) = h (
T (hn ) =
8.3.2 Exemplos
3, 6

f ( xi ) + f ( xi +1 ) ) 2 ou

h [ f ( x0 ) + 2 f ( x1 ) + 2 f ( x2 ) + ... + 2 f ( xn-1 ) + f ( xn )] 2

Exemplo 1: Calcular

3, 0

x dx

pela regra dos trapzios e, depois, analiticamente. Considere n = 6 e 4 casas

decimais com arredondamento. a) Nmero de intervalos: n=6 b) Tamanho do intervalo: b- a h= = (3.6 - 3.0) / 6 = 0.1 n c) iteraes: i 0 1 2 3 4 5 6 S
T ( h6 ) =

xi 3.0 3.1 3.2 3.3 3.4 3.5 3.6 -

f(xi) 0.3333 0.3226 0.3125 0.3030 0.2941 0.2857 0.2778 -

ci 1 2 2 2 2 2 1 -

ci. f(xi) 0.3333 0.6452 0.6250 0.6060 0.5882 0.5714 0.2778 3.6469

h [ f ( x0 ) + 2 f ( x1 ) + 2 f ( x2 ) + ... + 2 f ( x5 ) + f ( x6 )] 2 0 .1 T(0.1) = (3.6469) = 0,182345 2

109

d) mtodo analtico: 3, 6 3, 6 1 dx = ln(x)] = ln(3.6) - ln(3.0) = 0.18232156 x 3, 0 3, 0 Exerccio 1: Calcular (2 x + 3)dx pela regra dos trapzios e, depois, analiticamente. Considere n = 1 e 4
0 1

casas decimais com arredondamento. T(1) =


1 (8) = 4 2

mtodo analtico:

(2 x + 3)dx = x
0

+ 3x

1 0

= 1 + 3 - (0 + 0) = 4

Como a regra dos trapzios aproxima por uma reta e a funo integranda f(x) = 2x + 3 (uma reta), o valor da integral obtido exato. Exerccio 2: Calcular depois, analiticamente. T(1) =
1 (1.3863) = 0.6932 2 0 .5 (2.6027) = 0.6507 2 0.25 (5.1191) = 0,6399 2 0.125 (10.1951) = 0,6372 2

x ln( x)dx
1

pela regra dos trapzios, considerando diversos valores para n e,

T(0.5) =

T(0.25) =

T(0.125) =

mtodo analtico: 8.4

x ln( x )dx =
1

2 2 2 2 x ln( x ) x 2 2 x ln( x ) - x 2 - ] = ]1 = = 0.63629436 2 4 1 4

Regra de Simpson A regra de Simpson obtida aproximando-se f por um polinmio interpolador de 2 grau, ou seja, uma parbola. Numericamente: Novamente podemos usar a frmula de Lagrange para estabelecer a frmula de integrao resultante da aproximao de f(x) por um polinmio de grau 2. Seja p2(x) o polinmio que interpola f(x) nos pontos x0 = a, x1 = x0 + h e x2 = x0 + 2h = b:
p 2( x ) = ( x - x1)( x - x 2) ( x - x 0)( x - x 2) ( x - x 0)( x - x1) f ( x 0) + f ( x1) + f ( x 2) ( - h)( -2 h) ( h)( - h) (2 h)( h)

Assim,

110

f ( x )dx = x f ( x )dx x p ( x )dx =


2 a
0 0

x2

x2

f ( x 0) f ( x1) f ( x 2) ( x - x1)( x - x 2)dx - 2 ( x - x 0)( x - x 2)dx + ( x - x 0)( x - x1)dx 2 2 h x0 2 h2 x 0 h x0


Resolvendo as integrais obtemos a regra de Simpson:
x2
0

x2

x2

x2

f ( x )dx 3 [ f ( x ) + 4 f ( x ) + f ( x )] = Is x
0 1 2

Geometricamente: Podemos ver, conforme mostra a figura abaixo:


p2(x)

x0=a h

x1 h

x2=b

Interpretao geomtrica da regra de Simpson simples


8.4.1 Regra de Simpson Repetida

Aplicando a regra de Simpson repetidas vezes no intervalo [a, b] = [x0, xn]. Vamos supor que x0, x1, ..., xn so pontos igualmente espaados, h = xi+1 - xi, e n par (isto condio necessria pois cada parbola utilizar trs pontos consecutivos). Assim teremos:

f ( x )dx @
a

S ( hn ) =

h [ f ( x0 ) + 4 f ( x1 ) + 2 f ( x2 ) + 4 f ( x3 ) + 2 f ( x4 ) + ... + 4 f ( x n-1 ) + f ( xn )] 3

8.4.2

Exemplos

Exemplo 1: Calcular uma aproximao para a) Nmero de intervalos: n = 10 b) Tamanho do intervalo: b- a h= = (1 - 0) / 10 = 0.1 n c) iteraes: i 0 1 xi 0.0 0.1

e dx usando a regra de Simpson com n = 10.


x 0

f(xi) 1 1.1052

ci 1 4

ci. f(xi) 1 4.4208

111

2 3 4 5 6 7 8 9 10 S
S ( h10) =

0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 -

1.2214 1.3499 1.4918 1.6487 1.8221 2.0138 2.2255 2.4596 2.7183 -

2 4 2 4 2 4 2 4 1 -

2.4428 5.3996 2.9836 6.5948 3.6442 8.0552 4.4510 9.8384 2.7183 51.5487

0,1 0,0 [ e + 4 e0,1 + 2 e0, 2 + 4 e0, 3 +...+2 e0,8 + 4 e0, 9 + e1,0] = 1,71829 3

d) mtodo analtico:

e dx = e ] = e - e
x
x 1 1 0

= 2,7182818 - 1 = 1,7182818
1

Exerccio 1: Calcular o valor de p, dado pela expresso 4


S ( h10) =

1 dx , considerando n = 10. 1+ x2 0

0,1 [ f ( x 0) + 4 f ( x1) + 2 f ( x 2) + 4 f ( x 3) +...+2 f ( x 8) + 4 f ( x 9) + f ( x10)] = 3,14157 3

mtodo analtico:

4
2

1 1 dx = 4( arctg (x)] ) = 4.(arctg(1) - arctg(0)) = 3.14159265 2 0 0 1+ x

Exerccio 2: Calcular analiticamente. S(0.5) =

x ln( x )dx
1

pela regra de Simpson, considerando diversos valores para n e, depois,

0 .5 (3.8191) = 0,6365 3 0.25 (7.6355) = 0.63629167 3 0.125 (15.2711) = 0,63629583 3

S(0.25) =

S(0.25) =

mtodo analtico:

x ln( x )dx =
1

2 2 2 2 x ln( x ) x 2 2 x ln( x ) - x 2 - ] = ]1 = = 0.63629436 2 4 1 4

Exerccio 3: Calcular uma aproximao para

x
0

+ 1 dx usando Simpson com n = 2.

S (0.5) =

0 .5 4 [1 + 4(1.25) + 2] = = 1.33333... 3 3

112

mtodo analtico:

x2 + 1 dx =
0

3 3 3 1 4 x 1 0 + x ] = ( + 1) - ( + 0) = = 1.33333... 0 3 3 3 3

Como a regra de Simpson se aproxima por uma parbola e, sendo f(x) = x2 + 1 uma parbola, o valor da integral obtido exato independente do nmero de subintervalos utilizado no clculo.

9 Soluo Numrica de Equaes Diferenciais Ordinrias


9.1 Introduo A equao diferencial definida como uma equao que envolve uma funo e algumas de suas derivadas, da forma: y ( n ) ( x) = f [ x, y ' ( x), y ' ' ( x),......., y ( n -1) ( x)] Na engenharia a utilizao de equaes diferenciais tem como objetivo descrever o comportamento dinmico de sistemas fsicos. Uma equao diferencial pode descrever o comportamento dinmico do circuito mostrado na figura:

1.1.1.1.2

1.1.1.1.1

S
1.1.1.1.3

V(t)=sin(3,5t)

i(t)

Ao fechar-se a chave S, pode-se analisar o comportamento dinmico do circuito a partir da Lei de Kirchoff para tenses: di (t ) 1 V (t ) = Ri (t ) + L + i (t )dt dt C Derivando a equao: dV (t ) di (t ) d 2 i (t ) 1 =R +L + i (t ) dt dt C dt 2 Substituindo a expresso da tenso e rearranjando a equao, tem-se: d 2 i (t ) di (t ) 1 1 L +R + i (t ) = cos(3,5t ) dt C 3,5 dt 2 9.2 Tipos de Equaes Diferenciais

9.2.1

Equaes Diferenciais Ordinrias

So equaes diferenciais que possuem apenas uma varivel independente. Exemplos:

113

dy = x+ y dx dy = x2 + y 2 dt

y funo de x; x a nica varivel independente. y e x so funo de t; t a nica varivel independente.

d2y dt 2

+ (1 - y 2 )

dy +y=0 dt

y funo de t; t a nica varivel independente.

9.2.2

Equaes Diferenciais Parciais

Quando a equao diferencial envolve mais de uma varivel independente. Exemplo:

2u x 2

2u y 2

=0
u funo de x e y; x e y so variveis independentes.

9.3

Soluo de Equaes Diferenciais

Determinadas equaes diferenciais podem ser solucionadas de forma simblica, cuja soluo uma expresso literal. Isto nem sempre possvel. Neste caso, a soluo a utilizao de integrao numrica, como ser visto na sequncia. Exemplo :
dy =y dx

dy = dx y

dy = dx y ln( y ) + c1 = x + c 2

y ( x) = e x + c = ae x

Observe que a soluo da equao diferencial resulta numa famlia de curvas que dependem da constante a, como pode ser visto na figura abaixo. Uma soluo particular pode ser obtida a partir das condies iniciais do problema. A especificao de uma condio inicial define uma soluo entre a famlia de curvas.

114
45 40 35 30 25 20 15 10 5 0 -1 x -0.5 0 0.5 1 1.5 y (x)

2 Suponha no exemplo dado que o problema tem como soluo inicial y (0) = 1 . Portanto:

y ( x) = ae x ae 0 = 1 a = 1
x A soluo y ( x) = 1 e a soluo para a condio inicial dada.

Quando as condies iniciais esto associadas a um nico valor da varivel independente, define-se como um problema de valor inicial (PVI). Quando as condies iniciais esto associadas mais de um valor da varivel independente, define-se como um problema de valor de contorno (PVC). Normalmente, problemas tendo como varivel independente o tempo, so problemas de valor inicial.

9.4

Ordem de uma Equao Diferencial Ordinria

A ordem da equao determinada pela derivada de maior ordem. Seja o exemplo de uma equao diferencial ordinria de ordem n:
y ( n ) ( x) = f [ x, y ' ( x), y ' ' ( x),......., y ( n -1) ( x)]

9.5

Reduo de Equaes Diferenciais Ordinrias

Uma equao ordinria de ordem superior pode ser reduzido a um sistema de equaes diferenciais de primeira ordem. A reduo feita a partir da definio de variveis auxiliares. Seja a equao diferencial de ordem m com tambm m condies iniciais:
y ( m) ( x) = f [ x, y ( x), y ' ( x), y ' ' ( x),......., y ( m-1) ( x)] y ( x 0 ) = c1

y ' ( x0 ) = c2 M y ( m -1) ( x 0 ) = c m

Esta equao pode ser transformada em um sistema de equaes diferenciais com m equaes, como descreve-se abaixo:

115

z1 ( x ) = y ( x )
' z1 ( x ) = y ' ( x ) = z 2 ( x ) ' z 2 ( x ) = y " ( x ) = z 3 ( x) ' z 3 ( x ) = y ''' ( x ) = z 4 ( x )

M
' z m -1 ( x) = y ( m-1) ( x) = z m ( x) ' z m ( x) = y ( m ) ( x) = f [ x, y ( x), y ' ( x), y ' ' ( x),......., y ( m -1) ( x)]

Tem-se portanto um sistema com m equaes diferenciais de primeira ordem:


' z1 ( x) = y ' ( x) = z 2 ( x) = f 1 ( x, z1 , z 2 ,..., z m ) ' " z 2 ( x) = y ( x) = z 3 ( x) = f 2 ( x, z1 , z 2 ,..., z m ) ' '' ' z 3 ( x) = y ( x) = z 4 ( x) = f 3 ( x, z1 , z 2 ,..., z m ) M z ' ( x) = y ( m -1) ( x) = z ( x) = f ( x, z , z ,..., z ) m -1 m m -1 1 2 m z ' ( x) = y ( m) ( x) = f [ x, y ' ( x), y ' ' ( x),......., y ( m -1) ( x)] = f ( x, z , z ,..., z ) m m 1 2 m

Com as condies iniciais dadas por: z1 ( x 0 ) = y ( x 0 ) = c1


z 2 ( x0 ) = y ' ( x0 ) = c2 z 3 ( x0 ) = y " ( x0 ) = c3 z 4 ( x 0 ) = y '' ' ( x 0 ) = c 4 M z m ( x 0 ) = y ( m -1) ( x 0 ) = c m

Este artifcio deve sempre ser utilizado quando da soluo de equaes diferenciais por mtodos numricos, pois s pode-se integrar numericamente equaes de primeira ordem. Observe que o sistema de equaes modela o comportamento dinmico do problema. Exemplo 8.2: Reduzir as Equaes Diferenciais Ordinrias (EDOs) a sistemas de EDOs de primeira ordem.
'' ' ' a) y ( x) = 3 y ( x) - 2 y ( x) , y (0) = -1 e y (0) = 0

z1 ( x ) = y ( x )
' z1 ( x ) = y ' ( x ) = z 2 ( x ) ' z 2 ( x ) = y " ( x ) = 3 y ' ( x ) - 2 y = 3 z 2 - 2 z1 Resultando no sistema:

116

= z 2 ( x ) = f 1 ( x, z 1 , z 2 ) ' z 2 ( x ) = 3 z 2 - 2 z 1 = f 2 ( x, z 1 , z 2 ) z 1 ( 0) = - 1 z 2 ( 0) = 0
' z1 ( x )
'' ' '' ' 2 2 2 b) y + ( x + 1) y + cos( x) y - ( x - 1) y = x + y sin( x + y ) y (0) = 1,1 y ' (0) = 2,2 y '' (0) = 3,3

Reescrevendo a equao, tem-se: y ''' = -( x + 1) y '' - cos( x) y ' + ( x 2 - 1) y + x 2 + y 2 sin( x + y )

z1 = y
' z1 = y ' = z 2 ' z 2 = y " = z3 ' z 3 ( x) = y ''' ( x) = -( x + 1) z 3 - cos( x) z 2 + ( x 2 - 1) z1 + x 2 + z1 2 sin( x + z1 )

Resultando no sistema: ' z 1 = y ' = z 2 = f 1 ( x, z 1 , z 2 , z 3 ) ' " z 2 = y = z 3 = f 2 ( x, z 1 , z 2 , z 3 ) 2 ' ' '' 2 2 z 3 ( x) = y ( x) = -( x + 1) z 3 - cos( x) z 2 + ( x - 1) z1 + x + z1 sin( x + z1 ) = f 3 ( x, z1 , z 2 , z 3 ) z1 (0) = 1,1 z 2 (0) = 2,2 z 3 (0) = 3,3 9.6 Soluo Numrica de Equaes Diferenciais Ordinrias Problema Inicial de Valor

Considere a equao diferencial ordinria:


y ' = f ( x, y ) com condio inicial y ( x 0 ) = y 0

A soluo da equao diferencial acima uma funo do tipo y (x) , conforme ilustrada abaixo:

y (x)

y(xn) X y(x3) y(x0) X y(x1) X y(x2) X X

x x0 x1 x2 x3 .... xn

117

Com a soluo numrica de uma equao diferencial, obtm-se uma aproximao para os valores y ( x 0 ), y ( x1 ), y ( x 2 ), y ( x 3 ),......, y ( x n ) , ou seja: x y

x1 y1

x2 y2

x3 y3

......... .........

xn yn

y ( x j ), j = 1,2,..., n Considera-se que a notao indica a soluo exata da EDO nos pontos y , j = 1,2,...., n x1 , x 2 , x 3 ,..., x n ,e j indica a soluo aproximada obtida por mtodo numrico.

Na soluo numrica no se determina a expresso literal da funo y (x) , mas aproximaes para pontos da funo y (x) . Com os valores aproximados obtidos, pode-se plotar a curva. Em aplicaes da engenharia, normalmente estuda-se o comportamento dinmico de determinadas variveis, portanto necessita-se a evoluo das variveis em funo da varivel independente. Com a curva plotada, pode-se estudar esta evoluo.
9.6.1 Mtodo de Euler

Seja a soluo de uma equao diferencial do tipo:


dy = f ( x, y ) dx com valor inicial y ( x 0 ) = y 0

A soluo desta equao resulta numa funo y (x) , como mostrado no grfico:

y(x)

y (x)

y ( x1 )
Reta Tangente no ponto x

y0

y1

x0

x1

h = x1 - x 0 A partir da equao diferencial, pode-se observar que a derivada da funo y (x) em um ponto qualquer x dada por f(x,y). Conhecendo-se a derivada da funo y (x) no ponto x 0 , ou seja [ f ( x 0 , y 0 ) ] , pode-se

estimar o valor da funo y (x) no ponto x1 por meio de relaes trigonomtricas:

118

h = x1 - x 0

Dy = y1 - y 0

tg (a ) = f ( x 0 , y 0 ) =

y1 - y 0 x1 - x 0

f ( x0 , y 0 ) =

y1 - y 0 h

y1 = y 0 + hf ( x 0 , y 0 )

Esta relao pode ser generalizada para um ponto i qualquer, resultando na forma de recorrncia para soluo de equaes diferenciais pelo Mtodo de Euler: y i = y i -1 + hf ( x i -1 , y i -1 )

Exemplo: Achar aproximaes para a soluo o problema de valor inicial, na malha [0,1] e h=0,1, dado por: y ' = x - y + 2 para y (0) = 2 A soluo desta equao resulta em uma funo y (x) , como mostrada na figura abaixo.

3 y (x) 2.5

1.5

0.5 x 0 0 0.2 0.4 0.6 0.8 1

Resolvendo esta equao atravs do Mtodo de Euler, iremos determinar aproximaes para pontos de y (x) .
x0 = 0 y0 = 2

119

y 2 = y1 + f ( x1 , y1 )h = 2 + 0,1 (0,1 - 2 + 2) = 2,01 x 2 = x1 + h = 0,1 + 0,1 = 0,2 y 2 = 2,01

y 3 = y 2 + f ( x 2 , y 2 )h = 2,01 + 0,1 (0,2 - 2,01 + 2) = 2,029 x 3 = x 2 + h = 0,2 + 0,1 = 0,3 y 3 = 2,029

y 4 = y 3 + f ( x 3 , y 3 )h = 2,029 + 0,1 (0,3 - 2,029 + 2) = 2,0561 x 4 = x 3 + h = 0,3 + 0,1 = 0,4 y 4 = 2,0561

y 5 = y 4 + f ( x 4 , y 4 )h = 2,0561 + 0,1 (0,4 - 2,0561 + 2) = 2,09049

Na figura abaixo est plotada a soluo numrica e a soluo exata, observe que para efeitos prticos podemos observar o comportamento dinmico da varivel, que o qu normalmente interessa em aplicaes da engenharia.

3 soluo numrica soluo exata 2.5

1.5

0.5

0.2

0.4

0.6

0.8

Na

tabela abaixo, mostra-se os valores calculados comparados aos valores exatos:


y j - y( x j )

j 0 1 2 3 4 5 6 7 8 9 10

xj

yj

y( x j )

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0

2,0000000 2,0000000 2,0100000 2,0290000 2,0561000 2,0904900 2,1314410 2,1782969 2,2304672 2,2874205 2,3486784

2,0000000 2,0048370 2,0187310 2,0408180 2,0703200 2,1065310 2,1488120 2,1965850 2,2493290 2,3065700 2,3678790

0,000000 -0,004837 -0,008731 -0,011818 -0,014220 -0,016041 -0,-17371 -0,018288 -0,018862 -0,019149 -0,019201

120

9.7

Anlise do Erro para o Mtodo de Euler na Soluo Numrica do Problema de Valor Inicial

Os erros cometidos so de duas naturezas: a) Erros de truncamentos causados pelo tipo de tcnica empregada para a atualizao do valor de y; b) Erros de arredondamentos causados pela aritmtica de preciso finita utilizadas pelos computadores digitais e pelo modo de se programar. Os erros de truncamento podem ser separados em duas partes: a) Erro de truncamento local: erro cometido num ponto genrico x k +1 , determinado pela diferena do valor aproximado y k +1 e o valor no ponto x k +1 da soluo da equao diferencial que passa em y k +1 ; b) Erro de truncamento acumulado: erros cometidos pelas aproximaes produzidas nos passos anteriores. determinado pela diferena entre o valor aproximado y k +1 com o valor exato y ( x k +1 ) . Erro Local Erro Acum .
y3

Erro

Erro Acumulado = Erro Local


y( x0 )

Soluo da EDO em Soluo da EDO em

y2 y1

y( x 2 )
y ( x3 )

y ( x1 )

Erro

Soluo y(x) do PVI Sol. da EDO em y (x )

x0

x1

x2

x3

O erro de truncamento local determinado pela expresso:


ET = h2 '' y (x ) 2!
x j -1 < x < x j

O valor de x desconhecido, entretanto, pode-se definir um majorante para o erro de truncamento local. Se y (x) possui derivada contnua num intervalo fechado [ x n , x n +1 ] , que contm os pontos sobre os quais est sendo feita a discretizao, ento existe: M k +1 = max y ( k +1) ( x) x [ x n , x n +1 ]

121

Assim: y ( 2) (x ) M 2
ET ( x k +1 )

"x [ x n , x n +1 ]

M 2h2 2! Observe que o erro de truncamento local proporcional ao passo de integrao ao quadrado. O erro acumulado tambm pode ser limitado por um majorante:

Suponha que y (x) represente soluo nica do problema de valor inicial: y ' = f ( x, y ) a xb y (a) = a e y1 , y 2 ,......., y n sejam as aproximaes geradas pelo Mtodo de Euler. Se f(x,y) for contnua para todo x no intervalo [a,b] e todo y no intervalo (-, ) e ainda existem as constantes L e C, tais que:
f ( x, y ( x)) L x e

y ' ' ( x) C

ento para cada i = 1,2,......n : hC L ( xi -a ) y( xi ) - yi e -1 2L

Pode-se observar que para a determinao dos erros de truncamento local e acumulado, necessita-se do valor maxmo da segunda derivada de y(x), o que restringe sua utilizao na prtica. Tambm importante observar-se que o erro tende a zero quando h tende a zero. Tarefa: Seja o problema do Exemplo: y ' = x - y + 2 para y (0) = 2 A soluo desta equao diferencial dada por: y ( x) = e - x + x + 1 Determine o limite do erro acumulado nos pontos da malha [0,1], com h = 0,1 , quando da soluo da equao diferencial pelo Mtodo de Euler, e compare com o erro real calculado no Exemplo 8.3.

9.8

Mtodo de Euler Modificado

Para melhorar a qualidade da estimativa, a tangente a ser considerada no a do ponto inicial do intervalo, mas no ponto mdio.

122

y(x)
y ( x i +1 )

y (x)

yi y i +1 / 2

y i +1

Reta Tangente no ponto x i

Reta x+

Tangente

no

ponto

xi

x i +1 / 2

x i +1
h 2

x i +1 / 2 = x i +

Utilizando o Mtodo de Euler, calcula-se o valor y i +1 / 2 , no meio do intervalo, a partir da tangente f ( xi , y i ) :


y i +1 / 2 = y i + f ( x i , y i ) h 2

Com os valores xi +1 / 2 e y i +1 / 2 , determina-se a reta tangente no meio do intrvalo: y i' +1 / 2 = f ( x i +1 / 2 , y i +1 / 2 ) Esse valor assumido representar uma inclinao mdia do intervalo inteiro. Assim, determina-se o valor x de y no ponto i +1 :

y i +1 = y i + f ( x i +1 / 2 , y i +1 / 2 ) h = y i + y i' +1 / 2 h Observe que a diferena em relao ao Mtodo de Euler normal a utilizao da inclinao no meio do intervalo.
Exemplo: Repita o exemplo anterior, utilizando o Mtodo de Euler Modificado. y ' = x - y + 2 para y (0) = 2 malha [0,1], h=0,1. Os resultados parciais so apresentados a seguir de acordo com a sequncia:
x j +1 / 2 = x j + h 2 h 2

y j +1 / 2 = y j + f ( x j , y j )
x j +1 = x j + h res = y j - y ( x j )

y j +1 = y j + f ( x j +1 / 2 , y j +1 / 2 ) h = y j + y 'j +1 / 2 h

123

j = 1 xmedio = 0.05000000000000 ymedio = 2 yj = 2.00500000000000 xj = 0.10000000000000 erro = 1.629999999996912e-004 j = 2 xmedio = 0.15000000000000 ymedio = 2.00975000000000 yj = 2.01902500000000 xj = 0.20000000000000 erro = 2.940000000002385e-004 j = 3 xmedio = 0.25000000000000 ymedio = 2.02807375000000 yj = 2.04121762500000 xj = 0.30000000000000 erro = 3.996250000004586e-004 j = 4 xmedio = 0.35000000000000 ymedio = 2.05415674375000 yj = 2.07080195062500 xj = 0.40000000000000 erro = 4.819506250002270e-004 j = 5 xmedio = 0.45000000000000 ymedio = 2.08726185309375 yj =2.10707576531563 xj = 0.50000000000000 erro = 5.447653156251953e-004 j = 6 xmedio = 0.55000000000000 ymedio = 2.12672197704984 yj = 2.14940356761064 xj = 0.60000000000000 erro = 5.915676106407197e-004 j = 7 xmedio = 0.65000000000000 ymedio = 2.17193338923011 yj = 2.19721022868763 xj = 0.70000000000000 erro = 6.252286876300417e-004 j = 8 xmedio = 0.75000000000000 ymedio = 2.22234971725325 yj = 2.24997525696230 xj = 0.80000000000000 erro = 6.462569623049141e-004 j = 9 xmedio = 0.85000000000000 ymedio = 2.27747649411419 yj = 2.30722760755089 xj = 0.90000000000000 erro = 6.576075508859525e-004 j = 10 xmedio = 0.95000000000000 ymedio = 2.33686622717334 yj = 2.36854098483355 xj = 1.00000000000000 erro = 6.619848335516210e-004 Na tabela abaixo, mostra-se os valores calculados comparados aos valores exatos:

j 0 1 2 3 4 5 6 7

xj

Exato y( x j ) 2,0000000 2,0048370 2,0187310 2,0408180 2,0703200 2,1065310 2,1488120 2,1965850

Euler yj 2,0000000 2,0000000 2,0100000 2,0290000 2,0561000 2,0904900 2,1314410 2,1782969

Erro y j - y( x j ) 0,000000 -0,004837 -0,008731 -0,011818 -0,014220 -0,016041 -0,-17371 -0,018288

Euler Mod. yj 2,0000000 2,0050000 2,0190250 2,0412176 2,0708019 2,1070757 2,1494035 2,1972102

Erro y j - y( x j ) 0,0000000 0,0001629 0,0002940 0,0003996 0,0004819 0,0005447 0,0005915 0,0006252

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7

124

8 9 10
9.8.1

0,8 0,9 1,0

2,2493290 2,3065700 2,3678790

2,2304672 2,2874205 2,3486784

-0,018862 -0,019149 -0,019201

2,2499752 2,3072276 2,3685409

0,0006425 0,0006576 0,0006619

Mtodo Heum

No Mtodo de Euler Modificado a inclinao do intervalo determinada no ponto mdio do intervalo. No Mtodo de Heum, a inclinao do intervalo determinada pela mdia aritmtica das inclinaes no incio e no fim do intervalo. Para o clculo da inclinao no fim do intervalo, faz-se uma estimativa do valor da soluo ( y i +1 ) pelo Mtodo de Euler com o valor da inlinao do incio do intervalo [ f ( x i , y i )] :

y i0+1 = y i + f ( x i , y i ) h
Observe que o superescrito 0 em y i +1 para indicar que apenas uma estimativa, que ser utilizada para a determinao da inclinao no ponto x i +1 , ou seja:

y ' i +1 = f ( x i +1 , y i0+1 )

Tangente no Incio do Intervalo f ( xi , y i )

Tangente no Fim do Intervalo f ( x i +1 , y i0+1 )

y i0+1

Tangente Intervalo

Mdia

do

[ f ( x i +1 , y i0+1 ) + f ( x i , y i )] / 2
yi

y(x)

xi

x i +1

Com o valor da inclinao no final do intervalo, pode-se determinar o valor da inclinao mdia do intervalo, por meio da mdia aritmtica:
Inclinao Mdia =

[f (x , y ) + f (x
i i

i +1 ,

y i0+1 )

125

O valor da funo no fim do intervalo dado por:


y 1+1 = y i + i

[f (x , y ) + f (x
i i

i +1 ,

y i0+1 )

] h ] ]

Observe que o clculo do valor da funo no fim do intervalo pode ser repetido at que se alcance uma determinada convergncia, ou seja: f ( x i , y i ) + f ( x i +1 , y i1+1 ) y i2+1 = y i + h 2 f ( x i , y i ) + f ( x i +1 , y i3+1 ) 3 y i +1 = y i + h 2 M f ( x i , y i ) + f ( x i +1 , y ik+-1 ) 1 y ik+1 = y i + h 2

[ [

A cada nova correo, pode-se fazer um teste do tipo:


y ik+1 - y ik+-1 e 1

Caso esteja dentro de uma tolerncia inicial, pode-se parar a correo.

O Mtodo de Heun se enquadra nos chamados mtodos previsor x corretor. Faz-se uma estimativa com o previsor e se melhora a estimativa atravs do corretor. O corretor pode ser repetido at uma convergncia determinada. Previsor:

y i0+1 = y i + f ( x i , y i ) h

Corretor:
y 1+1 i = yi

[f (x , y ) + f (x +
i i

i +1 ,

y i0+1 )

] h

Exemplo: Repita o exemplo 8.3, utilizando o Mtodo de Heun, com uma iterao de correo. y ' = x - y + 2 para y (0) = 2 malha [0,1], h=0,1. Os resultados parciais so apresentados a seguir de acordo com a sequncia:

y i0+1 = y i + f ( x i , y i ) h
x i +1 = x i + h
y 1+1 = y i + i

[f (x , y ) + f (x
i i

i +1 ,

y i0+1 )

] h

126

j = 1 y0 = 2 x = 0.10000000000000 y1 = 2.00500000000000 erro = 1.629999999996912e-004

j = 2 y0 = 2.01450000000000 x = 0.20000000000000 y1 = 2.01902500000000 erro = 2.940000000002385e-004

j = 3 y0 = 2.03712250000000 x = 0.30000000000000 y1 = 2.04121762500000 erro = 3.996250000004586e-004

j = 4 y0 = 2.06709586250000 x = 0.40000000000000 y1 = 2.07080195062500 erro = 4.819506250002270e-004

j = 5 y0 = 2.10372175556250 x = 0.50000000000000 y1 = 2.10707576531563 erro = 5.447653156251953e-004

j = 6 y0 = 2.14636818878406 x = 0.60000000000000 y1 = 2.14940356761064 erro = 5.915676106407197e-004

j = 7 y0 = 2.19446321084958 x = 0.70000000000000 y1 = 2.19721022868763 erro = 6.252286876300417e-004

j = 8 y0 = 2.24748920581887 x = 0.80000000000000 y1 = 2.24997525696230 erro = 6.462569623049141e-004

j = 9 y0 = 2.30497773126607 x = 0.90000000000000 y1 = 2.30722760755089 erro = 6.576075508859525e-004

j =10 y0 = 2.36650484679580 x = 1.00000000000000 y1 = 2.36854098483355 erro = 6.619848335516210e-004

j 0 1 2 3

xj

Exato y( x j ) 2,0000000 2,0048370 2,0187310 2,0408180

Euler yj 2,0000000 2,0000000 2,0100000 2,0290000

Erro y j - y( x j ) 0,000000 -0,004837 -0,008731 -0,011818

Heun yj 2,0000000 2,0050000 2,0190250 2,0412176

Erro y j - y( x j ) 0,0000000 0,0001629 0,0002940 0,0003996

0 0,1 0,2 0,3

127

4 5 6 7 8 9 10

0,4 0,5 0,6 0,7 0,8 0,9 1,0

2,0703200 2,1065310 2,1488120 2,1965850 2,2493290 2,3065700 2,3678790

2,0561000 2,0904900 2,1314410 2,1782969 2,2304672 2,2874205 2,3486784

-0,014220 -0,016041 -0,-17371 -0,018288 -0,018862 -0,019149 -0,019201

2,0708019 2,1070757 2,1494033 2,1972102 2,2499752 2,3072276 2,3685409

0,0004819 0,0005476 0,0005915 0,0006252 0,0006462 0,0006576 0,0006619

Exemplo 8.6: Repita o exemplo 8.3, utilizando o Mtodo de Heun, com trs iterao de correo. y ' = x - y + 2 para y (0) = 2 malha [0,1], h=0,1. Os resultados so apresentados na tabela a seguir: Exato j 0 1 2 3 4 5 6 7 8 9 10
xj y( x j )

Heun ( 1 Corr.) yj 2,0000000 2,0050000 2,0190250 2,0412176 2,0708019 2,1070757 2,1494033 2,1972102 2,2499752 2,3072276 2,3685409

Erro
y j - y( x j )

Heun (3 Corr.) yj 2,0000000 2,0047625 2,0185951 2,0406342 2,0700980 2,1062796 2,1485390 2,1962975 2,2490314 2,3062667 2,3675749

Erro
y j - y( x j )

0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0

2,0000000 2,0048370 2,0187310 2,0408180 2,0703200 2,1065310 2,1488120 2,1965850 2,2493290 2,3065700 2,3678790

0,0000000 0,0001629 0,0002940 0,0003996 0,0004819 0,0005476 0,0005915 0,0006252 0,0006462 0,0006576 0,0006619

0,0000000 -0,0000745 -0,0001358 -0,0001837 -0,0002219 -0,0002513 -0,0002729 -0,0002874 -0,0002975 -0,0003032 -0,0003040

9.8.2

Mtodo Runge-Kutta

O Mtodo de Runge-Kutta determinado a partir da Srie de Taylor e sua expresso de recorrncia dada por:
y i +1 = y i + f ( x i , y i , h) h onde f ( x i , y i , h) chamada de funo incremento e pode ser interpretada coma uma inclinao mdia sobre o intervalo. Genericamente:

f ( x i , y i , h) = a1 k1 + a 2 k 2 + ............... + a n k n
k1 = f ( x i , y i ) k 2 = f ( x i + p1 h, y i + q11 k1 h) k 3 = f ( x i + p 2 h, y i + q 21 k1 h + q 22 k 2 h)

M k n = f ( x i + p n -1 h, y i + q ( n -1)1 k1 h + q ( n -1) 2 k 2 h + .......... + q ( n -1)( n -1) k n -1 h)

128

9.8.3

Derivao do Mtodo de Runge-Kutta de Segunda Ordem

y i +1 = y i + (a1 k1 + a 2 k 2 ) h k1 = f ( x i , y i ) k 2 = f ( x i + p1 h, y i + q11 k1 h)

(1) (2) (3)

Deve-se determinar os valores das constantes a1 , a 2 , q1 e q11 . Expande-se y i +1 em Srie de Taylor:


y i +1 h2 = yi + f ( xi , y i ) h + f ( xi , y i ) 2!
'

(4)

' Determina-se f ( x i , y i ) pela Regra da Cadeia: f f dy f ' ( xi , y i ) = + x y dx

(5)

Substituindo na expresso (4): f f dy h 2 y i +1 = y i + f ( x i , y i ) h + + x y dx 2! (6) A estratgia do Mtodo de runge-Kutta atravs de manipulaes algbricas, tornar as expresses (1) e (6) equivalentes. Expande-se a expresso (3) em Srie de Taylor: f f f ( x i + p1 h, y i + q11 k1 h) = f ( x i , y i ) + p1 h + q11 k1 h + O(h 2 ) x y (7) Substituindo (7) em (1):
y i +1 = y i + a1 hf ( xi , y i ) + a 2 hf ( x i , y i ) + a 2 p1 h 2 f f + a 2 q11 h 2 f ( x i , y i ) + O(h 3 ) x y (8) f f + a 2 q11 f ( x i , y i ) ]h 2 + O(h 3 ) x y (9)

Reagrupando os termos:
y i +1 = y i + [a1 f ( x i , y i ) + a 2 f ( x i , y i )]h + [a 2 p1

Comparando os termos das equaes (6) e (9): a1 + a 2 = 1


a 2 p1 = 1 a 2 q11 2 1 = 2

Observe que tem-se trs equaes e quatro incgnitas, portanto tem-se infinitas solues. Portanto existem infinitos formulaes para o Mtodo de Runge-Kutta de Segunda Ordem. importante realar que o Mtodo de Heun com uma iterao de correo e o Mtodo de Euler Modificado podem ser classificados como Mtodos de Runge-Kutta de Segunda Ordem.
9.8.4 Mtodo de Heun

129

Assumindo :
a1 = a 2 = 1 2 p1 = q11 = 1

1 1 y i +1 = y i + ( k1 + k 2 ) h 2 2 k1 = f ( x i , y i )

k 2 = f ( x i + h, y i + k 1 h )

k1 - inclinao no incio do intervalo k 2 - inclinao no fim do intervalo


9.8.5 Mtodo de Euler Modificado

Assumindo :
a1 = 0 a2 = 1 p1 = q11 = 1 2

y i +1 = y i + k 2 h k1 = f ( x i , y i ) h h k 2 = f ( x i + , y i + k1 ) 2 2

O Mtodo de Runge-Kutta mais conhecido o Mtodo de Ralston. Este mtodo propicia um limite mnimo para o erro de truncamento dos algoritmos de Runge-Kutta de Segunda Ordem.
9.8.6 Mtodo de Ralston

Assumindo :
a1 = 1 3 a2 = 2 3 p1 = q11 = 3 4

1 2 y i +1 = y i + ( k1 + k 2 ) h 3 3 k1 = f ( x i , y i ) k 2 = f ( xi + 3 3 h, y i + hk1 ) 4 4

130
3 2 Exemplo: Integre a funo f ( x, y ) = -2 x + 12 x - 20 x + 85 de x = 0 at x = 4 , passo de integrao h = 0,5 com as trs verses do Mtodo de Runge-Kutta de Segunda Ordem. Condies Iniciais: Para x = 0, y =1

Mtodo de Heun
1 1 y i +1 = y i + ( k1 + k 2 ) h 2 2 k1 = f ( x i , y i )

k 2 = f ( x i + h, y i + k 1 h )
1 1 y1 = y 0 + ( k1 + k 2 ) h 2 2 k1 = f ( x 0 , y 0 ) = -2 0 3 + 12 0 2 - 20 0 + 8,5 = 8,5

k 2 = f ( x 0 + h, y 0 + k1 h) = f (0,5, 5,25) = -2 0,5 3 + 12 0,5 2 - 20 0,5 + 8,5 = 1,25


1 1 8,5 + 1,25 y1 = y 0 + ( k1 + k 2 ) h = 1 + 0,5 = 3,4375 2 2 2 Mtodo de Euler Modificado: y i +1 = y i + k 2 h

k1 = f ( x i , y i ) h h k 2 = f ( x i + , y i + k1 ) 2 2 y1 = y 0 + k 2 h

k1 = f ( x 0 , y 0 ) = -2 0 3 + 12 0 2 - 20 0 + 8,5 = 8,5 h h 0,5 0,5 k 2 = f ( x 0 + , y 0 + k1 ) = f (0 + ,1 + 8,5) = f (0,25, 3,125) = 2 2 2 2 = -2 0,25 3 + 12 0,25 2 - 20 0,25 + 8,5 = 4,21875 y1 = y 0 + k 2 h = 1 + 4,21875 0,5 = 3,109375
Mtodo de Ralston: 1 2 y i +1 = y i + ( k1 + k 2 ) h 3 3 k1 = f ( x i , y i )
3 3 h, y i + hk1 ) 4 4 1 2 y1 = y 0 + ( k1 + k 2 ) h 3 3 k1 = f ( x 0 , y 0 ) = -2 0 3 + 12 0 2 - 20 0 + 8,5 = 8,5 3 3 3 3 k 2 = f ( x i + h, y i + hk1 ) = f (0 + 0,5, 1 + 0,5 8,5) = f (0,375, 4,1875) = 4 4 4 4 3 2 = -2 0,375 + 12 0,375 - 20 0,375 + 8,5 = 2,582031 k 2 = f ( xi +

131

1 2 1 2 y1 = y 0 + ( k1 + k 2 ) h = 1 + ( 8,5 + 2,582031) 0,5 = 3,27734375 3 3 3 3

Na tabela a seguir mostra-se o resultado para os passos de integrao seguintes: x 0,0 0,5 1,0 1,5 2,0 2,5 3,0 3,5 4,0 y exato 1,00000 3,21875 3,00000 2,21875 2,00000 2,71875 3,00000 4,71875 3,00000 Heun 1,00000 3,43750 3,37500 2,68750 2,50000 3,18750 4,37500 4,93750 3,00000 Erro (%) 0,0 6,8 12,5 21,1 25,0 17,2 9,4 4,6 0,0 Euler Mod. 1,00000 3,10937 2,81250 1,98437 1,75000 2,48437 3,81250 4,60937 3,00000 Erro (%) 0 3,4 6,3 10,6 12,5 8,6 4,7 2,3 0 Ralston 1,00000 3,27734 3,10156 2,34765 2,14062 2,85546 4,11718 4,80078 3,03125 Erro (%) 0 1,8 3,4 5,8 7,0 5,0 2,9 1,7 1,0

9.9

Mtodo de Runge_Kutta Terceira Ordem

De forma semelhante ao que se fez para o Mtodo de Runge_Kutta de Segunda Ordem, pode-se determinar para ordens mais elevadas. As formulaes no so nicas. Apresenta-se a seguir uma dasformulao mais utilizadas: 1 y i +1 = y i + [ (k1 + 4k 2 + k 3 )] h 6 k1 = f ( x i , y i ) 1 1 k 2 = f ( x i + h, y i + k 1 h ) 2 2 k 3 = f ( x i + h, y i - hk1 + 2hk 2 )

9.10 Mtodo de Runge_Kutta Quarta Ordem


1 y i +1 = y i + [ (k1 + 2k 2 + 2k 3 + k 4 )] h 6 k1 = f ( x i , y i ) 1 1 k 2 = f ( x i + h, y i + hk1 ) 2 2 1 1 k 3 = f ( x i + h, y i + hk 2 ) 2 2 k 4 = f ( x i + h, y i + hk 3 )
3 2 Exemplo: Integre a funo f ( x, y ) = -2 x + 12 x - 20 x + 85 de x = 0 at x = 0,5 , passo de integrao h = 0,5 com o Mtodo de Runge-Kutta de Quarta Ordem. Condies Iniciais: Para x = 0 , y = 1

1 y1 = y 0 + [ (k1 + 2k 2 + 2k 3 + k 4 )] h 6 k1 = f ( x 0 , y 0 ) = -2 0 3 + 12 0 2 - 20 0 + 8,5 = 8,5

132

1 1 h, y 0 + hk1 ) = f (0 + 0,5 0,5, 1 + 0,5 0,5 8,5) = f (0,25, 3,125) = 2 2 3 2 = -2 0,25 + 12 0,25 - 20 0,25 + 8,5 = 4,21875 1 1 k 3 = f ( x 0 + h, y 0 + hk 2 ) = f (0 + 0,5 0,5, 1 + 0,5 0,5 4,21875) = f (0,25, 2,054) = 2 2 3 2 - 2 0,25 + 12 0,25 - 20 0,25 + 8,5 = 4,21875 k 4 = f ( x 0 + h, y 0 + hk 3 ) = f (0 + 0,5, 1 + 0,5 4,21875) = f (0,5, 3,1093) = k 2 = f ( x0 +

= -2 0,5 3 + 12 0,5 2 - 20 0,5 + 8,5 = 1,25 1 1 y1 = y 0 + [ (k1 + 2k 2 + 2k 3 + k 4 )] h = 1 + [ (8,5 + 2 4,21875 + 2 4,21875 + 1,25)] 0,5 = 6 6 = 3,21875

9.11 Mtodos de Passos Mltiplos Nos mtodos vistos anteriormente, a cada nova estimativa da funo utilizava-se a informao de um nico ponto anterior. Como o caso do Mtodo de Euler, mostrado na figura:

y(x)

y (x)

y0

y1

Estimativa a partir de um nico ponto

x0 h = x1 - x 0

x1

No caso dos mtodos de passos mltiplos, utiliza-se informao de mais do que um ponto anterior.

133

y(x)

y (x)

y1
y0

y3 yn

Estimado a partir de informaes conhecidas de n pontos anteriores

x0

x1 x 2 .... x n

9.12 Idia Basica dos Mtodos de Passos Mltiplos

Seja a equao diferencial:


y' = dy = f ( x, y ) dx

Deseja-se uma nova estimativa da soluo y no ponto x n +1 . Integra-se a equao diferencial de x n a x n +1 :


x n +1

y ( x)dx = f ( x, y )dx
' xn x n +1

xn +1

xn

y ( x n +1 ) - y ( x n ) =

f ( x, y)dx f ( x, y)dx
xn +1

xn

y ( x n +1 ) = y ( x n ) +

xn +1

xn

Para a nova estimativa, a integral numrica.

f ( x, y)dx

aproximada por alguma forma de quadratura

xn

Os Mtodos de passos mltiplos so classificados em explcitos e implcitos.

134

9.12.1 Mtodos Explcitos

Os mtodos explcitos, quando da nova estimativa da soluo no ponto x n +1 , utilizam informaes de m pontos anteriores. Deve-se conhecer: ( x n , y n ) , ( x n -1 , y n -1 ) , ....., ( x n - m , y n - m ) . A partir desses dados, aproxima-se a funo f(x,y) por um polinmio Pm (x) , de grau m.
y ( x n +1 ) y ( x n ) +
xn +1

Pm ( x)dx

xn

9.12.2 Algoritmos de Adans-Bashforth de ordem m

m=1: m=2:

y n +1 = y n + h f ( x n , y n )
y n +1 = y n + y n +1 = y n + y n +1 = y n + h [3 f ( x n , y n ) - f ( x n -1 , y n -1 )] 2 h [23 f ( x n , y n ) - 16 f ( x n -1 , y n -1 ) + 5 f ( x n- 2 , y n- 2 )] 12 h [55 f ( x n , y n ) - 59 f ( x n-1 , y n-1 ) + 37 f ( x n -2 , y n -2 ) - 9 f ( x n-3 , y n-3 )] 24

m=3:

m=4:

9.12.3 Mtodos Implcitos

Os mtodos implcitos, quando da nova estimativa da soluo no ponto x n +1 , utilizam informaes de m-1 pontos anteriores e uma estimativa inicial no ponto x n +1 . Deve-se
0 conhecer: ( x n +1 , y n +1 ) , ( x n , y n ) , ....., ( x n - m +1 , y n - m +1 ) . A partir desses dados, aproxima-se a funo f(x,y) por um polinmio Pm (x) , de grau m.
xn +1

y ( x n +1 ) y ( x n ) +

Pm ( x)dx

xn

A idia dos mtodos implcitos a utilizao como um algoritmo corretor. Como visto no Mtodo de Heun. Utiliza-se um algoritmo previsor, que pode ser algoritmos da famlia AdansBashfoth, e se corrige com um mtodo implcito.

9.12.4 Algoritmos de Adans-Moulton de ordem m

m=1:

y n +1 = y n + h f ( x n +1 , y n +1 )

135

m=2:

y n +1 = y n + y n +1 = y n + y n +1 = y n +

h [ f ( x n+1 , y n+1 ) + f ( x n , y n )] 2 h [5 f ( x n+1 , y n+1 ) + 8 f ( x n , y n ) - f ( x n -1 , y n -1 )] 12 h [9 f ( x n+1 , y n+1 ) + 19 f ( x n , y n ) - 5 f ( x n-1 , y n-1 ) + f ( x n- 2 , y n- 2 )] 24

m=3:

m=4:

comum a utilizao dos mtodos implcitos junto com os mtodos explcitos. Os Algoritmos da famlia Adans-Bashfoth so utilizados como previsores e os algoritmos da famlia Adans-Moulton como corretores.

9.12.5 Passos para se obter y n +1


( I Calcular y n0)1 por um mtodo explcito (famlia Adans-Bashfoth). +

II Inicializar o contador de iteraes k = 0 .


( III Calcular f ( x n +1 , y nk )1 ) . + ( IV Calcular y nk +1) , utilizando um mtodo implcito (famlia Adans-Moulton). +1
( y (k++1) - y nk )1 n 1 + ( y nk )1 +

V Testar se

< e , se positivo, incrementar o contador k = k + 1 e voltar ao passo

III. Em caso contrrio calcule o prximo passo de integrao. Observao 1: Para a utilizao dos algoritmos da famlia Adans-Bashforth com m > 1 , necessita-se de informao de mais pontos alm das condies iniciais. Para dar incio ao algoritmo, pode-se utilizar qualquer dos mtodo de integrao vistos para estimar os pontos necessrios. Exemplo: Solucione a equao diferencial abaixo usando o Mtodo de Adans-Bashforth de ordem 3 como previsor e o Mtodo de Adans-Moulton de ordem 3 como corretor. Execute tres iteraes do corretor para cada estimativa.
y' = y y - = f (t , y ) 1 t 2 , y (1) = 1 e h = 0,1 t t
2

Compare o resultado com o valor real: y (t ) = t (1 + ln(t )) -1 Para Utilizar o Mtodo de Adans-Bashforth de ordem trs, necessita-se de informaes da funo em trs pontos. Como temos apenas a condio y (1) = 1 , deve-se estimar em mais dois pontos. Utilizando Runge-Kutta de Quarta Ordem chega-se aos seguintes valores:

136

Para t1 = 1,10 y1 = 1,0043 Para t 2 = 1,20 y 2 = 1,0150 Com os trs pontos pode-se realizar previso para o passo seguinte, utilizando AdansBashforh:

( y 30) = y 2 +

h [23 f (t 2 , y 2 ) - 16 f (t1 , y1 ) + 5 f (t 0 , y 0 )] 12 h [23 f (1,20,1,0150) - 16 f (1,10, 1,0043) + 5 f (1,1)] = 1,0294 12

( y 30) = 1,0150 +

Com o valor da previso calculado, calcula-se trs iteraes utilizando Adans-Moulton:


( y 31) = y 2 +

h ( 5 f (t 3 , y 30) ) + 8 f (t 2 , y 2 ) - f (t1 , y1 ) 12

( y 31) = 1,0150 +

h [5 f (1,30, 1,0294) + 8 f (1,20, 1,0150) - f (1,10,1,0043)] = 1,0299 12 h [5 f (1,30, 1,0299) + 8 f (1,20, 1,0150) - f (1,10,1,0043)] = 1,0298 12 h [5 f (1,30, 1,0298) + 8 f (1,20, 1,0150) - f (1,10,1,0043)] = 1,0298 12

( y 32) = 1,0150 +

( y 33) = 1,0150 +

Seguindo esta ordem, calcula-se os valores para os passos seguintes. Os resultados e a plotagem dos valores calculados e exatos so apresentados abaixo:
ti yi
y exato

1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00

1.0000 1.0043 1.0150 1.0298 1.0476 1.0673 1.0885 1.1107 1.1337 1.1573 1.1813

1.0000 1.0043 1.0150 1.0298 1.0475 1.0673 1.0884 1.1107 1.1337 1.1572 1.1812

137

1.2 1.18 1.16 1.14 1.12 1.1 1.08 1.06 1.04 1.02 1

1.1

1.2

1.3

1.4

1.5

1.6

1.7

1.8

1.9

Os grficos com os valores exatos e estimados se confundem.

9.13 Soluo de Sistemas de Equaes Diferenciais Seja o sistema de equaes diferenciais:

dy1 = f 1 ( x, y1 , y 2 ,......, y n ) dx dy 2 = f 2 ( x, y1 , y 2 ,......, y n ) dx M dy n = f n ( x, y1 , y 2 ,......, y n ) dx


A soluo de um sistema desta natureza requer o valor inicial em x = x 0 para as n variveis y. Todos os mtodos vistos podem ser utilizados na soluo. O procedimento para a soluo do sistema envolve a soluo do passo de cada equao antes de passar-se ao passo seguinte. Exemplo: Solucione o sistema de equaes diferenciais usando o Mtodo de Euler, integrando de x = 0 a x = 2 , com passo h = 0,5 e condies iniciais em x = 0 dadas por y1 = 4 e y 2 = 6 .

138

dy1 = -0,5 y1 = f 1 ( x, y1 , y 2 ) dx dy 2 = 4 - 0,3 y 2 - 0,1 y1 = f 2 ( x, y1 , y 2 ) dx

A soluo deste sistema resulta em duas funes: y1 ( x) e y 2 ( x) . A soluo numrica resulta em aproximaes de pontos dessas funes. Adota-se uma notao semelhante ao caso de uma equao, introduzindo um novo ndice para indicao das variveis dependentes:
y k , j valor estimado para o ponto y k ( x j ) para k = 1,2 .

Para a soluo do problema, necessita-se:

j 0 1 2 3 4

xj

y1, j

y 2, j

0 0,5 1,0 1,5 2,0

4
y1,1 y1, 2 y1,3 y1, 4

6
y 2,1 y 2, 2 y 2,3 y 2, 4

Para j = 1 e x1 = 0,5
y1,1 = y1,0 + f 1 ( x 0 , y1,0 , y 2,0 ) h = 4 + (-0,5 4) 0,5 = 3 y 2,1 = y 2, 0 + f 2 ( x 0 , y1,0 , y 2,0 ) h = 6 + (4 - 0,3 6 - 0,1 4) 0,5 = 6,9

Para j = 2 e x1 = 1,0
y1, 2 = y1,1 + f 1 ( x1 , y1,1 , y 2,1 ) h = 3 + (-0,5 3) 0,5 = 2,25 y 2, 2 = y 2,1 + f 2 ( x1 , y1,1 , y 2,1 ) h = 6,9 + (4 - 0,3 6,9 - 0,1 3) 0,5 = 7,715

Para j = 3 e x1 = 1,5
y1,3 = y1, 2 + f 1 ( x 2 , y1, 2 , y 2, 2 ) h = 2,25 + (-0,5 2,25) 0,5 = 1,6875

139

y 2,3 = y 2, 2 + f 2 ( x 2 , y1, 2 , y 2, 2 ) h = 7,715 + (4 - 0,3 7,715 - 0,1 2,25) 0,5 = 8,44525

Para j = 4 e x1 = 2,0
y1, 4 = y1,3 + f 1 ( x 3 , y1,3 , y 2,3 ) h = 1,6875 + (-0,5 1,6875) 0,5 = 1,265625 y 2, 4 = y 2,3 + f 2 ( x 2 , y1,3 , y 2,3 ) h = 8,44525 + (4 - 0,3 8,44525 - 0,1 1,6875) 0,5 = 9,0940875

Resultando nos valores tabelados:

J 0 1 2 3 4

xj

y1, j

y 2, j

0 0,5 1,0 1,5 2,0

4 3,0000000 2,2500000 1,6875000 1,2656250

6 6,9000000 7,7150000 8,4452500 9,0940875

Exemplo: Solucione o sistema de equaes diferenciais do exemplo 8.9 utilizando o Mtodo de Runge_Kutta de Quarta Ordem.
dy1 = -0,5 y1 = f 1 ( x, y1 , y 2 ) dx dy 2 = 4 - 0,3 y 2 - 0,1 y1 = f 2 ( x, y1 , y 2 ) dx

Para a soluo do problema, necessita-se:

j 0 1 2 3

xj

y1, j

y 2, j

0 0,5 1,0 1,5

4
y1,1 y1, 2 y1,3

6
y 2,1 y 2, 2 y 2,3

140

2,0

y1, 4

y 2, 4

Para a soluo de uma nica equao tem-se:


1 y i +1 = y i + [ (k1 + 2k 2 + 2k 3 + k 4 )] h 6

k1 = f ( x i , y i )
k 2 = f ( xi + k 3 = f ( xi + 1 1 h, y i + hk1 ) 2 2 1 1 h, y i + hk 2 ) 2 2

k 4 = f ( x i + h, y i + hk 3 )

Para o caso de um sistema, necessita-se de uma nova indexao: Seja um sistema com m equaes. Assume-se que tenham sido determinadas as m aproximaes para o passo j: [ y1, j , y 2, j , y 3, j ,......, y m, j ] . Para se obter as novas aproximaes
[ y1, j +1 , y 2, j +1 , y 3, j +1 ,......, y m, j +1 ] do passo j + 1 , necessita-se calcular as constantes na seguinte

sequncia: Para i = 1,2,...., m determina-se:


k1,i = f i ( x j , y1, j , y 2, j , y m, j )

Calculados todos os k1,i , Calcula-se para i = 1,2,...., m :


k 2,i = f ( x j + 1 1 1 1 h, y1, j + hk1,1 , y 2, j + hk1, 2 ,....., y m, j + hk1, m ) 2 2 2 2

Calculados todos os k 2,i , Calcula-se para i = 1,2,...., m :


k 3,i = f ( x j + 1 1 1 1 h, y1, j + hk 2,1 , y 2, j + hk 2, 2 ,....., y m, j + hk 2, m ) 2 2 2 2

Calculados todos os k 3,i , Calcula-se para i = 1,2,...., m :


k 4,i = f ( x j + h, y1, j + hk 3,1 , y 2, j + hk 3, 2 ,....., y m, j + hk 3,m )

141

Calculadas todas as constantes, pode-se determinar para i = 1,2,...., m as novas estimativas paro o passo j + 1 .
1 y i , j +1 = y i , j + [ (k1,i + 2k 2,i + 2k 3,i + k 4,i )] h 6

Para o exemplo, tem-se m = 2 a nova estimativa no passo j + 1 dada por:


1 y1,1 = y1,0 + [ (k1,1 + 2k 2,1 + 2k 3,1 + k 4,1 )] h 6 1 y 2,1 = y 2, 0 + [ (k1, 2 + 2k 2, 2 + 2k 3, 2 + k 4, 2 )] h 6
k1,1 = f 1 ( x j , y1, j , y 2, j ) k1, 2 = f 2 ( x j , y1, j , y 2, j )

k 2,1 = f 1 ( x j + k 2, 2 = f 2 ( x j + k 3,1 = f 1 ( x j + k 3, 2 = f 2 ( x j + k 4,1 = f 1 ( x j + k 4, 2 = f 2 ( x j +

1 1 1 h, y1, j + hk1,1 , y 2, j + hk1, 2 ) 2 2 2 1 1 1 h, y1, j + hk1,1 , y 2, j + hk1, 2 ) 2 2 2

1 1 1 h, y1, j + hk 2,1 , y 2, j + hk 2, 2 ) 2 2 2 1 1 1 h, y1, j + hk 2,1 , y 2, j + hk 2, 2 ) 2 2 2 1 h, y1, j + hk 3,1 , y 2, j + hk 3, 2 ) 2 1 h, y1, j + hk 3,1 , y 2, j + hk 3, 2 ) 2

Para o passo 1 do exemplo:


k1,1 = f 1 ( x 0 , y1,0 , y 2,0 ) = f 1 (0,4,6) = -0,5 4 = -2 k1, 2 = f 2 ( x 0 , y1,0 , y 2,0 ) = f 2 (0,4,6) = 4 - 0,3 6 - 0,1 4 = 1,8

k 2,1 = f 1 ( x 0 + k 2, 2 = f 2 ( x 0 +

1 1 1 h, y1, 0 + hk1,1 , y 2, 0 + hk1, 2 ) = f 1 (0,25, 3,5, 6,45) = -1,75 2 2 2 1 1 1 h, y1,0 + hk1,1 , y 2,0 + hk1, 2 ) = f 2 (0,25, 3,5, 6,45) = 1,715 2 2 2

142

k 3,1 = f 1 ( x 0 + k 3, 2 = f 2 ( x 0 + k 4,1 = f 1 ( x 0 + k 4, 2 = f 2 ( x 0 +

1 1 1 h, y1,0 + hk 2,1 , y 2, 0 + hk 2, 2 ) = f 1 (0,25, 3,5625, 6,4285) = -1,7813 2 2 2 1 1 1 h, y1,0 + hk 2,1 , y 2,0 + hk 2, 2 ) = f 2 (0,25, 3,5625, 6,4285) = 1,7151 2 2 2 1 h, y1,0 + hk 3,1 , y 2,0 + hk 3, 2 ) = f 1 (0,25, 3,109375, 6,8575625) = -1,5547 2 1 h, y1,0 + hk 3,1 , y 2,0 + hk 3, 2 ) = f 2 (0,25, 3,109375, 6,8575625) = 1,6318 2

Resultando nas novas aproximaes:


1 y1,1 = y1,0 + [ (k1,1 + 2k 2,1 + 2k 3,1 + k 4,1 )] h = 6 = 4 + (1 / 6) [-2 - 2 1,75 - 2 1,7813 - 1,5547] 0,5 = 3,1152 1 y 2,1 = y 2, 0 + [ (k1, 2 + 2k 2, 2 + 2k 3, 2 + k 4, 2 )] h = 6 6 + (1 / 6) [1,8 + 2 1,715 + 2 1,7151 - 1,6318] 0,5 = 6,8577

Os Resultados passo passo so dados abaixo: J=1 k11 = -2 k12 = 1.8000 k21 = -1.7500 k22 = 1.7150 k31 = -1.7813 k32 = 1.7151 k41 = -1.5547 k42 = 1.6318 y1 = 3.1152 y2 = 6.8577 j=2 k11 = -1.5576 k12 =1.6312 k21 = -1.3629 k22 =1.5478 k31 = -1.3873 k32 =1.5492 k41 = -1.2108 k42 = 1.4682 y1 = 2.4262 y2 = 7.6321 j=3 k11 = -1.2131 k12 = 1.4678 k21 = -1.0614 k22 =1.3880 k31 = -1.0804 k32 = 1.3902 k41 = -0.9430 k42 = 1.3132 y1 = 1.8895 y2 = 8.3269 j=4 k11 = -0.9448 k12 = 1.3130 k21 = -0.8267 k22 =1.2381 k31 = -0.8414 k32 = 1.2408 k41 = -0.7344 k42 = 1.1689 y1 = 1.4716 y2 = 8.9469 Resultando na tabela:

143

j 0 1 2 3 4

xj

y1, j

y 2, j

0 0,5 1,0 1,5 2,0

4,0000 3,1152 2,4262 1,8895 1,4716

6,0000 6,8577 7,6321 8,3269 8,9469

Exemplo: Resolva a equao dinmica do circuito, considerando que antes do fechamento da chave S no havia nenhuma energia armazenada no circuito, R = 2W , L = 2 H e C = 0,5 F , integrando de t = 0 a t=5Seg, com passo de integrao 0,1 e o Mtodo de Runge-Kutta de Quarta Ordem.
1.1.1.1.5 1.1.1.1.4

S V(t)=sin(3,5t) i(t)
1.1.1.1.6

Ao fechar-se a chave S, pode-se analisar o comportamento dinmico do circuito a partir da Lei de Kirchoff para tenses:
V (t ) = Ri (t ) + L di (t ) 1 + i (t )dt dt C

Derivando a equao:

dV (t ) di (t ) d 2 i (t ) 1 =R +L + i (t ) dt dt C dt 2
Substituindo a expresso da tenso e rearranjando a equao, tem-se:

d 2 i (t ) dt
2

+2

di (t ) + 2i (t ) = 3,5 cos(3,5t ) dt

144

2i ' ' (t ) + 2i ' (t ) + 2i (t ) = 3,5 cos(3,5t )

Como no havia nenhuma energia armazenada no circuito, as condies para t = 0 so nulas, di (0) ou seja: i (0) = 0 e =0. dt Inicialmente deve-se transformar a equao de segunda ordem num sistema com duas equaes:
z1 (t ) = i (t )
' z1 (t ) = i ' (t ) = z 2 (t ) ' z 2 (t ) = i ' ' (t ) = -i ' (t ) - i (t ) +

3,5 3,5 cos(3,5t ) = - z 2 (t ) - z1 (t ) + cos(3,5t ) 2 2

Tem-se o seguinte sistema:


' z1 (t ) = z 2 = f1 (t , z1 (t ), z 2 (t )) ' z 2 (t ) = i ' ' (t ) = - z 2 (t ) - z1 (t ) +

3,5 cos(3,5t ) = f 2 (t , z1 (t ), z 2 (t )) 2

z 1 ( 0) = 0 z 2 ( 0) = 0

Os resultados da integrao so dados pela tabela:


t

z1 (t ) = i (t ) z 2 (t ) = i ' (t )
0.0000 0.0084 0.0313 0.0644 0.1018 0.1374 0.1654 0.1808 0.1803 0.1626 0.1285 0.0811 0.0249 -0.0342 -0.0899 -0.1364 -0.1687 -0.1835 -0.1796 -0.1578 -0.1213 -0.0747 0.0000 0.1628 0.2886 0.3625 0.3758 0.3274 0.2238 0.0783 -0.0908 -0.2621 -0.4139 -0.5270 -0.5866 -0.5847 -0.5205 -0.4008 -0.2393 -0.0546 0.1317 0.2979 0.4246 0.4972

0.00 0.10 0.20 0.30 0.40 0.50 0.60 0.70 0.80 0.90 1.00 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00 2.10

145

2.20 -0.0240 0.5076 2.30 0.0247 0.4552 2.40 0.0652 0.3470 2.50 0.0927 0.1966 2.60 0.1037 0.0227 2.70 0.0971 -0.1530 2.80 0.0738 -0.3090 2.90 0.0367 -0.4259 3.00 -0.0096 -0.4892 3.10 -0.0591 -0.4911 3.20 -0.1057 -0.4311 3.30 -0.1435 -0.3163 3.40 -0.1676 -0.1605 3.50 -0.1749 0.0176 3.60 -0.1641 0.1963 3.70 -0.1363 0.3540 3.80 -0.0946 0.4716 3.90 -0.0438 0.5348 4.00 0.0102 0.5359 4.10 0.0613 0.4746 4.20 0.1033 0.3584 4.30 0.1316 0.2012 4.40 0.1428 0.0219 4.50 0.1359 -0.1579 4.60 0.1120 -0.3165 4.70 0.0740 -0.4348 4.80 0.0268 -0.4986 4.90 -0.0237 -0.5004 5.00 -0.0712 -0.4400 Os valores so plotados na figura:
0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

0.5

1.5

2.5

3.5

4.5

146

10 Utilizando o MATLAB
Familiarizao com o ambiente de trabalho e assimilao dos comandos principais. A ferramenta de suporte computacional utilizada ao longo deste curso ser o MATLAB. 1. Sintaxe de comandos Utilize a funo helpwin <comando> 2. Operaes aritmticas adio subtrao multiplicao diviso potenciao + * / ^

O MATLAB executa as operaes aritmticas da esquerda para a direita respeitando a hierarquia existente na matemtica. Ex.: 3^2-5-6/(3*2) ans = 3 3. Variveis Para identificao das variveis, o MATLAB diferencia maisculas e minsculas. No necessria a alocao de memria para as variveis, pois o MATLAB o far automaticamente assim que um valor atribudo a uma varivel pela primeira vez. A atribuio realizada da seguinte forma: a=1 a= 1 O acesso realizado atravs do nome da varivel: a a= 1 Uma varivel s pode ser acessada se j foi criada, isto , se algum valor j foi atribudo mesma. No exemplo abaixo a varivel acessada sem ter sido criada: b ??? Undefined function or variable 'b'. O comando who mostra as variveis que esto sendo utilizadas no momento e o comando clear exclui as variveis do ambiente de trabalho do MATLAB. 4. Caracteres especiais usados na janela de comandos

147

= [] () . , ; % :

Comando de atribuio Delimitar elementos de matrizes e vetores Alternar a ordem de precedncia das expresses aritmticas Ponto decimal Separa argumentos de funes e elementos matrizes e vetores Finalizador de linha com supresso de impresso Comentrio Gerao de um vetor com intervalos definidos

5. Funes matemticas bsicas acos asin Arco-coseno Arco-seno

atan Arco-tangente cos Coseno cosh Coseno hiperbolico exp Exponencial com base e log Logaritmo natural log10 Logaritmo decimal rand Gera nmeros aleatrios com distribuio uniforme randn Gera nmeros aleatrios com distribuio normal rat Aproximao racional round Arredonda o nmero para o inteiro mais prximo sign Retorna 1 se for positivo e 0 se for negativo sin Seno sinh Seno hiperblico sqrt Raiz quadrada tan Tangente tanh Tangente hiperblica O MATLAB trabalha com ngulos em radianos. 6. Operaes com vetores Os vetores devem ser declarados em colchetes: u = [1 2 3 4] u= 1 2 3 4

O mesmo resultado seria obtido com: u = [1,2,3,4] u= 1 2 3 4

As operaes aritmticas so realizadas elemento a elemento do vetor: z = u+3 z=

148

A operao com apenas um elemento do vetor pode ser feita, especificando o elemento a ser tratado: z(3) = z(3)+1 z= 4 5 7 7

Se quiser saber o nmero de elementos do vetor , utilize a funo length: length(z) ans = 4 A transposta calculada utilizando o smbolo : w = z' w= 4 5 7 7 Operaes especiais: .* ./ .\ .^ Ex.: mult = u.*z mult = 4 10 21 28 Multiplicao de vetores Diviso direita de vetores Diviso esquerda de vetores Exponenciao

Para a gerao de vetores utilizando intervalos: x = 0:2:10 x= 0 2 4 6 8 10 Funes teis no tratamento de vetores: max( ) min( ) mean( ) Ex.: Devolve o maior dos componentes do vetor Devolve o menor dos componentes do vetor Devolve o valor mdio dos componentes do vetor

149

mean(x) ans = 5 7. Operaes com matrizes A matriz pode ser definida de maneira semelhante aos vetores, diferenciando-se apenas na necessidade da digitao de um ; para a separao das diferentes colunas: a = [1 2 3 ;4 5 6;7 8 9] a= 1 4 7 2 5 8 3 6 9

As matrizes podem Ter elementos identificados individualmente: a(2,1) ans = 4 O tamanho da matriz pode ser obtido pela funo size: size(a) ans = 3 3

Para extrair uma submatriz de uma matriz: b = a(1:2,1:2) b= 1 4 2 5

Para inserir uma linha na matriz: c = [b;1 0] c= 1 4 2 5 1

Nas operaes de adio e subtrao os elementos de uma matriz so somados ou subtrados com o seu correspondente na outra matriz, quando matrizes de mesmo tamanho. A multiplicao e a diviso por escalares efetuado elemento a elemento da matriz. div = a*3 div =

150

3 12 21

6 9 15 18 24 27

A exponenciao individual dos elementos de uma matriz pode ser feito: exp = a.^2 exp = 1 16 49 4 9 25 36 64 81

A multiplicao de matrizes s pode acontecer se o nmero de colunas de uma matriz for igual ao nmero de linhas da outra. size(a) ans = 3 3

size(div) ans = 3 3

mult = a*div mult = 90 108 126 198 243 288 306 378 450 A fim de mostrar diviso de matrizes, vamos definir duas novas matrizes: x = [15 10 8;7 1 0;2 5 1]; y = [3 -1 2;-5 1 1;0 3 4]; div = x/y div = -2.0213 -4.2128 -0.5745 -1.7447 -1.8511 -1.5106 divinv = x\y divinv = -0.7033 0.0239 0 -0.0766 0.8325 1.0000 1.7895 -1.2105 -1.0000 4.0638 0.7234 1.5532

151

A potenciao de matrizes eqivale a sucessivas multiplicaes por ela mesma: pot = a^3 pot = 468 1062 1656 576 1305 2034 684 1548 2412

A transposta da matriz obtida por: trans = a' trans = 1 2 3 4 5 6 7 8 9

Funes para tratar matrizes: det eye inv ones rand tril triu zeros Determinante de uma matriz Gera uma matriz identidade Calcula a inversa da matriz Gera uma matriz unitria Gera uma matriz randmica Transforma/gera uma matriz triangular inferior Transforma/gera uma matriz triangular superior Gera uma matriz de zeros (nula)

8. Nmeros Complexos A parte imaginria do nmero complexo pode ser simbolizada pelas letras i e j indistintamente. Ex.: z1 = 3+4i z1 = 3.0000 + 4.0000i O conjugado do nmero complexo pode ser obtido utilizando a funo conj: z2 = conj(z1) z2 = 3.0000 - 4.0000i As operaes com nmeros complexos utilizam os operadores usuais. A potenciao, como visto com as matrizes, correspondente multiplicao sucessiva do nmero por ele mesmo. Funes teis para trabalhar com nmeros complexos: real Retorna a parte real do nmero complexo

152

imag abs angle 9. Polinmios

Retorna a parte imaginria do nmero complexo Retorna o mdulo do vetor complexo Retorna o ngulo do vetor complexo

Seja o polinmio: X3 3x2 +4x-4 No MATLAB ele definido da seguinte forma: poli = [1 -3 4 -4] poli = 1 -3 4 -4

Para encontrar as razes deste polinmio, usamos o comando roots: r = roots(poli) r= 2.0000 0.5000 + 1.3229i 0.5000 - 1.3229i Com as razes do polinmio, pode-se obter os coeficientes deste usando a funo poly: p = poly(r) p= 1.0000 -3.0000 4.0000 -4.0000

A funo conv utilizada para a multiplicao de polinmios: p1 = [2 3 1]; p2 = [5 -2]; p3 = conv(p1,p2) p3 = 10 11 -1 -2

J a funo deconv utilizada para a diviso: [Q R] = deconv(p3,p1) Q= 5 -2

R= 0 0 0 0

10. Encontrando a melhor curva partindo de dados experimentais

153

O MATLAB permite fazer a interpolao polinomial partindo-se de dados experoimentais, utilizando o comando polyfit. Os pontos experimentais abaixo representam a posio de um mvel ao longo do tempo: S(cm) 4,00 6,71 9,43 12,18 14,87 17,7 t(s) 0 1 2 3 4 5 Vamos definir os vetores com dados experimentais: S = [4 6.4 9.93 12.18 14.87 16.7]; t = [0 1 2 3 4 5]; Agora vamos traar os pontos para vermos a evoluo dos mesmos: plot(t,S,'+')
18

16

14

12

10

0.5

1.5

2.5

3.5

4.5

Agora iremos traar a reta obtida sobre os dados experimentais: poly = polyfit(t,S,1) poly = 2.6046 4.1686

hold on; t = 0:.1:5; S = polyval(poly,t); plot(t,S);

154
18

16

14

12

10

0.5

1.5

2.5

3.5

4.5

Grficos em 2D Os principais comandos utilizados para a criao de grficos so: plot title xlabel ylabel text gtext grid Plota um vetor ou uma funo Adiciona ttulo ao grfico Adiciona um rtulo ao eixo x Adiciona um rtulo ao eixo y Insere um texto numa determinada posio da janela grfica Insere um texto no grfico usando o mouse como posicionador Traa linhas de grade

A formatao de cor e estilo da linha podem ser facilmente ajustados atravs de argumentos do comando plot. Cor da Linha Caracter y m c r g b w k Estilo da Linha Caracter . o x + * : --

Cor amarela margenta cyan vermelha verde azul branca preta

Estilo ponto crculo marca x mais asterisco slido pontilhado tracejado

11. Programando com o MATLAB Os operadores relacionais, aqueles que respondem a uma determina operao com verdadeiro e falso, e que so simbolizados respectivamente por 1 e 0. A tabela a seguir relaciona operador com a descrio: Operador < <= > Descrio Menor que Menor ou igual Maior que

155

>= == ~=

Maior ou igual Igual Diferente

No MATLAB temos os seguintes operadores lgicos: Operador & | ~ Descrio AND OR NOT

As rotinas especiais de programao esto descritas abaixo: Rotinas For <cond> end while <cond> end if <cond> elseif end if <cond> else end break return pause Descrio Gera um loop enumervel Gera um loop enquanto uma condio (<cond>) for verdadeira Comando executvel condicional

Comando executvel condicional Sair fora de um loop for ou while Retornar a uma funo (arquivo.m) Para num ponto do programa at que se aperte qualquer tecla

Essas rotinas associadas aos inmeros recursos oferecidos pelo MATLAB, propiciam ao usurio, desenvolver desde simples programas at os mais sofisticados. Objetivo 2: Desenvolva um programa par o clculo do produto interno.
x = ( x1 , x2 , x3 ,..........., x n )T y = ( y1 , y 2 , y3 ,..........., y n )T x T y = xi y i
i =1 n

Objetivo 3: Desenvolva um programa par o clculo do produto entre duas matrizes. Am p B p n , C = A B

cij =

k =1

aik bkj

Objetivo 4: Realize as seguintes operaes no MatLab: x = 0.988 : 0.0001 : 1.012 y = x.^7 - 7 * x.^ 6 + 21* x.^5 - 35 * x.^ 4 + 35 * x.^3 - 21* x.^ 2 + 7 * x - 1; plot ( x, y ) O resultado obtido o esperado? Se no for o esperado, qual a explicao para obter-se tal resultado. Realize agora a operao

156

x = 0.988 : 0.0001 : 1.012 y = ( x - 1).^ 7; plot ( x, y )

Analise e compare os resultados. Objetivo 5: Representao do nmero 0,1 em base hexadecimal. Representao no MATLAB:
x = (-1) s (1 + f ) 2 e

s 1 bit

e 11 bits 52 bits

Como a representao da mantissa ficaria no MATLAB? Confirme com os comandos: T=0.1; Format hex t Objetivo 6: Considere o sistema de equaes lineares: 10 x1 + x 2 = 11
3 x1 + 0.3 x 2 = 3.3

Uma soluo bvia para o sistema x1 = 1 e x 2 = 1 . Utilizando o MatLab com os comandos: A=[10 1;3 0.3]; b=[11;3.3]; x=A\b, solucione o sistema. Analise o resultado e justifique.

Objetivo 7: Arquivos M-file. Embora voc possa trabalhar inteiramente nas linhas de comando do MATLAB, voc tambm pode armazenar em arquivos externos. Esses arquivos so equivalentes a programas, funes, subrotinas e procedimentos de outras linguagens. Os arquivos M-file so criados a partir do editor do MATLAB. Abaixo apresenta-se um arquivo para o clculo da raiz quadrada de um nmero real maior ou igual a zero. Coloque este arquivo no formato M-file e execute-o.
function [x,iter]=sqrtn(a,tol) %sqrtn Raiz quadrada de um nmero real maior que zero pelo Mtodo de Newton. % x=sqrtn(z,tol) calcula a raiz do nmero real a utilizando o Mtodo de Newton % a assumido ser maior ou igual a zero % tol a tolerncia de convergencia (default eps) - eps - epsilon da mquina % [x,iter]=sqrtn(a,tol) retorna tambm o nmero de iteraes (iter) para a con% vergncia. if nargin<2,tol=eps;end x=a; iter=0; xdiff=inf; fprintf(' k x_k erro relativo\n') while xdiff>tol iter=iter+1; xold=x; x=(x+a/x)/2; xdiff=abs(x-xold)/abs(x); fprintf('%2.0f: %20.16e %9.2e\n',iter,x,xdiff) if iter>50 error('No convergiu apos 50 iteraes') end end

157

Objetivo 8: Introduo ao Mtodo da Bisseo para o clculo de razes de funes. Algoritmo: 12. Entrada: 12.1 funo f(x) 12.2 intervalo de convergncia [a,b] 12.3 tolerncia e 12.4 nmero de iteraes L 13. f0 f(a); f1 f(b) 14. Teste de viabilidade de intervalo: 14.1 Se f0*f1 > 0 14.1.1 Erro na Entrada 14.1.2 Entrar com novo intervalo 14.2 Seno 14.2.1 x0 a 14.2.2 x1 b 14.2.3 i 1 15. Enquanto ((|f0| > e ou |f1| > e) e i < L) 15.1 X2 0,5*(x0+x1) 15.2 f2 f(x2) 15.3 Se (f2*f0 < 0) 15.3.1 x1 x2 15.3.2 f1 f2 15.4 Seno 15.4.1 x0 x2 15.4.2 f0 f2 15.5 i i+1 16. se (i > L) 16.1 No atingiu exatido em L iteraes 17. Seno 17.1 A exatido foi atingida em i-1 iteraes, e a raiz x2 18. Fim
x Objetivo 9: Seja a funo f ( x) = (e - 1) / x Compute no MatLab a funo por meio do algoritmo: Algoritmo 1: Se x=0 f ( x) = 1 Caso contrrio f ( x) = (e x - 1) / x Fim
i Calcule para x = 10 com i variando de -5 a -16 com passo 1. Analise o resultado e verifique o que est acontecendo.

Compute agora com um algoritmo matematicamente equivalente: Algoritmo 2: y = ex

158

Se y=1 f ( x) = 1 Caso contrrio f ( x) = ( y - 1) / ln( y ) Fim


i Calcule tambm para x = 10 com i variando de -5 a -16 com passo 1. Analise o resultado e verifique o que est acontecendo.

Compare os resultados e apresente as concluses.

159

Referncias Bibliogrficas
[1] BARROSO, Lenidas C. et. al., Clculo Numrico (com Aplicaes), 2a edio, Editora Harbra, So Paulo, 1987. [2] CLAUDIO, Dalcidio M., MARINS, Jussara M., Clculo Numrico Computacional, 2a edio, Atlas, 1994 [3] SANTOS, Vitoriano R. B., Curso de Clculo Numrico, 4a edio, LTC, 1982. [4] RUGGIERO, Mrcia A. G., LOPES, Vera Lcia R., Clculo Numrico: Aspectos Tericos e Computacionais, 2a edio, Makron Books, So Paulo, 1996. [5] CAMPOS, R. J. A., Clculo Numrico Bsico. 1 edio, Atlas, 1978 [6] CAMARGO, W. C. M., Apostila de Clculo Numrico. Departamento de Informtica. UFPR.

S-ar putea să vă placă și