Professional Documents
Culture Documents
nb
lagrange.nb
Lagrange-ov polinom Neka je dana funkcija f:[a,b] R i meusobno razliite toke x0 , x1 , x2 , x3 ... xn iz [a,b]. elimo aproksimirati funkciju f polinomom P(x) koji u izabranim tokama ima iste vrijednosti kao i funkcija f. Ovako postavljen problem ima mnogo rjeenja - ali ako je stupanj polinoma upravo n postoji samo jedno rjeenje. Takav polinom - sa svojstvom P(xk ) = yk - zove se Lagrange-ov polinom:
P(x) =
k=0
yk
(1)
n i=0 ik
Ukoliko se radi o ve poznatoj funkciji f moe se procijeniti maksimalna pogreka interpolacijskog polinoma (u zadanom intervalu [a,b]):
-xi L Hx
k i
Hx-x L
Bitno je uoiti kako poveanje broja toaka (n) znaajno smanjuje 1 pogreku - radi Hn+ 1L!
(3)
lagrange.nb
Primjeri
Primjer 1 U praksi je est sluaj (naroito kao posljedica eksperimentalnih mjerenja) da su poznate vrijednosti funkcije u samo nekoliko toaka - primjerice: ClearAll; x = 81, 2.2, 3.7, 4.4, 6.6<; y = 84.2, 17.8, 22.5, 45.3, 71.9<;
Za interpolaciju se moe koristiti Lagrange-ov polinom etvrtog stupnja: lagrange@t_, x_, y_D := ModuleA8n, pol, q, i, j<, n = Dimensions@xDP1T; pol = 0; ForAi = 1, i n, i++, q = 1; q Ht - xPjTL ForAj = 1, j n, j++, IfAj i, q = EE; xPiT - xPjT
E;
polE;
lagrange.nb
U programskom paketu Mathematica vec postoji ugraena funkcija InterpolatingPolynomial za izraunavanje interpolacijskog polinoma, ali se koristi tzv. Newton-ov oblik: p1math = InterpolatingPolynomial@ 881, 4.2<, 82.2, 17.8<, 83.7, 22.5<, 84.4, 45.3<, 86.6, 71.9<<, zD Expand@p1mathD
4.2 + H11.3333 + H3.03704 + H4.82882 1.69196 H4.4 + zLL H3.7 + zLL H2.2 + zLL H1 + zL
Moe se uoiti da je poetni oblik polinoma p1 i p1math razliit, ali se razvijanjem oba izraza dolazi do istih polinoma (jer postoji samo jedan polinom stupnja n koji prolazi kroz sve n+1 zadane toke). Da li stvarno ovako dobiveni polinom p1 prolazi zadanim tokama? To se moe provjeriti: test1 = p1@xD y
84.2, 17.8, 22.5, 45.3, 71.9< 84.2, 17.8, 22.5, 45.3, 71.9<
Ako se u funkciji lagrange kao argumenti predaju ope vrijednosti moe se dobiti razvijeni izraz (1):
lagrange.nb
x = 8x0, x1, x2, x3, x4<; y = 8y0, y1, y2, y3, y4<; p1@tD
p1@t_D := lagrange@t, x, yD
Ht x1L Ht x2L Ht x3L Ht x4L y0 + Hx0 x1L Hx0 x2L Hx0 x3L Hx0 x4L Ht x0L Ht x2L Ht x3L Ht x4L y1 Ht x0L Ht x1L Ht x3L Ht x4L y2 + + Hx0 + x1L Hx1 x2L Hx1 x3L Hx1 x4L Hx0 + x2L Hx1 + x2L Hx2 x3L Hx2 x4L Ht x0L Ht x1L Ht x2L Ht x4L y3 Ht x0L Ht x1L Ht x2L Ht x3L y4 + Hx0 + x3L Hx1 + x3L Hx2 + x3L Hx3 x4L Hx0 + x4L Hx1 + x4L Hx2 + x4L Hx3 + x4L
Primjer 2 Zadane su vrijednosti funkcije u samo 3 toke: x = 8-3.0, 2.7, 4.3<; y = 8-0.9, -3.5, 1.3<;
0.0216294 H4.3 + tL H2.7 + tL + 0.383772 H4.3 + tL H3. + tL + 0.111301 H2.7 + tL H3. + tL 6.10332 0.314107 t + 0.473444 t2
plot21 = ListPlot@Table@8xPiT, yPiT<, 8i, 1, 3<D, PlotStyle 8RGBColor@0, 1, 0D, PointSize@.03D<D; plot22 = Plot@p2@tD, 8t, -3.5, 5<, PlotStyle 8RGBColor@1, 0, 0D<D; Show@plot21, plot22, Frame TrueD
lagrange.nb
-3
-2
-1 -1
-2
-3
4 2
-2 -2 -4 -6
4 2 0 -2 -4 -6 -2
Graphics
lagrange.nb
Primjer 3 Ponekad se moe raditi i interpolacija poznate funkcije koja je zadana tablino: p p 3p x = 90, , , p, , 2 p=; 3 2 2 y = Sin@xD
!!! 3 , 1, 0, 1, 0= 2
90,
!!! !!! 320 t 729 3 t 544 t2 1215 3 t2 + + 21 70 7 2 28 2 !!! 3 !!! 4 !!! 352 t3 243 3 t 480 t4 243 3 t 96 t5 243 3 t5 + + 3 3 4 4 5 + 7 7 35 5 3 4 7
!!! 3 t H2 + tL H 32 + tL H + tL H + tL 2 35 5 16 t H2 + tL H + tL H 16 t H2 + tL H 32 + tL H + tL H + tL 3 + 5 7 5
+ tL H
+ tL
90,
!!! 3 , 1, 0, 1, 0= 2
!!! 3 , 1, 0, 1, 0= 2
lagrange.nb
plot31 = ListPlot@Table@8xPiT, yPiT<, 8i, 1, 6<D, PlotStyle 8RGBColor@0, 1, 0D, PointSize@.03D<D; plot32 = Plot@p3@tD, 8t, 0, 7<, PlotStyle 8RGBColor@1, 0, 0D<D; Show@plot31, plot32, Frame TrueD
1
0.5
1 -0.5
-1
0.5
1 -0.5
-1
lagrange.nb
0.5
-0.5
-1 0
Graphics
Sada se polinom moe iskoristiti i za izraunavanje vrijednosti fukcije za bilo koju toku (preporuivo - unutar zadanog intervala!). Primjerice za x=2.5 : p3@2.5D Sin@2.5D greska3 = p3@2.5D - Sin@2.5D
0.590734 0.598472 0.00773856
0.0251712
lagrange.nb
10
Problemi i ogranienja
Primjer 4 Prethodni primjer (Primjer 3.) moe posluiti kako bi se ukazalo i na znaajne nedostatke interpolacije Lagrange-ovim polinomom. Dakle, za interpolaciju se koristio Lagrange-ov polinom 5. stupnja (crveno). Na grafiki prikaz je - radi usporedbe - dodana i polazna funkcija Sin(x) (plavo): plot41 = ListPlot@Table@8xPiT, yPiT<, 8i, 1, 6<D, PlotStyle 8RGBColor@0, 1, 0D, PointSize@.03D<D; plot42 = Plot@p3@tD, 8t, -3, 12<, PlotStyle 8RGBColor@1, 0, 0D<D; plot43 = Plot@Sin@tD, 8t, -3, 12<, PlotStyle 8RGBColor@0, 0, 1D<D; Show@plot41, plot42, plot43, Frame TrueD
1
0.5
1 -0.5
-1
lagrange.nb
11
-2 -2
10
12
-4
0.5
-2 -0.5
10
12
-1
-2
-4 -2
Graphics
10
12
Moe se uoiti vrlo dobro podudaranje zadane funkcije (plavo) i interpolacijskog polinoma (crveno) - u zadanom intervalu (od 0 do 2 p). Meutim, izvan tog intervala dolazi do velikog odstupanja i na tu injenicu
lagrange.nb
12
treba obratiti izuzetnu pozornost - naroito u sluajevima kada nije poznata polazna funkcija ve na osnovi eksperimentalnih podataka i interpolacijskog polinoma treba izvesti zakljuke - primjerice o nekoj prirodnoj pojavi.
Primjer 5 Kako se moe i pretpostaviti na tonost interpolacijskog polinoma znaajno e utjecati i broj poznatih toaka. Primjerice, moe se promatrati poznata funkcija Cos6 x u intervalu od -2 to 2. f@t_D := If@t -2 && t 2, Cos@tD6 , 0D plot51 = Plot@f@xD, 8x, -2, 2<, PlotRange 8-1, 1<, PlotStyle 8RGBColor@0, 0, 1D<D
1 0.75 0.5 0.25 -2 -1 -0.25 -0.5 -0.75 -1
Graphics
lagrange.nb
13
p52@t_D := lagrange@t, x, yD; Expand@p52@tDD plot52 = Plot@p52@tD, 8t, -2, 2<, PlotStyle 8RGBColor@1, 0, 0D<D; Show@plot51, plot52, Frame TrueD
t2 1 2 + t Cos@2D6 4 4
-2
-1
-1
lagrange.nb
14
p53@t_D := lagrange@t, x, yD; Expand@p53@tDD plot53 = Plot@p53@tD, 8t, -2, 2<, PlotStyle 8RGBColor@1, 0, 0D<D; Show@plot51, plot53, Frame TrueD
5 t2 t4 4 2 1 4 1 2 1 4 + + t Cos@1D6 t Cos@1D6 t Cos@2D6 + t Cos@2D6 4 4 3 3 12 12
-2
-1 -0.25 -0.5
-1
lagrange.nb
15
p54@t_D := lagrange@t, x, yD; Expand@p54@tDD plot54 = Plot@p54@tD, 8t, -2, 2<, PlotStyle 8RGBColor@1, 0, 0D<D; Show@plot51, plot54, Frame TrueD
49 t2 63 t4 81 t6 27 2 2 6 + + t CosA E 16 32 256 8 3 351 4 2 6 243 6 2 6 27 2 4 6 27 4 4 6 t CosA E + t CosA E t CosA E + t CosA E 128 3 512 3 80 3 32 3 243 t6 Cos@ 4 D 3 1280
6
-2
-1
-1
Moe se uoiti da je podudaranje fukcija sve bolje s poveanjem broja toaka, ali i da rastu oscilacije na rubovima zadanog intervala.
lagrange.nb
16
Primjer 6 Problem oscilacija se moe ublaiti izborom toaka po ebievljev-u naputku - tako da budu gue rasporeene na rubovima intervala. To se moe pokazati na prethodnom primjeru: 2 4 4 2 x = 9-2, -2 + , -2 + , 0, 2 - , 2 - , 2=; 3 3 3 3 6 y = Cos@xD ; f@t_D := If@t -2 && t 2, Cos@tD6 , 0D plot61 = Plot@f@xD, 8x, -2, 2<, PlotRange 8-1, 1<, PlotStyle 8RGBColor@0, 0, 1D<D
1 0.75 0.5 0.25 -2 -1 -0.25 -0.5 -0.75 -1
Graphics
Polinom p62 predstavlja interpolaciju uz jednako razmaknute toke, dok fukcija cheb priprema toke prema ebievljevu. Te toke se koriste za polinom p63:
lagrange.nb
17
p62@t_D := lagrange@t, x, yD; Expand@p62@tDD plot62 = Plot@p62@tD, 8t, -2, 2<, PlotStyle 8RGBColor@1, 0, 0D<D;
49 t2 63 t4 81 t6 27 2 2 6 + + t CosA E 16 32 256 8 3 351 4 2 6 243 6 2 6 27 2 4 6 27 4 4 6 t CosA E + t CosA E t CosA E + t CosA E 128 3 512 3 80 3 32 3 243 t6 Cos@ 4 D 3 1280
6
-2
-1
92 CosA
k = 81, 2, 3, 4, 5, 6, 7<; cheb@n_, a_, b_D := HHa + bL 2 + Ha - bL 2 L * Cos@H2 * n - 1L * p H2 * Max@nDLD xx = cheb@k, -2, 2D p63@t_D := lagrange@t, xx, yD; p63@tD plot63t = ListPlot@Table@8xxPiT, 0<, 8i, 1, 7<D, PlotStyle 8RGBColor@0, 1, 1D, PointSize@.03D<D; plot63 = Plot@p63@tD, 8t, -2, 2<, PlotStyle 8RGBColor@1, 0, 1D<D; Show@plot61, plot62, plot63, plot63t, Frame TrueD
lagrange.nb
18
Jt Cos@2D6 Jt + 2 CosA
11 13 3 y EN Jt + 2 CosA EN SecA Ez z 14 14 14 { 9 3 3 5 3 J2 J2 CosA E 2 CosA EN J2 CosA E + 2 CosA EN J2 CosA E + 2 CosA EN 14 14 14 14 14 14 3 11 3 13 J2 CosA E + 2 CosA EN J2 CosA E + 2 CosA ENN 14 14 14 14 6 i jt CosA 2 E It + 2 CosA EM Jt + 2 CosA 3 EN Jt + 2 CosA 9 EN j 3 14 14 14 k 11 13 5 z y Jt + 2 CosA EN Jt + 2 CosA EN SecA Ez 14 14 14 { 9 5 3 5 5 EN J2 J2 CosA E 2 CosA EN J2 CosA E 2 CosA EN J2 CosA E + 2 CosA 14 14 14 14 14 14 5 11 5 13 J2 CosA E + 2 CosA EN J2 CosA E + 2 CosA ENN 14 14 14 14 6 i jt CosA 2 E It + 2 CosA EM Jt + 2 CosA 3 EN Jt + 2 CosA 5 EN j 3 14 14 14 k Jt + 2 CosA Jt + 2 CosA
5 3 EN EN Jt + 2 CosA 14 14 9 11 13 Jt + 2 CosA EN Jt + 2 CosA EN Jt + 2 CosA EN SecA EN 14 14 14 14 3 5 9 J2 J2 CosA E + 2 CosA EN J2 CosA E + 2 CosA EN J2 CosA E + 2 CosA EN 14 14 14 14 14 14 11 13 J2 CosA E + 2 CosA EN J2 CosA E + 2 CosA ENN 14 14 14 14 6 i j CosA 4 E It + 2 CosA EM Jt + 2 CosA 5 EN Jt + 2 CosA 9 EN jt 3 14 14 14 k
11 13 9 y EN Jt + 2 CosA EN SecA Ez z 14 14 14 { 9 9 3 9 5 EN J2 J2 CosA E 2 CosA EN J2 CosA E 2 CosA EN J2 CosA E 2 CosA 14 14 14 14 14 14 9 11 9 13 J2 CosA E + 2 CosA EN J2 CosA E + 2 CosA ENN 14 14 14 14 3 5 it CosA 4 E6 j It + 2 CosA EM Jt + 2 CosA EN Jt + 2 CosA EN j 3 14 14 14 k 9 13 11 y z Jt + 2 CosA EN Jt + 2 CosA EN SecA Ez 14 14 14 { 11 11 3 11 5 EN J2 J2 CosA E 2 CosA EN J2 CosA E 2 CosA EN J2 CosA E 2 CosA 14 14 14 14 14 14 9 11 11 13 J2 CosA E 2 CosA EN J2 CosA E + 2 CosA ENN 14 14 14 14 3 5 Jt Cos@2D6 It + 2 CosA EM Jt + 2 CosA EN Jt + 2 CosA EN 14 14 14 9 11 13 Jt + 2 CosA EN Jt + 2 CosA EN SecA EN 14 14 14 13 3 13 5 13 J2 J2 CosA E 2 CosA EN J2 CosA E 2 CosA EN J2 CosA E 2 CosA EN 14 14 14 14 14 14 9 13 11 13 J2 CosA E 2 CosA EN J2 CosA E 2 CosA ENN + 14 14 14 14 1 3 5 9 It + 2 CosA EM Jt + 2 CosA EN Jt + 2 CosA EN Jt + 2 CosA EN 64 14 14 14 14 11 13 Jt + 2 CosA EN Jt + 2 CosA EN SecA E 14 14 14 3 5 9 11 13 SecA E SecA E SecA E SecA E SecA E 14 14 14 14 14
lagrange.nb
19
0.5
-2
-1 -0.5
-1
-2
-1
-1
lagrange.nb
20
Moe se uoiti da su toke gue pri rubovima intervala, dok sada interpolacijski polinom (ljubiasto) ima znaajno manje oscilacije od prethodne varijante (crveno).