APROXIMACE KŘIVEK V MATLABU NEWTONŮV INTERPOLAČNÍ POLYNOM CURVE FITTING IN MATLAB NEWTON INTERPOLATION POLYNOMIAL Jiří Kulička 1 Anotace: Článek se zabývá odvozením, algoritmizací a popisem konstrukce Newtonova 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 proveden teoretický rozbor, pak následuje řešený příklad a výpisy funkcí v Matlabu s vysvětlujícím komentářem. Klíčová slova: Newtonův interpolační polynom, algoritmizace, Matlab Summary: The article deals with derived, algorithm design and description of the Newton interpolation polynomial. There are described and explained the basic computational procedures regarding this issue, first is always a theoretical analysis, followed by solved examples and extracts functions in Matlab with explanatory commentary. Key words: Newton interpolation polynomial, algorithms, Matlab 1. ÚVOD Tento příspěvek navazuje na seriál tří článků v elektronickém časopise Media4u Magazine, které vyšly v posledních dvou vydáních a naleznete je na adrese: http://www.media4u.cz. U Lagrangeova polynomu neexistuje žádný vztah mezi a. Každý z polynomů musíme konstruovat individuelně. Postup je sice jednoduchý, ale výpočet je velmi náročný na počet jednotlivých kroků. Když mezi známé uzly přibude další, musíme celý polynom přepočítat. Tyto nevýhody částečně eliminuje Newtonova interpolace. Naším úkolem bude nalézt interpolační polynom N-tého stupně pro funkci určenou množinou bodů,,, pro 0,1,. V ukázkách m-souborů z Matlabu jsou za znakem % uvedeny vysvětlující komentáře. 2. NEWTONŮV INTERPOLAČNÍ POLYNOM Jeho konstrukci lze popsat rekurentně: 1 Mgr. Jiří Kulička, Univerzita Pardubice, Dopravní fakulta Jana Pernera, Katedra informatiky v dopravě, Studentská 95, 532 10 Pardubice, Tel.: +420466 036 428, E-mail: jiri.kulicka@upce.cz Kulička - Aproximace křivek v Matlabu Newtonův interpolační polynom 138
Polynom se nazývá Newtonův s N středy,,, a je vyjádřen pomocí rekurentním vztahem: N xp N xa N x x x x N 2.1 Příklad 1 Jsou dány středy 1,5; 2; 3; 4,5; a koeficienty 4; 1; 0,5; 0,1; 0,007. Nalezneme a vypočteme 3,5 pro 1,2,3,4. 4 1 1,5 0,5 1,5 2 0,1 1,5 2 3 0,007 1,5 2 3 4,5 Výpočet hodnot polynomů pro 3,5: 3,54 1 3,5 1,52 3,52 0,5 3,5 1,5 3,5 20,5 3,5 0,5 0,1 3,5 1,5 3,5 2 3,5 30,65 3,5 0,65 0,007 3,5 1,5 3,5 2 3,5 3 3,5 4,5 0,6395 2.2 Výpočet hodnoty funkce pomocí vnořeného násobení Vnořené násobení je výhodné použít v tom případě, když potřebujeme častokrát vypočítat hodnotu polynomu. Například pro polynom třetího stupně vypadá předpis takto:. Výpočet hodnoty pro dané pak vypadá takto: x x a Hodnota v S odpovídá P x 2.3 Příklad 2 Vypočteme 3,5 v příkladu 1 pomocí vnořeného násobení. 3,5 0,1 3,5 30,5 3,5 21 3,5 1,54 0,1 0,1 3,5 3 0,5 0,45 0,45 3,5 2 1 1,675 S 1,675 3,5 1,54 0,65 P 3,50,65 Kulička - Aproximace křivek v Matlabu Newtonův interpolační polynom 139
3. APROXIMAČNÍ POLYNOM, PÓLY A STŘEDY Potřebujeme nalézt koeficienty pro všechny polynomy,,, které aproximují funkci. prochází uzly,,. Pro případ 1 platí: a Určíme a : Proto Odtud určíme Vidíme, že je směrnice sečny procházející body, a,. Koeficienty a jsou stejné jak pro, tak pro. Dosadíme : a odtud vyjádříme Po vydělení výrazem a následném krácení dostáváme vztah: 1 Výrazy v závorce tohoto výrazu nazýváme poměrné. 4. POMĚRNÉ DIFERENCE Formální označení aproximačního polynomu zjednodušíme, když zavedeme tzv. poměrné. Jsou definovány následovně:,,,,,,,,,,,, Rekurzivní formule pro poměrné vyšších řádů je:,,,,,,, Kulička - Aproximace křivek v Matlabu Newtonův interpolační polynom 140
Koeficienty polynomu závisí na hodnotách, pro 0,1,, a vypočítáme je pomocí poměrných diferencí: a f x,x,,x 5. NEWTONŮV POLYNOM Předpokládejme, že,,, je 1 různých čísel v intervalu,. Potom existuje jediný polynom stupně nejvýše, pro který platí: pro 0,1,,. Newtonův polynom je dán předpisem: kde,,,, 0,1,,. Protože, je množina bodů s různými x-ovými souřadnicemi, hodnoty můžeme použít k sestavení jediného polynomu stupně menšího nebo rovno, který prochází 1 body. je vhodné uspořádat do tabulky, ukázku pro 5 pólů vidíme v tabulce 1. Pro algoritmizaci je pak vhodné výpočet uspořádat podle tabulky 2. Tab. 1 - funkce do 4. řádu 1. řádu 2. řádu 3. řádu 4. řádu,,,,,,,,,,,,,,,,,,,, Kulička - Aproximace křivek v Matlabu Newtonův interpolační polynom 141
Tab. 2 - v poli D(k,j) 1. řádu 2. řádu 3. řádu 4. řádu 0 0 0 0, 0 0 0,,, 0 0,,,,,, 0,,,,,,,,,, uložíme do dvojrozměrného pole,. Pak,,,, pro. Formule pro určení prvku pole je:, 1 1, 1, Koeficienty jsou diagonální prvky pole D a platí: a D k, k. 6. NEWTONOVA APROXIMACE Předpokládejme, že je Newtonův polynom použitý k aproximaci funkce, tak že:. Jestliže je, pak každému, odpovídá číslo v, tak, že chybu lze vyjádřit jako: E N x x x x x N f N c N 1! 7. PŘÍKLAD 3 Je dána funkce 4. Sestavíme tabulku poměrných diferencí s póly: 1, 2, 3, 4, 5, 6 a Newtonův polynom třetího stupně založený na pólech,,,. Kulička - Aproximace křivek v Matlabu Newtonův interpolační polynom 142
Tab. 3 - Výpočet poměrných diferencí v příkladu 3 (koeficienty dosazované do polynomu jsou vyznačeny tučně) 1. řádu 2. řádu 3. řádu 4. řádu 5. řádu 1 0 3 2 1 15 3 3 1 2 0 15 0 3 2 15 9 6 4 1 1 1 5 1 3 15 48 15 4 3 33 33 15 4 2 9 12 9 5 2 1 0 0 6 1 4 48 105 48 5 4 57 57 33 5 3 12 1 1 6 2 0 5 105 6 192 192 105 6 5 87 87 37 6 4 15 15 12 6 3 1 1 1 2 1 2 3 3 3 3 6 x 18 x 12 x 6 x 11 x 6 P xx 4 x 8. PŘÍKLAD 4 Sestavíme tabulku poměrných diferencí funkce s pěti póly,, pro 0,1,2,3,4. Nalezené koeficienty použijeme pro konstrukci Newtonových interpolačních polynomů P N x pro N 1,2,3. Kulička - Aproximace křivek v Matlabu Newtonův interpolační polynom 143
0 1 Tab. 4 - k příkladu 4 1. řádu -0,632121 2. řádu 3. řádu 4. řádu 1 0,367879-0,232544 0,199789-0,042097 2 0,135335 0,073498-0,085548 0,00665 3 0,049787 4 0,018316-0,031471 0,027039-0,015486 1 0,632121 0 0,632121 1 0,199789 0 1 0,199789 0,83191 1 0,042097 0 1 x 2 P x 0,042097 x 0,32608 x 0,916104 x 1 Obr. 1 - Graf funkce y = e -x a lineární Newtonův polynom y = P 1 (x), který je založen na pólech x 0 = 0 a x 1 = 1 Kulička - Aproximace křivek v Matlabu Newtonův interpolační polynom 144
Obr. 2 - Graf funkce y = e -x a kvadratický Newtonův polynom y = P 2 (x), který je založen na pólech x 0 = 0, x 1 = 1 a x 2 = 2 Obr. 3 - Graf funkce y = e -x a kubický Newtonův polynom y = P 3 (x), který je založen na pólech x 0 = 0, x 1 = 1, x 2 = 2 a x 3 = 3 9. M-SOUBOR MATLAB Sestrojení Newtonova interpolačního polynomu stupně nejvýše N, procházejícího body,,, pro 0,1,.,,,, kde, a d, d, d, x x function [C,D]=newtonpoly(X,Y) %vstup X vektor x-ových souřadnic bodů Xk % Y vektor y-ových souřadnic bodů Xk %výstup C vektor koeficientů Newtonova interpolačního polynomu % D matice poměrných diferencí n=length(x); %Počet daných bodů D=zeros(n,n); %Naplnění matice D nulami D(:,1)=Y'; %výpočet poměrných diferencí Kulička - Aproximace křivek v Matlabu Newtonův interpolační polynom 145
for j=2:n for k=j:n D(k,j)=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1)); end end % koeficienty Newtonova interpolačního polynomu C=D(n,n); for k=(n-1):-1:1 C=conv(C,poly(X(k))); m=length(c); C(m)=C(m)+D(k,k); end příkaz: [C,D]=newtonpoly(X,Y) 10. ZÁVĚR Newtonův interpolační polynom má tu výhodu, že pro něj oproti Lagrangeově interpolaci je výpočetně méně náročné přidat jeden pól, protože část výpočtů zůstane beze změny. Velká výhoda je také v možnosti rekurentního vyjádření. Uvedené komentované výpisy funkcí v Matlabu budou použity ve výuce předmětu Numerické Metody na DF UPCE. POUŽITÉ ZDROJE [1] MATHEWS, John FINK, Kurtis. Numerical Methods Using MATLAB. Pearson Prentice Hall 2004, fourth edition. ISBN 0-13-191178-3. [2] RALSTON, Antony. Základy numerické matematiky. Academia Praha 1978 [3] VITÁSEK, Emil. Numerické metody. SNTL 1987 [4] KARBAN, Pavel. Výpočty a simulace v programech Matlab a Simulink. Computer Press 2006. ISBN 80-251-1301-9. Kulička - Aproximace křivek v Matlabu Newtonův interpolační polynom 146