• Nem Talált Eredményt

Interpolációs feladatok megoldása a MATLAB-ban

In document Numerikus módszerek (Pldal 191-197)

Ellen®rz® kérdések

6. Interpolációs feladatok

6.9. Interpolációs feladatok megoldása a MATLAB-ban

Ha a fenti tétel segítségével szeretnénk a legkisebb négyzetek értelemben legjobban közelít®

legfeljebb k-adfokú (k≤n−1) polinomot megadni, akkor a következ® módon járhatunk el. Ve-gyük észre, hogy aPkhalmazon ahp, qi=pT(x)q(x)függvény skaláris szorzatot deniál. Ezzel a skaláris szorzattal a GramSchmidt-ortogonalizációval el®állítunk az1, x, . . . xk lineárisan függet-len polinomokból egy ortonormált bázist:q0, q1, . . . , qk, ahol az alsó index a polinom fokszámát jelöli. Ezután a legkisebb négyzetek értelemben legjobban közelít® polinom a

p(x) =

k

X

i=0

(qTi (x)f)qi(x) alakban írható.

6.8.6. példa. Keressük meg a(−1,1),(0,2),(1,2),(2,4)pontokhoz legjobban illeszked® leg-feljebb els®fokú polinomot az alappontokon ortonormált polinomok segítségével!

Az1ésxpolinomokat ortonormálva a megfelel® skaláris szorzatra nézve azt kapjuk, hogy q0(x) = 1/2 ésq1(x) = (x−1/2)/√

5. Innét p(x) =9

2 1 2 + 9

2√ 5

√1

5(x−1/2) = 9 10x+9

5.

Azxk= 2πk/(n+ 1) (k= 0, . . . , n) alappontokon az

1,sin(jx),cos(jx), (j= 1,2, . . .)

polinomok ortogonális rendszert alkotnak (6.10.15.feladat). Ezt a tényt felhasználva a legkisebb négyzetek értelemben legjobban közelít® legfeljebbk-adfokú trigonometrikus polinom hasonlóan határozható meg, mint a polinomok esetén. Eredményül azt kapjuk, hogy az alacsonyabb fok-számú négyzetösszeg értelemben legjobban közelít® trigonometrikus polinomokat az interpoláló trigonometrikus polinom megfelel® csonkolásaival állíthatjuk el®.

6.8.7. megjegyzés. Tegyük fel, hogy már meghatároztuk az adott pontokat legjobban közelít®

legfeljebb k-adfokú polinomot. Ekkor, ha a legfeljebb k+ 1 fokú hasonló polinomra vagyunk kiváncsiak, és a normálegyenlettel határoztuk meg a legfeljebb k-adfokú polinomot, akkor azt most újra fel kell írni, és meg kell oldani. Ha ellenben ortonormált polinomokat használtunk, akkor cak meg kell határozni a(k+ 1)-edik ortonormált polinomot, és ezt megfelel® együtthatóval hozzáadni a korábban kiszámoltk-adfokú polinomhoz.

6.9. Interpolációs feladatok megoldása a MATLAB-ban

A MATLAB-ban többek között az alábbi parancsokat használhatjuk interpolációs feladatok meg-oldására.

• z=polyfit(x,y,n): Az interpolációs pontokx-koordinátáit az x vektor, mígy-koordinátáit az ugyanolyan méret¶ y vektor tartalmazza. Az n érték az illesztend® polinom fokszámát adja meg. Ha nincs a feltételnek megfelel® polinom, akkor a legkisebb négyzetek értelmé-ben legjobban közelít® polinomot kapjuk vissza. Az interpolációs polinom együtthatói a z vektorba kerülnek a legmagasabb fokú taggal kezd®d®en.

• yi=polyval(z,xi): A z vektorral adott polinom értékét számolja ki a parancs az xi vek-torban meghatározott helyeken. A függvényértékek rendre az yi vekvek-torban jelennek meg.

• yi = interp1(x,y,xi,'módszer'): A parancs az x és y vektorok által meghatározott pon-tokra illeszt a 'módszer' eljárásnak megfelel®en egy interpolációs függvényt. Ezen függvény xi vektorban adott helyeken vett függvényértékeit tartalmazza az yi vektor. A 'módszer' lehet pl.

'linear': szakaszonként lineáris,

'spline': szakaszonként legfeljebb harmadfokú spline-interpoláció,

'cubic': szakaszonként legfeljebb harmadfokú polinom, mely monotonitástartó. Azaz monoton y értékek esetén az interpolációs függvény is ugyanolyan monotonitású, konstans értékek között a függvény is konstans (6.9.1.ábra).

• fft, ifft: gyors Fourier-transzformáció és inverzének parancsa.

6.9.1. ábra. A 'cubic', 'spline' és 'linear' interpoláció megvalósításának szemléltetése.

Lássunk most néhány példát a fenti parancsok alkalmazására!

>> x=[0,1,2,3], y=[0,1,4,9] % A pontok x- és y-koordinátáinak megadása.

x =

0 1 2 3

y =

6.10. Feladatok 189

0 1 4 9

>> z=polyfit(x,y,3) % Legfeljebb harmadfokú interpolációs polinom.

z =

0.0000 1.0000 0.0000 0.0000 % Ez az x^3 függvény.

>> yi=polyval(z,[0.3,0.6]) % A polinom helyettesítési értéke 0.3-nél

% és 0.6-nél.

yi =

0.0900 0.3600

>> yi=interp(x,y,[0.5,1.5],'linear'); % Szakaszonként lineáris

% interpolációs függvény 0.5-nél és 1.5-nél.

yi =

0.5000 2.5000

A MATLAB fft parancsa a komplex Fourier-együtthatókat határozza meg. Az alábbi prog-ram megadja a MATLAB által adott komplex együtthatókból a valós együtthatókat.

function dftvalos(n,fx) m=(n+1)/2;

h = 2*pi/(n+1); x=[0:h:2*pi*(n/(n+1))]; w=exp(i*h); %fx=eval(f);

X=fft(fx);

a=2*real(X(2:m+1))/(n+1);

b=-2*imag(X(2:m+1))/(n+1);

display('A valós diszkrét Fourier-együtthatók:') a0=X(1)/(n+1)

if mod(n,2) == 1 a(m)=a(2)/2;

a end b

A legkisebb négyzetek értelemben vett közelítéseket jól szemlélteti pl. a http://www.chem.

uoa.gr/applets/AppletPoly/Appl_Poly2.htmloldalon található alkalmazás.

6.10. Feladatok

Polinominterpoláció

6.10.1. feladat. Számítógép segítségével határozzuk meg az Z 1

0

e−x2dx

integrál értékét úgy, hogy a [0,1] intervallumot öt egyenl® részre osztjuk, meghatározzuk az in-terpolációs polinomot, és azt integráljuk az adott intervallumon! Az integrál "pontos" értéke 0.7468241330. Közelítsük aze−x2 függvény deriváltját az interpolációs polinom deriváltja segít-ségével azx= 0.5pontban! Hasonlítsuk össze az eredményt a pontos derivált értékével!

6.10.2. feladat. Asinxfüggvény értékeit ismerjük a[0, π]intervallumon akπ/6pontokban(k= 0,1,2,3,4,5,6). Illesszünk ezekre a pontokra egy interpolációs polinomot, és annak segítségével határozzuk meg sin 1 közelít® értékét! Becsüljük meg a számítás el®tt, hogy mekkora hibára számíthatunk!

6.10.3. feladat. Számítógép használata nélkül határozzuk meg a (−1,6),(0,3) és (1,2) pon-tokra illeszked® interpolációs polinomot a Lagrange- és Newton-módszerrel is!

6.10.4. feladat. Számítógép használata nélkül határozzuk meg azf(x) =√4

x+x−2függvény értékeit a 0.5, 80 és 25 pontokban a 0, 1, 16 és 81 pontokhoz tartozó interpolációs polinom segítségével!

6.10.5. feladat. Hogyan egyszer¶síthet® az interpolációs polinom meghatározása a Newton-módszerrel, ha az alappontok egyforma távol vannak egymástól? Határozzuk meg a módszerrel a (4,1), (6,3), (8,8) és (10,20) pontokhoz tartozó interpolációs polinomot!

6.10.6. feladat. Igazoljuk a6.2.7.tételt teljes indukció segítségével!

6.10.7. feladat. Számítógép nélkül határozzuk meg azt a legalacsonyabb fokú p polinomot, melyrep(1) = 2,p0(1) = 1,p(3) = 1ésp0(3) = 2!

6.10.8. feladat. Az el®z® feladat adatait módosítsuk úgy, hogy még ismert a p(2) = 2 és p0(2) = 1feltétel is! Mi lesz ekkor az interpolációs polinom?

6.10.9. feladat. Illesszünk szakaszonként harmadfokú spline-függvényt az (1,2), (2,1), (3,1) alappontokra!

6.10.10. feladat. Osszuk fel a[0, π] intervallumot három egyenl® hosszúságú intervallumra és tekintsük az osztópontokban a sinx függvény értékeit. Az így nyert pontokra illesszünk szaka-szonként harmadfokú spline-függvényt! Becsüljük meg az eredeti függvény és a spline-függvény maximális eltérését!

6.10.11. feladat. Adjuk meg, hogy hogyan egyszer¶södik a qk súlyok kiszámítása a baricent-rikus interpolációs formulánál abban az esetben, ha a Csebisev-alappontokat alkalmazzuk az interpolációra!

Trigonometrikus interpoláció

6.10.12. feladat. Tekintsük az f(x) = |x| függvényt, és válasszuk alappontoknak az xk = 2πk/(3 + 1)(k= 0, . . . ,3) pontokat. Határozzuk meg azf függvényt az alappontokon interpoláló legalacsonyabb fokszámú (kiegyensúlyozott) trigonometrikus polinomot számítógép alkalmazása nélkül!

6.10.13. feladat. Hogyan lehet a DFT-t felgyorsítani abban az esetben, ha az interpolációs alappontok száma nem kett®hatvány, hanem két egész szám szorzatakét áll el®?

6.10.14. feladat. Alkalmazzuk az el®z® feladatban konstruált FFT módszert a Fourier-együtthatók

6.10. Feladatok 191

el®állítására az alábbi alappontok esetén! Az FFT eljárást kézi számolással hajtsuk végre!

xk 0 2π/6 4π/6 6π/6 8π/6 10π/6

fk 0 1 1 0 −1 −1

Legkisebb négyzetek értelemben legjobb közelítések

6.10.15. feladat. Igazoljuk, hogy az1,cos(jx),sin(jx)(j= 1,2, . . .) függvények ortogonálisak azxk = 2πk/(n+ 1)(k= 0, . . . , n) alappontokon! Határozzuk meg ez alapján a trigonometrikus interpolációs polinom együtthatóit abban az esetben, hanpáros érték!

6.10.16. feladat. Határozzuk meg az alábbi pontokat legkisebb négyzetek értelemben legjobban közelít® legfeljebb els® és másodfokú polinomokat! (Oldjuk meg a feladatot a normálegyenlet felírásával ill. ortogonális polinomok használatával!) Oldjuk meg a feladatot ellen®rzésképpen a MATLAB polyfit parancsával is!

xk −1 0 1 2 4

fk 3 1 1 0 −1

Ellen®rz® kérdések

1. Adjuk meg a globális polinominterpoláció alapfeladatát! Mit mondhatunk az interpolációs polinom létezésér®l és unicitásáról?

2. Hogyan állíthatjuk el® az interpolációs polinomot Lagrange módszerével?

3. Deniáljuk az osztott-dierenciák fogalmát és adjuk meg tulajdonságaikat!

4. Hogyan állíthatjuk el® az interpolációs polinomot Newton módszerével?

5. Mit ad meg az interpolációs hiba és hogyan tudjuk megadni az értékét?

6. Mit szemléltet Runge példája?

7. Milyen extremális tulajdonságai vannak a Csebisev-polinomoknak?

8. Mit értünk HermiteFejér interpoláción? Hogy kell ezt az interpolációs polinomot megha-tározni?

9. Mit értünk spline-interpoláción?

10. Milyen tulajdonsággal rendelkeznek a szakaszonként legfeljebb harmadfokú spline-függvények?

11. Mit jelentenek a Fourier-szintézis és Fourier-analízis fogalmak?

12. Milyen eljárást nevezünk gyors Fourier-transzformációnak?

13. Hogyan határozhatunk adott alappontokat legkisebb négyzetek értelemben legjobban köze-lít® függvényeket? Hasonlítsuk össze a módszereket!

In document Numerikus módszerek (Pldal 191-197)