Documente Academic
Documente Profesional
Documente Cultură
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
4.2
4.3
4.4
4.5
MTODO DA SECANTE .....................................................................................................................32 MTODO MISTO ..............................................................................................................................34 MTODO PARA EQUAES POLINMIAIS ........................................................................................35
4.8.4
5.3 5.4
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.7
6.8
8.2.1
Exemplos ............................................................................................................................................ 106 Regra do Trapzio Repetida............................................................................................................... 108 Exemplos ............................................................................................................................................ 108 Regra de Simpson Repetida................................................................................................................ 110 Exemplos ............................................................................................................................................ 110
8.3 8.4
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
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
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:
(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=
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!')
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.
Nmeros
{{ { {
Complexos (2+3-1 ) Irracionais (p; 2 ) Reais Inteiros (-1004; 2) Racionais Fracionrios
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
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
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
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
+ ... +
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
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
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
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].
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
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
a 0
4.1.1
Dx 0
f ( x ) - f (a ) x-a
Dx 0
lim
f ( a + Dx ) - f ( a ) Dx
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
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
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
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
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 )
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)
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:
b ponto fixo
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)
a ponto fixo
y
f(x) f(b)
b ponto fixo
f(a) f(x)
a x 0 x2 x1 b x
xb 0 a x1 x2 f(b) x
f(a)
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
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
| 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)
26
y y=g(x) y=x
f(x) 0 x x
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 )
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
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
y=g(x)
0 x2 x1 x0 x x
0 x4 x2 x0 x x1x3 x
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
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
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
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
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
4.5.2
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
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
| 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:
=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 -
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
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
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 - 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
(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
N \ x0 = 1
(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 -
(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=
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
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 +
37
P5(x) = 3x + 2x + 4x + x 1
1 + + + 1 -
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
| 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
| 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
| 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 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
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
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
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
44
bn a nn
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
x1 + 2 x 2 + x3 = 3 2 x1 + x 2 - x3 = 0 3x1 - x 2 - x3 = -2
45
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
46
x1 + x 2 + 2 x 3 = 4 2 x 1 - x 2 - x 3 = 0 x 1 - x 2 - x 3 = -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
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
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
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
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
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
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
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
51
5.4
5.4.1
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
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
11
(1) 2
1
22
...
(1) n
1
nn
x ,x
(0 ) 1
(0) 2
(0)
- 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=
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) =
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
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 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)
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
( k -1)
- ... - a3n x n
( k -1)
(k ) n
1
nn
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
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 )
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
57
DX
(k )
B -I X
(k )
-S
( k -1)
\(D + I ) X
(k )
B -S X
( k -1)
= ( 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
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
58
d) Iteraes:
X
X
(1)
( 4)
( 3)
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
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
2 2
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
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
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)
-3
-2
-1
61
5.4.5.2
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.
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
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
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
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) =
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
= Nx
(k )
+ b converge para
-1
(0)
r ( M -1 N ) = max{l : l l ( M -1 N )}
= b - (L + U ) x
(k )
M =D N = -( L + U )
= 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))
(x2, f(x2))
f(x)
x0
x1 x2
x3
x4
x5
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
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)
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
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
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
a) Pontos utilizados: ( 0; 0 ) ( p/6; 0.328 ) b) Clculo dos coeficientes: P2(x) = a2x2 + a1x + a0
( p/4; 0.560 )
() ()
() ()
70
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 )
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 ) .
i j i> j
(x - x )
i j i> j
= (x1 - x0) (x2 - x0) (x2 - x1) (x3 - x0) (x3 - x1) (x3 - x2) =
72
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
y
k =0
Lk ( x )
onde Lk(x) =
(x
j =0 j k
( x - xj ) k - xj )
73
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
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=
f (x ) \ a
2
= 2
f (x ) - P (x ) ( x - x )( x - x )
2 1 2 2 0 2 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 =
\ P3 ( x ) = 2 x + 2
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
....
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
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[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
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
...
Dn f ( x0 ) . n!h n
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
-1 2
0 1
1 2
2 5
3 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
(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;
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
(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 =
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
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
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
6.8.3
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
88
(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)
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) =
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
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
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
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
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
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
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
x
i =1
x
i =1 m
2 i
x
i =1
b) Resoluo do sistema: Assim, os valores de a1 e a2 da melhor reta (no sentido dos quadrados mnimos) so obtidos pelo sistema:
99
a1 =
f ( x ) - x a
i =1 i i =1 i
m
m m m
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
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
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
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
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
x
i =1
2 i
x
i =1
3 i
x
i =1 m
4 i
x
i =1
101
x
i =1
2 i
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
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
x
i =1
4 i
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)
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
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
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
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
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
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
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
-1
x dx , para n = 8.
3
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 =
xi
xi+1
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
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
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
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 ) =
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
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
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
T(0.5) =
T(0.25) =
T(0.125) =
x ln( x )dx =
1
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
x2
x2
x2
x2
x2
f ( x )dx 3 [ f ( x ) + 4 f ( x ) + f ( x )] = Is x
0 1 2
x0=a h
x1 h
x2=b
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
f(xi) 1 1.1052
ci 1 4
111
2 3 4 5 6 7 8 9 10 S
S ( h10) =
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
1 dx , considerando n = 10. 1+ x2 0
mtodo analtico:
4
2
x ln( x )dx
1
S(0.25) =
S(0.25) =
mtodo analtico:
x ln( x )dx =
1
x
0
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.
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
113
dy = x+ y dx dy = x2 + y 2 dt
d2y dt 2
+ (1 - y 2 )
dy +y=0 dt
9.2.2
2u x 2
2u y 2
=0
u funo de x e y; x e y so variveis independentes.
9.3
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
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
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)]
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
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
A soluo da equao diferencial acima uma funo do tipo y (x) , conforme ilustrada abaixo:
y (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
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
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
Resolvendo esta equao atravs do Mtodo de Euler, iremos determinar aproximaes para pontos de y (x) .
x0 = 0 y0 = 2
119
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.
1.5
0.5
0.2
0.4
0.6
0.8
Na
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
y2 y1
y( x 2 )
y ( x3 )
y ( x1 )
Erro
x0
x1
x2
x3
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
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
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 x+
Tangente
no
ponto
xi
x i +1 / 2
x i +1
h 2
x i +1 / 2 = x i +
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
Euler Mod. yj 2,0000000 2,0050000 2,0190250 2,0412176 2,0708019 2,1070757 2,1494035 2,1972102
124
8 9 10
9.8.1
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 )
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
[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
[ [
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 0 1 2 3
xj
127
4 5 6 7 8 9 10
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)
128
9.8.3
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)
(4)
(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
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 )
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
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
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
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 )
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
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
x0
x1 x 2 .... x n
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
f ( x, y)dx
xn
134
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
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:
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.
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 +
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.
V Testar se
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 +
( y 30) = 1,0150 +
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
138
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 .
j 0 1 2 3 4
xj
y1, j
y 2, j
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
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
J 0 1 2 3 4
xj
y1, j
y 2, j
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
j 0 1 2 3
xj
y1, j
y 2, j
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
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
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
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
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
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
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 cos(3,5t ) = f 2 (t , z1 (t ), z 2 (t )) 2
z 1 ( 0) = 0 z 2 ( 0) = 0
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
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
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
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
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
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
R= 0 0 0 0
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
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 + * : --
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
>= == ~=
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
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
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.
158
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.