Hornerova shema Polinomi su najjednostavnije algebarske funkcije Moemo
Hornerova shema
• Polinomi su najjednostavnije algebarske funkcije. Možemo ih definirati nad bilo kojim prstenom R u obliku: gdje su koeficijenti iz tog prstena, a x je simbolička “varijabla”. Polinomi, kao simbolički objekti, imaju algebarsku strukturu prstena • Međutim, polinome možemo interpretirati i kao funkcije, koje možemo izvrednjavati u svim točkama x 0 prstena R, uvrštavanjem x 0 umjesto simboličke varijable x. Dobiveni rezultat p(x 0) je opet u R 2
• Složenost očito ovisi o broju članova u sumi. Da broj članova ne bi bio umjetno prevelik, standardno uzimamo da je i da je vodeći koeficijent , tako da je n stupanj tog polinoma p. Kada želimo naglasiti stupanj, polinom označavamo s pn • Polinom se obično zadaje stupnjem n i koeficijentima a 0 , . . . , an u nekoj bazi vektorskog prostora polinoma stupnja ne većeg od n. Na početku razmatranja koristimo standardnu bazu 1, x 2, . . . , xn 3
Računanje vrijednosti polinoma u točki • Zadan je polinom stupnja n kojemu treba izračunati vrijednost u točki x 0. To se može napraviti na više načina. Prvo, napravimo to direktno po zapisu, potencirajući. Krenemo li od nulte potencije x 0 = 1, svaka sljedeća potencija dobiva se rekurzivno xk = x ∙ xk-1 Imamo li zapamćen xk-1, lako je izračunati xk korištenjem samo jednog množenja 4
Vrijednost polinoma s pamćenjem potencija (algoritam) sum : = a 0; pot : = 1; for i: = 1 to n do begin pot : = pot ∗x 0; sum : = sum + ai ∗pot; end; { Na kraju je pn(x 0)= sum. } • Prebrojimo zbrajanja i množenja koja se javljaju u ovom algoritmu. U unutarnjoj petlji javljaju se 2 množenja i 1 zbrajanje. Budući da se petlja izvršava n puta, ukupno imamo 2 n množenja + n zbrajanja 5
Hornerova shema (algoritam) • Izvrednjavanje polinoma u točki može se izvesti i s manje množenja ako polinom zapišemo u obliku pn(x)=(∙∙∙((anx+ an-1)x+ an-2)x+ ∙∙∙+ a 1)x+ a 0 • Algoritam koji po prethodnoj relaciji izvrednjava polinom zove se Hornerova shema. Predložio ga je W. G. Horner, 1819. godine, ali sličan zapis je koristio i Isaac Newton, još 1669. godine sum : = an; for i : = n − 1 down to 0 do sum : = sum ∗ x 0 + ai; { Na kraju je pn(x 0)= sum. } • Odmah je očito da smo korištenjem ovog algoritma broj množenja prepolovili, tj. da je njegova složenost n 6 množenja + n zbrajanja
Dijeljenje polinoma linearnim faktorom oblika x - x 0 • Do sada smo vidjeli kako se pomoću algoritama prikazuje Hornerova shema, a kako se praktično zapisuje kad se radi “na ruke”? • Napravi se tablica na sljedeći način. U gornjem redu se popišu svi koeficijenti polinoma pn redom od an do a 0. Donji red se izračunava korištenjem gornjeg reda i broja x 0. Označimo elemente donjeg reda, gledajući slijeva nadesno, s x 0, cn-1, cn-2, . . . , c 0, r 0, tako da se cn-1 nalazi ispod an an x 0 an-1 . . a 1 a 0 cn-1 cn-2 . . c 0 r 0 7
• Elementi donjeg reda se računaju s lijeva na desno, kako slijedi cn-1 = an, ci-1 : = ci ∗ x 0 + ai-1, i= n, . . . , 1 (1) • Dakle, vodeći koeficijent an se prepiše, a svi ostali se računaju tako da se posljednji izračunati koeficijent ci pomnoži s x 0, a zatim mu se doda koeficijent ai-1 koji se nalazi iznad. Na kraju, ispod koeficijenta a 0 se dobije r 0, tj. vrijednost polinoma u točki x 0 • Pokažimo kako to funkcionira na konkretnom primjeru 8
• Izračunajmo vrijednost polinoma p 5(x) = 2 x 5 − x 3 + 4 x 2 + 1 U točki x 0 = − 1. Formirajmo tablicu: 2 0 -1 4 0 1 -1 2 -2 1 3 -3 4 Dakle, p 5(− 1) = 4. • Pogledajmo značenje koeficijenata ci koji se javljaju u donjem redu tablice. Promatrajmo polinom koji dobijemo dijeljenjem polinoma pn s polinomom stupnja 1 oblika x − x 0. Nazovimo kvocijent ta dva polinoma s qn -1 (to je ponovno polinom, ali sada stupnja n− 1), a ostatak (broj, jer mora biti stupnja manjeg od polinoma kojim dijelimo) s r 0 9
• Tada vrijedi: pn(x) = (x−x 0) qn-1(x) + r 0 (2) • Uvrštavanje x = x 0 u (2) pokazuje da za ostatak vrijedi r 0 = pn (x 0). Znamo da je qn-1 polinom stupnja n− 1, a njegove koeficijente označimo s bi, 1≤ i ≤ n (što je pomak indeksa za jedan u odnosu na dosad korištenu notaciju), (3) • Dodatno, označimo, b 0 = r 0 • Uvrstimo li (3) u (2) i sredimo koeficijente uz odgovarajuće potencije, dobivamo pn(x)= bnxn+(bn-1−x 0 bn)xn− 1+. . . +(b 1−x 0 b 2)x+b 0−x 0 b 1 10
• Za vodeći koeficijent bn, odmah zaključujemo bn=an, a za ai uz potenciju xi , i<n je ai = bi − x 0 ∙ bi+1, i= n− 1, . . . , 0 • Zadnja relacija i veza bn=an pokazuju da bi možemo izračunati iz bi+1 rekurzijom bi = ai + x 0 ∙ bi+1 • Primijetimo da je to relacija istog oblika kao (1), samo s pomaknutim indeksima, a kako je inicijalno i bn = cn-1, zaključujemo da vrijedi bi = ci-1, i=1, . . . , n • Dakle, koeficijenti koje dobijemo u Hornerovoj shemi su baš koeficijenti polinoma-kvocijenta i ostatka pri dijeljenju polinoma pn linearnim 11 faktorom x − x 0
Hornerova shema za traženje vrijednosti derivacija u nekoj točki • Takozvana Potpuna Hornerova shema • Što se događa ako postupak dijeljenja polinoma linearnim faktorom nastavimo, tj. ponovimo više puta? Vrijedi: pn(x) =(x−x 0)qn− 1(x)+r 0 =(x−x 0)[(x−x 0)qn− 2(x)+r 1]+r 0 =(x−x 0)2 qn− 2 (x)+r 1(x−x 0)+r 0 =∙∙∙ = rn(x−x 0)n+. . . +r 1(x−x 0)+r 0. • Dakle, polinom pn napisan je razvijeno po potencijama od (x−x 0). Koja su značenja ri? 12
• Usporedimo dobiveni oblik s Taylorovim polinomom oko x 0 pa zaključujemo da vrijedi: 0≤i≤n • Potpuna Hornerova shema računa sve derivacije polinoma u zadanoj točki podijeljene pripadnim faktorijelima 13
Primjer - Nadimo sve derivacije polinoma p 5(x)=2 x 5−x 3+4 x 2+1 u točki − 1. • Formirajmo potpunu Hornerovu tablicu 2 0 -1 4 0 -1 2 -2 1 3 -3 -1 2 -4 5 -2 -1 -1 2 -6 11 -13 -1 2 -8 19 -1 2 -10 -1 2 • 1 Odatle lako čitamo P 5(-1)=4, 4 P 5(1)(-1)=− 1∙ 1!=− 1, P 5(2)(-1)= − 13∙ 2!=− 26, P 5(3)(-1)=19∙ 3!=114, P 5(4)(-1)=− 10∙ 4!=− 240, P 5(5)(-1)=2∙ 5!= 240 • Algoritam koji nalazi koeficijente ri, odnosno koeficijente Taylorovog razvoja zadanog polinoma oko točke x 0, može se napisati 14 koristeći samo jedno polje
- Slides: 14