APROXIMACE FUKCÍ V MA TLABU ' Část 3. - Lazran eův inter olační 0 mom v Matlabu I Jiří Kulička Umverzna Pardubice, Dopravru fakulta Jana Pcrnera. Katedra Informatiky v dopravě University oj Pardubice. Jan Perner Transport Fakulty, Department oj informatics in transport Univerzita Hradec Králové, Pedagogická fakulta, Katedra informatiky University oj Hradec Králové. Fakult)' ofeducation, Department aj lnformatics Resumé: Článek se zabývá odvozením, algoritmizací a popisem konstrukce Lagrangeova interpolačního polynomu. Jsou zde popsány a vysvětleny základní výpočetní postupy týkající se této problematiky, nejprve je vždy proveden teoretický rozbor, pak následuje řešený příklad a výpisy funkcí v Matlabu s vysvětlujícím komentářem. Summary: The article deals with deriving, algorithm design and description of the Lagrange interpolation polynomial. There are described and explained the basic computational procedures regarding this issue, the first one is always a theoretical analysis, followed by solved examples and extracts functions in Matlab with explanatory commentary. ÚVOD umerické (obecně matematické) metody jsou nezbytnou součástí výuky technicky orientovaných předmětů nejen na školách vysokých, ale (samozřejmě s daleko menšími nároky) i na školách středních. Zejména pro vysokoškolské studenty bývají numerické metody a matematika obecně, obtížnými pasážemi studia. Počítače přinesly do technické praxe výraznou podporu právě u numerických metod, od zrychlení a zpřesnění výpočtů matematických modelů až po výpočty metodou konečných prvků. Interpolovat znamená odhadnout chybějící funkční hodnoty pomocí váženého průměru známých funkčních hodnot v sousedních bodech. LIEÁRÍ ITERPOLACE Lineární interpolace používá přímku procházející dvěma body. y y Xa --------------- Xl-)(n B y t- yo Obrázek Lineární interpolace Sklon přímky je: k = tgep = YI - Yo. Dosazením do směrnicového tvaru rovnice přímky dostáváme: XI -xo ávrat na obsah Media4u Magazine 2/200 32
-===-====-===-===-------- -- ( ) y, - y=k x-xo+yo= Yo,x-xo+Yo ( ) X, -xo Tento vztah upravíme na tvar, který odvodil Joseph Louis Lagrange (736-83): () y, - Yo () () x - Xo x - Xo x - Xo Y = P x =. x - Xo + Yo = Yo + y, - Yo. = Yo + y,. - Yo. = ~-~ ~-~ ~-~ ~-~ Poslední část výrazu v této úpravě nazýváme interpolační polynom prvního stupně (přímka). () v () jsou lineární faktory a nazýváme je Lagrangeovými polynomickými a Xl' Dosazením bodů A a B do lineárních faktorů dostáváme: koeficienty založenými na pólech Xo a proto polynom P l (x) prochází body A, B. Výsledný tvar interpolačního polynomu prvního stupně můžeme zapsat:, ~(x)= LYk.L"k(xL r, =f(xk) ZOBECĚÍ POlynomPn(x) stupně nejvýše, který prochází + body [xo; YoL [x,; yd,..., [X,' Y] je určen předpisem: Pn(x) = LYk.L,k(X), kde L,k (x) jsou Lagrangeovy polynomické koeficienty dané uzly x o, Xl... r x a jsou určeny výrazem: (2) IT(x-xJ j=o,}-*k IT(Xk j=o,j"#-k - Xj) Lagrangeovy polynomické koeficienty mají tyto vlastnosti: L,k (x j) = I, když j == k a L, k (x j ) = O, když j *' k. Polynom prochází všemi danými body, což je vidět z následující rovnice dosazením za x = x j : P(Xj)= YO' L,O(Xj )+... + Y j. L,j(X j )+... + Y. L,(Xj)= Yo(O)+... y j(i)+... + Y(O) = Y j' ávrat na obsah Media4u Magazine 2/200 33
a obrázku 2 vidíme názorně konstrukci výsledného interpolačního polynomu P(x) druhého stupně pomocí funkčních hodnot vynásobených Lagrangeovými polynomickými koeficienty v jednotlivých pólech 2, 4, 6. 0 8 6 4 --P(x) --L(x) --L2(x) --------L3(x) / _2L-----L-----~----~-----L----~----~ 2 3 4 5 6 7 Obr.2 Interpolační polynom a Lagrangeovy polynomické koeficienty druhého řádu LAGRAGEŮVITERPOLAČÍVZOREC Funkci r(x) aproximujeme polynomem Pn (x) (2), který nabývá ve známých uzlech stejných hodnot, jako daná funkce r(x). f{x)= LYk 'L,k{X)+E{x)=Pn{x)+E{x), kde Pn (x) je aproximace funkce f(x) a E(x) chyba aproximace. Jestliže Pn (x) je použito k aproximaci r(x) v intervalu < xo/ x >, nazýváme daný proces jako interpolace, mimo daný interval extrapolace. PŘÍKLADY LAGRAGEOVÝCH POLYOMŮ Kvadratický LagrangeElv polynom, který prochází body [xo/ Yo], [XI/ yd a [xv' Y2] je: Kubický l.aqranqeův polynom, který prochází body [xo; Yo], [Xl/ h], [X2; Y2] a [X3/' Y3] je: (x - xo) (x - xd (x - X3) (x - xo) (x - xd (x - X2) + Y2' (X2 -XO)'(X2 -Xd'(X2 -X3r Y3' (X3 -XO)'(X3 -Xl)'(X3 -X2) ávrat na obsah Media4u Magazine 2/200 34
Příklad ahradíme funkci y = In(x) v intervalu x E < ; 2,2 > Lagrangeovými polynomy druhého a třetího stupně. Zobrazíme také chyby, kterých se dopouštíme. Y = t(x) = ln x, x E< ;2,2 > Kvadratický Lagrangeův polynom Xo =,xl =,6,x2 =2,2 Yo = In = O, Yl = ln,6 = 0,470004, Y2 = ln 2,2 = 0,788457 L2,O(x) = (( -,6~. ~x - 2,V =,38889. x 2-5,277778. x + 4,888889 -,6. - 2,2 (x-).(x-22) 2 L 2 () X = ( ) ( ') = -2,777778 x + 8,888889 x - 6,,,6 -.,6-2,2 L22(X) = ( (x -~. i x -,6) ) =,388889. x 2-3,6 x + 2,222222, 2,2 -. 2,2 -,6 = 0-,305567 (x 2-3,2x + 2,2)+,095079 (x 2-2,6x +,6) = = -0,20488 x 2 +,330609 x -,202 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0. ------~- -------- "'~»>: -----o O+ ----~------~---~~-~~~--~----~L----~~-.2.4.6.8 2 2.2 Obr.3 Kvadratický Lagrangeův interpolačni polynom (odchylky P2(X) od y = In(x) jsou červeně a desetkrát zvětšeny) ávrat na obsah Media4u Magazine 2/200 35
KubkkýLagrangeůvpolynom L3 o (x) = (x -,4). (x -,8). (x - 2,2) = -2,60467. x3 + 4,0625. x2-24,895833 x + 4,4375, (-,4). (-,8). (- 2,2) (x-l).(x-l,8).(x-2,2) 3 2 (),,4 -.,4 -,8.,4-2,2 L3x =( ) ( ) ( )=7,825.X -39,0625 x +62,875 x+30,9375 (x-l).(x-l,4).(x-2,2) 3 2 L32 () X = ( ) ( ) ( )=-7,825.X +35,9375 x -52,875 x+24,0625,,8-.,8-,4.,8-2,2 L (x) = (x -). (X -,4). (x -,8) = 2 60467. x3-0 9375. x2 + 4 895833 x - 6 5625 3,3 (2,2-).(2,2-,4).(2,2-,8)',,, P3(X) = O L3,0(X)+ 0,336472 L3,l (x)+ 0,587787 L3,2(x) + 0,788457 L3,3(X) = = 0,089882 x 3-0,64366 x 2 +,99398 x -,440245 0.8 0.7 0.6 0.5 0.4 0.3 0.2 / r-----------... ----------------'.,. O : / --------. --~--- -------- --- '-o 0..2.4.6.8 2 2.2 Obr.4 Kubický Lagrangeův interpolační polynom (odchylky P3(X) od y = In(x) jsou červeně a padesátkrát zvětšeny) m-soubor Matlab Určení Lagrangeova polynomu P(x) = I Yk. L, k (x) daného + body [x k; Yk] I k = 0,,...,. v ukázce m-souboru z Matlabu jsou za znakem % uvedeny vysvětlující komentáře. ávrat na obsah Media4u Magazine 2/200 36
tunction fc,l]=/agrange(x, Y) % vstup X je vektor x-ových souřadnic bodu Xk % Yje vektor y-ových souřadnic bodu Xk %výstup Cje matice výsledných koeficientů Lagrangeova polynomu % Lje matice koeficientů u mocnin x u Lagrangeových polynomů w=length(x)/ n=w-l; L =zeros/w: w)/' % výpočet koeficientů mocnin x u Lagrangeových polynomů for k=l:w v=i: for j=l:w If k-v=] V=conv(V,poly(XÚ)))/(X(k)-XU))/ end end L(k,:)=V,' end % výpočet koeficientů Lagrangeova interpolačn/ho polynomu C=Y*L,' pnkaz: fc,l]=/agrange(x, Y) ZÁVĚR Pro určení interpolačního polynomu existuje více postupu, všechny ale určí stejný polynom. Lagrangeova interpolace patří k těm nejstarším, nejznámějším a nejjednodušším. Její nevýhoda ovšem spočívá v tom, že postup nelze vyjádřit rekurentně a je velmi náročný na počet výpočtů. Proto při přidání dalšího uzlu, musíme celý polynom znovu přepočítat. Komentované výpisy funkcí v Matlabu jsou používány ve výuce předmětu umerické metody na DF UPCE. (v pňstim pokračováni ewtonúv Interpolačni polynom) Použité zdroje MATHEWS. J. - FIK. K. umerical Methods Using MATLAB. Pearson Prentice Hall 2004, fourth edition. ISB 0-3-978-3. RALSTO, A. Základy numerické matematiky. Academia Praha 978 VIT ÁSEK. E. umerické metody. STL 987 KARBA. P. výpočty a simulace v programech Matlab a Simulink. Computer Press 2006. ISB 80-25-30-9. Kontaktni adresa Mgr. Jiři Kulička Univerzita Pardubice Dopravni fakulta Jana Pernera Studentská 95 532 0 Pardubice 2 e-mail: jiri.kulicka@upce.cz ávrat na obsah Media4u Magazine 2/200 37