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 <

elemzési módszer

számítási komplexitás

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).

interpolációs hiba

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:

Válogatás az interpolációs pontok

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.

Computing kísérlet

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ó.

Példa: Az interpoláció Sine

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.

  • Ha az érték n értéke kisebb, mint 3 közelítési hiba keresztül kapott 10,6626.
  • Ha n = 4. A jobb közelítést (hiba egyenlő 1,0111)
  • ha n = 5. közelítési hiba 0,2797

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.

ajánlások programozó

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].

előzetes tinktúrák

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 használata

A program az alábbi fő funkciók:

  • kettős f (double x). amelynek közlését a korábbiakban
  • int terhelés (char * fájlnév, vektor x, vektor y) - betölti az interpolációs csomópontok az x változó és függvény értéke ezeken a csomópontokon y változó szöveges fájl neve. Abban az esetben sikeres az adatok betöltése fájlból függvény 0.
  • void matrix2diag (mátrix Egy, vektor y) - A mátrix vezet háromszög alakú. y - jobb oldali oszlopban (is változik a mátrix).
  • void SolveSystem (mátrix Egy, vektor y, vektor COEF) - dönt SLAE (A - a háromszög alakú mátrix, y - jobb oldali oszlop, COEF - ezt a vektort oldatban tároltuk SLAE)
  • kettős errapprox (vektor COEF, kétágyas egy, dupla b, kettős H) - hibát ad vissza polinomiális közelítése az eredeti funkciót.

A bemeneti funkció arra szolgál, az alábbi paraméterekkel:

    • vektor COEF - vektor-interpoláció polinom együtthatók, amelyet úgy kapunk, a megoldása során a lineáris
    • megduplázódik egy, dupla b - határvonal interpolációs intervallum [a, b]
    • kettős h - a lépés, hogy "fut" [a, b]
  • int outpolyn (char ** fájlnév, vektor együttható) - elmenti a polinom együtthatóit együttható a fájlnév. Abban az esetben, sikeres természetvédelmi függvény visszatérési értéke „0”.

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.

csatolt fájlok

irodalom

lásd még