180 likes | 686 Vues
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
E N D
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 x0prstena R, uvrštavanjem x0 umjesto simboličke varijable x. Dobiveni rezultat p(x0) je opet u R
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 a0 ,..., an u nekoj bazi vektorskog prostora polinoma stupnja ne većeg od n. Na početku razmatranja koristimo standardnu bazu 1, x , x2,..., xn
Računanje vrijednosti polinoma u točki • Zadan je polinom stupnja n kojemu treba izračunati vrijednost u točki x0. To se može napraviti na više načina. Prvo, napravimo to direktno po zapisu, potencirajući. Krenemo li od nulte potencije x0 = 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
Vrijednost polinoma s pamćenjem potencija (algoritam) sum := a0; pot := 1; for i:= 1 to n do begin pot := pot ∗x0; sum := sum + ai ∗pot; end; { Na kraju je pn(x0)= 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 2n množenja + n zbrajanja
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+ ···+ a1)x+ a0 • 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 ∗ x0 + ai; { Na kraju je pn(x0)= sum. } • Odmah je očito da smo korištenjem ovog algoritma broj množenja prepolovili, tj. da je njegova složenost n množenja + n zbrajanja
Dijeljenje polinoma linearnim faktorom oblika x - x0 • 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 a0. Donji red se izračunava korištenjem gornjeg reda i broja x0. Označimo elemente donjeg reda, gledajući slijeva nadesno, s x0, cn-1, cn-2,..., c0, r0, tako da se cn-1 nalazi ispod an
Elementi donjeg reda se računaju s lijeva na desno, kako slijedi cn-1 = an, ci-1 := ci ∗ x0 + 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 x0, a zatim mu se doda koeficijent ai-1 koji se nalazi iznad. Na kraju, ispod koeficijenta a0 se dobije r0, tj. vrijednost polinoma u točki x0 • Pokažimo kako to funkcionira na konkretnom primjeru
Izračunajmo vrijednost polinoma p5(x) = 2x5 − x3 + 4x2 + 1 U točki x0 = −1. Formirajmo tablicu: Dakle, p5(−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 − x0. 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 r0
Tada vrijedi: pn(x) = (x−x0) qn-1(x) + r0 (2) • Uvrštavanje x = x0 u (2) pokazuje da za ostatak vrijedi r0 = pn (x0). 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, b0 = r0 • Uvrstimo li (3) u (2) i sredimo koeficijente uz odgovarajuće potencije, dobivamo pn(x)= bnxn+(bn-1−x0bn)xn−1+...+(b1−x0b2)x+b0−x0b1
Za vodeći koeficijent bn, odmah zaključujemo bn=an, a za ai uz potenciju xi , i<n je ai = bi − x0 · 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 + x0 · 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 faktorom x − x0
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−x0)qn−1(x)+r0 =(x−x0)[(x−x0)qn−2(x)+r1]+r0 =(x−x0)2 qn−2 (x)+r1(x−x0)+r0 =··· = rn(x−x0)n+...+r1(x−x0)+r0. • Dakle, polinom pn napisan je razvijeno po potencijama od (x−x0). Koja su značenja ri?
Usporedimo dobiveni oblik s Taylorovim polinomom oko x0 pa zaključujemo da vrijedi: 0 ≤ i ≤ n • Potpuna Hornerova shema računa sve derivacije polinoma u zadanoj točki podijeljene pripadnim faktorijelima
Formirajmo potpunu Hornerovu tablicu Odatle lako čitamo P5(-1)=4, P5(1)(-1)=−1∙1!=−1, P5(2)(-1)= −13∙2!=−26, P5(3)(-1)=19∙3!=114, P5(4)(-1)=−10∙4!=−240, P5(5)(-1)=2∙5!= 240 Primjer - Nadimo sve derivacije polinoma p5(x)=2x5−x3+4x2+1 u točki −1. • Algoritam koji nalazi koeficijente ri, odnosno koeficijente Taylorovog razvoja zadanog polinoma oko točke x0, može se napisati koristeći samo jedno polje