You are on page 1of 6

Mtodos Numricos

Mtodo de Horner

ALGORITMO DE HORNER
( )

Resumen: Evaluacin de

y sus derivadas en Xo.

Entrada: n(grado del polinomio), ai(coeficientes), Xo (argumento real)


Salida: Zk=pnk(Xo)k=0,1,.,n
Algoritmo:
Considerar: bn=an
Calcular: Zn=pn(n)(Xo)=n!an
Para: K=0,1,2,,n-1
Hacer: i=n-1, n-2,k
Calcular: bi=ai+bi+1Xo
Calcular: Zk=pn(k)(Xo)=k!bk

Implementacin a travs de un arreglo matricial

A=[aij](n+1)(n+2) Matriz de Coeficientes


Donde:
Primera columna: ei-1=a(i,1) i=1,2,, n+1
Ultima Fila: en=a(n+1,j) i=2,3,, n+2
Elemento General: ei-1=a(i,j)=a(i,j-1)+a(i+1,j)Xo
Donde: j=2,3,.,n+1
i=n, n-1,.., j-1
Evaluacin:
Pn(k-1)(Xo)=(k-1)!a(k,k+1) K=1,2,..n+1

Ing. Paulina Morillo

Mtodos Numricos

Mtodo de Horner

1
2
3
.
.
.
i
.
.
.
n-1
n
n+1

a0
a1
a2
.
.
.
ai
.
.
.
an-2
an-1
an

R0=bo
b1
b2
.
.
.
bi=ai+bi+1Xo
.
.
.
bn-2
bn-1
bn

n+2

i
R1=c1
c2
.
.
.
ci =bi+ci+1Xo
.
.
.
cn-2
cn-1
cn

Rn=an

Ejemplo:
Evaluar el polinomio p4(X)=2X4-3X2+3X-4,
n=4
i varia hasta n+1=5
j varia hasta n+2=6
j
i
1
2
3
4
5

-4
3
-3
0
2

10=Ro
-7
5
-4
2

-49=R1
21
-8
2

45=R2
-12
2

-16=R3
2

2=Rn

P4(-2)=Ro=10 y sus derivadas


P4(-2)=R1=-49
P4(-2)=2!R2=90
P4(-2)=3!R3=-96
Piv 4(-2)=4!R4=48

Ing. Paulina Morillo

Mtodos Numricos

Mtodo de Horner

Es importante recordar que el polinomio se puede expresar a travs de sus residuos como:
( )

( )
las divisiones sintticas, en un vector de longitud 2n+1.

Proceso de Almacenamiento de los coeficientes

y de todos los residuos de

Tenemos: n+1 coeficientes del polinomio y n+1 residuos, entonces necesitaramos un vector de
2n+2 para almacenar los coeficientes originales y los residuos.
Como an=Rn, entonces podemos disminuir una fila.
1
2
3
.
.
.
i+1
.
.
.
n-1
n
n+1
n+2
n+3
.
.
.
.
.
.
2n-1
2n
2n+1

a0
a1
a2
.
.
.
ai
.
.
.
an-2
an-1
an
Rn-1
Rn-2
.
.
.
Ri
.
.
.
R2
R1
R0

Ordenamiento del vector en forma ascendente:


Coeficientes de ():

(+

, )

Coeficientes de la primera divisin sinttica:


(

(,

(+ ) , )

, )

Donde: i=(n+2), (n+3),, (2n+1)


Coeficientes de las siguientes divisiones sintticas:
Para k=2n, 2n-1,, n+2
Hacer i=n+2,n+3,.., k
Calcular:
(

(,

(,

, )

Residuos de las divisiones sintticas:

, )

Evaluacin de

i=0,1,2,,n

! (

, )

i=0, 1, 2,.,n

Ing. Paulina Morillo

Mtodos Numricos

Mtodo de Horner

IMPLEMENTACION EN MATLAB Opcin 1.- (Siguiente el procedimiento anterior)


function h=poli(coef,Xo)
%Declaracin de la funcin
clc
fprintf('\n\n\t\t\t\t\t****Metodos Numericos******\n\n');
fprintf('\n\n\t\t***** Elaborado por: Ing. Paulina Morillo *******\n\n');
coef=input('\nIngrese el vector de coeficientes del polinomio:\n');
%Matriz de coeficientes en forma descendente
Xo=input('\nIngrese el x a evaluar:\n');
n=length(coef)-1; % n= grado del polinomio
%%%%% Proceso de Ordenamiento del Vector en forma ascendente en un vector
columna %%%%%%%
i=1; % inicializamos i en 1, porque para matlab, no existe la posicion 0
while i<=n+1
%proceso para invertir los coeficientes
for j=n+1:-1:1;
%del polinomio
a(j,1)=coef(i)' ;
%traspuesta del vector para que
i=i+1;
%Se origine el vector columna
end
end
b=a;
%vector columna con coeficientes ordenados en forma ascendente
%Primera divisin sinttica
for i=(n+2):(2*n+1);
b(i,1)=b(2*(n+1)-i,1)+b((i-1),1)*Xo;
end
% Coeficientes de las siguientes divisiones sintticas
c=b;
for k=2*n:-1:n+2;
for i=n+2:k;
c(i,1)=c(i,1)+c(i-1,1)*Xo;
end
end
%Residuos de las divisiones sintticas:
for i=1:n+1;
r(i,1)=c(2*n+2-i,1);
end
%%% Calculo de la evaluacin del polinomio y sus derivadas
p(1,1)=r(1); % clculo de la evaluacin del polinomio en Xo
p(2,1)=r(2); % clculo de la evaluacin de la primera derivada del
polinomio en Xo
fact=1;
for i=3:n+1;
%clculo del factorial empezamos en 3
fact=fact*(i-1); %Es la posicin del residuo 2, dentro del
p(i,1)=fact*r(i,1);
% clculo de las derivadas a
end;
%De la 2da. Derivada
fprintf('\n\t\t\t El polinomio evaluado en %d es igual a:\t
%d\n',Xo,r(1))
%impresin de la evaluacin del polinomio en Xo
for i=2:n+1;
j=i-1;
fprintf('\n\t\t\t La %d derivada del polinomio evaluada en %d
igual a:\t%d\n',j, Xo,p(i))
%impresin de la evaluacion de las
derivadas del polinomio en Xo
end;

porque
vector.
partir

es

Ing. Paulina Morillo

Mtodos Numricos

Mtodo de Horner

Resultados:

Ing. Paulina Morillo

Mtodos Numricos

Mtodo de Horner

Opcin 2.function h=poli2(coef,y)


%declaracion de la funcion %Polinomio
ingresado de la forma anX^n+a(n-1)X^(n-1).......
fprintf('\n\n\t\t\t\t\t****Metodos Numericos******\n\n');
fprintf('\n\n\t\t***** Elaborado por: Ing. Paulina Morillo *******\n\n');
q=length(coef);
%q=n+1 y representa al nmero del coeficientes del
vector
i=1;
while i<=q;
%proceso para invertir los coeficientes
del polinomio
for j=q:-1:1
m(j)=coef(i);
i=i+1;
end
end
m;
%vector con coeficientes invertidos
for k=1:q;
%inicio del proceso de horner
b(q)=m(q);
for j=q-1:-1:1;
b(j)=m(j)+y*b(j+1);
%operacion principal
m(j)=b(j);
%condicion para el clculo de los R
end;
fact=1;
for i=1:k-1;
fact=fact*i;
end;

%calculo del factorial

R(k)=fact*b(k);
% calculo de las derivadas
end;
fprintf('El polinomio y sus derivadas evaluadas en Xo son:\n')
R % vector de la evaluacin del polinomio y sus derivadas.

Resultados

Ing. Paulina Morillo

You might also like