Está en la página 1de 8

Algoritmo de Horner

En el campo matemtico del anlisis numrico, el Algoritmo de Horner, llamado


as por William George Horner, es un algoritmo para evaluar de forma eficiente
funciones polinmicas de una forma monomial.
Dado el polinomio
p(x) = a_0 + a_1 x + a_2 x^2 + a_3 x^3 + \cdots + a_n x^n,
donde a_0, \ldots, a_n son nmeros reales, queremos evaluar el polinomio a un
valor especfico de x\,\!, digamos x_0\,\!.
Para llevar a cabo el procedimiento, definimos una nueva secuencia de
constantes como se muestra a continuacin:
b_n\,\!:=\,\! a_n\,\!
b_{n-1}\,\! :=\,\! a_{n-1} + b_n x_0\,\!
\vdots
b_0\,\!:=\,\! a_0 + b_1 x_0\,\!
Entonces b_0\,\! es el valor de p(x_0)\,\!.
Para ver como funciona esto, ntese que el polinomio puede escribirse de la
forma
p(x) = a_0 + x(a_1 + x(a_2 + \cdots x(a_{n-1} + a_n x) \cdots ))
Despus, sustituyendo iterativamente la b_i en la expresin,
p(x_0)\,\!
=\,\! a_0 + x_0(a_1 + x_0(a_2 + \cdots x_0(a_{n-1} + b_n x_0)
\dots ))
=\,\! a_0 + x_0(a_1 + x_0(a_2 + \cdots x_0(b_{n-1}) \dots ))
\vdots
=\,\! a_0 + x_0(b_1)\,\!
=\,\! b_0\,\!
ndice [ocultar]
1 Aplicacin
2 Eficiencia
3 Historia
4 Vase tambin
5 Referencias
Aplicacin[editar]
El algoritmo de Horner se usa a menudo para convertir entre distintos sistemas
numricos posicionales en cuyo caso x es la base del sistema numrico, y
los coeficientes ai son los dgitos de la representacin del nmero dado en la
base x y puede usarse tambin si x es una matriz, en cuyo caso la carga
computacional se reduce an ms.
Eficiencia[editar]

La evaluacin usando la forma monomial del polinomio de grado-n requiere al


menos n sumas y (n2+n)/2 multiplicaciones, si las potencias se calculan
mediante la repeticin de multiplicaciones. El algoritmo de Horner slo requiere
n sumas y n multiplicaciones. (Minimizar el nmero de multiplicaciones es lo
ms deseable porque necesitan mucha carga computacional y son inestables
comparadas con la suma).
Se han demostrado que el algoritmo de Horner es ptimo, de modo que
cualquier algoritmo que se use para evaluar un polinomio requerir como
mnimo el mismo nmero de operaciones. El hecho de que el nmero de
operaciones requeridas es mnimo fue demostrado por Alexander Ostrowski en
1954, y que el nmero de multiplicaciones es mnimo por Victor Pan en 1966.
Cuando x es una matriz, el algoritmo de Horner no es ptimo.
Historia[editar]
Aunque el mtodo toma el nombre de William George Horner, quien lo
describi en 1819, el mtodo era ya conocido por Isaac Newton en 1669, e
incluso antes por el matemtico chino Ch'in Chiu-Shao en el siglo XIII.
En matemticas, un polinomio (del latn polynomius, y este del griego,
[polys] muchos y [nmos] regla, prescripcin, distribucin)1 2 3 es
una expresin matemtica constituida por un conjunto finito de variables (no
determinadas o desconocidas) y constantes (nmeros fijos llamados
coeficientes), utilizando nicamente las operaciones aritmticas de suma, resta
y multiplicacin, as como tambin exponentes enteros positivos. En trminos
ms precisos, es una relacin n-aria de monomios, o una sucesin de sumas y
restas de potencias enteras de una o de varias variables indeterminadas.
Es frecuente el trmino polinmico (ocasionalmente tambin el anglicismo
polinomial), como adjetivo, para designar cantidades que se pueden expresar
como polinomios de algn parmetro, como por ejemplo: tiempo polinmico,
etc.
Los polinomios son objetos muy utilizados en matemticas y en ciencia. En la
prctica, son utilizados en clculo y anlisis matemtico para aproximar
cualquier funcin derivable; las ecuaciones polinmicas y las funciones
polinmicas tienen aplicaciones en una gran variedad de problemas, desde la
matemtica elemental y el lgebra hasta reas como la fsica, qumica,
economa y las ciencias sociales.
En lgebra abstracta, los polinomios son utilizados para construir los anillos de
polinomios, un concepto central en teora de nmeros algebraicos y geometra
algebraica.
ndice [ocultar]
1 Definicin algebraica
1.1 Polinomios de una variable
1.2 Polinomios de varias variables

1.3 Grado de un polinomio


2 Operaciones con polinomios
3 Funciones polinmicas
3.1 Ejemplos de funciones polinmicas
4 Factorizacin de polinomios
5 Historia
6 Vase tambin
7 Referencias
8 Enlaces externos
Definicin algebraica[editar]
Los polinomios estn constituidos por un conjunto finito de variables (no
determinadas o desconocidas) y constantes (llamadas coeficientes), con las
operaciones aritmticas de suma, resta y multiplicacin, as como tambin
exponentes enteros positivos. Pueden ser de una o de varias variables.
Polinomios de una variable[editar]
Para a0, , an constantes en algn anillo A (en particular podemos tomar un
cuerpo, como \scriptstyle\mathbb{R} o \scriptstyle\mathbb{C}, en cuyo caso
los coeficientes del polinomio sern nmeros) con an distinto de cero y n \in
\mathbb{N}, entonces un polinomio, P_{}^{}, de grado n en la variable x es
un objeto de la forma
P(x)_{}^{} = a_n x^n + a_{n-1} x^{n - 1}+ \cdots + a_1 x^{1} + a_0
x^{0}.
Un polinomio P(x) \in K[x] no es ms que una sucesin matemtica finita \left\
{{a_n}\right\}_n tal que a_n \in K.
Representado como:
P(x)_{}^{}=a_0+a_1x+a_2x^2+...+a_nx^n
el polinomio se puede escribir ms concisamente usando sumatorios como:
P(x) = \sum_{i = 0}^{n} a_{i} x^{i}.
Las constantes a0, , an se llaman los coeficientes del polinomio. A a0 se le
llama el coeficiente constante (o trmino independiente) y a an, el coeficiente
principal. Cuando el coeficiente principal es 1, al polinomio se le llama mnico
o normalizado.
Polinomios de varias variables[editar]
Como ejemplo, de polinomios de dos variables desarrollando los binomios:
(2)\begin{cases}
(x + y)^2 = x^2 + 2xy + y^2\\
(x + y)^3 = x^3 + 3x^2y + 3xy^2 + y^3\\

(x + y)^4 = x^4 + 4x^3y + 6x^2y^2 + 4xy^3 + y^4 \end{cases}


Estos polinomios son mnicos, homogneos, simtricos y sus coeficientes son
coeficientes binomiales.
Para obtener la expansin de las potencias de una resta (vase productos
notables), basta con tomar -y en lugar de y en el caso anterior. La expresin (2)
queda de la siguiente forma:
(x-y)^2=x^{2}-2xy+y^{2}\,
Los polinomios de varias variables, a diferencia de los de una variable, tienen
en total ms de una variable. Por ejemplo los monomios:
5xy, 3xz^2, 4xy^2z, \dots
En detalle el ltimo de ellos 4xy_{}^2z es un monomio de tres variables (ya
que en l aparecen las tres letras x, y y z), el coeficiente es 4, y los exponentes
son 1, 2 y 1 de x, y y z respectivamente.
Grado de un polinomio[editar]
Artculo principal: Grado (polinomio)
Se define el grado de un monomio como el mayor exponente de su variable. El
grado de un polinomio es el del monomio de mayor grado.
Ejemplos
P(x) = 2, polinomio de grado cero (el polinomio solo consta del trmino
independiente).
P(x) = 3x + 2, polinomio de grado uno.
P(x) = 3x + 2x, polinomio de grado dos.
P(x) = 2x3+ 3x + 2, polinomio de grado tres.
Convencionalmente se define el grado del polinomio nulo como \scriptstyle
-\infty. En particular los nmeros son polinomios de grado cero.
Operaciones con polinomios[editar]
Artculo principal: Operaciones con polinomios
Los polinomios se pueden sumar y restar agrupando los trminos y
simplificando los monomios semejantes. Para multiplicar polinomios se
multiplica cada trmino de un polinomio por cada uno de los trminos del otro
polinomio y luego se simplifican los monomios semejantes.
Ejemplo
Sean los polinomios: P(x) = (2x_{}^3+4x+1) y Q(x)_{}^{} = (5x^2+3) ,
entonces el producto es:
P(x)Q(x)_{}^{} = (2x_{}^3+4x+1)(5x^2+3) = (2x_{}^3+4x+1)(5x^2) +
(2x^3+4x+1)(3)= (10x_{}^5 + 20x^3 + 5x^2) + (6x^3+12x+3)= 10x_{}^5
+ 26x^3 + 5x^2 + 12x + 3

Para poder realizar eficazmente la operacin se tiene que adquirir los datos
necesarios de mayor a menor. Una frmula analtica que expresa el producto
de dos polinomios es la siguiente:
P(X)Q(X)_{}^{} = \left( \sum_{i=0}^m a_i X^i \right)
\left(\sum_{j=0}^n b_j X^j \right) =
\sum_{k=0}^{m+n} \left(\sum_{p=0}^k a_p b_{k-p} \right) X^k
Aplicando esta frmula al ejemplo anterior se tiene:
P(x)Q(x)_{}^{} = (2x_{}^3+4x+1)(5x^2+3) = (1\cdot 3)x_{}^0 + (4 \cdot
3)x^1 + (1 \cdot 5)x^2 + (4\cdot 5+ 2\cdot 3)x^3 + (0)x^4 + (5\cdot 2)x^5 =
10x_{}^5 + 26x^3 + 5x^2 + 12x + 3
Puede comprobarse que para polinomios no nulos se satisface la siguiente
relacin entre el grado de los polinomios \scriptstyle P(X) y \scriptstyle Q(X) y el
polinomio producto \scriptstyle P(X)Q(X):
(*)\mbox{gr}(P(X)Q(X)) = \mbox{gr}(P(X)) + \mbox{gr}(Q(X))\,
Puesto que el producto de cualquier polinomio por el polinomio nulo es el
propio polinomio nulo, se define convencionalmente que \scriptstyle \mbox{gr}
(0) = -\infty (junto con la operacin \forall p: -\infty + p = -\infty) por lo que la
expresin (*) puede extenderse tambin al caso de que alguno de los
polinomios sea nulo.
Funciones polinmicas[editar]
Artculo principal: Funcin polinmica
Una funcin polinmica es una funcin matemtica expresada mediante un
polinomio. Dado un polinomio P[x] se puede definir una funcin polinmica
asociada al polinomio dado substituyendo la variable x por un elemento del
anillo:
f_P:A \to A,\qquad \qquad a\in A \mapsto f_P(a)=a_n a^n + a_{n-1}a^{n1}+\dots + a_1 a + a_0\in A
La funciones polinmicas reales son funciones suaves, es decir, son
infinitamente diferenciables (tienen derivadas de todos los rdenes). Debido a
su estructura simple, las funciones polinmicas son muy sencillas de evaluar
numricamente, y se usan ampliamente en anlisis numrico para
interpolacin polinmica o para integrar numricamente funciones ms
complejas. Una manera muy eficiente para evaluar polinomios es la utilizacin
de la regla de Horner.
En lgebra lineal el polinomio caracterstico de una matriz cuadrada codifica
muchas propiedades importantes de la matriz. En teora de los grafos el

polinomio cromtico de un grafo codifica las distintas maneras de colorear los


vrtices del grafo usando x colores.
Con el desarrollo de la computadora, los polinomios han sido remplazados por
funciones spline en muchas reas del anlisis numrico. Las splines se definen
a partir de polinomios y tienen mayor flexibilidad que los polinomios ordinarios
cuando definen funciones simples y suaves. stas son usadas en la
interpolacin spline y en grficos por computadora.
Ejemplos de funciones polinmicas[editar]
Note que las grficas representan a las funciones polinmicas y no a los
polinomios en s, pues un polinomio solo es la suma de varios monomios.

Polinomio de grado 2:
f(x) = x2 - x - 2= (x+1)(x-2).
Polinomio de grado 3:
f(x) = x3/5 + 4x2/5 - 7x/5 - 2=
1/5 (x+5)(x+1)(x-2).
Polinomio de grado 4:
f(x) = 1/14 (x+4)(x+1)(x-1)(x-3) + 0.5.
Polinomio de grado 5:
f(x) = 1/20 (x+4)(x+2)(x+1)(x-1)(x-3) + 2.
La funcin
f(x)= 13x^4 - 7x^3 + \begin{matrix}\frac{2}{3}\end{matrix} x^2 - 5x + 3
es un ejemplo de funcin polinmica de cuarto grado, con coeficiente principal
13 y una constante de 3.
Factorizacin de polinomios[editar]
Artculo principal: Factorizacin
En un anillo conmutativo \scriptstyle A una condicin necesaria para que un
monomio sea un factor de un polinomio de grado n > 1, es que el trmino
independiente del polinomio sea divisible por la raz del monomio:
P_n^{}(X) = a_n X^n + \dots + a_1 X + a_0 = (X-\alpha)Q_{n-1}(X)
necesariamente \alpha_{}^{} divide a a_0^{}.
En caso de que el polinomio no tenga trmino independiente se sacar la
incgnita como factor comn y ya est factorizado. Tambin se puede
factorizar usando las igualdades notables.

Un polinomio factoriza dependiendo del anillo sobre el cual se considere la


factorizacin, por ejemplo el binomio X_{}^2 -2 no factoriza sobre
\scriptstyle\mathbb{Q} pero s factoriza sobre \scriptstyle\mathbb{R}:
X^2 - 2 = (X + \sqrt{2})(X - \sqrt{2})
Por otra parte X_{}^2+2 no factoriza ni sobre \scriptstyle\mathbb{Q}, ni
tampoco sobre \scriptstyle\mathbb{R} aunque factoriza sobre
\scriptstyle\scriptstyle \mathbb{C}:
X^2 + 2 = (X + i \sqrt{2})(X - i \sqrt{2})
Un cuerpo en el que todo polinomio no constante factoriza en monomios es un
cuerpo algebraicamente cerrado.
Historia[editar]
Volumen de una pirmide truncada.
La resolucin de ecuaciones algebraicas, o la determinacin de las races de
polinomios, est entre los problemas ms antiguos de la matemtica. Sin
embargo, la elegante y prctica notacin que utilizamos actualmente se
desarroll a partir del siglo XV.
En el problema 14 del papiro de Mosc (ca. 1890 a. C.) se pide calcular el
volumen de un tronco de pirmide cuadrangular. El escriba expone los pasos:
eleva al cuadrado 2 y 4, multiplica 2 por 4, suma los anteriores resultados y
multiplcalo por un tercio de 6 (h); finaliza diciendo: ves, es 56, lo has
calculado correctamente. En notacin algebraica actual sera: V = h (t + b +
tb) / 3, un polinomio de cuatro variables (V, h, t, b) que, conociendo tres,
permite obtener la cuarta variable.
Algunos polinomios, como f(x) = x + 1, no tienen ninguna raz que sea nmero
real. Sin embargo, si el conjunto de las races posibles se extiende a los
nmeros complejos, todo polinomio (no constante) tiene una raz: ese es el
enunciado del teorema fundamental del lgebra.
Hay una diferencia entre la aproximacin de races y el descubrimiento de
frmulas concretas para ellas. Se conocen frmulas de polinomios de hasta
cuarto grado desde el siglo XVI (ver ecuacin cuadrtica, Gerolamo Cardano,
Niccol Fontana Tartaglia). Pero, las frmulas para polinomios de quinto grado
fueron irresolubles para los investigadores durante mucho tiempo. En 1824,
Niels Henrik Abel demostr que no puede haber frmulas generales para los
polinomios de quinto grado o mayores (ver el teorema de Abel-Ruffini). Este
resultado marc el comienzo de la teora de Galois que se ocupa del estudio
detallado de las relaciones existentes entre las races de los polinomios.

La mquina diferencial de Charles Babbage fue diseada para crear


automticamente tablas de valores de funciones logartmicas y diferenciales,
evaluando aproximaciones polinmicas en muchos puntos, usando el mtodo
de las diferencias de Newton.
En computacin, cuando el tiempo de ejecucin de un algoritmo (mediante el
cual se obtiene una solucin al problema) es menor que un cierto valor
calculado a partir del nmero de variables implicadas (generalmente variables
de entrada) usando una frmula polinmica, se dice que dicho problema se
puede resolver en un tiempo polinmico.
Por ejemplo, si determinar el camino ptimo que debe recorrer un cartero que
pasa por N casas necesita menos de 50N^2+N segundos, entonces el
problema es resoluble en un "tiempo polinmico".
De esa manera, tiempos de 2n^2+5n, 4n^6+7n^4-2n^2 o
n^{2^{2^{175}}} son polinmicos; pero 2^n no lo es.
Dentro de los tiempos polinmicos, podemos distinguir los logartmicos O(\log
n), los lineales O(n), los cuadrticos O(n^2), los cbicos O(n^3), etc.
Clases de complejidad[editar]
En teora de la complejidad, la clase de complejidad de los problemas de
decisin que pueden ser resueltos en tiempo polinmico calculado a partir de
la entrada por una mquina de Turing determinista es llamada P. Cuando se
trata de una mquina de Turing no determinista, la clase es llamada NP. Una de
las preguntas abiertas ms importantes en la actualidad es descubrir si estas
clases son diferentes o no. El Clay Mathematics Institute ofrece un milln de
dlares a quien sea capaz de responder a esa pregunta.

Diagrama de clases de complejidad. Si P = NP, P contendra las zonas NP y NPcompleto.


Los problemas NP-completos pueden ser descritos como los problemas en NP
que tienen menos posibilidades de estar en P (Ver NP-completo para una
definicin precisa). Actualmente los investigadores piensan que las clases
cumplen con el diagrama mostrado por lo que P y NP-completo tendran
interseccin vaca.
La importancia de la pregunta P = NP radica en que, de encontrarse un
algoritmo en P para un problema NP-completo, todos los problemas NPcompletos (y por ende, todos los problemas de NP) tendran soluciones en
tiempo

También podría gustarte