Hornerova shema i potpuna Hornerova shema

Download Report

Transcript Hornerova shema i potpuna Hornerova shema

Hornerova shema
• Polinomi su najjednostavnije algebarske funkcije.
Možemo ih definirati nad bilo kojim prstenom R u
obliku:
n
pn ( x) 

i0
ai x
i
n  N0
gdje su a i  R 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 x0 prstena
R, uvrštavanjem x0 umjesto simboličke varijable x.
Dobiveni rezultat p(x0) 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 p  0 i da je
vodeći koeficijent a  0 , tako da je n stupanj
tog polinoma p. Kada želimo naglasiti stupanj,
polinom označavamo s pn
n
• 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
3
Računanje vrijednosti polinoma u
točki
• Zadan je polinom stupnja n
n
pn ( x) 

i0
ai x
i
an  0
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
4
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
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+ ···+ 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
6
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
x0
an an-1
cn-1 cn-2
....
....
a1
c0
a0
r0
7
• 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
8
• Izračunajmo vrijednost polinoma
p5(x) = 2x5 − x3 + 4x2 + 1
U točki x0 = −1. Formirajmo tablicu:
2 0 -1 4 0 1
-1 2 -2 1 3 -3 4
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
9
• 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),
n 1
q n 1 ( x ) 

bi 1 x
i
(3)
i 1
• 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
10
• 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
11
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?
12
• Usporedimo dobiveni oblik s Taylorovim
polinomom oko x0
n
pn ( x) 

(i)
p n ( x0 )
i0
i!
( x  x0 )
i
pa zaključujemo da vrijedi:
(i)
ri 
p n ( x0 )
0≤i≤n
i!
• Potpuna Hornerova shema računa sve
derivacije polinoma u zadanoj točki podijeljene
pripadnim faktorijelima
13
Primjer - Nadimo sve derivacije polinoma
p5(x)=2x5−x3+4x2+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
P5(-1)=4,
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
• Algoritam koji nalazi koeficijente ri, odnosno
koeficijente Taylorovog razvoja zadanog
polinoma oko točke x0, može se napisati
14
koristeći samo jedno polje