Hermite-interpoláció
Feladat Lagrange-interpoláció egy általánosítása Adott pontokra szeretnék n. rendű polinomot illeszteni úgy, hogy a polinom az alappontokban megadott értéket vegyen fel, és az alappontokban a deriváltjai is a megadottak legyenek.
Definíció Adottak 𝑥 0 ,.., 𝑥 𝑘 alappontok és mindegyikhez 𝑚 0 ,…, 𝑚 𝑘 multiplicitás értékek, és az 𝑓 (𝑗) 𝑥 𝑖 = 𝑦 𝑖 (𝑗) (𝑖=0,..,𝑘 , 𝑗=0,.. ,𝑚 𝑖 −1) függvény és derivált értékek. Keressük azt az 𝑛= ∑ 𝑚 𝑖 −1 fokú 𝑃 polinomot, amelyre: 𝑃 𝑗 𝑥 𝑖 = 𝑦 𝑖 𝑗 (𝑖=0,..,𝑘 , 𝑗=0,.. ,𝑚 𝑖 −1) Bebizonyítható, hogy ez a P egyértelműen létezik.
Hermite-interpolációs polinom előállítása 1. Lagrange alak A Lagrange-alappolinomokat felírva és beszorozva őket a megfelelő függvény és derivált-értékekkel megkapjuk a polinomot. Nehéz felírni az alappolinomokat, ezért kézzel ezt nem használjuk. 2. Newton alak – osztott differenciákkal Az osztott differencia táblázatban minden alappont annyiszor szerepel, amennyi a multiplicitása. Ha az éppen számolt osztott differenciában ugyanaz a két pont szerepel, akkor a megfelelő 𝑓 𝑗 𝑥 𝑖 𝑗! értékeket írjuk fel az 𝑥 𝑖 pontbeli j-edrendű osztott differenciák helyére. Egyébként a Lagrange-interpolációnak megfelelően áll elő a polinom.
Példa Legyen 𝑓 𝑥 = 1 1+𝑥 x∈ 0,1 . Legyenek az alappontjaink 𝑥 0 =0, 𝑥 1 =1 és adottak: 𝑓 0 =1, 𝑓 ′ 0 =−1 𝑓 1 = 1 2 , 𝑓 ′ 1 =− 1 4 Az osztott differencia táblázat: 𝑥 𝑖 𝑓(𝑥 𝑖 ) Az interpolációs polinom: 1 −1 − 1 4 1 1 2 𝑃 𝑥 =− 1 4 𝑥 3 + 3 4 𝑥 2 −𝑥+1 − 1 2 1 2 1 1 4 − 1 4 1 1 2
Példa
Hermite-interpoláció hibája Bebizonyítható, hogy igaz a következő hibabecslés: 𝑓 𝑥 −𝑃 𝑥 ≤ 𝑀 𝑛+1 𝑛+1 ! ∗|𝑤 𝑥 | , ahol 𝑀 𝑛+1 ≔sup| 𝑓 𝑛+1 𝑦 | és 𝑤 𝑥 ≔∏( 𝑥− 𝑥 𝑖 𝑚 𝑖 ). A hibát a példánkra kiszámolva: 𝑓 𝑥 −𝑃 𝑥 ≤ 𝑥 2 𝑥−1 2 ≤ 1 16 (𝑥∈ 0,1 )
Hermite-interpoláció hibája
Hermite-interpoláció Matlabban Nincs beépített Hermite-féle interpoláció Piecewise Cubic Hermite Interpolating Polynomial (pchip) Piecewise, azaz darabonként köbös polinomokkal közelít. Tulajdonképpen egy spline. De írhatunk mi magunk!
Hermite-interpoláció implementálása Keressük az n-ed fokú P polinomot a következő alakban: 𝑃 𝑥 = 𝑎 𝑛 𝑥 𝑛 +…+ 𝑎 1 𝑥+ 𝑎 0 𝑃 ′ (𝑥)=𝑛 𝑎 𝑛 𝑥 𝑛−1 +…+ 𝑎 1 +0 … Aminek ismerjük n+1 helyen a helyettesítési értékeit. Meg akarjuk határozni az ismeretlen 𝑎 𝑖 együtthatókat. Így a következő egyenletrendszert kell megoldanunk: 𝑥 0 𝑛 𝑛 𝑥 0 𝑛−1 ⋯ 𝑥 0 1 1 0 ⋮ ⋱ ⋮ 𝑥 𝑘 𝑛 ⋮ ⋯ 𝑥 𝑘 1 ⋮ 𝑎 𝑛 ⋮ 𝑎 0 = 𝑓 𝑥 0 𝑓 ′ 𝑥 0 ⋮ 𝑓 𝑥 𝑘 ⋮
Hermite-interpoláció implementálása n = 3 esetben Ha adottak 𝑓 𝑥 0 , 𝑓 ′ 𝑥 0 ,𝑓 𝑥 1 ,𝑓′( 𝑥 1 ) értékek. 𝑃 𝑥 = 𝑎 3 𝑥 3 + 𝑎 2 𝑥 2 + 𝑎 1 𝑥+ 𝑎 0 𝑃′ 𝑥 = 3𝑎 3 𝑥 2 + 2𝑎 2 𝑥+ 𝑎 1 A következő egyenletrendszert kell megoldanunk: 𝑥 0 3 𝑥 0 2 𝑥 0 1 3𝑥 0 2 2 𝑥 0 1 0 𝑥 1 3 𝑥 1 2 𝑥 1 1 3𝑥 1 2 2 𝑥 1 1 0 𝑎 3 𝑎 2 𝑎 1 𝑎 0 = 𝑓( 𝑥 0 ) 𝑓′( 𝑥 0 ) 𝑓( 𝑥 1 ) 𝑓′( 𝑥 1 )
Hermite-interpoláció implementálása