Você está na página 1de 36

CAP.1 ARITMTICA COMPUTACIONAL 1.1.

. Introduo O objectivo de qualquer mtodo numrico consiste em, pela sua prpria definio, fornecer solues numricas a problemas matemticos. pois essencial compreender a noo de nmero, os vrios tipos de nmeros, as suas diferentes representaes (sobretudo as usadas pelos computadores), as operaes admissveis, os erros cometidos e seus efeitos nos resultados. 1.1.1. A Contagem e os Nmeros Reais Primeiro foram os dedos. O advento da agricultura e comrcio impuseram mtodos de contagem mais sofisticados e maior domnio das operaes aritmticas. Criaram-se diferentes sistemas de numerao, todos eles com um conjunto (finito e geralmente pequeno) de smbolos bsicos (os algarismos) e um conjunto de regras de formao dos nmeros. Ex. o sistema romano de numerao, as regras eram complicadas usando ora o princpio aditivo ora o subtractivo. Desta forma os algarismos podiam adquirir um valor diferente consoante a sua posio, ou seja, tinham um valor posicional. O nmero de smbolos bsicos designado por base desse sistema. 1.1.2. A Medio e os Nmeros Reais Os nmeros naturais resolveram o problema da contagem, mas para medies no so suficientes para exprimir o valor de certas grandezas fsicas. Por outro lado o resultado de certas operaes conduzem a resultados no inteiros. O conceito de nmero real permite resolver estes 2 problemas: um de natureza fsica e outro de natureza matemtica. 1.2. Representao de Nmeros Inteiros Um inteiro positivo N com n dgitos possui a representao decimal N = (dn dn-1 ... d1 d0)10 = dn x 10n + dn-1 x 10n-1 + ... + d1 x 101 + d0 x 100 Esta ideia pode ser generalizada a uma base b diferente de 10, em que b>=2 e inteiro N = (dn dn-1 ... d1 d0)b = dn x bn + dn-1 x bn-1 + ... + d1 x b1 + d0 x b0 Como a um nmero correspondem tantas representaes quantas as bases, logo, infinitas representaes, convm no confundir um n com qualquer das suas possveis representaes. Um problema que se coloca a mudana de base: Mudana da base b para a base 10 soma ponderada Mudana da base 10 para a base b divises sucessivas onde se vai aproveitando os restos. Basta recordar que dividindo N por b obtemos dnbn-1 + dn-1bn-2 +...+ d1 como quociente e b0 como resto e assim sucessivamente. usual designar por bit (binary digit) o elemento de memria bsico que assume os dois estados que se associam aos dgitos 0 e 1. O nmero de bits disponveis para a representao de nmeros inteiros determina qual o maior n inteiro representvel em computador. A representao decimal desperdia bits e , portanto, menos econmica que uma base que seja potncia de 2. acresce ainda que a aritmtica decimal mais difcil de implementar em computador. 1.2.2. Inteiros No Positivos Geralmente reserva-se o bit 0 para o sinal + e o 1 para o sinal -. Nesta representao h 2 zeros, o +0 e o 0, correspondendo portanto a 2 configuraes de bits distintas. Esta duplicidade pode constituir um inconveniente, por exemplo na operao de comparao. Por isso usam-se outras tcnicas que evitam este tipo de problemas e tornam mais fceis as operaes com ns negativos. 1.3. Representao de Nmeros Reais Na base decimal 43.82 interpretada como 43 + .82 em que, por sua vez: 43 = 4x101 + 3x100 e .82 = 8x10-1 + 2x10-2 Generalizando: x = (dndn-1...d0.d-1d-2...d-k)10 = dnx10n + dn-1x10n-1+...+d0 + d-1x10-1+d-2x10-2 + ...+d-kx10-k Para base b s substituir o 10 por b Os dgitos (dndn-1...d0) so a parte inteira e os (d-1d-2...d-k) a parte fraccionria

Mudana da base 10 para a base b A parte inteira igual (divises sucessivas); a parte fraccionria por multiplicaes sucessivas pela base para a qual queremos passar (b). Se multiplicarmos x por b verificamos que d-1 a parte inteira do resultado e d-2b-1 + ... + d-kxb-k+1 a parte fraccionria do resultado. Se continuarmos obtemos d-2 e assim sucessivamente. de notar que h partes fraccionrias decimais que tm representao binria finita e outros infinita, sendo que esses ns no so pois representveis num computador binrio, que por natureza uma mquina com capacidade finita. Mudana da Base b para a Base 10 o mesmo mtodo da soma ponderada pelo valor posicional do dgito na base original, a b. 1.3.1. Notao Cientfica de Nmeros Reais Nas aplicaes cientficas h necessidade de recorrer a nmeros muito grandes e a nmeros muito pequenos, sendo que a maioria dos dgitos so zeros e, por outro lado, as medies que permitem obter estes ns nem sempre garantem tantos dgitos exactos. A forma de resolver as dificuldades inerentes representao destes ns a notao cientfica: x=+-mbt m n real no negativo (mantissa); b>=2 um inteiro positivo (base); t inteiro (expoente). Como, fixada a base b, a representao no nica, h que resolver ambiguidade -> conveno: m=0 se x=0 ; b-1 <= m < 1 se x!=0 ---> representao normalizada. Mantm-se como ambiguidades x=0 (expoente t arbitrrio) e para nmeros cuja mantissa tem infinitos dgitos repetindo-se periodicamente (ex: .9999... que consideramos equivalente a 0.1x101) 1.3.2. Representao em Ponto Flutuante A notao cientfica, tal como apresentada, no pode ser representada em computador, pois, para cobrir todos os reais, a mantissa e o expoente exigiriam um n infinito de dgitos. Assim, modificada no sentido de se utilizar um n finito de p dgitos para a mantissa e um n finito de q dgitos para o expoente, obtendo-se a representao em ponto flutuante. A notao FP(b,p,q) , que constitudo por todos os ns reais x da forma: x=+-mbt em que b-1 <= m <= 1-b-p |t| <= bq-1 e ainda x=0 Se o nmero a representar exceder o maior que se pode representar overflow; se for menor que o menor representvel underflow. Pi tambm no representvel porque exece o n de dgitos da mantissa. 1.4. erros Na Aritmtica em Ponto Flutuante 1.4.1. Erros de Representao Como acabmos de ver, a representao em ponto flutuante s permite a representao exacta de alguns ns reais. a questo legtima : dado um n real x qual o n em FP(b,p,q), que denotaremos por A(x), que o representa? Se x tiver representao exacta A(x)=x. Se no, h 2 tcnicas: truncatura e arredondamento. Truncatura: Desprezam-se simplesmente os dgitos do n real x que no cabem na mantissa, isto , os dgitos da mantissa alm dos p primeiros so desprezados. Arredondamento: O n real x representado pelo n do sistema FP(b,p,q) que lhe est mais prximo em valor absoluto. A ambiguidade do arredondamento resolve-se pela tcnica do arredondamento simtrico: - Se b e b/2 forem pares, arredondar de modo a que o ltimo dgito fique mpar; - Se b for par e b/2 for mpar (como o caso quando b=2 ou b=10), arredondar de modo a que o ltimo dgito fique par; - Se b for mpar, optar por uma das regras anteriores, j que parece no haver vantagens ou desvantagens determinantes em qualquer uma delas. Erro absoluto: E=A(x) x = m~bt mbt = (m~-m)bt como |m~-m| <= b-p em T e b-p em A, O erro absoluto majorado por |E| <= bt-p em T e bt-p em A Se x!=0 o erro relativo dado por:

e=(x~-x)/x = (A(x)-x)/x - exprimindo em valores absolutos e majorando o numerador e minorando o denominador, chega majorao para o erro relativo: |e| <= b1-p para T e b1-p para A O segundo conhecido por unidade de arredondamento do sistema u de ponto flutuante do computador, mesmo quando este opera por T. Nestas condies sempre vlida a seguinte relao: A(x) = (1+e)x com |e| <= u (3) 1.4.2. Erros nas Operaes Aritmticas Para a soma e subtraco temos: x1+- x2 = m1bt1 +- m2bt2 = (m1+-m2b-(t1-t2)) bt1 se t1>t2 (m1b-(t2-t1) +- m2) bt2 se t1<=t2 Estas operaes desenvolvem-se em computador de acordo com os seguintes passos: 1. Decomposio dos operandos, isto , separao destes nmeros nas respectivas mantissas e expoentes; 2. Alinhamento das mantissas e dos expoentes para a soma e subtraco 3. Operao com as mantissas e/ou com os expoentes 4. Normalizao da mantissas, isto , translao esquerda da mantissa com decremento do expoente em uma unidade por cada zero esquerda da mantissa 5. Arredondamento da mantissa 6. Recomposio do resultado, ie, reunio da mantissa e do expoente para formar o resultado no sistema de ponto flutuante. De notar que s as operaes com as mantissas introduz erro (com os expoentes s em overflow e underflow) pois so inteiros. Outra nota importante que as operaes em ponto flutuante no respeitam, em geral, as propriedades comutativa, associativa e distributiva. Soma y=x1+x2 e designando por e3 o erro relativo da soma, temos que, aplicando (3): y~= (1+e3)(1+e1)x1 + (1+e3)(1+e2)x2 (4) Esta expresso tem uma leitura importante, que a seguinte: O resultado da soma de 2 ns em ponto flutuante idntico ao que se obteria com aritmtica exacta mas com operandos perturbados, isto , com (1+e3)(1+e1)x1 em vez de x1 e... em vez de x2. As perturbaes so muito pequenas, pois |e1|, |e2|, |e3| < u << 1, como sabemos. Como estas parcelas vo aparecer muitas vezes, h que estimar o seu valor: Teorema 1.4.1 Sejam e, nmeros tais que |ei| <= u com i=1,...,n e u um nmero positivo tal que nu<=0.01. Ento, existe um nmero real verificando || <=1 e tal que i=1 a n (1+ei) = 1 + 1.01nu (5) Tendo em contas o que se acabou de ver, os erros absoluto E e relativo da soma so obtidos da seguinte maneira: E=y~-y=1.01(2u)(1x1 + 2x2) e = (y~-y)/y = 1.01(2u) ( (1 (x1 / x1 + x2) + (2 (x2 / x1 + x2) A majorao de e revela-se fcil: |e| <= 1.01(2u) max (|1|, |2|) ((x1/(x1+x2)) + (x2/(x1+x2))) <= 1.01(2u) ou, de outra forma y~= A(x1+x2) = (x1+x2)(1+e) , com |e| <= 1.01(2u)

Subtraco O tratamento da subtraco segue de perto o efectuado para a soma.

S que a subtraco pode conduzir a erros relativos muito grandes quando os nmeros a subtrair so muito prximos. Este fenmeno conhecido por cancelamento subtractivo e constitui uma fonte importante de erros nos clculos em ponto flutuante para os quais devemos estar atentos. Multiplicao y~=A(x1x2) = [(1+e1)x1(1+e2)x2](1+e3) = (1+e3)(1+e1)(1+e2)x1x2 O que quer dizer que o resultado de y~ idntico ao que se obteria com operandos perturbados. E=[(1+e3)(1+e2)(1+e1)-1!x1x2 e= (1+e3)(1+e2)(1+e1)-1 e, portanto, y~=A(x1x2) 0 x1x2(1+e) e = 1.01(3u) com || <= 1

O Teorema 1.4.1. permite estimar o erro relativo, vindo:

Diviso Repetindo a anlise efectuada para a multiplicao chega-se a: (1+e1) x1 y~=A(x1/x2) = (1+e3) ---------------------(1+e2) x2 Aps alguns clculos, chegamos s expresses dos erros absoluto e relativo: E=1.01(3u) x1/x2 e= 1.01(3u) com || <=1 , por conseguinte temos tambm para a diviso que:

y~= A(x1/x2) = x1/x2 (1+e) Somatrio de Nmeros y=

xi
i =1

Se atendermos a que o computador executa o algoritmo de somas parciais (termo a termo), vamos chegar concluso, aps alguns clculos, que o erro relativo pode ser facilmente majorado se os xi tiverem todos o mesmo sinal . |e| <= | i xi/y| <= max |i| <= 1.01nu com i=1.01i(n+1-i)u com |i|<=1

Donde se conclui que se os xi tiverem todos o mesmo sinal, o erro relativo pode ser majorado independentemente dos valores dos xi. Se no tiverem o mesmo sinal isso j no possvel, pelo cancelamento subtractivo a que j aludimos. Por outro lado, como os majorantes dos i decrescem com i, se for vivel devemos comear por somar os ns mais pequenos (em valor absoluto) a fim de minimizar o produto ixi. Embora no conduza necessariamente ao menor erro absoluto, pode contribuir para um maior preciso do resultado. Tambm se deve usar para os resultados parciais uma varivel de dupla preciso o que conduz a um menor erro absoluto, raramente ultrapassando uma unidade de arredondamento, qualquer que seja o valor de n. Produto Interno de Vectores s=
n

xiyi
i =1

CAP. 2 INTERPOLAO POLINOMIAL 2.1. Introduo 2.1.1. Generalidades Pretende-se fazer passar uma certa curva por pontos dados mas a funo f tem de ter certas qualidades emergentes do contexto do problema e/ou h a necessidade de tornar o problema matematicamente bem posto. Os polinmios so excelentes candidatos devido s suas propriedades, de que iremos falar. O uso de tabelas provoca os seguintes problemas, quando o valor x no est na tabela: utilizar o valor mais prximo? E, neste caso, qual o erro cometido? As mquinas eliminaram estes problemas mas o estudo da interpolao ainda importante devido a 2 razes: Primeira a interpolao um meio relativamente simples de aproximar certas funes. segunda a interpolao constitui o fundamento de muitos outros mtodos numricos. Aos pontos x0, x1, x2, ..., xn d-se o nome de ns de interpolao. Aos respectivos valores associados, y0, y1, y2, ..., yn, valores nodais. ||f|| = max |f(x)| d-se o nome de norma (de mximo) da funo f. xbarra A ideia de interpolar valores pode estender-se tambm interpolao de valores das derivadas, pelo que o problema fica em determinar: f(j)(xi)=yij, j=0,1,...,mi i=0,1,...,n Quando os mi forem todos iguais a zero, camos na anterior e diz-se que a interpolao do tipo Lagrange. Se no forem todos iguais a zero diz-se do tipo Hermite. Se apenas interpolarmos algumas das derivadas no ponto xi, dizemos que do tipo Birkhoff. Definio 2.1.1. Diz-se que uma funo um polinmio de grau n se puder ser escrita na forma: p(x) = anxn + an-1xn-1 + ... + a1x + a0 Aos a d-se o nome de coeficientes, o grau n e denota-se por deg p. O grau do polinmio nulo , por conveno, - . Se an01 o polinmio diz-se mnico. Como os computadores s fazem operaes aritmticas bsicas, trabalham s com funes racionais. Todas as outras funes so obtidas por meio de aproximaes que envolvem polinmios. Teorema 2.1.1. (Weierstrass) Seja um intervalo finito, e um nmero real positivo arbitrrio. Ento, para qualquer funo f C(), existe um polinmio p tal que ||f-p|| < . A interpolao polinomial produz com naturalidade polinmios aproximadores. Exemplos 2.1.1. Verificar se uma dada funo um polinmio - fazer a alnea e) , dos cosenos --> polinmios de Chebyshev (de primeira espcie). 2.1.2. Algoritmo de Horner Para calcular o valor de um polinmio num dado ponto x - p(x) -, atravs de um n finito de operaes aritmticas computadores. lgoritmo 2.1.1. inicializao: y=a0; w=x; para i=1 at n fazer: y=y+ai*w w=w*x fim do ciclo i p(x) = y Este algoritmo requer n somas e 2n multiplicaes. Se pusermos x em evidncia sucessivamente, chegamos seguinte forma: p(x) = (((anx + an-1)x + an-2)x + ...+ a1)x + a0 Pelo que o algoritmo fica: Algoritmo 2.1.2. inicializao: y=an

para i=n-1 at 0 fazer: y=ai + y * x fim do ciclo i p(x) = y Este algoritmo bastante melhor pois s requer n somas e n multiplicaes e ainda por cima o erro de arredondamento menor. 2.2. Formas Polinomiais A forma de representar os polinmios que vimos chama-se forma de potncias simples. H alternativas. 2.2.1. Forma de Newton p(x) = a0 + a1 (x-c) + a2 (x-c)2 + ... + an (x-c)n Ao parmetro c d-se o nome de centro do polinmio e a esta forma d-se o nome de forma de potncias centradas. quando c=0, a forma de potncias simples recuperada. A forma anterior no mais que o desenvolvimento em srie de Taylor do polinmio p em torno do centro c, pelo que os coeficientes ai se podem obter por: ai = p(i)(c)/i! i=0,1,...,n A forma de Newton obtida por generalizao da expresso anterior: p(x) = a0 + a1(x-c1) + a2(x-c1)(x-c2) +...+ an(x-c1)(x-c2)...(x-cn) ci so ainda centros. O algoritmo de Horner fica ento, quando aplicado a polinmios sob a forma de Newton: Algoritmo 2.2.1 (Horner com centros) inicializao: y=an para i=n-1 at 0 fazer: y0ai + y * (x ci+1) fim do ciclo i p(x)=y Este mesmo algoritmo de Horner permite passar de uma forma de Newton com centros ci para outra, com centros ci Algoritmo 2.2.2. inicializao: an=an para i = n-1 at 0 fazer: ai = ai + ai+1 * (c ci+1) fim do ciclo i p(c) = a0 Os coeficientes a so, como se pode provar, os coeficientes da forma de Newton. A aplicao do algoritmo uma vez permite introduzir o centro c e retirar o centro cn. A sua aplicao repetida, fazendo c=c1, c2, ..., cn, sucessivamente, permite passar o polinmio na forma de potncias simples para a forma de potncias centradas com os centros indicados, introduzindo um novo centro de cada vez que o algoritmo aplicado. De notar que os centros aparecem, na frmula final, pela ordem inversa da utilizada na sua introduo, no algoritmo. Ex. 2.2.2. Passar o polinmio p(x) = x3 x2 + 2 forma de Newton com centros em 1, -1 e 0. ver resoluo e notas na pg.1. 2.2.2. Factorizao de Polinmios A tcnica de introduzir centros permite obter uma outra forma de representao bastante til. Teorema 2.2.1. Se z1,z2,...,zk forem zeros distintos do polinmio p, ento: p(x) = (x-z1) (x-z2) ... (x-zk) r(x) com r(x) um polinmio. Este teorema tem como corolrio que o n de zeros distintos de um polinmio de grau n <=n. O Teorema Fundamental da lgebra que o n de zeros (contando com multiplicidades) de um polinmio de grau n n.

Teorema 2.2.2. (Unicidade do Polinmio Interpolador) Se p e q forem dois polinmios de grau <= nque assumem os mesmos valores num conjunto de ns distintos x0,x1,...,xn, ento os 2 polinmios so iguais. (Demonstrao...) Definio 2.2.1. Diz-se que z um zero de multiplicidade m do polinmio p se p(z) = p(z) = ... = p(m-1)(z) = 0 e p(m)(z) =! 0 se m=1 o zero diz-se simples, se m=2, duplo, ... Teorema 2.2.3. (generalizao do teorema 2.2.1.) Se z1, z2,...,zk forem respectivamente zeros de multiplicidade m1, m2, ..., mk, ento p(x) = (x-z1)m1 (x-z2)m2 ... (x-zk)mk r(x) em que r um polinmio Teorema 2.2.4. (generalizao do teorema 2.2.2. Sejam p e q dois polinmios de grau <=n e d=p-q a sua diferena. Se p e q coincidirem do seguinte modo nos ns x0,x1,...,xk d(j)(xi) = 0 j=0,1, ..., mi-1 e i=0,1,...,k com

mi = n+1, ento p=q


i =0

2.3. Interpolao de Lagrange Vimos que o polinmio interpolador, quando existe, nico. O objectivo da presente seco demonstrar a sua existncia, o que pode ser feito por dois mtodos. O primeiro baseia-se na formao de um sistema de equaes lineares, cuja soluo fornecer os coeficientes do polinmio interpolador. Como sabemos, para que este sistema tenha soluo nica necessrio e suficiente que a respectiva matriz, conhecida por matriz de Vandermonde, possua um determinante diferente de zero. O prximo teorema vai permitir provar simultaneamente a existncia e unicidade do polinmio interpolador.

1 1 V(x0,x1,...,xn) = M 1
v(x0,x1,...,xn) = det V (x0,x1,...,xn) =!0 Teorema 2.3.1. O determinante de Vandermonde tem o valor v(x0,x1,...xn) =
i , j =0 j >1

x0 x1 M xn

L ( x0) n ... ( x1) n O M L ( xn) n

( xj xi)

e, por conseguinte, se os ns de interpolao forem distintos, o polinmio interpolador existe e nico. A construo do polinmio por esta via tem duas desvantagens: primeira implica resolver um sistema de equaes lineares de ordem n+1 o que de complexidade O(n3). Segunda o sistema de equaes torna-se tanto mais mal condicionado quanto maior for o grau n do polinmio, verificando-se que este mtodo no permite ir alm de valores de n da ordem da dezena quando se trabalha em aritmtica com 6 ou 7 decimais de preciso, j que os coeficientes nestas condies no tm qualquer dgito significativo. 2.3.1. Frmula de Lagrange Uma forma mais directa baseia-se nos polinmios de Lagrange que passamos a construir. Introduzamos o polinmio nodal:

Wn(x) =
n

( x xi) = (x-x0) (x-x1)...(x-xn)


i=0
k-1

cujo grau n+1 e que se anula em todos os ns. Por outro lado, definamos o polinmio lk =

( x xi) = (x-x0)...(x-x
i=0 i =!k

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

que se anula em todos os ns menos no n xk. O seu valor neste n pode determinar-se por continuidade, recorrendo regra de Cauchy. Ento o polinmio Lk(x) = lk(x)/lk(xk) anula-se em todos os ns excepto no n xk em que toma o valor 1. Definio 2.3.1. Os polinmios L (x) = xk xi
k

x xi

i=0 i =!k

designam-se por polinmios de Lagrange relativos aos ns x0, x1, ..., xn. Recorrendo a estes polinmios, a construo do polinmio interpolador trivial. Teorema 2.3.2. O polinmio interpolador p de grau <= n que interpola os valores y0,y1,..., yn nos ns distintos x0, x1, ..., xn dado por: p(x) =

L ( x) y
k =0 k

(Demonstrao...)

Exemplo 2.3.1. Construir o polinmio interpolador de grau <=3 que interpola os valores seguintes: x0 1 3 4 y - 1 -1 1 2 (ver resoluo em pg.2) Apesar da sua simplicidade, a frmula de Lagrange pode no ser a forma mais conveniente de representar o polinmio interpolador. Por 2 razes. primeira possvel obter este polinmio realizando menos operaes aritmticas. Segunda est muito associada aos ns e estes, nas aplicaes, mudam de n ou de posio, pelo que o polinmio interpolador construdo numa tentativa no aproveitado nas tentativas seguintes. 2.3.2. Frmula de Newton Evita inconvenientes da frmula de Lagrange. Se considerarmos os pontos x0,x1,...,xn-1 como centros do polinmio, podemos escrev-lo: pn = a0 + a1W0 + anWn-1 = pn-1 + anWn-1 em que W0=x-x0, ... , Wn-1 = (x-x0) ... (x xn-1) so polinmios nodais. Os coeficientes a0, a1, ... , an vo ser determinados de modo a que pn dado por esta expresso seja o polinmio interpolador nos ns x0, x1, ... , xn isto significa que devemos ter: pn8x0) = y0, pn(x1) = y1, ... , pn(xn)=yn Donde se conclui que os coeficientes do polinmio devem satisfazer: a0 = y0 ak = yk pk-1(xk) / Wk-1(xk) Como os coeficientes s dependem dos x e dos y, se quisermos acrescentar mais pontos s faz-lo por induo: pn+1(x) = pn(x) + an+1Wn(x) 2.3.3. Diferenas Divididas Os coeficientes, porque dependem s dos x e dos y, podem escrever-se na forma: ak = y[x0,x1,...,xk]

estes coeficientes chamam-se habitualmente diferena dividida de ordem k e a maneira de calcul-los estabelecida no seguinte teorema. Teorema 2.3.3. Os coeficientes ak do polinmio p de grau <= n que interpola os valores y0, y1, ..., yn nos ns distintos x0, x1, ..., xn so dados indutivamente pela expresso: ak = y[x0,x1,...,xn] = y[x1,...,xk] y[x0,x...,xk-1] / xk x0 Ento, o polinmio pode ser escrito na forma seguinte, se rotularmos os ns de outra forma: pm,k+1(x) = (x-xm)pm+1,k(x) + (xm+k+1 x)pm,k(x) / xm+k+1 xm o polinmio de grau <=k+1 que interpola nos ns distintos xm, xm+1,...,xm+k+1 os valores correspondentes dos y. Esta a frmula de Aitken-Neville de construo do polinmio num dado ponto x, a qual se distingue pelo facto de no precisar do clculo especfico dos coeficientes para determinar o valor no ponto x. Da expresso do teorema 2.3.3., temos em particular que: y[x0] = y0 y[x0,x1] = y[x1] y[x0] / x1-x0 y[x0,x1,x2] = y[x1,x2] y[x0,x1] / x2 x0 .... O aspecto destas expresses torna aconselhvel e conveniente dispor o clculo das diferenas divididas numa tabela (ex: para 4 ns): x y[.] y[., .] y[. , . , .] y[. , . , . , .] x0 x1 x2 x3 y0 y[x0,x1] y1 y[x1,x2] y2 y[x2,x3] y3 Exemplo 2.3.2. Determinar o polinmio interpolador do ex. 2.3.1. na forma de Newton (pg.3) Os valores nodais yi no tiveram at aqui qualquer ligao entre si. Mas se forem de uma fun f, possvel estabelecer uma ligao importante entre as diferenas divididas de ordem k e a derivada da mesma ordem de f. Teorema 2.3.4. Seja f Ck () e x0,x1,...,xn ns distintos pertencentes ao intervalo . Ento, existe um ponto tal que f[x0,x1,...,xn] = (1 / k! ) * fk () 2.3.4. Interpolao Inversa Se a funo f possuir inversa, como o caso quando estritamente montona, podemos escrever que x=g(y) e os valores x e y podem trocar de papel --> interpolao inversa. Situao frutuosa: Supnhamos que queramos calcular o valor de x tal que f(x)=c. Ento podemos interpolar g e depois x=g(c), ou aproximadamente p(c) Ex. 2.3.3. Determinar aproximadamente o zero da funo f(x) = ln(1 + x2) exp(-x) no intervalo [0,1]. (pg...) 2.4. Erros de Interpolao Teorema 2.4.1. Seja f Cn+1() e pn o polinmio de grau <=n que interpola f nos ns distintos x0,x1,...,xn contidos no intervalo . Ento, para qualquer ponto x pertencente a existe um valor dependente de x0,x1,...,xn, de x e de f, tal que: en(x) = f(x) pn(x) = (1 / (n+1)!) * fn+1()Wn(x) y[x1,x2,x3] y[x0,x1,x2] y[x0,x1,x2,x3]

Como o normalmente desconhecido temos de nos contentar com um majorante. assim, usando a norma do mximo fcil de deduzir: ||en|| <= (1/(n+1)!) ||fn+1||||Wn|| (2.4.3.) Mas substitumos uma dificuldade por outra(s): Calcular as normas do 2 membro. Por isso uma estimativa do erro que por vezes til : ||en|| <= (1/4(n+1)) ||fn+1||hn+1 Em que h o espaamento mximo entre ns consecutivos. Ex: 2.4.1. Pretende-se construir uma tabela para a funo f(x) 0 ln(x) no intervalo [1,2] com ns equidistantes e de modo a que o erro cometido quando se interpola linearmente nesta tabela no exceda em valor absoluto (0.5)10-5. Determinar o espaamento dos ns. Resoluo na pg.... de notar que nos casos mais complicados, em que no conseguimos determinar ||fn+1|| ou um seu majorante aceitvel, usual recorrer a diferenas finitas (cap.3) para estimar o seu valor. Rigidez dos polinmios Uma interrogao que se pe de saber se o erro tende para zero quando n-->infinito. a resposta que nem sempre tal sucede. Este comportamento por vezes referido como denunciando a rigidez dos polinmios para acompanhar a funo interpolada. 2.4.2. Ns de Chebyshev A expresso 2.4.3. mostra que o erro depende de f e de W (dos pontos). A representao de W mostra que esta funo possui os seus maiores valores (absolutos) na proximidade dos extremos, pelo que podemos concluir que os polinmios interpoladores devem ser usados, sempre que possvel, na zona central do respectivo intervalo de interpolao. Tambm a extrapolao para fora do intervalo deve ser feita com cautelas. Uma questo interessante de saber qual a posio dos ns que tornam ||Wn|| mnimo. Veremos que quando os ns coincidem com os zeros dos polinmios de Chebyshev. Vamos supor que o intervalo de interpolao [-1,1]. Se no for s temos que usar a transformao de coordenadas: x = a ((1- )/2) + b ((1 + )/2) com pertencendo a [-1,1] Teorema 2.4.2. O polinmio de Chebyshev Tn, tem os zeros localizados nos pontos (2k-1) xk = cos ------------- , k=1,...,n 2n E os extremos localizados nos pontos xk = cos (k/n) k nos quais Tn(xk) = (-1) ----> ||Tn|| =1 Mas estes polinmios tm outra propriedades notveis. fcil provar que o coeficiente an de Tn igual a 2n-1, pelo que o polinmio Tn = 2n-1Tn mnico. Teorema 2.4.3. O polinmio Tn , de todos os polinmios em Pn[-1,1] (todos os mnicos) o de menor norma, isto , ||Tn|| <= ||p||, qualquer que seja p pertencente a Pn[-1,1] Escolhendo os zeros do polinmio de Chebyshev Tn+1 como ns de interpolao, pode sem dificuldade concluir-se que: Wn(xk) = Tn+1(xk) = 2-n donde ||Wn|| = 2-n 1 daqui resulta que en(x) = ------------------ fn+1()Tn+1(x) 2n(n+1)! Ento a expresso do majorante do erro passa a ser: 1 ||en|| <= ----------------- ||fn+1|| em [-1,1]

2n(n+1)! (b-a)n+1 ||en|| <= ----------------- ||fn+1|| 22n+1(n+1)! em

2.5. Interpolao Com Ns Equidistantes 2.5.1. Frmulas de Interpolao Em muitas aplicaes os ns so equidistantes, pelo que h vantagem em especializar o formulrio deduzido nas seces anteriores para acolher este caso. Sendo h a distncia entre ns sucessivos, podemos escrever: h=(xn-x0)/n xk = x0 + kh com k=0,1,...,n conveniente introduzir a transformao linear de coordenadas: s = s(x) = (x-x0)/h, x = x(s) = x0 + sh de que resulta f(x) = f(x0 + sh) O clculo das diferenas divididas de uma funo f pode simplificar-se se introduzirmos o conceito de diferenas conforme se explica na definio seguinte. .... 2.7 SPLINES Mencionmos atrs, na seco 2.4., as dificuldades que podem surgir quando se empregam polinmios interpoladores de elevado grau e vimos que um remdio escolher mais criteriosamente os ns. Outra forma de ataque usar os splines, que so polinmios seccionalmente contnuos, uma vez que os polinmios so realmente muito atraentes em termos computacionais. Definio 2.7.1. Uma funo S um spline polinomial de grau m (m>=0) relativo aos ns a = x0 < x1 < ... < xn = b se verificar as seguintes propriedades: S coincide em cada subintervalo i = [xi-1, xi), i=1,...,n com um polinmio de grau <= m S pertnece a Cm-1() O conjunto dos splines polinomiais de grau m na malha i ser denotado por Pm,n Empregaremos ainda a seguinte notao: hi=xi xi-1, h = max hi Em que h se costuma dar o nome de parmetro da malha. 2.7.1. Splines De Grau Zero o mais simples, m=0. Coincide em cada subintervalo i, com uma constante e pertence a C-1() bvio que Si(x) = yi. Para construir este spline preciso tomar uma opo relativamente escolha dos valores dos yis. Se o spline interpolar uma funo f C1() podemos escolher pontos ai i e fazer Si(x)=f(ai), i=1,2,...,n. Os casos mais vulgares so tomar o extremo esquerdo do subintervalo, isto , ai=xi-1, ou o extremo direito, isto , ai=xi, ou o ponto mdio, isto , ai=xi-1 + xi)/2. A escolha afecta p erro de interpolao. Teorema 2.7.1. Seja f C1() e S P0,n. Ento, o erro de interpolao de f por S majorado por ||e|| <= ||f|| h ou ||e|| <= ||f|| h conforme se escolham os extremos ou ponto mdio. Esta expresso sugere que devemos tentar concentrar os ns nas zonas em que a primeira derivada for maior em valor absoluto, se os pudermos escolher livremente. V-se ainda que existe convergncia quando h 0havendo vantagem em usar os pontos mdios. 2.7.2. Splines de Grau 1 xi-x x xi-1 Si(x) = yi-1 ------------ + yi ------------Hi hi

com xi-1 <= x <= xi

Em que os yi so os valores nodais do spline. Teorema 2.7.2. (estimativa do erro) Seja f C2() e S P1,n. Ento o erro de interpolao de f por S majorado por ||e|| <= 1/8 ||f|| h2 2.7.3. Splines Quadrticos O spline seguinte obtido pondo m=2 coincide com um polinmio de grau <= 2em cada subintervalo i e S C1(). A construo deste spline , contudo, menos directa. Podemos escrever que Si(x) = yi-1 + mi-1 (xi xi-1) + mi/2 (x-xi-1)2 (2.7.3) Em que recorremos seguinte notao mi = S(xi) i=0,1,...,n Mi = Si(x), i=1,...,n Esta forma de representao garante partida a continuidade da derivada do spline nos ns. A expresso 2.7.3. garante que o spline quadrtico assume para xi-1 o valor yi-1. Como Si(x) = mi-1 + Mi8x xi-1) Temos que mi = Si (xi) = mi-1 + Mi hi Donde se extrai Mi = (mi mi-1) / hi, i=1,..,n (2.7.5.) Que permite obter os Mi a partir dos mi. Para que o spline interpole o valor yi em xi devemos ter que si(xi) = yi-1 + mi-1 hi + Mi/2 hi2 = yi Combinando esta expresso com a anterior, resulta que Yi yi-1 mi = 2 -------------- - mi-1 com i=1,...,n (2.7.6.) hi assim, se m0 for dado podemos obter atravs de 2.7.6. os valores nodais das derivadas m1, m2, ... e, por meio de 2.7.5. os valores dos parmetros Mi. Contudo verifica-se que o comportamento destes splines algo instvel, razo da sua pouca utilizao, havendo alternativa fcil. 2.7.4. Splines Cbicos A facilidade de construo e a relativa estabilidade de comportamento justificam a sua maior divulgao e popularidade. Vejamos como constru-los. Podemos escrever na forma (fica automaticamente assegurada a continuidade das 2s derivadas) xi-x x - xi-1 Si(x) = Mi-1 ------------ + Mi ----------hi hi Mi so chamados de momentos. Integrando 2 vezes: (xi x)3 (x xi-1)2 xi x x xi-1 Si(x) = Mi-1 -------------- + Mi --------------- + ci ----------- + di --------------(2.7.8.) 6 hi 6 hi hi hi ci e di so constantes de integrao que podem ser determinadas se impusermos as condies de interpolao: Si(xi-1) = yi-1 e Si(xi) = yi Chegando-se a: ci = yi-1 Mi-1 hi2 / 6 e di = yi Mi hi2 / 6 As quais se introduzidas em 2.7.8. do: (xi x)3 (x xi-1)3 xi x x xi-1 Si(x) = Mi-1 ------------- + Mi ------------------- + (yi-1 Mi-1 (hi2/6)) ---------- + (yi Mi (hi2/6) ---------6 hi 6 hi hi hi Para concluir a construo do spline falata determinar os valores dos momentos, o que se faz impondo a condio de continuidade das primeiras derivadas dos ns, Si(xi-) = Si+1(xi+=, i = 1,2,...,n-1 (2.7.11) Derivando a expresso de Si(x) temos que Si(x) = - mi-1 (xi x)2 / (2 hi) + Mi (x xi-1)2 / (2hi) + (yi yi-1)/hi (mi Mi-1)hi/6 E, por conseguinte Si(xi-) = (yi yi-1)/hi + hi Mi-1/6 + hi Mi/3

Si+1(xi+) = (yi+1 yi) / hi+1 hi+1 mi/3 hi+1 mi+1/6 Introduzindo estas relaes em 2.7.11 e agrupando termos, vem que: (hi/6) * Mi-1 + ((hi + hi+1)/3) * Mi + ((hi+1/6) * Mi+1) = (yi+1 yi)/hi+1 - (yi yi-1)/hi com I = 1,2,,n-1 Estas expresses formam um sistema sde n-1 equaes a n+1 incgnitas. Pelo que temos de impor 2 condies suplementares, que sero determinadas pela finalidade do spline Spline Completo Corresponde ao caso em que as primeiras derivadas nos ns extremos so conhecidas S1(x0) = y0 e Sn(xn) = yn com y0 e yn dados. Ento as condies suplementares so facilmente extradas, vindo: (y1 y0)/h1 h1 M1/6 h1 M0/3 = y0 2.7.15.a (yn yn-1)/hn + hn Mn-1/6 + hn Mn/3 = yn 2.7.15.b O spline assim obtido designa-se por spline completo. Spline Natural Na ausncia de qualquer informao dos extremos frequente optar pelas condioes S1(x0) = M0 = 0 Sn((xn) = Mn = 0 Dizendo-se que neste caso o spline natural. Estas condies fronteira reduz a preciso do spline Spline Peridico Se a funo a interpolar for peridica no intervalo mega barra, as condies suplementares devem evidentemente ser: Y0 = yn, S(x0) = S(xn) M0 = Mn Para assegurar a periodicidade do spline cbico. A imposio destas condies tem como consequncia nefasta a destruio da estrutura tridiagonal do sistema de equaes. Continuidade Da Terceira Derivada em x1 e xn-1 Isto , fazendo S1(3)(x1-) = S2(3)(x1*) e Sn-1(3)(xn-1-) = Sn(3)(xn-1+) Equaes Resolventes Estudamos s o caso do spline completo. Para este o sistema de equaes resultante das expresses 2.7.11 e 2.7.15 escrito na forma matricial :

2 1 M 0 0

0 2 O L L

0 L 1 L O O n 1 2 0 n

0 0 M n 1 2

M 0 b0 M 1 b1 M = M M n 1 bn 1 M b n n

em que pusemos, por economia de notao, 0 = 1, b0 = (6/h1) ((y1-y0)/h1 - y0) n = 1, bn = (6/hn) (yn (yn yn-1)/hn) e, para i = 1,..., n-1 i = hi+1 / (hi + hi+1) i = hi / (hi + hi+1) = 1 i 6 yi+1 yi yi yi-1 bi = ------------ (---------------- - ------------- ) hi + hi+1 hi+1 hi Trata-se, como facilmente se verifica, de um sistema cuja matriz de diagonal estritamente dominante por linhas a qual, como se demonstrar no cap.6 sempre invertvel, pelo que tem soluo nica qualquer que seja o 2 membro b. Acresce que tridiagonal o que torna a obteno dos momentos relativamente fcil, como veremos no cap.6 As boas propriedades do spline cbico, nomeadamente a ausncia de oscilaes esprias encontram justificao terica no

Teorema 2.7.3. (Holladay) Sejam dados os ns a 0 x0 < x1 < ... < xn = b e os valores nodais y0, y1, ..., yn. Ento, de todas as funes f C2 () que interpolam estes valores, o spline cbico natural a nica funo que torna mnimo o valor de J(f) = J(f) representa uma espcie de curvatura mdia de f no intervalo mega barra. O enunciado diznos que o spline cbico natural , de todas as curvas interpoladoras com derivadas contnuas at segunda ordem, aquela que mais direita. Erros de Interpolao A deduo de estimativas dos erros de interpolao dos splines cbicos est fora do mbito. No entanto til saber os resultados: Teorema 2.7.4. Seja f C4() e S o spline cbico satisfazendo qualquer das condies suplementares referidas nesta subseco. Ento, ||f S|| <= (5/384) ||D4 f|| h4 ||D(f-S)|| <= ((sqrt3/216) + (1/24)) ||D4 f|| h3 ||D2(f-S)|| <= ((1/12) + (1/3)/(h/h)) ||D4 f|| h2 ||D3(f-S)|| <= (1 + (h/h)2) ||D4 f|| h em que h o mnimo de hi com i de 1 a n

[ f ''( x)] dx
2 a

CAPTULO 3 DIFERENCIAO NUMRICA 3.1. Introduo Em muitas circunstncias torna-se necessrio obter valores das derivadas de uma funo sem recorrer respectiva expresso analtica por esta no ser conhecida ou por ser demasiado complicada. Por isso conveniente ter tcnicas alternativas derivao analtica que sejam simultaneamente fceis de usar e que permitam obter a preciso necessria. Estas tcnicas so designadas por diferenciao numrica. Mas ateno, 2 funes podem convergir tanto quanto se queira e o mesmo no acontecer com as suas derivadas. No obstante os exemplos pessimistas que se podem dar, possvel fundamentar a obteno de derivadas substituindo a funo a derivar por uma outra que de algum modo a aproxime mas cuja derivao seja mais simples. Como candidatos a funes aproximadoras surgem com toda a naturalidade os polinmios. 3.2. Derivadas De Primeira Ordem Consideremos ento o problema de determinar o valor da primeira derivada de uma funo f num ponto x dado, sendo conhecidos os valores nodais yi = f(xi) nos n+1 ns distintos xi = 0,1,...,n. Como referimos, a tcnica mais usual consiste construir o polinmio interpolador nestes pontos e calcular analiticamente a respectiva derivada, esperando deste modo obter uma aproximao suficientemente boa. Como vimos no cap.2 en(x) = f(x) pn(x) Com en(x) = f[x0,x1,...,xn]Wn(x) Com o polinmio nodal Wn(x) =

(x x )
i=0 i

(3.2.3.)

Derivando e aplicando o teorema 2.3.4. temos uma forma de exprimir o erro da derivada esclarecedora: 1 1 en(x) = ----------- f (n+2) () Wn(x) + -------------- f(n+1) () wn(x) (3.2.5.) (n+2)! (n+1)! onde e pertencem ao intervalo mega barra. Em duas situaes especiais mas com interesse prtico, esta expresso pode ser simplificada O ponto x coincide com um dos ns Tendo em ateno 3.2.3., o 1 termo de 3.2.5. anula-se vindo: en(x) = (1/(n+1)! )* f(n+1) () Wn(xi) = (1/(n+1)!) f(n+1) ()

(x x )
j =0 j =!i i j

O ponto x um zero de Wn Em certos casos o ponto em que se pretende calcular a derivada est disposto simetricamente em relao aos ns, o que implica imediatamente que estes sejam em n par e que, portanto, n seja mpar. Se designarmos agora por x barra o ponto em que se quer calcular a derivada, devido simetria temos que Wn(x) = 0 e ento o 2 membro de 3.2.5 anula-se e obtemos:
( n 1) / 2

e(x) = (1/(n+2)!) f(n+2) ()

i =0

& ((& xi ) 2 ) x&

Vejamos agora alguns casos particulares de maior aplicao 3.2.1. Diferenas Finitas De Primeira Ordem n=1 e x=x0 p1(x) = f(x0) + f[x0,x1](x-x0) p1(x) = f[x0,x1] e, portanto, f(x0) p1(x0) = f[x0,x1] = f(x1) f(x0) / x1 x0 pondo h = x1 x0 e usando Dhf(x) para indicar a derivada aproximada de f no ponto x dhf(x) = f[x + h, x] = f(x+h) f(x) / h Esta expresso a diferena finita progressiva de primeira ordem e h o passo.

Como x um n podemos aplicar 3.2.6. para obter o erro : e1(x) = hf() com [x0,x1] Daqui decorre que se a 2 derivada de f contnua em [x0,x1], o erro tende para zero com a primeira potncia de h N=1 e x=x1 Da mesma maneira obtm-se a diferena regressiva de primeira ordem e o erro: Dhf(x) = f[x,x-h] = f(x) f(x-h) / h e1(x) = hf() n=1 e x=(x0+x1)/2 Chega-se sem dificuldade a Dhf(x) = f[x+h,x-h) = f(x+h) f(x-h) / 2h Que a diferena finita central de primeira ordem O erro e1(x) = -1/6 h2f(3)() Para funes em que a 3 derivada contnua no intervalo, o erro tende para zero com h2, o que representa uma melhoria. Exemplo 3.2.1 (fazer) Calcular a primeira derivada da funo f(x) = exp(sin x) no ponto x=0,5 utilizando as diferenas finitas de primeira ordem com h=0,01 3.2.2. Diferenas Finitas de 2 Ordem Todas as frmulas anteriores foram baseadas em interpolao linear. Vejamos agora se os polinmios forem do 2 grau, isto , n=2 p2(x) = f(x0) + f[x0,x1](x-x0) + f[x0,x1,x2](x-x0)(x-x1) p2(x) = f[x0,x1] + f[x0,x1,x2](x-x0 + x-x1) X=x0 Dhf(x0) = f[x0,x1] + f[x0,x1,x2](x0-x1) e e2(x0) = 1/6 f(3)() (x0-x1)(x0-x2) Se os ns forem equidistantes: -3f8x) + 4f(x+h) f(x+2h) Dhf(x) = -----------------------------------------2h E e2(x) = 1/3 h2f(3)() (3.2.14)

(3.2.16)

3.2.14 e 3.2.16 so conhecidas por diferenas finitas progressivas de 2 ordem. Uma observao pertinente que apesar de usarem 3 pontos de interpolao apresentam uma estimativa de erro pior que a central de 1 ordem simetria benfica. x=x2 chegamos a Dhf8x2) = f[x0,x1] + f[x0,x1,x2] (2x2 x0 x1) e2(x) = 1/6 f(3)()(x2-x1) (x2-x0) 3f(x) 4f(x-h) + f(x-2h) e a Dhf(x) = ----------------------------------2h e2(x) = 1/3 h2f(3)() x=x1 Dhf(x1) = f[x0,x1] + f[x0,x1,x2] (x1-x0) e2(x) = 1/6 f(3)()(x1-x0)(x1-x2) Se os ns forem equidistantes, dar: Dhf(x) = f(x+h) f(x-h) / 2h Que , nada mais nada menos, a diferena central de 1 ordem 3.3. Derivadas de Segunda Ordem As tcnicas anteriores generalizam-se facilmente ao clculo de derivadas de ordem superior. Agora, claro que o primeiro polinmio a considerar de grau 2, isto , n=2 interpolando nos ns x0,x1 e x2:

p2(x) = f(x0) + f[x0,x1](x-x0) + f[x0,x1,x2](x-x0)(x-x1) p(x) = 2f[x0,x1,x2] e, por conseguinte, f(x) p(x) = 2f[x0,x1,x2] Se os ns forem equidistantes: D2hf(x) = f(x-h) 2f(x) + f(x+h) / h2 Derivando 2 vezes: e2(x) = f[x0,x1,x2,x,x,x]W2(x) + 2f[x0,x1,x2,x,x]W2(x) + f[x0,x1,x2]w2(x) Se x coincidir com algum dos ns resulta que W2(x)=0 e, substituindo as diferenas divididas por derivadas temos e2(x) = 1/12 f(4)()W2(x) + 1/6 f(3)()W2(x) No caso de os ns serem equidistantes: e2(x0) = 1/6 h2f(4)() h f(3)() e2(x2) = 1/6 h2f(4)() h f(3)() x=x1 - h anula-se e: e2(x1) = -1/12 h2f(4)() Onde mais uma vez se mostra a vantagem das diferenas finitas centrais. A tabela da pgina 105 compila todas as frmulas deduzidas e mais algumas. Frmula geral f(k)(xj) k!/n! * 1/hk

a f (x )
i =0 i i

Exemplo 3.3.1. (fazer) Uma partcula move-se sobre o eixo dos x, tendo-se registado as seguints posies ao longo do tempo t: t 0,0 0,2 0,4 0,6 0,8 1,0 x 0,0 0,1987 0,3894 0,5646 0,7174 0,8415 Pretende-se determinar a acelerao nos instantes t=0,0 e t= 0,6 3.4. Derivao Com Splines Com splines possvel obter frmulas de diferenciao numrica de elevada preciso. Mas isso pode ser computacionalmente caro, pelo que h, em cada caso, de ponderar o custo vs. Preciso pretendida. (xi x)2 (x xi-1)2 yi yi-1 Si(x) = -Mi-1 ------------- + Mi --------------- + ------------- + (Mi-1 Mi) hi/6 2hi 2hi hi x1 x x xi-1 Si(x) = Mi-1 ----------- + Mi -------------hi hi 3.5. Influncia Dos Erros de Arredondamento As expresses de erro deduzidas mostra, que, se as derivadas apropriadas da funo f forem limitadas, a derivada calculada pelas frmulas de diferenas finitas converge para o valor exacto com uma certa potncia de h. No entanto, se tivermos em conta os erros de arredondamento, esta situao altera-se radicalmente. Se utilizarmos um exemplo (pg.107), v-se que o erro diminui numa primeira fase com h mas depois aumenta. Se calcularmos o erro total (no exemplo para as centrais) vamos obter: e. (h+h) e.(x-h) h2 E = ----------------------- - ---- f(3)() com e. Vindo de f(x) = f.(x) + e.(x) e f. Valor aproximado de f 2h 6 V-se que composto por duas partes distintas, uma proveniente da frmula das diferenas finitas e proporcional a h2 e outra resultante dos erros de arredondamento e proporcional a 1/h.

Daqui pode inferir-se que deve haver um valor de h para o qual o E mnimo. Infelizmente no so conhecidos nem a funo e nem o valor de . No entanto possvel estimar um valor aproximado, razovel. Se admitirmos as hipteses: ||f(3)|| <= M3 e |e.(x+h) e.(x-h) <= 2 Em que M3 designa um majorante das terceiras derivadas e um parmetro que depende da forma como a funo f calculada. ser da ordem de grandeza da unidade de arredondamento do computador: |E| <= /h + M3/6 * h2 O 2 membro da expresso mnimo quando h = (3 / M3)1/3 3.6. Extrapolao de Richardson Vimos que os erros de arredondamento limitam seriamente a preciso que possvel obter com as frmulas de derivao numrica. Vamos ver que existe um processo de minorar, mas no eliminar, o efeito da aritmtica de preciso finita. Consideremos a frmula de diferenas finitas progressivas de primeira ordem, para concretizar. O erro pode ser expresso por: e(x) = f(x) Dhf(x) = f(x) (f(x+h) f(x))/h = -1/2 f(x)h 1/3! f(x)h - ... =
2

c h
i =1

i i

ou seja, o erro dado por uma srie de potncias de passo h em que os coeficientes ci envolvem as derivadas f(i), sendo, por isso difcil de calcular em geral. Nestas condies Dhf(x) = f(x) +

c h
i =1 i

(3.6.2.)

O processo de extrapolao de Richadson consiste em considerar a derivada dada, no por 3.6.2., mas por uma srie truncada a partir de um certo termo, Dhf(x) f(x) +

c h
i =1 i

e ajustar um polinmio em h de grau <= k aos valores obtidos para uma sucesso decrescente {hi}ki=0 . O valor deste polinmio no ponto h = 0 fornece naturalmente uma aproximao, em princpio melhor, para f(x). O facto de h=0 no pertencer ao intervalo d o nome. Designemos por Dm,k o valor extrapolado usando os seguintes ns de interpolao hm, hm+1,..., hm+k A frmula de Aitken-Neville permite obter este valor sem necessidade de construir explicitamente o polinmio interpolador, vindo: hm+k+1 Dm,k - hm Dm+1,k Dm,k+1 = ----------------------------------Hm+k+1 - hm Uma sucesso frequentemente usada hi = h0/2i, i=0,1,2,..., ou seja, procedendo por bisseces sucessivas de um intervalo original h0. Exemplo 3.6.1. (fazer) aplicar o processo de extrapolao de Richardson ao clculo de f(0) com f(x)=exp(x) com diferenas finitas centrais e bisseco dos passos.

CAPTULO 4 INTEGRAO NUMRICA 4.1. Introduo Designaremos de um modo geral por integrao numrica o processo de obter valores aproximados para o integral de uma funo f no intervalo = [a,b] da recta real, ou seja, aproximaes para I(f;) = A necessidade de recorrer a mtodos aproximados provm das seguintes situaes: - A expresso analtica de f no conhecida o que acontece quando esta funo dada por tabelas ou obtida por medies de grandezas. - A expresso analtica de f dada mas a primitiva desta funo: - no conhecida e, portanto, a forma usual de determinao do integral no vivel, ou demasiado complicada e, portanto, a forma usual de determinao do integral no se revela econmica. Como na diferenciao, a chave do problema aproximar a funo por outra cujo integral seja fil de calcular. Mais uma vez vamos pelos polinmios interpoladores. razovel esperar que o valor de Ih(f) = I(pn) seja, sob certas condies, aproximado de I(f). O erro : Eh(f) = I(f) ih(f) = I(f) I(pn) = I(f-pn) Como se v, o erro depende da maior ou menor aproximao do polinmio pn a f e adiante apresentaremos estimativas desta importante grandeza. Mudana do Intervalo de Integrao Muitas vezes necessrio aplicar uma mudana de varivel no integral; para transformar o intervalo [a,b] de integrao num dos intervalos normalizados ou de referncia usuais [-1,1] ou [0,1]. Ento I =

f ( x )dx

f ( x ) dx =

f (T ( )) J ( )d

Em que J( ) = T( ) o jacobiano da transformao. Registamos, para uso futuro, as frmulas de transformao aplicveis neste caso: Se [ , ] = [-1,1] Se [ , ] = [0,1] T( J( T( J( ) = a(1 - ) / 2 + b (1+ ) / 2 ) = (b-a)/2 ) = a (1- ) + b ) = b-a

4.2. REGRAS BSICAS Seja, como habitualmente pn o polinmio de grau n que interpola a funo f nos ns x0,x1,...,xn: pn(x) =

f ( xi ) Li ( x)
i =0

Sendo assim, fcil ver que: Ih (f) = I(pn) =


b

pn ( x)dx = ai f ( xi ) =
a i =0 i

L ( x)dx
i a

Pondo Ai =
n

L ( x)dx
a i

podemos escrever que: (4.2.2.)

Ih(f) =

A f (x )
i =0 i

Esta expresso costuma designar-se por regra de integrao ou frmula de quadratura, e os Ai por coeficientes ou pesos dessa regra. Consoante o valor de n e a localizao dos ns no intervalo mega barra, assim se obtm diferentes regras de integrao.

Definio 4.2.1. Uma regra de integrao diz-se de grau ( de exactido) n se integrar exactamente todos os polinmios de grau n e existir pelo menos um polinmio de grau n+1 que no por ela integrado exactamente. Uma concluso que o grau de exactido da frmula 4.2.2. n. Teorema 4.2.1. O grau de exactido de uma regra de integrao Ih da forma (4.2.2.) que utilize os n+1 ns distintos x0,x1,...,xn no pode exceder 2n+1. Uma questo que tem interesse a de saber se este valor limite para o grau de exactido pode ser realizado por alguma regra. A resposta sim. 4.2.1. DEDUO DAS FRMULAS Correspondem a diferentes escolhas dos polinmios: 1 REGRAS DO RECTNGULO caso mais simples polinmio de grau 0, que interpola a funo f no ponto x0. p0(x) = f(x0) e, portanto, Ih(f) = I(p0) =

f ( x )dx
0 a

= (b-a) f(x0)

Se fizermos coincidir x0 com o extremo esquerdo do intervalo, isto , x0=a, obtemos a regra do rectngulo esquerda: Ih(f) = (b-a) f(a) Se tomarmos x0=b obtemos a regra do rectngulo direita Ih(f) = (b-a)f(b) fcil verificar que ambas possuem grau zero. 2 REGRA DO PONTO MDIO Uma outra escolha natural ser fazer x0 = (a+b)/2, obtendo-se a regra do ponto mdio: Ih(f) = (b-a) f((a+b)/2) Esta regra de grau 1. 3 REGRA DO TRAPZIO Passamos agora aos polinmios interpoladores de grau n=1 cuja forma de Newton p1(x) = f(x0) + f[x0,x1](x-x0) Teremos que desenvolvendo obtemos: Escolhendo x0=a e x1=b, obtemos a regra do trapzio: Ih(f) = (b-a)/2 * [f(a) + f(b)] O grau 1. 4 - REGRA DE SIMPSON Passamos agora a polinmios de grau 2. O polinmio interpolador da funo f nos pontos x0,x1,x2 : P2(x) = f(x0) + f[x0,x1](x-x0) + f[x0,x1,x2](x-x0)(x-x1) Tomando x0=a , x1=(a+b)/2 e x2=b e desenvolvendo: Ih(f) = I(p2) = (b-a)/6 * [f(a) + 4f((a+b)/2) + f(b)] Que a clebre regra de integrao de Simpson. O grau pelo menos 2 sendo na realidade 3. 5 REGRAS DE NEWTON-COTES Todas as regras apresentadas recorrem a polinmios interpoladores da funo integranda em ns equidistantes no intervalo de integrao. Estas regras podem ser deduzidas de forma sistemtica e constituem a famlia das regras de Newton-Cotes: Tabela 4.2.1. Frmulas de Newton-Cotes Ih(f) = (b-a)/2 * (

a f (x ) )
i =0 i i

Xi = a + ih, I=0,1,,n

h=(b-a)/n

Nota: Os coeficientes ai so simtricos, isto , an-i=ai N d a0 a1 1 2 1 2 6 1 4 3 8 1 3 4 90 7 32 5 288 19 75 6 840 41 216 7 17280 751 3577 8 28350 989 5888 A partir de n=8 aparecem pesos negativos o que arredondamento promove cancelamento subtractivo.

a2

a3

a4

12 50 27 272 1323 2989 -928 10496 -4540 nocivo do ponto de vista dos erros de

4.2.2. ERROS DE INTEGRAO Para poder escolher a regra de integrao a utilizar. Do que vimos em 2.4.1. podemos deduzir que o erro de integrao dado por: Eh(f) = I(f) Ih(f) = H 2 situaes tpicas e com interesse prtico em que esta expresso pode sofrer uma simplificao notvel. A primeira quando o polinmio Wn no muda de sinal no intervalo mega barra. Invocando o teorema do valor mdio para integrais Eh(f) = f[x0, x1,, xn, ] Wn ( x)dx
a

f [ x0 , x1 ,...xn , x]Wn ( x) dx

com mega barra. Admitindo que f Cn+1 ( ), por fora do teorema 2.4.1., vem que:

Eh(f) = ------------- f (n+1)!

(n+)

( ) Wn ( x)dx
a

Uma concluso imediata que o grau de exactido das respectivas regras igual a n. A segunda situao quando

W ( x)dx
n a

=0

tendo em ateno a definio e a propriedade de simetria das diferenas divididas ... se for possvel escolher xn+1 de modo a que Wn+1 possua um nico sinal em mega barra fazemos o mesmo que antes e se fCn+2( ), ento podemos concluir que:

1 Eh(f) = ---------------- f (n+2)!


O grau de exactido n+1 Apliquemos estas estimativas de erro s regras de integrao mais usuais. Para as regras do rectngulo temos que n=0 com W0(x) = x-a (esquerda); W0(x) = x-b (direita). Eh(f) = f( ) direita.
(n+2)

( ) Wn +1 ( x)dx
a

( x a)dx = 2 f '( )(b a)


a

, o mesmo resultado d para a regra do rectngulo

Para a regra do ponto mdio vem que W0(x) = x-x0 em que x0 = (a+b)/2, que muda de sinal em mega barra. Contudo o integral (segunda hiptese/variante) zero. Escolhendo x1=x0 resulta que W1(x) = (x-x0)2 que de sinal nico. Aplicando 4.2.13 vem: Eh(f) = 1/24 f( )(b-a)3 Tem pois grau de exactido igual a 1. Passemos regra do trapzio. Como netse caso W1(x) = (x-a)(x-b) tem um nico sinal: Eh(f) = - 1/12 f( )(b-a)3 tambm de grau 1.Uma comparao no favorece a regra do trapzio, j que esta necessita de 2 valores da integranda, contra apenas 1 da do ponto mdio para uma estimativa de erro que at pior. No entanto, nas compostas, a do trapzio pode ser melhor. A de Simpson, temos que W2 muda de sinal, mas ... igual a zero; fazendo x3=x1=a+b/2, esulta um W3 que de sinal nico. Calculando, chegamos a Eh(f) = - 1/2880 f(4)( )(b-a)5 4.5. REGRAS COMPOSTAS A busca de maior preciso passa pela utilizao de frmulas de grau maior. Mas isso nem sempre assim, pois a funo pode no ter a regularidade necessria. Uma alternativa so as regras compostas. A ideia : observando as expresses do erro das vrias frmulas, verificamos que eme todas elas este depende de uma certa potncia do comprimento b-a. Ento, uma reduo do comprimento do intervalo tender a reduzir o erro tanto mais quanto maior for o expoene de b-a. Ento subdivide-se o intervalo em N subintervalos. Depois calcula-se o integral numrico de cada subintervalo e faz-se o seu somatrio. vejamos para subintervalos todos do mesmo tamanho h= (b-a)/N Regras do rectngulo compostas: Ih(f; ) = h

f (a
i =1 N i =1

1)

O erro a soma dos erros cometidos em cada subintervalo, que vai dar: Eh(f; ) = h2/2
N

f '( )
i

mas adimitindo que fC1( ) e invocando o teorema do valor mdio para

somatrios do valor de uma funo:

f '( ) = N f(
i =1 i

) = f( ) b-a/h,

pelo que se obtm: Eh = (b-a)/2 f( )h Um raciocnio idntico leva concluso que para a direita tudo igual mas simtrico. V-se que as regras levam o erro a tender para zero com h. Perde-se uma unidade do expoente de h, ao passar das simples para as compostas(todas). Regra do Ponto Mdio Composta Ih(f) = h

f (a
i =1

i 1

+ h / 2)

Eh(f) = (b-a)/24 f( )h2 convergncia quadrtica em h para funes pertencnetes a C2 de mega barra. Regra do Trapzio Composta Ih(f) =

h / 2[ f (ai 1 ) + f (ai )] = h[1/2 f(a) +


i =1

f (a ) + 1/ 2 f (b)]
i =1 i

N 1

Eh(f) = - (b-a)/12 f( )h2 J no to desvantajosa em relao do ponto mdio composta, como acontecia com as simples. Regra de Simpson Composta Ih(f) = h/6 [f(a)+f(b) + 2
(4)

i =1
4

N 1

f (ai ) + 4 f (ai 1 + h / 2)]


i 01

Eh(f) = b-a/2880 f ( )h

Regra do Trapzio Corrigida Composta Ih(f) = h[1/2 f(a) +

f (a ) + 1/ 2 f 8b)] + h /12 [f(a) f(b)]


i
2

N 1 i 01

A desvantagem do clculo de derivadas da funo f fica agora reduzida aos extremos do intervalo e a correco introduzida permite ter xpresso de erro mais favorvel. Eh(f) = b-a/720 f(4)( )h4 Uma aplicao sagaz s funes f peridicas, conduz a: Ih(f) = h

f (a )
i =1 i

CAP. 5 EQUAES (algbricas) NO-LINEARES


5.1. INTRODUO 5.1.1. Razes e Erros O problema que iremos resolver pode resumir-se deste modo: determinar os valores de z que tornam nulo o valor da funo f, ou seja, resolver a equao f(z)=0. Centrar-nos-emos nas funes reais de varivel real. exigiremos ainda que f possua regularidade suficiente, variando esta consoante os mtodos. Exemplo 5.1.1. As funes seguintes, com domnios e regularidades diversos, so representativas do tipo de funes no-lineares cujos zeros podem ser calculados pelos mtodos (aproximados) a desenvolver neste captulo. f(x) = sin x x2 f C (R) f(x) = x4 x2 + 2x1/2 f C (R+) 3/2 f(x) = exp x - |x| - 2 f C1 (R) Definio 5.1.1. Se f(z)=0, ento diz-se que z uma raiz da equao f(x)=0 ou que z um zero da funo f. Os zeros podem ser simples (a funo cruza o eixo dos xx e muda de sinal), duplos (a funo toca o eixo dos xx mas no muda de sinal) ou triplos (a funo cruza o esixo dos xx e muda de sinal, mas f-lo de forma a que o zero seja um seu ponto de tangncia com o eixo dos xx. Defino 5.1.2. A multiplicidade de um zero z da funo f o supremo dos valores k tais que:

lim
k >

| ek + 1| =c | ek | p

se m=1, o zero diz-se simples, se m=2 diz-se duplo,... A multiplicidade no , contudo, necessariamente, um n inteiro. Exemplo 5.1.2. Determinar a multiplicidade de zeros (fazer): z=1; f(x) = x2-1 simples z=1; f(x) = x2 2x + 1 = (x 1)2 duplo z=0; f(x) = x1/2 m= z=1; f(x) = x1/2 1 simples Agora podemos compreender melhor a afirmao coloquial de que na vizinhana de um zero z de multiplicidade m a funo f se comporta como (x-z)m . Por outro lado, se f tiver uma regularidade suficiente, possvel relacionar a multiplicidade dos zeros com as derivadas desta funo. Teorema 5.1.1. Se z for um zero da funo f, e se f for m vezes continuamente diferencivel no ponto z, ento a multiplicidade de z m sse f(z) = f(z) = ... = f(m-1)(z) = 0 e f(m)(z) =! 0 5.1.2. Iteraes e Ordem de Convergncia Os mtodos que vamos recorrer assumem, em geral, o carcter iterativo. Concretamente, estes mtodos partem do conhecimento de s valores aproximados x0, x1, x2, ... , xs-1 da raiz z e com estes constrem uma nova aproximao xs desejavelmente melhor. xk = gk(xk-1,...,xk-s), com k = s, s+1, ... (5.1.1.) em que gk uma funo apropriada especfica do mtodo em questo e conhecida por funo de iterao. Se esta funo gk no depender de k, o mtodo iterativo diz-se estacionrio. caso contrrio no-estacionrio. O esquema iterativo 5.1.1. gera, quando aplicado repetidamente, uma sucesso de valores xk aos quais correspondem os erros ek = z - xk Obviamente, de interesse que os mtodos iterativos sejam convergentes: lim xk = z lim ek = 0 k k Por outro lado preciso ter em ateno a rapidez de convergncia.

Definio 5.1.3. Sejam xk e xk duas sucesses que convergem para o mesmo limite z. Diz-se que xk converge mais rapidamente que xk se:

lim x
k >

x 'k z =0 k z

Definio 5.1.4 a) Se o erro de um mtodo iterativo na obteno do zero z da funo f satisfizer a condio |ek+1| m <= ------------ <= M para qualquer k >=N |ek|p com 0< m <= M < , p>=1 e N um n natural, diz.-se que p a ordem de convergncia do mtodo relativamente ao zero da funo f. b) Se, alm disso, existir uma constante c>0 tal que:

lim
k >

| ek + 1| =c | ek | p

diz-se que c a constante de erro asimpttico

Se p=1, a convergncia diz-se de primeira ordem ou linear, se p>1, supralinear, se p=2, de segunda ordem ou quadrtica,... p e c podem depender da funo e do zero tambm, isto , um mesmo mtodo pode exibir diferentes ordens de convergncia e constantes de erro em diferentes zeros duma mesma funo. Teorema 5.1.2. Seja ek uma sucesso que satisfaz a condio a) da definio 5.1.4. Se p = 1 e M<1, ek converge para zero qualquer que seja o valor de eN. Se p>1, ek converge para zero para qualquer valor de M desde que o valor eN seja suficientemente pequeno. A necessidade de ter ou no estimativas iniciais suficientemente prximas do zero pretendido leva-nos a distinguir entre mtodos de convergncia local (exigncia requerida) e mtodos de convergncia global. 5.2. MTODO DA BISSECO 5.2.1. Descrio do Mtodo O mtodo da bisseco consiste em construir subintervalos Ik = [ak,bk] I = [a,b] por divises sucessivas a meio e relativamente aos quais tambm se verifique que f(ak) e f(bk) tenham sinais diferentes. Consideremos as seguintes 3 situaes. Se f(xk+1) = 0, ento xk+1 um zero e o algoritmo termina aqui. Se f(ak) e f(xk+1) tiverem sinais diferentes, faa-se ak+1 = ak e bk+1=xk+1 e ... ao contrrio. 5.2.2. Erros e Convergncia Teorema 5.2.1. Seja f C[a,b] e tal que f(a) e f(b) tenham sinais diferentes. Ento, a sucesso {xk} determinada pelo mtodo da bisseco converge para um zero de f neste intervalo, e o erro satisfaz a relao |a-b| |ek| <= ---------(5.2.2.) 2k Da expresso 5.2.2. deduz-se imediatamente que |ek+1| 0 <= ------------ <= |ek| Exemplo 5.2.1. (fazer) Do exemplo anterior, podemos concluir que o mtodo da bisseco global; A convergncia poder ser bastante lenta, pelo que, por vezes, usado como fase preparatria para outros mtodos. 5.3. MTODO DA FALSA POSIO

5.3.1. Descrio do Mtodo Procede-se do mesmo modo que no mtodo da bisseco excepto que o ponto xk se determina no como um ponto mdio do intervalo, mas como a interseco da secante que passa pelos pontos (ak, f(ak)) e (bk, f(bk)). A equao desta secante pode escrever-se nas seguintes formas alternativas: y = f(ak) + f[ak, bk](x ak) y = f(bk) + f[ak,bk](x-bk) pelo que xk+1 dado por uma das expresses seguintes: f(ak) xk+1 = ak - -----------f[ak,bk] f(bk) xk+1 = bk - --------------f[ak,bk] xk+1 = ak f(bk) - bk f(ak) / f(bk) f(ak) (5.3.5.) O denominador da expresso 5.3.5. constitudo por 2 parcelas com o mesmo sinal, pelo que no de recear o aparecimento do cancelamento subtractivo. Mtodo da Falsa Posio Modificado lenta quando um dos extremos, ak ou bk, se imobiliza. Ento pode usar-se a seguinte modificao: empregar os pontos (ak, f(ak)) e (bk, f(bk)/2) para traar a secante em vez dos pontos anteriores -- o algoritmo de Illinois 5.3.2. Erros e Convergncia Teorema 5.3.1. Seja f uma funo convexa ou cncava no intervalo I 0 [a,b] com f(a) e f(b) de sinais diferentes. Ento, o mtodo da falsa posio converge linearmente para o zero de f neste intervalo. 5.4. MTODO DA SECANTE 5.4.1. Descrio do Mtodo Consiste em, partindo de 2 iteraes quaisquer (xk-1, f(xk-1)) e (xk, f(xk)), obter o valor seguinte xk+1 como a interseco da secante que passa pelos referidos pontos com o eixo dos xx. assim, este mtodo apenas difere do da falsa posio por no se exigir que os valores da funo nos extremos dos subintervalos tenham sinais diferentes. Isto pode fazer com que este mtodo deixe de convergir em certas situaes. Todavia, quando converge, f-lo mais rapidamente (ordem de convergncia superior a 1). A expresso que permite, obter xk+1 : yk xk-1 yk-1 xk xk+1 = ----------------------- em que yk = f(xk) yk yk-1 Uma expresso equivalente mas menos sensvel a erros de arredondamento : yk xk+1 = xk - ----------------f[xk-1, xk] Esta pode ser escrita de uma forma equivalente mas mais elucidativa: ~ yk xk+1 = xk + hk com hk = - --------------f[xk-1, xk] 5.4.2. Erros e Convergncia Teorema 5.4.1. Se todas as iteraes estiverem contidas numa vizinhana (a,b) suficientemente pequena do zero z da funo f C2[a,b], ento o mtodo da secante convergente, e o erro satisfaz a relao |ek+1| <= M|ek| |ek-1| com M = M2 / 2m1, 0 < m1 <= |f( )| < M1 e |f( ) <= M2 para todo o [a,b], e a ordem de convergncia p = (1+ V5)/2 = aprox. a 1,618

5.5. MTODO DE NEWTON 5.5.1. Descrio do Mtodo A curva aproximada pela sua tangente, e a interseco desta com o eixo dos xx tomada como o novo valor da aproximao ao zero de f. A equao da tangente curva y=f(x) que passa pelo ponto xk : y = f(xk) + f(xk)(x-xk) e, portanto, a sua interseco com o eixo dos xx ocorre na posio f(xk) xk+1 = xk - --------------f(xk) Este mtodo implica que tenhamos de programar, alm da funo f, a sua derivada f, o que pode ser uma tarefa no muito agradvel, factor que deve ser tomado em conta na escolha deste mtodo. Do lado positivo, temos que ele converge quadraticamente. 5.5.2. Erros e Convergncia Nem sempre convergente. Teorema 5.5.1. Se numa vizinhana (a,b) do zero z suficientemente pequena se verificar que f C2[a,b] e que para todo o nessa vizinhana 0 < m1 <= |f( )| <= M1 e |f( )| <= M2 ento o mtodo converge, e o erro satisfaz a relao: |ek+1| <= M|ek|2 com M = M2/2m1 Se o zero no for simples, a ordem de convergncia do mtodo de Newton degrada-se, sendo possvel demonstrar que, no caso de zeros duplos, a convergncia apenas linear. Exemplo 5.5.1. (fazer) 5.6. MTODO DE MULLER Os mtodos apresentados aproximavam a curva a uma recta. esta ideia pode ser generalizada no sentido de usar polinmios de grau superior para aproximar a funo f. Os nicos candidatos so de segundo grau. O mtodo de Muller consiste precisamente em interpolar a curva y=f(x) por uma parbola passando por 3 pontos e tomar a interseco desta com o eixo dos xx como uma nova aproximao do zero. O polinmio interpolador , como sabemos: p(x) = f(xk) + f[xk, xk-1](x-xk) + f[xk, xk-1, xk-2](x-xk)(x-xk-1) dado que (x xk)(x xk-1) = (x xk)2 + (x-xk) xk xk-1) a parbola interpoladora pode escrever-se na seguinte forma: p(x) = yk + ck (x xk) + dk (x xk)2 em que, por simplicidade, se fez: yk = f(xk) dk = f[xk, xk-1, xk-2] ck = f[xk, xk-1] + dk(xk xk-1) = f[xk, xk-1] + f[xk, xk-2] f[xk-1, xk-2] Esta parabola intersecta o eixo dos xx nos pontos a determinados por: - ck + - (ck2 4yk dk)1/2 a = xk + -----------------------------------2 dk uma forma equivalente, mas menos susceptvel a erros de arredondamento, : 2 yk a = xk - ------------------------------------ck + - (ck2 4yk dk)1/2 Esta expresso fornece 2 valores, um correspondendo ao sinal +, e o outro, ao sinal -, pelo que se pe a questo de saber qual deles se deve tomar. usual escolher o sinal que produza o maior valor absoluto para o denominador no segundo membro desta expresso. Se nas iteraes intermdias aparecerem valores complexos, despreza-se a parte imaginria de xk+1

A ordem de convergncia aprox. 1,84, quase idntica do mtodo de Newton, com a vantegm adicional de no recorrer a derivadas. 5.7. UTILIZAO DE INTERPOLAO INVERSA x = g(y) Para aparecer alguma diferena, esta deve aparecer quando se interpola g por polinmios de segundo grau como no mtodo de Muller. A parbola interpoladora de g nos pontos (yk-2, xk-2), (yk-1, xk-1) e (yk, xk) : x = xk + g[yk, yk-1](y-yk) + g[yk, yk-1, yk-2](y yk)(y yk-1) A interseco desta curva com o eixo dos xx obtm-se fazendo simplesmente y=0, donde se extrai que: xk+1 = xk g[yk, yk-1]yk + g[yk, yk-1, yk-2]yk yk-1 Se tivermos em conta a expresso das diferenas divididas e desenvolvermos, chegamos a: yk ykyk-1 1 1 xk+1 = [ xk - ------------------------ ] + --------------- [ -------------- - ----------------- ] f[xk, xk-1] yk-2 yk f[xk-1, xk-12] f[xk, xk-1] podemos ver que o primeiro parntesis do segundo membro desta expresso corresponde exactamente ao mtodo da secante. O segundo termo constituir, portanto, uma correco de segunda ordem, como, alis, de esperar. Nesta expresso, contrariamente ao que sucedia com o mtodo de Muller, o valor de xk+1 obtido sem qualquer ambiguidade e, se os valores iniciais forem reais, a sucesso {xk} tambm real. p tambm aprox. 1,84. 5.8. ITERAO DE PONTO FIXO 5.8.1. Descrio do Mtodo Todos os mtodos estudados at este momento se reportavam equao no-linear f(x)=0. nesta seco vamos abordar a soluo de equaes no-lineares escritas desta feita na forma: x = g(x) (5.8.1.) Este modo no constitui qualquer restrio relativamente ao caso f(x)=0, pois sempre possvel transformar esta equao numa do tipo da 5.8.1., pondo, por ex, x = x + f(x) = g8x) A expresso 5.8.1. sugere imediatamente o seguinte esquema iterativo: xk+1 = g(xk), k=0,1,... H casos em que o mtodo convergente e outros em que divergente. O ponto z soluo de (5.8.1.) um ponto que a funo g transforma nele prprio, ou, por outras palavras, um ponto que permanece fixo sob a transformao g. 5.8.2. Erros e Convergncia Definio 5.8.1. Uma funo g diz-se contractiva no intervalo I = [a,b] se existir uma constante M com 0<=M<1 tal que: |g(x1) g(x2)| <= M |x1 x2| para todos os x1, x2 I

CAP. 6 SISTEMAS DE EQUAES LINEARES: MTODOS DIRECTOS 6.1. Introduo x so as incgnitas, y so os coeficientes e b so os segundos membros do sistema de equaes. Frequentemente vantajoso colocar o sistema sob a forma matricial. Os mtodos de soluo de sistemas de equao lineares (sel) costumam ser classificados em 2 categorias: os mtodos directos que permitem obter a soluo de qualquer sistema com um n finito de operaes aritmticas e os mtodos iterativos caso contrrio. 6.1.1. Notao e Nomenclatura Definio 6.1.1. Uma matriz A de dimenso mxn um quadro de nmeros aij, com i01,...,m e j=1,...,n. Estes nmeros so designados por elementos da matriz e costumam dispor-se em m linhas e n colunas. Uma matriz de dimenso x1 designa-se por vector coluna, e uma matriz de dimenso 1xn designa-se por vector linha. Se m=n a matriz diz-se quadrada; se m0!n diz-se rectangular. Os elementos da forma aii dizem-se elementos diagonais e forma a diagonal principal ou simplesmente diagonal da matriz A. Os elementos que se dispem paralelamente diagonal forma as codiagonais, que podem ser as supradiagonais (as que esto acima da diagonal) ou subdiagonais (abaixo). Definio 6.1.2. Uma matriz diz-se: Nula se todos os elementos forem iguais a zero Trapezoidal Superior se aij=0, qualquer i>j e inferior... Triangular Superior se for simultaneamente quadrada e trapezoidal superior; triangular inferior se... Diagonal se for simultaneamente triangular superior e inferior D=diag(d1,d2,...,dn). A matriz identidade I uma matriz diagonal cujos elementos so todos iguais a 1 Uma matriz de ordem n diz-se simtrica se aij=aji i,j=1,2,...,n e anti-simtrica se aij=-aji i,j=1,2,...,n Positiva se aij>0 para todos os valores de i,j e este facto denotado por A>0; negativa se... 6.1.2. Operaes Com Matrizes Definio 6.1.3. A e B dizem-se iguais se tiverem as mesmas dimenses e os seus elementos homlogos forem iguais, isto , aij=bij Definio 6.1.4. A soma definida por cij=aij+bij (mesma dimenso para A e B ... e C) comutativa e associativa: A+B=B+A (A+B)+C=A+(B+C) Definio 6.1.5. O produto de um escalar por uma matriz A definida por bij=aij. Goza das propriedades ()A=(A) (+)A = A+A (A+B) = A + B 1A = A 0A=0 As definies 4 e 5 tornam o conjunto das matrizes um espao linear Definio 6.1.6. Seja A Rm*p e B Rp*n. Ento o produto de A por B a matriz C=AB dada por cij =

p k =1

aik bkj

Para i=1,...,m, j=1,...,n Esta definio impe que o n de colunas de A seja igual ao n de linhas de b. Matrizes com esta propriedade costumam designar-se por conformes multiplicao. Propriedades da multiplicao (AB)C=A(BC) A(B+C) = AB + AC (A+B)C = AC + BC (AB) = (A)B No comutativa.

Definio 6.1.7. A transposta de uma matriz A uma matriz B cujos elementos so dados por: bij=aji e a notao usada AT Goza das propriedades (AT)T = A (A+B)T = AT + BT (A)T = AT T T T (AB) B A Daqui resulta que uma matriz simtrica igual sua transposta e uma matriz anti-simtrica igual simtrica da sua transposta Definio 6.1.8. Uma matriz A tal que ATA=AAT=I diz-se ortogonal Definio 6.1.9. (importante) Se existir uma matriz X tal que AX=XA = I , diz-se que X a inversa da matriz A, a qual se denota por A-1 Por esta definio vemos que s as matrizes quadradas podem aspirar a possuir inversa. No prximo teorema compilaremos algumas propriedades da matriz inversa que usaremos muitas vezes. Teorema 6.1.1. Seja A uma matriz de ordem n, e A-1 a sua inversa. Ento so verdadeiras a seguintes proposies: A inversa, caso exista, nica (A-1)-1 = A (AT)-1 = (A-1)T Se a e B forem matrizes de ordem n invertveis, ento AB invertvel e (AB)-1 = B-1 A-1 Algumas classes de matrizes muito frequentes nas aplicaes so introduzidas na prxima definio. Definio 6.1.10. Uma matriz A diz-se: definida positiva se xT Ax > 0 para qualquer X=!0 (x um vector) definida semipositiva definida negativa e seminegativa Definio 6.1.11 Uma matriz A diz-se diagonal dominante por linhas se | aii | >=
n

| a
j =1 j =!i

ij|

para i de 1 at n

analogamente diz-se que A diagonal dominante por colunas, bastando trocar aij por aji Se se tirar o igual dizem-se estritamente dominantes. Matrizes Particionadas As matrizes podem ser particionadas em submatrizes, ficando assim com os seus elementos a ser tambm eles matrizes. As vantagens so a compactao da escrita e poder fazer-se operaes sobre essas submatrizes. Um modo natural de particionar tomar para submatrizes as respectivas linhas e colunas: Ai.T ser a sua linha e a.j a sua coluna, o que torna a matriz representvel por uma coluna e por uma linha respectivamente. Quando se considera matriz A particionada por colunas, a posmultiplicao de A por um vector x adquire um novo e importante significado. De facto: x1 x2 = a .1 x1 + a .2 x2 ++ a .n xn xn O que significa que Ax a combinao linear das colunas de A cujos coeficientes so as componentes do vector x. Ax = (a.1 a.2 ... a.n)

Identicamente a premultiplicao de x por A adquire um significado semelhante, ou seja, xTA a combinao linear das linhas de A cujos coeficientes so as componentes do vector x. 6.1.3. Teoria dos Sistemas de Equaes Lineares Um dos problemas centrais da lgebra Linear consiste na pesquisa das condies que garantem a existncia e unicidade das solues de sistemas de equaes do tipo Ax = b (6.1.2.) A formulao destas condies simplifica-se, e a sua interpretao adquire novos e importantes significados se identificarmos as linhas e as colunas de A como vectores e Ax como uma combinao linear das colunas de A em que as componentes xi do vector x desempenham o papel de coeficientes da combinao linear. H 4 espaos lineares associados a uma matriz, que introduziremos. Definio 6.1.12. O espao das colunas da matriz A, denotado por R(A), o conjunto de vectores y Rm da forma y=Av, v Rn, isto , R(A) constitudo por todas as combinaes lineares das colunas de A. Analogamente para os espao das linhas. Com esta definio o problema de resolver o sistema pode ser formulado de outra maneira: procurar a combinao linear das colunas de A que reproduz o segundo membro b. Daqui extramos a concluso que necessrio e suficiente para a existncia de solues que b pertena a R(A). Definio 6.1.13. O espao de nulidade ou ncleo de A, denotado por N(A), o conjunto formado pelas solues do sistema homogneo Ax=0 O espao de nulidade esquerdo resulta de que N(AT) = {v Rm : AT v = 0} Mas AT v = vT A = 0, com o vector v a aparecer do lado esquerdo de Os 4 conjuntos de vectores acabados de introduzir so espaos lineares, pelo que faz sentido falar da sua dimenso. Teorema 6.1.2. Seja r = r(A) o n de colunas de A linearmente independentes. Ento so verdadeiras as seguintes proposies: DimR(A) = r dimR(AT)=r dimN(A)=n-r dimN(AT)=m-r um resultado surpreendente que o espao de colunas e de linhas acabem por ter a mesma dimenso, a que se d o nome de caracterstica da matriz A. Ao valor n-r costuma chamar-se nulidade de A ou deficincia da caracterstica de A. Teorema 6.1.3. (Existncia) O sistema 6.1.2. tem pelo menos uma soluo x Rn para qualquer segundo membro b Rm sse r=m<=n. (Unicidade) a soluo nica sse r=m=n Como se pode ver s as quadradas podem aspirar a ter soluo nica e da irmos concentrar a nossa ateno nelas. Teorema 6.1.4. a soluo do sistema 6.1.2. existe e nica sse o sistema homogneo Ax=0 possuir soluo trivial x=0 como nica solup, ou seja, sse a nulidade de A for zero. Teorema 6.15. O sistema 6.1.12 tem soluo nica sse qualquer das duas condies equivalentes for vlida: A-1 existir Det A =! 0 Teorema 6.1.6. (Regra de Cramer) Seja A uma matriz invertvel e Ai a matriz que se obtm de A substituindo nesta coluna i pelo segundo membro b. Ento, xi=detAi / detA com i de 1 a n. A simplicidade desta frmula esconde o facto de que ela totalmente inadequada como mtodo numrico geral de soluo. O clculo de um determinante de ordem n requer (n-1)n! Multiplicaes e n!-1 somas ou subtraces. 6.1.4. Sistemas Triangulares

Os mtodos de soluo que iremos estudar baseiam-se na ideia de transformar os sistema dado noutro, que seja mais fcil de resolver. Uma classe de sistemas fceis de resolver so aqueles cujas matrizes so triangulares. Ento temos de resolver Lx=b com L triangular inferior, de um modo geral as solues podem ser encontradas por substituies sucessivas (descendentes) ou ascendentes no caso de uma matriz triangular superior. Se o fizermos obtemos: Xi = (bi -

l x
j =1 ij

i 1

) / lii

com i de 1 a n

A complexidade de O(n2). Duas propriedades importantes das matrizes triangulares apresentam-se a seguir: Teorema 6.1.7. Seja T uma matriz triangular inferior (superior). Ento, T invertvel sse os seus elementos diagonais forme diferentes de zero. Neste caso a inversa de T tambm uma matriz triangular inferior (superior). 6.2. REDUO A SISTEMAS TRIANGULARES Os mtodos directos tiram partido do facto de as matrizes triangulares serem fceis de resolver, transformando o sistema original Ax=b num outro sistema Ax=b, mas cuja matriz Aseja triangular. Definio 6.2.1. dois sistemas de equaes lineares dizem-se equivalentes se possurem o memso conjunto de solues, ou seja, se os conjuntos {x} e [x} das solues de Ax=b e Ax=b forem iguais. Teorema 6.2.1. condio suficiente para dois sistemas Ax e=b e Ax=bserem equivalentes que exista uma matriz C invertvel tal que A=CA e b=Cb . se A for invertvel, ento a condio tambm necessria. fcil descobrir um conjunto de operaes que no s garante a equivalncia dos sistemas como tambm possibilita que a matriz transformada assuma a forma triangular pretendida. Definio 6.2.2. D-se a designao de operaes elementares sobre as linhas de uma matriz s seguintes operaes: Permutao de duas linhas Multiplicao de uma linha por um n m diferente de zero Soma a uma linha do produto de outra linha por um n m Podemos verificar atravs de exemplos que estas operaes correspondem a premultiplicar a matriz A e o segundo membro b por certas matrizes invertveis. Permutao de linhas Se premultiplicar a matriz identidade qual se trocou a 1 e 2 linhas, por A, obtm-se A com as linhas 1 e 2 trocadas. Tambm a posmultiplicao produz os mesmos resultados. Multiplicao de uma linha por um n m=!0 Se quiser multiplicar a linha 2 por m, basta premultiplicar (ou posmultiplicar) pela matriz

1 0 0 M= 0 m 0 0 0 1
Sendo M uma matriz diagonal, a condio M=!0 garante a sua invertibilidade. Soma a uma linha do produto de outra linha por um n m Ex. Para somar linha 2 de uma matriz A de ordem 3 o produto da linha 1 por m, podemos premultiplicar A por

1 0 0 m 1 0 0 0 1

Matrizes desta forma vo ser muito teis adiante, pelo que vamos proceder a uma generalizao. Definio 6.2.4. Uma matriz triangular inferior elementar de ordem n e ndice k uma matriz da forma M = I meTk em que m um vector cujas componentes satisfazem mi=0, i=1,...,k e ek o k-simo vector da base cannica de Rn Uma outra designao atribuda a estas matrizes a de transformao de Gauss. O seu tipo o seguinte (ex. Para n=6 e k=3)

1 0 0 0 0 0

0 0 1 0 0 1 0 m4 0 m5 0 m6

0 0 0 1 0 0

0 0 0 0 1 0

0 0 0 0 0 1

As (estas) matrizes elementares triangulares inferiores so invertveis e o clculo da sua inversa muito simples, como iremos ver. Teorema 6.2.2. Seja M uma matriz triangular inferior elementar. Ento M invertvel e a sua inversa M-1 = I + meTk Podemos concluir que todas as operaes elementares sobre linhas da matriz correspondem a premultiplicar A por matrizes invertveis e, portanto, conduzem a sistemas equivalentes. Em seguida vamos mostrar que um encadeamento adequado destas operaes permite transformar A numa triangular superior. 6.3. MTODO DE GAUSS Designaremos por A(k) a matriz transformada de A na etapa k. A primeira operao a efectuar consiste em anular o elemento a21, o que, como vimos, se pode fazer multiplicando a primeira linha por m21 = a21/a11 e subtraindo o resultado segunda linha. Este processo designa-se por condensao (do elemento a21). A segunda linha de A e de b modificam-se de acordo com as seguintes expresses: a2j(2) = a2j m21a1j j=2,...,n b2(2) = b2-m21b1 Este processo pode ser repetido para todos os elementos da coluna 1 abaixo da diagonal, utilizando para a condensao do elemento ai1 o multiplicador mi1 = ai1 / a11 O resultado de todas estas condensaes produz a matriz transformada A(2) (cuja primeira coluna abaixo da diagonal formada por zeros) e produz ainda b(2) Podemos agora proceder com a matriz obtida (2) do mesmo modo que com (1) condensando a segunda coluna abaixo da diagonal e assim sucessivamente. As expresses gerais obtidas so: mik=aik(k) / akk(k) | aij(k+1) = aij(k) mik akj(k), j=k+1,,n| I = k+1,,n (6.3.1.) bi(k+1) = bi(k) mik bk(k) | Os elementos akk so conhecidos por elementos pivot e a respectiva linha por linha pivot. A submatriz de A(k) constituda pelas suas n-k ltimas linhas e n-k ltimas colunas designada por submatriz activa. Deste modo, a condensao de Gauss consiste na subtraco de um mltiplo apropriado da linha pivot s linhas que lhe esto abaixo. Depois de ter A(n) = A s utilizar o mtodo das substituies ascendentes para chegar s solues. Do ponto de vista da programao h a realar que os elementos aij da matriz original deixam de ser necessrios assim que sofrem a sua primeira transformao, pelo que as matrizes A(k) podem ir sendo gravadas em cima da original para poupar memria.

Algoritmo 6.3.1. (Condensao de Gauss) para k01,...,n-1 fazer: para i=k+1,...,n fazer: mik = aik/akk para j = k+1,...,n fazer: aij = aij mik*akj fim do ciclo j bi = bi mik + bk fim do ciclo i fim do ciclo k A complexidade de O(2n3/3) o que muito menor do que a regra de Cramer. Se os elementos pivot no forem zero, mediante uma alterao simples, podemos viabilizar o mtodo de Gauss. Vrios Segundos Membros 6.4. FACTORIZAES TRIANGULARES 6.4.1. Factorizao LU A condensao de gauss consiste numa sequncia de operaes elementares sobre as linhas das matrizes A(k), as quais, como vimo, podem ser expressas sob a forma de premultiplicaes desta matriz por matrizes triangulares elementares. Por ex. A(2) = M(1) A(1) em que:

1 m21 (1) M = M m1

0 1 M 0

L L O L

0 0 = I m(1) e1T M 1

Como podemos concluir do mtodo de Gauss, em geral: A(k+1) = M(k) A(k) M(k) = I m(k)ekT com k=1,,n-1 em que m(k) o vector constitudo pelos multiplicadores e cujas componentes mi(k), i=1,...,k so nulas. No final teremos que: _ A(n) = A = M(n-1) M(n-2)...M(1) A Mas o produto de matrizes triangulares inferiores de diagonal unitria tambm uma matriz triangular inferior de diagonal unitria. Pelo que MA = A barra. Do teorema 6.1.1. sabemos que M(k) invertvel, logo M tambm o e d: M-1 = (M(n-1)...M(1))-1 = (M(1))-1...(M(n-1))-1 = (I+m(1)e1T)...(I+m(n-1)en-1T) = I + m(1)e1T + ... + m(n-1)en-1T O 2 membro tambm uma matriz triangular inferior de diagonal unitria cujos elementos no tringulo inferior so os multiplicadores mij surgidos na condensao de Gauss. Pondo, por ser mais sugestivo: _ A = U e M-1 = L ficamos com A = LU em que L triangular inferior e U triangular superior a factorizao triangular.

Exemplo 6.4.1. Factorizar a seguinte matriz pelo mtodo de Gauss

A=

1 0 2 (1) 2 2 1 = A 0 1 1

calculando os multiplicadores e os elementos transformados pelas expresses 6.3.1.:

mik(k)=aik(k) / akk(k) aij(k+1) = aij(k) mik(k) akj(k), bi(k+1) = bi(k) mik bk(k)

| j=k+1,,n | |

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

e colocando cada multiplicador na mesma posio do elemento da matriz A cuja condensao provocou, temos sucessivamente as seguintes matrizes transformadas: - multiplicadores:

m21(1) = a21(1) / a11(1) = 2/1 = 2 m31 = a31(1) / a11(1) = 0/1 = 0 a22(2) = a22(1) m21(1) * a12(1) = 2 (2*0) = 2 a23(2) = a23(1) m21(1) * a13(1) = 1 (2*2) = -3 a32(2) = a32(1) m31(1) * a12(1) = 1 (0*0) = 1 a33(2) = a33(1) m31(1) * a13(1) = 1 (0*2) = 1
1 0 2 (2) 2 & 2 3 = A & & 0 1 1 & & &

A=

Com os multiplicadores sublinhados.

m32(3) = a32(2) / a22(2) = a33(3) = a33(2) m32(2) * a23(2) = 1 (1/2 * -3) 5/2
0 2 1 2 3 = A(3) A = & 2 & & 0 1 / 2 5 / 2 & &&& & &&& & &&& 1 0 0 1 0 Ento achmos L = A = 2 0 1/ 2 1 1 0 2 e U = 0 2 3 0 0 5 / 2
-1

Do ponto de vista da resoluo do sistema de equaes:

Ax=b (LU)x=b L(Ux) = b


introduzindo o vector auxiliar y temos que

Ly=b e Ux=y
Conforme se v, a determinao da soluo x, uma vez obtida a factorizao LU, passa pela soluo em sucesso de dois sistemas triangulares: um inferior e outro superior.

Esta observao permite alis revelar uma vantagem do mtodo de factorizao sobre o mtodo de Gauss. A factorizao envolve apenas a matriz A e no o segundo membro b, intervindo este exclusivamente na fase de soluo dos sistemas triangulares. isto significa que, uma vez factorizada A, podemos resolver tantos sistemas quantos quisermos, custa apenas de substituies ascendentes e descendentes. Como a factorizao a aprte mais cara em termos de n de operaes, h vantagem relativamente ao mtodode Gauss aplicado integralmente a cada segundo membro.

...
6.4.4. FACTORIZAO LDU Uma pequena modificao das factorizaes de Doolittle e de Crout, que tem a vantagem de atribuir s matrizes triangulares L e U um papel totalmente idntico, considerar que esta so ambas matrizes triangulares com diagonal unitria e tomar a factorizao da seguinte forma: A=LDU em que D uma matriz diagonal. O mtodo de Doolittle consiste em absorver a matriz D e em U, ou seja, considerr a factorizao A=L(DU) enquanto o de Crout A=(LD)U 6.6. Clculo da Inversa e do Determinante 6.6.1. Clculo da Matriz Inversa Resolvendo, por qualquer dos mtodos, o seguinte sistema: AX=I A inversa da matriz s deve ser calculada se explicitamente pedido e no como forma de resolver sistemas de equaes lineares. 6.6.2. Clculo do Determinante Uma vez obtida a factorizao de A, o clculo do seu determinante pode fazer-se com um custo adicional desprezvel. Suponhamos que havamos obtido a factorizao: PA=LDU Ento, recordando que o determinante do produto igual ao produto dos determinantes: (detP)(detA) = (detL)(detD)(detU) Mas, tendo em ateno a propriedade 6.2.2. das matrizes de permutao, e que o determinante de matrizes de diagonal unitria igual a 1, podemos escrever que: det A = (det P) (det D) = (det P)

d
i =1

ii

O valor de det P +1 se o n de permutaes de linhas levadas a cabo tiver sido par e 1, se tiver sido mpar. Mesmo com matrizes de dimenso moderada pode dar overflow. Ento deve-se incluir no programa uma forma automtica de escalar os valores de forma a que no ultrapassem esses limites. Como sabemos, uma matriz singular sse det A=0. No entanto incorrecto testar a singularidade com base no valor do determinante. O problema com o determinante de que ele afectado pela escala dos elementos da matriz enquanto a singularidade da matriz no o . Para testar a singularidade ento deve-se (ver 6.5.1.) tentar encontrar um pivot diferente de zero. Se nofor possvel, singular. Mas os erros de arredondamento podem atrapalhar. Um indicador que correntemente utilizado o do valor absoluto do pivot |akk(k)|. Um valor baixo, da ordem da unidade de arredondamento, sinal de que a matriz singular ouest muito prximo de o ser, pelo que h que proceder com a devida cautela, nomeadamente no que diz respeito fiabilidade dos resultados.

Você também pode gostar