Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Briot Ruffini Horner, Provas de Cálculo

Relatório sobre o método de Briot Ruffini Horner, cálculo numérico

Tipologia: Provas

2011

Compartilhado em 17/05/2011

maykom-douglas-nunes-lima-11
maykom-douglas-nunes-lima-11 🇧🇷

5

(3)

6 documentos

1 / 3

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Relatorio de Calculo Numérico
Briot Ruffini Horner
Rafael Saraiva Carvalho, Vitor Queiroz, Maykom Douglas, Alexandre Oliveira
Fundação Universidade Federal de Rondônia, Núcleo de Ciência e Tecnologia, Departamento de Engenharia Elétrica - DEE
Bacharelado em Engenharia Elétrica - 6𝑜Período - Disciplina Cálculo Numérico
Resumo—Este relatório visa demonstrar a construçao do
algoritimo de Briot Ruffini Horner, por meio da utilizaçao do
software Matlab.
Index Terms—Ruffini, raízes, polinômios.
I. IN TRO DUÇ ÃO
OAlgoritmo de Briot Ruffini Horner é usado para calcular
as raízes reais de um polinômigo 𝑃(𝑥)de grau 𝑛e𝑃(𝑥)
com um menor número de operações. Escrevendo 𝑃(𝑥)da
seguinte maneira (vamos considerar 𝑛= 4.)
𝑃(𝑥) = 𝑎4𝑥4+𝑎3𝑥3+𝑎2𝑥2+𝑎1𝑥+𝑎0(1)
𝑃(𝑥) = (((𝑎4𝑥+𝑎3)𝑥+𝑎2)𝑥+𝑎1)𝑥+𝑎0(2)
Assim gastamos apenas 4𝜇+ 4𝛼. Dessa forma para um
polinômio geral de grau 𝑛temos o seguinte algoritmo, dados
𝑎𝑛, 𝑎𝑛1, ..., 𝑎0calcular 𝑏𝑛, 𝑏𝑛1, ..., 𝑏0, de acordo com:
𝑏𝑛=𝑎𝑛, 𝑏𝑛𝑘=𝑥𝑏𝑛𝑘+1 +𝑎𝑛𝑘, 𝑘 = 1,2, ..., 𝑛 (3)
Com isso 𝑃(𝑥) = 𝑏0, e 𝑥é raiz de 𝑃(𝑥)se e somente
se, 𝑏0= 0. Repetindo Esta operação nós temos que dados
𝑏𝑛, 𝑏𝑛1, ..., 𝑏0calcular 𝑐𝑛, 𝑐𝑛1, ..., 𝑐0de acordo com:
𝑐𝑛=𝑏𝑛, 𝑐𝑛𝑘=𝑥𝑐𝑛𝑘+1 +𝑏𝑛𝑘, 𝑘 = 1,2, ..., 𝑛 1(4)
Portanto 𝑃(𝑥) = 𝑐1. A figura 1 demonstra o algoritimo de
Briot Ruffini Horner:
Figura 1. Briot Ruffini Horner
É possível notar que o esquema prático acima quando
utilizado para calcular apenas o valor do polinômio 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 obtenção de 𝑃′′(𝑥)
2! ,𝑃′′′(𝑥)
3! , etc.
Portanto, quando f(x) é um polinômio, o método de Newton
pode ser expresso por:
𝑥𝑘+1 =𝑥𝑘
𝑏0(𝑥𝑘)
𝑐1(𝑥𝑘)(5)
Sendo 𝑧um zero de 𝑃(𝑥). Se 𝑃(𝑧)= 0 então 𝑏0= 0. Então,
os números 𝑏𝑛, 𝑏𝑛1, ..., 𝑏1são coeficientes do polinômio
𝑄(𝑥), obtido da divisão de 𝑃(𝑥)pelo fator linear 𝑥𝑧, isto
é:
𝑄(𝑥) = 𝑏𝑛𝑥𝑛1+𝑏𝑛1𝑥𝑛2+... +𝑏1=𝑃(𝑥)
𝑥𝑧(6)
ou seja:
𝑃(𝑥)=(𝑥𝑧)𝑄(𝑥)(7)
Assim pode-se determinar as outras raízes de 𝑃(𝑥)usando
𝑄(𝑥), este processo é chamado de Deflação.
II. O BJE TIV OS
Determinar as raizes de um polinômio de grau 𝑛com poucas
operações.
III. MÉTO DO
O alogoritmo de Horner em matlab seguiu essa forma:
1. clear;clc
2. c=input(’entre com o número de coeficientes
do polinomio = ’)
3. p=input(’defina o polinoimio = ’)
4. z=input(’chute inicial = ’)
5. n=c;
6. e=input(’defina a tolerância = ’)
As primeiras 6 linhas são os parâmetros de entrada do algo-
ritmo. 𝐶𝑙𝑒𝑎𝑟, 𝑐𝑙𝑐 é usado para limpar a área de trabalho e a tela
de comandos do matlab respectivamente. As variáveis 𝑐,𝑝e𝑧
são ,respectivamente, o número de coeficientes, o polinômio
em si e uma aproximação da raíz dp polinômio definidos pelo
usuário. A variável 𝑐assume o valor de 𝑛, que será necessária
a outro passo do algoritmo. A variável 𝑒na linha 6 é o erro
a ser utilizado.
7. for c=1:c
8. eval([’a’,int2str(c) ’=p(1,c);’])
9. end
pf3

Pré-visualização parcial do texto

Baixe Briot Ruffini Horner e outras Provas em PDF para Cálculo, somente na Docsity!

Relatorio de Calculo Numérico

Briot Ruffini Horner

Rafael Saraiva Carvalho, Vitor Queiroz, Maykom Douglas, Alexandre Oliveira Fundação Universidade Federal de Rondônia, Núcleo de Ciência e Tecnologia, Departamento de Engenharia Elétrica - DEE Bacharelado em Engenharia Elétrica - 6 표^ Período - Disciplina Cálculo Numérico

Resumo—Este relatório visa demonstrar a construçao do algoritimo de Briot Ruffini Horner, por meio da utilizaçao do software Matlab. Index Terms—Ruffini, raízes, polinômios.

I. INTRODUÇÃO

O

Algoritmo de Briot Ruffini Horner é usado para calcular as raízes reais de um polinômigo 푃 (푥) de grau 푛 e 푃 ′(푥) com um menor número de operações. Escrevendo 푃 (푥) da seguinte maneira (vamos considerar 푛 = 4.)

푃 (푥) = 푎 4 푥^4 + 푎 3 푥^3 + 푎 2 푥^2 + 푎 1 푥 + 푎 0 (1)

Assim gastamos apenas 4 휇 + 4훼. Dessa forma para um polinômio geral de grau 푛 temos o seguinte algoritmo, dados 푎푛, 푎푛− 1 , ..., 푎 0 calcular 푏푛, 푏푛− 1 , ..., 푏 0 , de acordo com:

Com isso 푃 (푥) = 푏 0 , e 푥 é raiz de 푃 (푥) se e somente se, 푏 0 = 0. Repetindo Esta operação nós temos que dados 푏푛, 푏푛− 1 , ..., 푏 0 calcular 푐푛, 푐푛− 1 , ..., 푐 0 de acordo com:

Portanto 푃 ′(푥) = 푐 1. A figura 1 demonstra o algoritimo de Briot Ruffini Horner:

Figura 1. Briot Ruffini Horner

É possível notar que o esquema prático acima quando utilizado para calcular apenas o valor do polinômio 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 obtenção de 푃^

′′(푥) 2! ,^

푃 ′′′(푥) 3! , etc.

Portanto, quando f(x) é um polinômio, o método de Newton pode ser expresso por:

Sendo 푧 um zero de 푃 (푥). Se 푃 (푧) = 0 então 푏 0 = 0. Então, os números 푏푛, 푏푛− 1 , ..., 푏 1 são coeficientes do polinômio 푄(푥), obtido da divisão de 푃 (푥) pelo fator linear 푥 − 푧, isto é:

푄(푥) = 푏푛푥푛−^1 + 푏푛− 1 푥푛−^2 + ... + 푏 1 =

ou seja:

Assim pode-se determinar as outras raízes de 푃 (푥) usando 푄(푥), este processo é chamado de Deflação.

II. OBJETIVOS Determinar as raizes de um polinômio de grau 푛 com poucas operações.

III. MÉTODO O alogoritmo de Horner em matlab seguiu essa forma:

  1. clear;clc
  2. c=input(’entre com o número de coeficientes do polinomio = ’)
  3. p=input(’defina o polinoimio = ’)
  4. z=input(’chute inicial = ’)
  5. n=c;
  6. e=input(’defina a tolerância = ’) As primeiras 6 linhas são os parâmetros de entrada do algo- ritmo. 퐶푙푒푎푟, 푐푙푐 é usado para limpar a área de trabalho e a tela de comandos do matlab respectivamente. As variáveis 푐, 푝 e 푧 são ,respectivamente, o número de coeficientes, o polinômio em si e uma aproximação da raíz dp polinômio definidos pelo usuário. A variável 푐 assume o valor de 푛 , que será necessária a outro passo do algoritmo. A variável 푒 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 laço onde o matlab identificará os coeficientes do polinômio. O for variará de 1 até o valor definido 푐 pelo usuário. Na linha 8 a função:

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

criará uma variável 푎 que estará mudando a cada iteração do laço e atribuirá um valor que é definido por 푝(1, 푐).

  1. for i=
  2. b1=a
  3. for c=2:c
  4. y=eval([’a’,int2str(c)])
  5. w=([’b’,int2str(c-1)])
  6. w=eval([’b’,int2str(c-1)])
  7. j=([’b’,int2str(c)])
  8. eval([’b’,int2str(c) ’=z*w+y’])
  9. end

Nessas linhas o matlab criará is valores de 푏 a partir dos coeficientes do polinômio.

  1. for i=
  2. c1=b1;
  3. for c=2:c-
  4. t= eval([’b’,int2str(c)]);
  5. u=([’c’,int2str(c-1)]);
  6. u=eval([’c’,int2str(c-1)]);
  7. v=([’c’,int2str(c)]);
  8. eval([’c’,int2str(c) ’=z*u+t’])
  9. end
  10. end
  11. end

Das linhas 19 a 29 o matlab definirá os valores de 푐 a partir dos valores de 푏 encontrados anteriormente.

  1. %Aplicando em Newton-Raphson modificado
  2. p=eval([’b’,int2str(n)]);
  3. o=eval([’c’,int2str(n-1)]);
  4. x=z-(p/n)
  5. m=abs((z-x)/x);
  6. if m>e
  7. uiwait(msgbox(’Repita o algoritmo com o valor de z=x’,’aviso’,’warn’))
  8. else
  9. uiwait(msgbox(’Raiz encontrada com a tolerância exigida’,’Raiz’))
  10. 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 raíz tem tolerância menor ou igual a tolerância definida pelo usuário. Caso não tenha a mesma tolerância uma caixa de menssagem sugirá avisando que o algoritmo deve ser repitido para um novo valor de 푧 que é igual a raíz encontrada até que a tolerância seja a desejada. Caso a tolerância seja menor ou

igual uma caixa de menssagem indicará que a raíz encontrada é a desejada.

IV. RESULTADOS Seja um polinômio, 푃 (푥) = 푥^3 + 2푥^2 − 0. 85 푥 − 1. 7 , determine suas raízes usando o algoritmo de Briot Ruffini Horner, com precisão de 10 −^2. A figura 2 mostra a primeira iteração:

Figura 2. Primeira Iteração.

Aplicando-se Newton temos:

e o erro relativo é, 0.02. Então usa-se z = 0.9224 para fazer a segunda iteração ( figura 3):

Figura 3. Segunda Iteração.

Então temos:

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

Figura 4. Terceira Iteração.

Assim podemos escrever 푄(푥) = 푥^2 + 2. 9220 푥 + 1. 8441. Usando Bhaskara obtemos suas outras raízes, 푥 = − 0. 9235 e 푥 = − 1. 9985