Num. Math.— 10 Newton el állítása osztott differenciákkal ...vajda/WS2009_10/NumMat/num... ·...
Transcript of Num. Math.— 10 Newton el állítása osztott differenciákkal ...vajda/WS2009_10/NumMat/num... ·...
Num. Math.—10
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
Clear@OD, x0, y0, x1, y1D
NewtInterp@x_List, y_List, var_D := âj=1
Length@xD
OD@Take@x, jD, Take@y, jDD äi=1
j-1
Hvar - xPiTL
NewtInterp@8x0, x1, x2<, 8y0, y1, y2<, xD
OD@8x0<, 8y0<D + Hx - x0L OD@8x0, x1<, 8y0, y1<D + Hx - x0L Hx - x1L OD@8x0, x1, x2<, 8y0, y1, y2<D
OD@8x_<, 8y_<D := y;OD@x_List, y_ListD :=
HOD@Drop@x, 1D, Drop@y, 1DD - OD@Drop@x, -1D, Drop@y, -1DDL � HLast@xD - First@xDL
OD@8x0, x1<, 8y0, y1<D
-y0 + y1
-x0 + x1
NewtInterp@8x0, x1, x2<, 8y0, y1, y2<, xD
y0 +Hx - x0L H-y0 + y1L
-x0 + x1+
Hx - x0L Hx - x1L J--y0+y1
-x0+x1+
-y1+y2
-x1+x2N
-x0 + x2
Konkrét Lagrange polinom el:állításhoz:
NewtInterp@81, 2, 3, 4, 5<, 80, 6, 24, 60, 120<, xD
6 H-1 + xL + 6 H-2 + xL H-1 + xL + H-3 + xL H-2 + xL H-1 + xL
Expand@%D
-x + x3
Megjegyzés. Séma az f[x0], f[x0;x1], f[x0;x1;x2], f[x0;x1;x2;x3],f[x0;x1;x2;x3;x4] osztott differencia sorozatkiszámításához.
L4@xD = HHHH0L + 6 H-1 + xLL + 6 H-2 + xL H-1 + xLL + 1 H-3 + xL H-2 + xL H-1 + xLL +
0 H-1 + xL H-2 + xL H-3 + xL H-4 + xL H-5 + xL
xi yi 1 . 2. 3. 4.
1 0 6 2 6 6 18 13 24 9 0 36 14 60 12 605 120
Megjegyzés. Séma az f[x0], f[x0;x1], f[x0;x1;x2], f[x0;x1;x2;x3],f[x0;x1;x2;x3;x4] osztott differencia sorozatkiszámításához.
L4@xD = HHHH0L + 6 H-1 + xLL + 6 H-2 + xL H-1 + xLL + 1 H-3 + xL H-2 + xL H-1 + xLL +
0 H-1 + xL H-2 + xL H-3 + xL H-4 + xL H-5 + xL
xi yi 1 . 2. 3. 4.
1 0 6 2 6 6 18 13 24 9 0 36 14 60 12 605 120
Lagrange Interpoláció:Ekvidisztáns alapppontrendszer, progresszív differenciák
Clear@x0, y0, y1D
OD@8x0, x0 + h<, 8f0, f1<D
-f0 + f1
h
OD@8x0, x0 + h, x0 + 2 h<, 8f0, f1, f2<D �� Simplify
f0 - 2 f1 + f2
2 h2
OD@8x0, x0 + h, x0 + 2 h, x0 + 3 h<, 8f0, f1, f2, f3<D �� Simplify
-f0 + 3 f1 - 3 f2 + f3
6 h3
Progresszív differenciák
Clear@PDD;
PD@8y0_<D := y0;PD@y_ListD := PD@Drop@y, 1D - Drop@y, -1DD
F0 = 8f0, f1, f2, f3<;
Table@PD@Take@F0, jDD, 8j, Length@F0D<D
8f0, -f0 + f1, f0 - 2 f1 + f2, -f0 + 3 f1 - 3 f2 + f3<
Sin[Π / 9] közelítése interpolációval. Lépésköx: Π/12. x0=0
F0 = N@Sin@80, Pi � 12, Pi � 6, Pi � 4, Pi � 3<D, 4D;
2 nummethods0910x.pdf.nb
F0
80, 0.2588, 0.5000, 0.7071, 0.8660<
N@Sqrt@3D � 2D
0.866025
Solve@1 � 2 � 2 x Sqrt@1 - x^2D, xD
::x ®2 - 3
2>, :x ®
1
2+
3
4>>
N@x �. %D
80.258819, 0.965926<
Table@PD@Take@F0, jDD, 8j, 1, Length@F0D<D
80, 0.2588, -0.018, -0.016, 0.002<
Interpolációs formula progresszív differenciákkal és ált. binomiális együtthatókkal
Newt2Interp@x0_, t_, DL_ListD := âj=0
Length@DLD-1
Binomial@t, jD DLPj + 1T
Newt2Interp@0, 4 � 3, Table@PD@Take@F0, jDD, 8j, 1, Length@F0D<DD
0.3420
Sin@Pi � 9D �� N
0.34202
Binomiális együttható általánosítása
Binomial@4 � 3, 3D
-4
81
H4 � 3L H1 � 3L H-2 � 3L � 6
A formula az eredeti általános interpolációs formulának valóban speciális esete
Clear@x0D
NewtInterp@8x0, x0 + h, x0 + 2 h, x0 + 3 h, x0 + 4 h<, 8f0, f1, f2, f3, f4<, xD �. 8x ® x0 + t h< �.8t ® 4 � 3< �� Simplify
1
243H-10 f0 + 160 f1 + 120 f2 - 32 f3 + 5 f4L
nummethods0910x.pdf.nb 3
âj=0
4
Binomial@4 � 3, jD PD@Take@8f0, f1, f2, f3, f4<, j + 1DD �� Simplify
1
243H-10 f0 + 160 f1 + 120 f2 - 32 f3 + 5 f4L
Hermite Interpoláció
� Speciális eset: n darab alappont, n db függvényérték, n db derivált (minden alappontban ismert f H0LHxi L, f H1LHxi L)
x = 8x0, …, xn-1<y = 8y0, …, yn-1<
yd = 9yd0, …, ydn-1=
Az interpolációs probléma megoldása egy legfeljebb (2n-1)-edfokú polinom. Pl. n=3, deg P£5
Az elôállítás alapgondolata: Kétféle bázispolinom: h jill. hn+ j alakjuk: Ia j x + b jM l j@xD 2 ill. Ix - x jM l j@xD 2
Mindkettô támaszkodik a Lagrange-fé le l j bázispolinomokra. A feltételek h j@xkD = ∆ j k, h j ' @xkD = 0, hn+ j@xkD = 0, hn+ j ' @xkD = ∆ j k
6 feltétel automatikusan teljesül, 2 pedig meghatározza a lineáris faktor együtthatóit I1 - 2 Ix - x jM l j ' @xDM
� Hermite alappolinomok (a Lagrange alappolinomok felhasználásával)
In[1]:= LagrBase@j_, x_List, var_D := äk=1
j var - xPkT
xPj + 1T - xPkTä
k=j+2
Length@xD var - xPkT
xPj + 1T - xPkT
In[2]:= Clear@HermBaseD
In[3]:=HermBase@j_, x_List, var_D �; j < Length@xD :=
H1 - 2 Hvar - xPj + 1TL HHD@LagrBase@j, x, varD, varDL �. var ® xPj + 1TLL LagrBase@j, x, varD^2;
HermBase@j_, x_List, var_D := Hvar - xPj - Length@xD + 1TL LagrBase@j - Length@xD, x, varD^2;
In[5]:=HermInterp@x_List, y_List, yd_List, var_D :=
âj=0
Length@xD-1
yPj + 1T HermBase@j, x, varD + âj=0
Length@xD-1
ydPj + 1T HermBase@Length@xD + j, x, varD
4 nummethods0910x.pdf.nb
� Feladat
x={x0,x1,x2}={1,2,3}y={y0,y1,y2}={2,32,242}yd={yd0,yd1,yd2}={4,79,404}
Adjuk meg a Hermite alappolinomokat és a Hermite interpolációs polinomot!Ellenõrizzük a nevezetes tulajdonságokat!
� Javaslat
In[6]:= x0 = 81, 2, 3<;y0 = 82, 32, 242<;yd = 84, 79, 404<;
In[9]:= LagrBase@0, x0, xD
Out[9]=1
2H2 - xL H3 - xL
In[10]:= HermBase@0, x0, xD
Out[10]=1
4H1 + 3 H-1 + xLL H2 - xL2 H3 - xL2
In[11]:= q = Ha x + bL LagrBase@0, x0, xD^2
Out[11]=1
4H2 - xL2 H3 - xL2 Hb + a xL
In[12]:= q �. x -> x0@@1DD
Out[12]= a + b
In[13]:= D@q, xD �. x -> x0@@1DD
Out[13]= -b - 2 Ha + bL
In[15]:= q
Out[15]=1
4H2 - xL2 H3 - xL2 Hb + a xL
In[16]:= Solve@8Hq �. x -> x0@@1DDL � 1, HD@q, xD �. x -> x0@@1DDL � 0<, 8a, b<D
Out[16]= 88a ® 3, b ® -2<<
In[17]:= q �. Solve@8Hq �. x -> x0@@1DDL � 1, HD@q, xD �. x -> x0@@1DDL � 0<, 8a, b<D@@1DD �� Expand
Out[17]= -18 + 57 x -127 x2
2+131 x3
4- 8 x4 +
3 x5
4
In[18]:= HermBase@0, x0, xD �� Expand
Out[18]= -18 + 57 x -127 x2
2+131 x3
4- 8 x4 +
3 x5
4
nummethods0910x.pdf.nb 5
In[19]:=H = Table@HermBase@j, x0, xD, 8j, 0, 2 Length@x0D - 1<D
Out[19]= :1
4H1 + 3 H-1 + xLL H2 - xL2 H3 - xL2, H3 - xL2 H-1 + xL2,
1
4H1 - 3 H-3 + xLL H-2 + xL2 H-1 + xL2,
1
4H2 - xL2 H3 - xL2 H-1 + xL, H3 - xL2 H-2 + xL H-1 + xL2,
1
4H-3 + xL H-2 + xL2 H-1 + xL2>
Length@%D
6
A nulladik és a harmadik bázispolinomra kirótt feltételek vizsgálata
h0@x_D = Expand@HermBase@0, x0, xDD;
h3@x_D = Expand@HermBase@3, x0, xDD;
hd0@x_D = D@HermBase@0, x0, xD, xD;
hd3@x_D = D@HermBase@3, x0, xD, xD;
88h0@1D, h0@2D, h0@3D<, 8hd0@1D, hd0@2D, hd0@3D<<
881, 0, 0<, 80, 0, 0<<
88h3@1D, h3@2D, h3@3D<, 8hd3@1D, hd3@2D, hd3@3D<<
880, 0, 0<, 81, 0, 0<<
Az elsô és a negyedik bázispolinomra kirótt feltételek vizsgálata
h1@x_D = Expand@HermBase@1, x0, xDD;
h4@x_D = Expand@HermBase@4, x0, xDD;
hd1@x_D = D@HermBase@1, x0, xD, xD;
hd4@x_D = D@HermBase@4, x0, xD, xD;
88h3@1D, h3@2D, h3@3D<, 8hd3@1D, hd3@2D, hd3@3D<<
880, 0, 0<, 81, 0, 0<<
88h1@1D, h1@2D, h1@3D<, 8hd1@1D, hd1@2D, hd1@3D<<
880, 1, 0<, 80, 0, 0<<
88h4@1D, h4@2D, h4@3D<, 8hd4@1D, hd4@2D, hd4@3D<<
880, 0, 0<, 80, 1, 0<<
Hermite Interpolációs Polinom
HermInterp@x0, y0, yd, xD
1
2H1 + 3 H-1 + xLL H2 - xL2 H3 - xL2
+ H2 - xL2 H3 - xL2 H-1 + xL + 32 H3 - xL2 H-1 + xL2+
79 H3 - xL2 H-2 + xL H-1 + xL2+121
2H1 - 3 H-3 + xLL H-2 + xL2 H-1 + xL2
+ 101 H-3 + xL H-2 + xL2 H-1 + xL2
Fokszám: 5
6 nummethods0910x.pdf.nb
Fokszám: 5
Expand@HermInterp@x0, y0, yd, xDD
2 - x + x5
p1 = 2 - x + x5;
D@p1, xD �. x ® 3
404
x0
y0
Clear@p2D
p2@x_D := 2 - x + x5;
p2@3D
� Mathematica függvény
? InterpolatingPolynomial
InterpolatingPolynomial@8 f1, f2, …<, xD constructs an interpolating polynomial in x whichreproduces the function values fi at successive integer values 1, 2, … of x.
InterpolatingPolynomial@88x1, f1<, 8x2, f2<, …<, xD constructs an interpolatingpolynomial for the function values fi corresponding to x values xi.
InterpolatingPolynomial@888x1, y1, …<, f1<, 88x2, y2, …<, f2<, …<, 8x, y, …<D constructsa multidimensional interpolating polynomial in the variables x, y, … .
InterpolatingPolynomial@888x1, …<, f1, df1, …<, …<, 8x, …<D constructs an interpolating
polynomial that reproduces derivatives as well as function values. �
Expand@InterpolatingPolynomial@Transpose@8x0, Transpose@8y0, yd<D<D, xDD
Transpose@8y0, yd<D
882, 4<, 832, 79<, 8242, 404<<
� Feladat
Mi a következõ Hermite interpolációs probléma megoldása?
x0={1,2,3,4}y0={1,2,4,3}yd0={1,0,0,- 1}
Ábrázoljuk az "adatokkal" a polinomot!Oldjuk meg a feladatot Mathematica függvénnyel is!
nummethods0910x.pdf.nb 7
1 2 3 4 5
-2
2
4
6
8
In[20]:= x0 = 81, 2, 3, 4<;y0 = 81, 2, 4, 3<;yd0 = 81, 0, 0, -1<;
In[23]:= HermInterp@x0, y0, yd0, xD �� Expand
Out[23]=529
3-5915 x
9+107383 x2
108-42533 x3
54+38311 x4
108-2464 x5
27+337 x6
27-19 x7
27
In[24]:= hp = HermInterp@x0, y0, yd0, xD �� Expand;
Table@hp �. x ® x0@@jDD, 8j, Length@x0D<D
81, 2, 4, 3<
y0
81, 2, 4, 3<
Table@D@hp, xD �. x ® x0@@jDD, 8j, Length@x0D<D
81, 0, 0, -1<
yd0
81, 0, 0, -1<
Point@81, 2<D
Point@81, 2<D
Map@Hð^2 + 1L &, 82, -6, -2, 4<D
85, 37, 5, 17<
Transpose@8x0, y0<D �� TableForm
1 1
2 2
3 4
4 3
Grafikon
8 nummethods0910x.pdf.nb
Plot@hp, 8x, 0, 5<D
1 2 3 4 5
-2
2
4
6
8
grafikon+pontok
In[25]:= Plot@hp, 8x, 0, 5<, Epilog ® 8Red, [email protected], Map@Point@ðD &, Transpose@8x0, y0<DD<D
Out[25]=
1 2 3 4 5
-2
2
4
6
8
grafikon+pontok+érintôegyenes- szakaszok
Plot@hp, 8x, 0, 5<, PlotStyle ® Black, Epilog ® 8RGBColor@1, 0, 0D,[email protected], Map@Point@ðD &, Transpose@8x0, y0<DD, RGBColor@0, 0, 1D, Map@Line@88ðP1T - .5, ðP2T - ðP3T .5<, 8ðP1T + .5, ðP2T + ðP3T .5<<D &, Transpose@8x0, y0, yd0<DD<D
1 2 3 4 5
-2
2
4
6
8
nummethods0910x.pdf.nb 9
Graphics@Line@880, 0<, 80, 1<<DD
Megjegyzés: Hermite polinom alternatív algoritmus(LS)
In[26]:= X = 81, 2, 3, 4, 5<;Y = 80, 6, 24, 60, 120<;P = Y@@1DD;
In[29]:=Clear@LPD;LP@0D := HP = Y@@1DDL;LP@n_D := Module@8pl<, pl = P + A Product@x - X@@jDD, 8j, 1, n<D;
P = pl �. Solve@Hpl �. x ® X@@n + 1DDL � Y@@n + 1DD, AD@@1DD;8pl, Hpl �. x ® X@@n + 1DDL � Y@@n + 1DD,Solve@Hpl �. x ® X@@n + 1DDL � Y@@n + 1DD, AD@@1DD, P, Expand@PD<D
Manipulate@TableForm@88LP@nD<<D, 8n, 0, 4, 1<D
n
A H-3 + xL H-2 + xL H-1 + xL6 A � 60A ® 1010 H-3 + xL H-2 + xL H-1 + xL-60 + 110 x - 60 x2 + 10 x3
InterpolatingPolynomial@881, 82, 4<<, 82, 832, 79<<, 83, 8242, 404<<<, xD �� Expand
2 - x + x5
p0 = 2;p1 = p0 + A Hx - 1L
2 + A H-1 + xL
Solve@HD@p1, xD �. x ® 1L � 4, AD
88A ® 4<<
10 nummethods0910x.pdf.nb
p1 = p1 �. A ® 4
2 + 4 H-1 + xL
p2 = p1 + A Hx - 1L Hx - 1L;
Solve@Hp2 �. x ® 2L � 32, AD
88A ® 26<<
p2 = p2 �. A ® 26
2 + 4 H-1 + xL + 26 H-1 + xL2
p3 = p2 + A Hx - 1L^2 Hx - 2L;
Solve@HD@p3, xD �. x ® 2L � 79, AD
88A ® 23<<
p3 = p3 �. A ® 23
2 + 4 H-1 + xL + 26 H-1 + xL2+ 23 H-2 + xL H-1 + xL2
p4 = p3 + A Hx - 1L^2 Hx - 2L^2;
Solve@Hp4 �. x ® 3L � 242, AD
88A ® 9<<
p4 = p4 �. A ® 9
2 + 4 H-1 + xL + 26 H-1 + xL2+ 23 H-2 + xL H-1 + xL2
+ 9 H-2 + xL2 H-1 + xL2
p5 = p4 + A Hx - 1L^2 Hx - 2L^2 Hx - 3L;
Solve@HD@p5, xD �. x ® 3L � 404, AD
88A ® 1<<
p5 = p5 �. A ® 1 �� Expand
2 - x + x5
In[32]:= X = 81, 2, 3<;Y = 82, 32, 242<;YD = 84, 79, 404<;P = Y@@1DD;
In[36]:= Clear@HPD;HP@0D := HP = Y@@1DDL;HP@n_?OddQD :=
Module@8pl<, pl = P + A Product@Hx - X@@jDDL^2, 8j, 1, Floor@n � 2D<D Hx - X@@Ceiling@n � 2DDDL;8pl, HD@pl, xD �. x ® X@@Ceiling@n � 2DDDL � YD@@Ceiling@n � 2DDD,P = pl �. Solve@HD@pl, xD �. x ® X@@Ceiling@n � 2DDDL � YD@@Ceiling@n � 2DDD, AD@@1DD<D;
HP@n_?EvenQD := Module@8pl<, pl = P + A Product@Hx - X@@jDDL^2, 8j, 1, n � 2<D;8pl, Hpl �. Hx ® X@@n � 2 + 1DDLL � Y@@n � 2 + 1DD,P = pl �. Solve@Hpl �. Hx ® X@@n � 2 + 1DDLL � Y@@n � 2 + 1DD, AD@@1DD<D
nummethods0910x.pdf.nb 11
In[40]:= Manipulate@TableForm@88HP@nD<<D, 8n, 0, 5, 1<D
Out[40]=
n
2 + 4 H-1 + xL + A H-1 + xL2
6 + A � 32
2 + 4 H-1 + xL + 26 H-1 + xL2
Feladatok
Új=0n-1 h j = ?
x0 = 8x00, x01<;
HermBase@0, x0, xD + HermBase@1, x0, xD �� Simplify
1
x0 = 8x00, x01, x02<;
HermBase@0, x0, xD + HermBase@1, x0, xD + HermBase@2, x0, xD �� Simplify
1
Clear@x0D
x0@n_D := Table@StringJoin@"x0", ToString@jDD, 8j, 0, n<D
x0@5D
8x00, x01, x02, x03, x04, x05<
Sum@HermBase@j, x0@3D, xD, 8j, 0, 3<D �� Simplify
1
Table@Sum@HermBase@j, x0@iD, xD, 8j, 0, i<D �� Simplify, 8i, 4<D
81, 1, 1, 1<
Sejtés: Ú=1
Új=0n-1 x j h j + Új=n
2 n-1 h j = ?
In[41]:= Clear@x0D
In[42]:= x0 = 8x00, x01<;
In[43]:= x00 HermBase@0, x0, xD + x01 HermBase@1, x0, xD + HermBase@2, x0, xD + HermBase@3, x0, xD �� Simplify
Out[43]= x
12 nummethods0910x.pdf.nb
In[44]:= x0 = 8x00, x01, x02<;
In[45]:= x00 HermBase@0, x0, xD + x01 HermBase@1, x0, xD + x02 HermBase@2, x0, xD +
HermBase@3, x0, xD + HermBase@4, x0, xD + HermBase@5, x0, xD �� Simplify
Out[45]= x
Sejtés: Ú=x
nummethods0910x.pdf.nb 13