Interpolációs polinom kanonikus
Interpoláció - közeledik egy funkciót másik funkció.
A kezdetektől fogva, szeretném megjegyezni, hogy mi interpoláció funkciókat. ahelyett csomópontokat. Természetesen az interpolációs végezzük véges számú pontot, de úgy döntünk őket magunkat.
Ebben a tanulmányban a problémát vizsgált interpolációs függvény egyetlen változó polinom kanonikus polinom, figyelembe kell venni a közelítés pontossága, és hogyan változtatjuk a csomópontok, amelyeken keresztül át a polinom-interpoláció a maximális pontosságot.
Polinom kanonikus alakban
Ismeretes, hogy az a folyamatos a [a, b] f (x) függvény jól közelíthető egy polinom Pn (x). Mi már a következő tétel (Weierstrass): Minden> 0 létezik olyan polinom Pn (x) a mértékig, hogy
Ahogy a közelítő függvény fog választani a polinom foka n a kanonikus formában:
A polinom együtthatóit határozzuk meg a Lagrange körülmények között, figyelembe véve, hogy az előző expressziós ad egy lineáris algebrai egyenletek n +1 ismeretlenek:
Jelöljük az egyenletrendszert egy csillag (*), és átírni, az alábbiak szerint:
vagy mátrix formában: = \ mathbf, "> ahol" > -, oszlopvektor. tartalmazó ismeretlen együtthatók „> - oszlop vektor összetétele a függvény értékei táblázat, és a mátrix” > a formája:
A rendszer lineáris algebrai egyenletek (*) az ismeretlen egyedülálló megoldás, ha a determináns „> nem nulla.
Meghatározója a mátrix „> az úgynevezett Vandermonde meghatározó, lehet kiszámítani a következő képlet segítségével:
A több interpolációs polinom egységek között legyen egy nagyobb fokával. Kitűnik, intuitív szempontok: 2 pont elfér egy sort 3 - egyetlen parabola, stb De a polinom lehet kapni, és kevesebb. Ie ha a 3 pont feküdni egy sort, majd át őket egy első fokú polinom (de ez nem mond ellent semmit: a hányados a legmagasabb fokozatot nulla).
Elegendő az egyszerű eljárás megvalósítása van egy nagy hátránya: a feltétellel száma a mátrix gyorsan növekszik a száma interpolációs pontokat lehet látható az alábbi grafikon
Mivel a rosszul kondicionáló a mátrix használata javasolt más interpolációs technikák (például Lagrange interpoláció polinom). Fontos felismerni, hogy az elméleti általuk használt különböző módszerek vezet ugyanarra az eredmény, vagyis megkapjuk az azonos polinom.
Azonban a gyakorlati megvalósítása polinomok, akkor kap egy másik közelítés pontossága hiba miatt számítástechnikai eszközök.
A számítási módszere polinom egy ponton
Ábrázolják grafikusan közelítő polinom, akkor ki kell számítani az értékét a pontok számát. Ezt meg lehet tenni az alábbi módokon.
Az első módszer. Akkor az A értékét a1 x és fold a0. Ezután keresse a2 x 2 megállapítják az eredményt, és így tovább. Így a j-edik lépésben számítjuk az értéket AJ X j és hozzáadjuk a már kiszámított összeget.
Értékének kiszámításakor AJ x j j igényel szorzás műveleteket. Ie kiszámításához polinom egy adott pont szükséges (1 + 2 +. + n) = n (n + 1) / 2 szorzásokat és n kiegészítések. Összesen műveletek ebben az esetben: Op1 = n (n + 1) / 2 + n.
A második módszer. Polinom is könnyen segítségével számítható az úgynevezett Horner rendszer:
Értékének kiszámításához belső zárójelben egy x + an-1 szükséges egy szorzást műveletet és egy összeadási művelet. Kiszámításához az értékeket a következő zárójelben (X + an-1) x + egy-2 ismét azt kívánja, egy szorzást műveletet és egy összeadási művelet, mivel egy x + an-1 kiszámítása megtörtént, stb
Ezután ebben a módszerben, számítása Pn (x) igényel n szorzásokat és n kiegészítései, azaz számítási komplexitás Op2 = n + N = 2n. Nyilvánvaló, Op2 < A komplexitás becslése interpolációs függvény áll a műveletek számát, hogy megoldja a rendszer lineáris algebrai egyenletek (SLAE), és megtalálja a polinom értékét egy ponton. A komplexitás megoldására lineáris, például, a Gauss módszer mérete n xn mátrixot. 2n 3/3, azaz a O (n 3). Ahhoz, hogy megtalálja a polinom egy adott ponton igényel n -szorzásokat és n kiegészítéseket. Ennek eredményeként, a módszer a komplexitás: O (n 3). Tegyük fel, hogy az intervallum interpoláció [a, b] az f (x) n alkalommal folyamatosan differenciálható. Interpolációs hiba áll egy hiba a módszer és a kerekítési hibák. közelítési hiba f (x) polinom n-edik interpoláció fokú Pn (x) a ponton x határozza meg a különbséget: Rn (x) = f (x) - a Pn (x). Pontosság Rn (x) határozza meg a következő összefüggést: Itt (\ xi) „> - származék (n + 1) -edik érdekében f (x) egy bizonyos ponton úgy definiáljuk, mint egy függvény Ha a maximális értéket a származékos f n + 1 (x) „>, hogy az interpolációs hiba becslése következőképpen: Végrehajtása során ezt a módszert egy számítógépes hiba, En interpoláció (x), feltesszük a maximális eltérés az eredeti polinom függvény a kiválasztott intervallum: Egyértelmű, hogy az alkatrészek kiválasztásánál az interpolált függvény közvetlen hatással van arra, hogy lesz egy polinom közelítés. Bemutatjuk a következő meghatározást. Csebisev polinom polinom formájában Ismeretes (lásd. Az irodalomban), hogy ha az interpolációs pontokat x0. x1. xn a gyökerek a Csebisev polinom foka n + 1. Ez fogadja az érték a lehető legkisebb érték, mint bármely más sor interpolációs pont erre. Nyilvánvaló, hogy a k = 1 esetben a funkciót T1 (x). Valóban, az első fokú polinom, mint T1 (x) = cos (arccos x) = x. Abban az esetben, k = 2 T2 (x) is a polinom a második fokozatot. Ez könnyen ellenőrizhető. Használja az ismert trigonometrikus azonosság: cos2θ = 2cos²θ - 1, ezzel θ = ARccOS x. Ezután kapjuk az alábbi összefüggést: T2 (x) = 2x² - 1. Használata trigonometrikus azonosságok cos (k + 1) θ = 2cosθ coskθ - cos (k - 1) könnyen azt mutatják, hogy az arány a rekkurentnoe Csebisev polinomok: Ezzel ez az arány lehet beszerezni a képlet a Csebisev polinomok bármilyen fokú. Csebisev polinom gyökerek nahodyatya könnyen az egyenlet: Tk (x) = cos (k arccos x) = 0. Azt találjuk, hogy az egyenlet k különálló gyökerek elhelyezve intervallumon [-1,1], és amelyet úgy kell megválasztani, az interpoláció csomópontok. Ez könnyen belátható, hogy a gyökerek a [-1,1] szimmetrikusan vannak elhelyezve, és egyenletesen - a közelebb a szélén a szegmens, a gyökerek található sűrűn. A maximális érték a Csebisev polinom a modul egyenlő 1 és elért pontok Ha feltételezzük, hogy az együttható a legmagasabb fokú polinom ωk (x) értéke 1, Ismeretes, hogy minden polinom pk (x) foka k a hányados egyenlő egységet a legmagasabb származékot egyenlőtlenség azaz Csebisev polinomok polinomok, a legkevésbé eltérő nulla. Valósítani a feladatot, programot C ++ volt írva, hogy az adott funkció hozza kanonikus polinom. Persze, meg kell adnia a csomópontok, amelyeken keresztül a polinom kerül sor, és a függvény értéke ezeken a csomópontokon. Ezután egy lineáris algebrai egyenletrendszer megoldható a Gauss. A kimenet az együtthatók a polinom közelítését és hiba. Mint a fentiekből kiderül, és mint később látni fogjuk, a választott egységek függ a pontosság, amellyel a polinom akkor zoom funkció. Próbálja interpolálni az y = sin (x), az [1, 8,5]. Mi választjuk ki az interpolációs pontok: A kapott polinom-interpoláció leképezve az ábrán (kék ábrán látható grafikon a y = sin (x), piros - interpoláció Polinomiális) Interpolációs hiba ebben az esetben: 0,1534 Lássuk, mi történik, ha úgy döntünk, egységes állandó egység azonos funkciót ugyanazon intervallumban. Az intervallum [3, 6] megközelítés, nem kétséges, volt a legjobb. Azonban elosztva egy nagy árrés. interpolációs hiba: 2,3466. Végül úgy döntünk, az interpolációs pontokat összhangban Chebyshev algoritmus. Megkapjuk őket a következő képlet szerint (csak, hogy a változás a változó): Ebben az esetben, [a, b] -, az [1, 8,5], y = cosx. n + 1 - a csomópontok száma. Továbbra is nyitott kérdés, hogy hány egység közül lehet választani. Graph funkciók ha n = 4 jelentése a következő: Ha n = 7 közelítési hiba veszi a legkisebb a kapott értékek a korábbi (egy adott intervallum): 0,0181. Graph sinus (jelzett kék), és egy polinomiális közelítés (pirossal jelölve) mutatjuk be az alábbi táblázat: Ami érdekes, hogy ha ugyanaz a csomópontok számát válassza ki azokat az [1, 8], a közelítési hiba még ennél is kisebb. 0,0124. A grafikon ebben az esetben a következő: Ha kiválaszt egy nagyobb csomópontok száma, a helyzet egyre rosszabb: igyekszünk, hogy túl pontosan az eredeti funkció: közelítési hiba csak növekedni fog a csomópontok száma. Mint látható, a legjobb közelítést kapjuk választotta a csomópontok Chebyshev módszer. Az ajánlások azonban ebből a csomópontok száma az optimális, nem - ez esetben csak kísérlet. A program írt C ++ alkalmazásával UBlas lineáris algebra könyvtár, amely része a kiemelés könyvtárból. Töltse le a forráskódot itt [2.55Kb]. Ahhoz, hogy a program, akkor a következőket kell tennie: 1. Döntse el a funkciót fogsz interpoláljanak 2. Hozzon létre egy szöveges fájlt (például vec.txt), az első sor kerül a résen interpoláció csomópontok, és a második - az érték a kiválasztott funkció ezekben csomópontokat. Például, a függvény az y = sin (x): 3. A fájl .cpp program funkció dupla f (double x) helyett egy string visszatérési regiszter által visszaadott érték az eredeti funkciót. Például, egy függvény az y = sin (x): 4. A funkció int main () forráskód rendelt változó char * flname útját a bemeneti adatállományban. A mi esetünkben, char * flname = "vec.txt"; A program az alábbi fő funkciók: A bemeneti funkció arra szolgál, az alábbi paraméterekkel: A program elindítása után a képernyőn megjelenik a polinom együtthatóit interpolációs és approximációs hiba. Azt vizsgálták és szoftver megvalósított eljárás interpolációs függvények kanonikus polinom. A vizsgálatok megállapították, hogy a interpolációs hiba kapunk miatt számítási hibák, és mert a módszer hiba. Azt is megjegyezte, hogy a választás az interpoláció csomópontok közvetlenül függ a minősége az interpoláció. A minimális interpolációs hiba érhető el, ha a „Chebyshev” csomópontokat.elemzési módszer
számítási komplexitás
interpolációs hiba
Válogatás az interpolációs pontok
Computing kísérlet
Példa: Az interpoláció Sine
ajánlások programozó
előzetes tinktúrák
A program használata
csatolt fájlok
irodalom
lásd még