49 views

Uploaded by Akshay Mehta

n

n

© All Rights Reserved

- Rudiger Gobel and Saharon Shelah- Radicals and Plotkin's Problem Concerning Geometrically Equivalent Groups
- Further Mathematics Waec syllabus
- Assembler Book
- HP 49g Manual
- polynomials study guide
- Multiplying 2 Numbers Starting With Same Digit
- Fx-3650P User Manual
- Arithmetic Sequence
- 5.1-5.3 H WS Polynomials
- alg1m1l3- adding and subtracting polynomials 2
- 12-1
- 250 Problems in Elementary Number Theory - Sierpinski (1970).pdf
- Leaflet Iccmse 2015
- A Textbook Of Engineering Physics_M. N. Avadhanulu, And P. G. Kshirsagar.pdf
- Olympiad Sof
- Grade 9 Algebra 2 Term Plan
- PRESENTATION
- number system
- Dd Notes Section1
- MATH 109 SP16 EXAM

You are on page 1of 11

Jump to: navigation, search

In numerical analysis, the Horner scheme or Horner algorithm, named after William

George Horner, is an algorithm for the efficient evaluation of polynomials in monomial form.

Horner's method describes a manual process by which one may approximate the roots of a

polynomial equation. The Horner scheme can also be viewed as a fast algorithm for dividing

a polynomial by a linear polynomial with Ruffini's rule.

Contents

[hide]

2 Examples

o 2.1 Floating point multiplication and division

2.1.1 Example

2.1.2 Method

2.1.3 Derivation

2.2.1 Example

3 Application

4 Efficiency

5 History

6 See also

7 References

o 7.1 Bibliography

8 External links

Given the polynomial

where

of x, say x0.

To see why this works, note that the polynomial can be written in the form

[edit] Examples

Evaluate

may be rewritten as

calculations and make the process faster.

for

x

x

x

x

x

3

2

-6

2

-1

6

0

6

2

0

2

5

The entries in the third row are the sum of those in the first two. Each entry in the second row

is the product of the x-value (3 in this example) with the third-row entry immediately to the

left. The entries in the first row are the coefficients of the polynomial to be evaluated. The

answer is 5.

As a consequence of the polynomial remainder theorem, the entries in the third row are the

coefficients of the second-degree polynomial that is the quotient of f1/(x-3). The remainder is

5. This makes Horner's method useful for polynomial long division.

Divide

by x 2:

2

1

-6

11

-6

2

-8

6

1

-4

3

0

The quotient is x2 4x + 3.

Let

using Horner's scheme.

and

. Divide

by

2 4

-6

0

3

-5

1

2

-2

-1

2

-2

-1

1

-4

The third row is the sum of the first two rows, divided by 2. Each entry in the second row is

the product of 1 with the third-row entry to the left. The answer is

Main article: multiplication algorithm#Shift and add

Horner's method is a fast, code-efficient method for multiplication and division of binary

numbers on a microcontroller with no math coprocessor. One of the binary numbers to be

multiplied is represented as a trivial polynomial, where, (using the above notation): ai = 1,

and x = 2. Then, x (or x to some power) is repeatedly factored out. In this binary numeral

system (base 2), x = 2, so powers of 2 are repeatedly factored out.

[edit] Example

[edit] Method

To find the product of two binary numbers, "d" and "m".

o 2b. Count (to the left) the number of bit positions to the next most significant

non-zero bit. If there are no more-significant bits, then take the value of the

current bit position.

o 2c. Using that value, perform a right-shift operation by that number of bits on

the register holding the intermediate result

3. If all the non-zero bits were counted, then the intermediate result register now holds

the final result. Otherwise, add (d) to the intermediate result, and continue in step #2

with the next most significant bit in (m).

[edit] Derivation

In general, for a binary number with bit values: (d3d2d1d0) the product is:

(d323 + d222 + d121 + d020)m = d323m + d222m + d121m + d020m

At this stage in the algorithm, it is required that terms with zero-valued coefficients are

dropped, so that only binary coefficients equal to one are counted, thus the problem of

multiplication or division by zero is not an issue, despite this implication in the factored

equation:

The denominators all equal one (or the term is absent), so this reduces to:

= d0(m + 2d1(m + 2d2(m + 2d3(m))))

or equivalently (as consistent with the "method" described above):

= d3(m + 2 1d2(m + 2 1d1(m + d0(m))))

In binary (base 2) math, multiplication by a power of 2 is merely an register shift operation.

Thus, multiplying by 2 is calculated in base-2 by a right arithmetic shift. The factor (2-1) is a

right arithmetic shift, a (0) results in no operation (since 20 = 1, is the multiplicative identity

element), and a (21) results in a left arithmetic shift. The multiplication product can now be

quickly calculated using only arithmetic shift operations, addition and subtraction.

The method is particularly fast on processors supporting a single-instruction shift-andaddition-accumulate. Compared to a C floating-point library, Horner's method sacrifices some

accuracy, however it is nominally 13 times faster (16 times faster when the "canonical signed

digit" (CSD) form is used), and uses only 20% of the code space.[1]

Using the Horner scheme in combination with Newton's zero finding method it is possible to

approximate the real roots of a polynomial. The algorithm is as follows. Given a polynomial

pn(x) of degree n with zeros zn < zn 1 < ... < z1 make some initial guess x0 such that x0 > z1.

Now follow the steps outline below.

1. Using Newton's method find the largest zero, z1 of pn(x) using the guess x0.

2. Use the Horner scheme to divide out (x z1) to obtain pn 1. Return to step 1 but use the

polynomial pn 1 and the initial guess z1.

These two steps are repeated until all real zeros are found for the polynomial. If the

approximated zeros are not precise enough, the obtained values can be used as initial guesses

for Newton's method but using the full polynomial rather than the reduced polynomials.[2]

[edit] Example

Consider the polynomial,

which can be expanded to,

p6(x) = x6 + 4x5 72x4 214x3 + 1127x2 + 1602x 5040.

From the above we know that the largest root of this polynomial is 7 so we are able to make

an initial guess of 8. Using Newton's method the first zero of 7 is found as shown in black in

the figure to the right. Next p(x) is divided by (x 7) to obtain,

p5(x) = x5 + 11x4 + 5x3 179x2 126x + 720

which is drawn in red in the figure to the right. Newton's method is used to find the largest

zero of this polynomial with an initial guess of 7. The largest zero of this polynomial which

corresponds to the second largest zero of the original polynomial is found at 3 and is circled

in red. The degree 5 polynomial is now divided by (x 3) to obtain,

p4(x) = x4 + 14x3 + 47x2 38x 240

which is shown in yellow. The zero for this polynomial is found at 2 again using Newton's

method and is circled in yellow. The Horner scheme is now used to obtain,

p3(x) = x3 + 16x2 + 79x + 120

which is shown in green and found to have a zero at -3. This polynomial is further reduced to,

p2(x) = x2 + 13x + 40

which is shown in blue and yields a zero of -5. The final root of the original polynomial may

be found by either using the final zero as an initial guess for Newton's method, or by reducing

p2(x) and solving the linear equation. As can be seen, the expected roots of -8, -5, -3, 2, 3, and

7 were found.

[edit] Octave implementation

The following Octave code was used in the example above to implement the Horner scheme.

function [y b] = horner(a,x)

% Input a is the polynomial coefficient vector, x the value to be

evaluated at.

% The output y is the evaluated polynomial and b the divided coefficient

vector.

b(1) = a(1);

for i = 2:length(a)

b(i) = a(i)+x*b(i-1);

end

y = b(length(a));

b = b(1:length(b)-1);

end

[edit] Application

The Horner scheme is often used to convert between different positional numeral systems

in which case x is the base of the number system, and the ai coefficients are the digits of the

base-x representation of a given number and can also be used if x is a matrix, in which

case the gain in computational efficiency is even greater.

[edit] Efficiency

Evaluation using the monomial form of a degree-n polynomial requires at most n additions

and (n2 + n)/2 multiplications, if powers are calculated by repeated multiplication and each

monomial is evaluated individually. (This can be reduced to n additions and 2n - 1

multiplications by evaluating the powers of x iteratively.) If numerical data are represented in

terms of digits (or bits), then the naive algorithm also entails storing approximately 2n times

the number of bits of x (the evaluated polynomial has approximate magnitude xn, and one

must also store xn itself). By contrast, Horner's scheme requires only n additions and n

multiplications, and its storage requirements are only n times the number of bits of x.

Alternatively, Horner's scheme can be computed with n fused multiply-adds. Horner's scheme

can also be extended to evaluate the first k derivatives of the polynomial with kn additions

and multiplications[3].

It has been shown that the Horner scheme is optimal, in the sense that any algorithm to

evaluate an arbitrary polynomial must use at least as many operations. That the number of

additions required is minimal was shown by Alexander Ostrowski in 1954; that the number of

multiplications is minimal by Victor Pan, in 1966. When x is a matrix, the Horner scheme is

not optimal.

This assumes that the polynomial is evaluated in monomial form and no preconditioning of

the representation is allowed, which makes sense if the polynomial is evaluated only once.

However, if preconditioning is allowed and the polynomial is to be evaluated many times,

then faster algorithms are possible. They involve a transformation of the representation of the

polynomial. In general, a degree-n polynomial can be evaluated using only

multiplications and n additions (see Knuth: The Art of Computer Programming, Vol.2).

[edit] History

Even though the algorithm is named after William George Horner, who described it in 1819,

the method was already known to Isaac Newton in 1669, the Chinese mathematician Qin

Jiushao in his Mathematical Treatise in Nine Sections in the 13th century, and even earlier to

the Persian Muslim mathematician Sharaf al-Dn al-Ts in the 12th century.[4] The earliest

use of Horner's scheme was in The Nine Chapters on the Mathematical Art, a Chinese work

of the Han Dynasty (202 BC 220 AD) edited by Liu Hui (fl. 3rd century).[5]

architectures.

[edit] References

1. ^ Kripasagar, March 2008, "Efficient Micro Mathematics", Circuit Cellar, p.62, issue

212

2. ^ Kress, Rainer, "Numerical Analysis", Springer, 1991, p.112,

3. ^ W. Pankiewicz. "Algorithm 337: calculation of a polynomial and its derivative

values by Horner scheme". http://portal.acm.org/citation.cfm?doid=364063.364089.

4. ^ J. L. Berggren (1990). "Innovation and Tradition in Sharaf al-Din al-Tusi's

Muadalat", Journal of the American Oriental Society 110 (2), p. 304309.

5. ^ Temple, Robert. (1986). The Genius of China: 3,000 Years of Science, Discovery,

and Invention. With a forward by Joseph Needham. New York: Simon and Schuster,

Inc. ISBN 0671620282. Page 142.

[edit] Bibliography

William George Horner. A new method of solving numerical equations of all orders,

by continuous approximation. In Philosophical Transactions of the Royal Society of

London, pp. 308335, July 1819.

Algebra. McGraw-Hill Book Company.

Algorithms, Third Edition. Addison-Wesley, 1997. ISBN 0-201-89684-2. Pages 486

488 in section 4.6.4.

Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001.

ISBN 0-262-03293-7. Problem 2-3 (pg. 39) and page 823 of section 30.1:

Representation of polynomials.

Division Techniques for MCUs". Circuit Cellar magazine (212): p. 60.

Views

Article

Discussion

History

Personal tools

Try Beta

Navigation

Main page

Contents

Featured content

Current events

Random article

Search

Special:Search

Go

Interaction

About Wikipedia

Community portal

Recent changes

Contact Wikipedia

Donate to Wikipedia

Help

Search

Toolbox

Related changes

Upload file

Special pages

Printable version

Permanent link

Languages

esky

Deutsch

Espaol

Esperanto

Franais

Italiano

Nederlands

Polski

Portugus

Romn

Slovenina

Svenska

additional terms may apply. See Terms of Use for details.

Wikipedia is a registered trademark of the Wikimedia Foundation, Inc., a non-profit

organization.

Contact us

Privacy policy

About Wikipedia

Disclaimers

- Rudiger Gobel and Saharon Shelah- Radicals and Plotkin's Problem Concerning Geometrically Equivalent GroupsUploaded byHmsdk
- Further Mathematics Waec syllabusUploaded byGabriel Obriki
- Assembler BookUploaded byMadhan Raja
- HP 49g ManualUploaded byman18825
- polynomials study guideUploaded byapi-310503032
- Multiplying 2 Numbers Starting With Same DigitUploaded byPuworkUtara OnScribd
- Fx-3650P User ManualUploaded byWho Am I
- Arithmetic SequenceUploaded byyeunu117
- 5.1-5.3 H WS PolynomialsUploaded bykcarvey
- alg1m1l3- adding and subtracting polynomials 2Uploaded byapi-276774049
- 12-1Uploaded bysarasmile2009
- 250 Problems in Elementary Number Theory - Sierpinski (1970).pdfUploaded byIoana Iaru
- Leaflet Iccmse 2015Uploaded bydidikkris
- A Textbook Of Engineering Physics_M. N. Avadhanulu, And P. G. Kshirsagar.pdfUploaded byShriramNatarajan
- Olympiad SofUploaded byaashray
- Grade 9 Algebra 2 Term PlanUploaded byJaafar Soriano
- PRESENTATIONUploaded byYogalakshmi
- number systemUploaded byWazazzu Wazazzu
- Dd Notes Section1Uploaded bymabuhzaima
- MATH 109 SP16 EXAMUploaded byAnnie Marie Sullivan
- lab 1.docUploaded byAzhar Shafique
- DEUploaded byNahush Bapat
- lesson plan 1021Uploaded byapi-283960338
- (56-4)391Uploaded byNeoXana01
- AES - Mathematical Preliminaries.pdfUploaded byVĩnh Hải
- Info Day 2016Uploaded byDanielDanielli
- Assigment 1 (Hisyamuddin) CiscoUploaded byhisyamuddin
- FEA IIIUploaded byvasanth09ajay
- dailyassignmentsUploaded byapi-446092058
- Daily Test 3 (Linear Equation)Uploaded bybernadi

- OTT-CP-27032015Uploaded bySaurabh Ghosh
- Optimal Currency AreaUploaded byAkshay Mehta
- Chottu KoolUploaded byAkshay Mehta
- MTexternal.pdfUploaded byRashmi Jamadagni
- 6 Triangle RasterizationUploaded byAkshay Mehta
- ch11Uploaded byfoxhoundzz13
- Opportunities for Export of Fruits and Vegetable Based Products (Summary)Uploaded byAkshay Mehta
- Processed Fruits and VegetablesUploaded byAnkit Singh
- NCMAT SampleUploaded byNikesh Mirchandani
- CookiesUploaded byrenkinjutsushi1
- CMDM-PractQns_EUploaded byashwani1883
- 5 3d TransformationsUploaded byAkshay Mehta
- 2 Graphics DevicesUploaded byAkshay Mehta
- 9 Camera ModelsUploaded byAkshay Mehta
- 7 ClippingUploaded byAkshay Mehta
- 4 OpenGLUploaded byAkshay Mehta
- CS580-02AnewUploaded byAkshay Mehta
- Applebaum, 2004Uploaded byAkshay Mehta
- A Practical Approach to Solve SMC ProblemUploaded byAkshay Mehta
- Virtual mUploaded byAkshay Mehta
- ch10Uploaded byAkshay Mehta
- 20150307 Reeby Sports Working v003Uploaded byAmit Srivastava
- PGP1 Grp11 CA TechnologiesUploaded byAkshay Mehta
- Knapsack ProblemUploaded byAkshay Mehta
- CLR ExplainedUploaded byAkshay Mehta
- m01L01Uploaded byKushal Verma
- Solutions of RDBMSUploaded byAkshay Mehta
- KM SharingUploaded byAkshay Mehta

- Solutions1.pdfUploaded byÖzge Tüncel
- Introduction to Econometrics- Stock & Watson -Ch 4 Slides.docUploaded byAntonio Alvino
- mwrUploaded byPratik D Upadhyay
- Skl Binder1Uploaded byRahul Yadav
- ELEC6_1Uploaded byJos1
- math_anxiety_material.pdfUploaded byChristian Calma
- Exercises, LE2Uploaded byLenard Santiago Punzal
- Roda FrogsUploaded bywakomasei
- FDUploaded byOvidiu Bucsoiu
- Java Quick Reference GuideUploaded byJoshua Ritchie
- The Levinson AlgorithmUploaded byBabisIgglezos
- Nbs Special Publication 553Uploaded byThiruvenkata Mani
- Comparative Study of Data Mining Methods InUploaded byJaviera Elisa Arancibia Cádiz
- 4 Introduction to Integrals and DerivativesUploaded byranbus
- Dynamics Answers 2009-11-2Uploaded byfalconsaftey43
- math lesson planUploaded byapi-279988623
- S_FMA_1Uploaded byUlpan Dimas
- Final Report TemplateUploaded byEduardVallejos
- grade 8 lesson 7 square rootsUploaded byapi-249796897
- 366717384-Signals-and-Systems-Multiple-Choice-Questions.pdfUploaded byINDLA MAHESH
- Coursera Statistics One - Notes and FormulasUploaded byLuisSanchez
- The Manhattan Pair Distance Heuristic for the 15-PuzzleUploaded byhahaggerg
- Brain Development With Mental MathUploaded byMazMoh
- Efficient algorithms for supersingular isogeny Diffie-HellmanUploaded bynfwu
- 3 Buildings Dont Use Energy People DoUploaded byarch1353
- IMP Questions TCSUploaded byHiteshwar Dutt
- Probability TermsUploaded byMatt Gallion
- ATPS - Construção de algoritmosUploaded byHermes Vilalba
- Generative AlgorithmsUploaded byStefan-Eusebiu Potorac
- Homework #5, Sec 11.3Uploaded byMasaya Sato