NUMERIKUS MÓDSZEREK X. GYAKORLAT 10a Lagrange Interpoláció Adjuk meg az Lagrange alapinterpolációs polinomokat, majd ezek segítségével állítsuk elõ a Lagrange interpolációs polinomot! Próbáljuk ki a következõ adathalmazokon: X={x1,x,x3}={1,,3}, F={f1,f,f3}={,5,10} Javaslat j1 var xk In[]:= LagrBasej_, x_list, var_ : xj xk k 1 Lengthx k j1 var xk xj xk Lengthx In[3]:= LagrInterpx_List, f_list, var_ : fj LagrBasej, x, var j 1 Példa ClearX, F X 1,, 3; F, 5, 10; Az elsô bázispolinom LagrBase1, X, x Expand 3 5 x x A összes bázispolinom (j=1,,3): LagrBase1, X, x, LagrBase, X, x, LagrBase3, X, x 1 x 3 x, 3 x 1 x, 1 x 1 x A Lagrange interpolációs polinom mint lineáris kombináció: LagrInterpX, F, x x 3 x 5 3 x 1 x 5 x 1 x Expand 1 x Built-in Mathematica függvény
nummethodsss010e10x.nb ExpandInterpolatingPolynomialTransposeX, F, x 1 x ExpandInterpolatingPolynomial1,,, 5, 3, 10, x 1 x TransposeX, F TableForm 1 5 3 10? InterpolatingPolynomial InterpolatingPolynomial f 1, f,, x constructs an interpolating polynomial in x which reproduces the function values f i at successive integer values 1,, of x. InterpolatingPolynomialx 1, f 1, x, f,, x constructs an interpolating polynomial for the function values f i corresponding to x values x i. InterpolatingPolynomialx 1, y 1,, f 1, x, y,, f,, x, y, constructs a multidimensional interpolating polynomial in the variables x, y,. InterpolatingPolynomialx 1,, f 1, df 1,,, x, constructs an interpolating polynomial that reproduces derivatives as well as function values. Ábrázoljuk a pontokat és az interpolációs polinomot! PlotLagrInterpX, F, x, x, 0, 4 15 10 5
nummethodsss010e10x.nb PlotLagrInterpX, F, x, x, 0, 4, ImageSize 300, 300, Epilog RGBColor1, 0, 0, PointSize.03, MapPoint &, TransposeX, F, PlotRange 0, 0 0 15 10 5 Feladat x1={1,,3,4,5}; y1={0,,4,0,10} Adjuk meg a bázispolinomokat, az interpolációs polinomokat és ábrázoljuk a pontokat és az interpolációs polinomot! Oldjuk meg a feladatot a határoztlan együtthatók módszerével is! In[5]:= X1 1,, 3, 4, 5; F1 0,, 4, 0, 10; LagrBase1, X1, x Expand 5 77 x 1 71 x 4 7 x3 1 x4 4 Ellenôrizzük az elsô interpolációs alappolinomra kirótt feltételeket! Map. x &, X1 1, 0, 0, 0, 0 LagrBase, X1, x Expand 10 107 x 59 x 13 x3 x4 Ellenôrizzük a második interpolációs alappolinomra kirótt feltételeket!
4 nummethodsss010e10x.nb Map. x &, X1 0, 1, 0, 0, 0 TableLagrBasej, X1, x Expand, j, 1, 5 TableForm 5 77 x 1 10 107 x 10 39 x 5 1 x 1 5 x 1 71 x 4 49 x 4 41 x 35 x 4 7 x3 1 59 x x4 4 13 x3 3 x 3 x4 4 5 x3 1 11 x3 x4 x4 4 x4 0 LagrBase1, X1, x LagrBase, X1, x 4 LagrBase3, X1, x 0 LagrBase4, X1, x 10 LagrBase5, X1, x Expand x x 3 LagrInterpX1, F1, x Expand x x 3 In[8]:= PlotLagrInterpX1, F1, x, x, 0,, ImageSize 300, 300, Epilog RGBColor1, 0, 0, PointSize.03, MapPoint &, TransposeX1, F1, PlotRange 5, 130 10 100 80 Out[8]= 0 40 0 10b Newton előállítása osztott differenciákkal (rekurzív) A Lagrange alaknál új adat hozzávételére nincs lehetôség Newton féle elôállítás osztott differenciák segítségével ClearOD, x1, f1, x, f, x3, f3
nummethodsss010e10x.nb NewtInterpx_List, f_list, var_ : Lengthx j 1 NewtInterpx1, x, x3, f1, f, f3, x j1 ODTakex, j, Takef, j var xi ODx1, f1 x x1 ODx1, x, f1, f x x1 x x ODx1, x, x3, f1, f, f3 OD[x1,x] ugyanaz mint (f [x]-f [x1])/(x-x1) azaz, mint a differenciahányados ODx_, f_ : f; ODx_List, f_list : ODDropx, 1, Dropf, 1 ODDropx, 1, Dropf, 1 Lastx Firstx ODx1, x, f1, f f1 f x1 x NewtInterpx1, x, x3, f1, f, f3, x f1 f x x1 f1 x1 x Konkrét Lagrange polinom előállításhoz: x x1 x x f1f ff3 x1x xx3 x1 x3 NewtInterp1,, 3, 4, 5, 0,, 4, 0, 10, x 1 x x 1 x 3 x x 1 x Expand x x 3 Megjegyzés. Séma az f[x1], f[x1;x], f[x1;x;x3], f[x1;x;x3;x4],f[x1;x;x3;x4;x5] osztott differencia sorozat kiszámításához. L 4 x 0 1 x x 1 x 1 3 x x 1 x 0 1 x x 3 x 4 x 5 x i 1 x i f i 1.. 3. 4. 1 0 18 1 3 4 9 0 3 1 4 0 1 0 5 10 A táblázat nélkül is meghatárohatjuk a köv eljárással (minden egyes lineáris egyenletben pontosan egy ismeretlen (A)): p0 0;
nummethodsss010e10x.nb p1 p0 A x 1 A 1 x p1. x A In[1]:= Solvep1. x A p1 p0 x 1 1 x p p1 A x 1 x 1 x A x 1 x p. x 3 1 A Solvep. x 3 4 A p p1 x 1 x 1 x x 1 x p3 p A x 1 x x 3 1 x x 1 x A 3 x x 1 x Solvep3. x 4 0 A 1 p3 p 1 x 1 x x 3 1 x x 1 x 3 x x 1 x p4 p3 A x 1 x x 3 x 4 1 x x 1 x 3 x x 1 x A 4 x 3 x x 1 x Solvep4. x 5 10, A A 0 p4 p3 0 x 1 x x 3 x 4 1 x x 1 x 3 x x 1 x Expand x x 3 X 1,, 3, 4, 5; F 0,, 4, 0, 10;
nummethodsss010e10x.nb In[3]:= ClearLP; LP0 : P F1; In[5]:= LPn_ : Modulepl, pl P A Productx Xj, j, 1, n; P pl. Solvepl. x Xn 1 Fn 1, A1; pl, pl. x Xn 1 Fn 1, Solvepl. x Xn 1 Fn 1, A1, P, ExpandP In[]:= ManipulateTableFormLPn, n, 0, 4, 1 n Out[]= 1 x A x 1 x 1 A 4 A 1 x x 1 x 1 x x