15.05.2013 Views

Cálculo Numérico - Engenharia Civil UEM

Cálculo Numérico - Engenharia Civil UEM

Cálculo Numérico - Engenharia Civil UEM

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CAPÍTULO 3. EQUAÇÕES NÃO LINEARES 83<br />

3.7.1 Determinação de Raízes Reais<br />

Inicialmente deduziremos um algoritmo para a determinação das raízes reais de polinômios. Consideraremos<br />

apenas polinômios contendo coeficientes reais. Em qualquer método iterativo para determinação<br />

de uma raiz de um polinômio, teremos que calcular, frequentemente, o valor numérico do polinômio para<br />

um determinado número real. Portanto, é importante realizar esse cálculo de uma forma tão precisa<br />

quanto possível. Por exemplo, usando o método de Newton, temos:<br />

xk+1 = xk −<br />

P (xk)<br />

P ′ (xk) .<br />

Para medir a eficiência dos algoritmos para calcular o valor do polinômio num ponto, usemos a seguinte<br />

notação:<br />

• µ = tempo de processamento de uma multiplicação,<br />

• α = tempo de processamento de uma adição,<br />

Se P (x) é calculado pela fórmula (3.15), então devemos calcular as potências de x fazendo x k =<br />

x × x k−1 , os quais requerem (n − 1)µ; termos da forma akx n−k , os quais requerem nµ; e a soma dos<br />

termos, os quais requerem nα. Assim, nessa maneira de cálculo, o total é (2n − 1)µ + nα. Além disso,<br />

quase a mesma quantidade é requerida se P ′ (x) é calculado por esse método.<br />

Em vista da simplicidade do problema, é surpreendente que exista um algoritmo que calcula P (x), P ′ (x)<br />

e também as derivadas de ordem superior de P (x), caso se deseje, com uma quantidade muito inferior de<br />

tempo de processamento. Esse algoritmo, chamado de Algoritmo de Briot- Ruffini-Horner, é obtido<br />

escrevendo a fórmula para P (x) da seguinte maneira: ( Vamos considerar n = 4, para simplicidade.)<br />

P (x) = a4x 4 + a3x 3 + a2x 2 + a1x + a0<br />

= (((a4x + a3)x + a2)x + a1)x + a0 .<br />

Desse modo temos que o tempo de processamento requerido é: 4µ + 4α. Assim, de um modo geral,<br />

para um polinômio de grau n podemos formular o algoritmo da seguinte maneira: Dados an, an−1, . . . , a0,<br />

calcular bn, bn−1, . . . , b0, de acordo com:<br />

bn = an , bn−k = xbn−k+1 + an−k , k = 1, 2, . . . , n . (3.16)<br />

Portanto, b0 = P (x) = valor de P em x. Assim, ¯x é uma raiz de P (x) se e somente se, no algoritmo<br />

de Briot-Riffini-Horner, formado com o número ¯x, resultar que b0 = 0. Observe que o tempo de<br />

processamento requerido agora é: nµ + nα.<br />

Vamos aplicar agora a bk o mesmo algoritmo que aplicamos a ak. Fazendo isso, obtemos números ck<br />

de acordo com:<br />

cn = bn , cn−k = xcn−k+1 + bn−k , k = 1, 2, . . . , n − 1 . (3.17)<br />

Para nossa surpresa, c1 = P ′ (x), e assim o valor da derivada do polinômio em x é obtida, com tempo<br />

de processamento igual a (n − 1)(µ + α). A prova analítica de que c1 = P ′ (x), é feita por diferenciação da<br />

relação de recorrência dada por (3.16), lembrando que bk é função de x enquanto que os ak não. Assim,<br />

derivando (3.16), obtemos:<br />

b ′ n = 0 , b ′ n−k = xb ′ n−k+1 + bn−k+1 , k = 1, 2, . . . , n .<br />

Vemos que b ′ n−1 = bn, e que as quantidades ck = b ′ k−1 são idênticas aos ck definidos por (3.17).<br />

Portanto desde que b0 = P (x), segue que : c1 = b ′ 0 = P ′ (x).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!