Você está na página 1de 3

Relatorio de Calculo Numrico

Briot Ruffini Horner


Rafael Saraiva Carvalho, Vitor Queiroz, Maykom Douglas, Alexandre Oliveira
Fundao Universidade Federal de Rondnia, Ncleo de Cincia e Tecnologia, Departamento de Engenharia Eltrica - DEE
Bacharelado em Engenharia Eltrica - 6 Perodo - Disciplina Clculo Numrico

ResumoEste relatrio visa demonstrar a construao do


algoritimo de Briot Ruffini Horner, por meio da utilizaao do
software Matlab.
Index TermsRuffini, razes, polinmios.

Portanto, quando f(x) um polinmio, o mtodo de Newton


pode ser expresso por:
+1 =

I. I NTRODUO
Algoritmo de Briot Ruffini Horner usado para calcular
as razes reais de um polinmigo () de grau e ()
com um menor nmero de operaes. Escrevendo () da
seguinte maneira (vamos considerar = 4.)

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

0 ( )
1 ( )

Sendo um zero de (). Se () = 0 ento 0 = 0. Ento,


os nmeros , 1 , ..., 1 so coeficientes do polinmio
(), obtido da diviso de () pelo fator linear , isto
:

(1)
() = 1 + 1 2 + ... + 1 =

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

(2)

Assim gastamos apenas 4 + 4. Dessa forma para um


polinmio geral de grau temos o seguinte algoritmo, dados
, 1 , ..., 0 calcular , 1 , ..., 0 , de acordo com:
= , = +1 + , = 1, 2, ...,

(5)

(6)

ou seja:
() = ( )()

(7)

Assim pode-se determinar as outras razes de () usando


(), este processo chamado de Deflao.

(3)

Com isso () = 0 , e raiz de () se e somente


se, 0 = 0. Repetindo Esta operao ns temos que dados
, 1 , ..., 0 calcular , 1 , ..., 0 de acordo com:

()

II. O BJETIVOS
Determinar as raizes de um polinmio de grau com poucas
operaes.
III. M TODO

= , = +1 + , = 1, 2, ..., 1

(4)

Portanto () = 1 . A figura 1 demonstra o algoritimo de


Briot Ruffini Horner:

Figura 1.

Briot Ruffini Horner

possvel notar que o esquema prtico acima quando


utilizado para calcular apenas o valor do polinmio num ponto
o conhecido algoritmo de Briot-Ruffini. O esquema
de Briot
Ruffini-Horner, na verdade, fornece o valor de 1!() , e pode

ser continuado para obteno de 2!() , 3!() , etc.

O alogoritmo de Horner em matlab seguiu essa forma:


1.
2.
do
3.
4.
5.
6.

clear;clc
c=input(entre com o nmero de coeficientes
polinomio = )
p=input(defina o polinoimio = )
z=input(chute inicial = )
n=c;
e=input(defina a tolerncia = )

As primeiras 6 linhas so os parmetros de entrada do algoritmo. , usado para limpar a rea de trabalho e a tela
de comandos do matlab respectivamente. As variveis , e
so ,respectivamente, o nmero de coeficientes, o polinmio
em si e uma aproximao da raz dp polinmio definidos pelo
usurio. A varivel assume o valor de , que ser necessria
a outro passo do algoritmo. A varivel na linha 6 o erro
a ser utilizado.
7. for c=1:c
8. eval([a,int2str(c) =p(1,c);])
9. end

As linhas de 7 a 9 o lao onde o matlab identificar


os coeficientes do polinmio. O for variar de 1 at o valor
definido pelo usurio. Na linha 8 a funo:

igual uma caixa de menssagem indicar que a raz encontrada


a desejada.

eval([a,int2str(c) = p(1,c)])

Seja um polinmio, () = 3 + 22 0.85 1.7,


determine suas razes usando o algoritmo de Briot Ruffini
Horner, com preciso de 102 .
A figura 2 mostra a primeira iterao:

criar uma varivel que estar mudando a cada iterao do


lao e atribuir um valor que definido por (1, ).
10.
11.
12.
13.
14.
15.
16.
17.
18.

IV. R ESULTADOS

for i=1
b1=a1
for c=2:c
y=eval([a,int2str(c)])
w=([b,int2str(c-1)])
w=eval([b,int2str(c-1)])
j=([b,int2str(c)])
eval([b,int2str(c) =z*w+y])
end

Nessas linhas o matlab criar is valores de a partir dos


coeficientes do polinmio.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.

for i=2
c1=b1;
for c=2:c-1
t= eval([b,int2str(c)]);
u=([c,int2str(c-1)]);
u=eval([c,int2str(c-1)]);
v=([c,int2str(c)]);
eval([c,int2str(c) =z*u+t])
end
end
end

Figura 2.

Primeira Iterao.

Aplicando-se Newton temos:


1 = 0.9

0 (0.9)
= 0.9224
1 (0.9)

(8)

e o erro relativo , 0.02.


Ento usa-se z = 0.9224 para fazer a segunda iterao (
figura 3):

Das linhas 19 a 29 o matlab definir os valores de a partir


dos valores de encontrados anteriormente.
30. %Aplicando em Newton-Raphson
modificado
31. p=eval([b,int2str(n)]);
32. o=eval([c,int2str(n-1)]);
33. x=z-(p/n)
34. m=abs((z-x)/x);
35. if m>e
36. uiwait(msgbox(Repita o algoritmo com
o valor de z=x,aviso,warn))
37. else
38. uiwait(msgbox(Raiz encontrada com
a tolerncia exigida,Raiz))
39. end
Das linhas 30 33 o matlab utilizar os valores encontrados
dos ltimos e e o valor do chute inicial para calcular a
raiz. Das linhas 34 at a 39 , o matlab checar se esse valor da
raz tem tolerncia menor ou igual a tolerncia definida pelo
usurio. Caso no tenha a mesma tolerncia uma caixa de
menssagem sugir avisando que o algoritmo deve ser repitido
para um novo valor de que igual a raz encontrada at que
a tolerncia seja a desejada. Caso a tolerncia seja menor ou

Figura 3.

Segunda Iterao.

Ento temos:
2 = 0.9224

0 (0.9224)
= 0.9220
1 (0.9224)

(9)

e o erro , 0.0004.
Aplicando-se mais uma vez o algoritmo obtemos(figura 4):

Figura 4.

Terceira Iterao.

Assim podemos escrever () = 2 + 2.9220 + 1.8441.


Usando Bhaskara obtemos suas outras razes, = 0.9235
e = 1.9985

V. D ISCUSSO E CONCLUSES
Aps a analise dos resultados obtidos possivel afirmar o
algoritmo de Briot Ruffini Horner eficaz para determinao
de razes reais de um polinnimio grau, com um nmero
pequeno de operaes e com mas simplicidade de calculo.
R EFERNCIAS
[1] Clulo Numrico, disponvel em [URL:http://www.decom.ufop.br/bob/com
400/livros/livro.pdf;]
[2] Non Linear Equations Practical methods for roots finding, Part II - Zeros
of Polynomials. Foxes Team ITALY, 1a ed. Jan. 2006

Você também pode gostar