Numerikus módszerek Labor gyakorlatok Kupán Pál Muszaki és Társadalotudományi Kar Marosvásárhely
Tartalomjegyzék. Sorok összegének a kiszámítása 5 2. A felez o módszer. A Newton-féle módszer. 7 3. A húr, a szel o, a Steffensen-féle módszer. 4. A Newton-Horner módszer az algebrai egyenletek gyökeinek a meghatározására. 3 5. A Newton-Raphson-féle módszer nemlineáris egyenletrendszerek megoldására. 5 6. A Gauss és az LU faktorizációs módszer. 7 7. Jacobi-féle iteratív módszer. Rosszul kondicionált mátrixok. 2 8. Sajátértékek, sajátvektorok. 23 9. Lagrange-féle interpoláló polinom. Runge-féle ellenpélda. 25. Szakaszos interpoláció. 27. Közelítés a legkisebb négyzetek módszerével. 29 2. Numerikus deriválás és integrálási képletek. 3 3. Az Euler illetve Runge-Kutta módszer differenciálegyenletek megoldására. 35 4. A rács módszer a parciális differenciálegyenletek megoldására. 37 3
Sorok összegének a kiszámítása A labor célja: konvergens pozitív sorok összegének a kiszámitása adott pontossággal. Elméleti fogalmak Legyen P i a i egy pozitív tagú sor a i > ; i ; aminek az összegét jelöljük S-el S = X i a i : A hányados kritérium szerint, ha 9M 2 N úgy, hogy a n+ q < ; 8n M; () a n akkor a sor konvergens. ()-bol következik hogy a M+ qa M ; a M+2 qa M+ ; ::: tehát = X a i = i MX i= MX i= Tehát, ha az adott sor S összegét az elso M hiba (maradék tag) a következo lesz: a i + a M + q + q 2 + ::: = q n M a i + a M lim n q = X i= a i + a M q : tag összegévvel közelítjük meg, akkor az elkövetett R M = a M q : (2) Ha adott egy > pontosság az M értéket a következo egyenlotlenségbol számítjuk ki: R M : (3) Gyakorlat menete Feladat. Számítsuk ki sor összegét egy százalék pontossággal. Megoldás. Az an+ a n hányadosból arra következtetünk hogy q = 2 3 : Az (3)-ból következik hogy a n+ a n = X n 2 n+ (n+)3 n+ 2 n 2 n n3 n = 2 n 3 n + < 2 3 < n3 n R M = 2M M3 M 2 = 2M : (4) M3M 3 Gyakorlatilag a sor összegét egy do-while ciklusban számítjuk ki, ezért az (4) egyenlotlenséget 5
6 Sorok összegének a kiszámítása nem oldjuk meg elore, hanem a cikluson belül leellenorizzük. Algoritmus (pozitív tagó sor összege): Bemeno adatok: a = 2 3 ; = 2 ; n = ; S = 2 3 do n = n + a = a n 2 n+ 3 S = S + a while 3a > print S; n: Az eredmény: S = :94; M = 8: Kituzött feladatok: ) Számítsuk ki X n sor összegét, = 2 pontossággal. Mivel a fenti sor pontos összege 2 6, számítsuk ki közelítoleg értékét. 2) Számítsuk ki X 4 4n 2 sor összegét, = 2 pontossággal. n n 2
2 A felez o módszer. A Newton-féle módszer. Gyakorlat célja: egyenletek numerikus megoldása. Elméleti fogalmak Egy f (x) = ; x 2 A (5) egyenlet megoldása két lépésben történik. Az elso lépés a gyökök elkülónítése, a második a gyökök tényleges meghatározása. Az elkülönítéssel az A értelmezési intervallumot diszjunkt intervallumokra bontjuk úgy, hogy minden részintervallum egyetlenegy gyököt tartalmazzon. Ha f 2 C [a; b] egy folytonos függvény, akkor [a; b] elkülöníto intervallum ) f (a) f (b) < : (6) Az elkülönítés történhet analítikusan Rolle-féle sorozattal, vagy grakusan. A grakus elkülönítéshez ábrázoljuk az egyenletbol származó függvényt, majd az Ox tengellyel való metszet egy környezete lesz a keresett intervallum. Természetesen, minél kisebb az elkülöníto intervallum hossza, annál közelebb kerülnek az intervallum végpontjai a gyökhöz. Ez az alapja az intervallumfelezo módszernek, vagyis közrefogni és felezni az intervallumot míg ennek hossza elég kicsi (). Gyakorlat menete Algoritmus (intervallum felezo): Bemeno adatok: a; b; f; do x = a+b 2 if f (a) f (x) ; then b = x else a = x while (b a) print x = a+b 2 : A módszer elonye hogy rendkívül egyszeru, hátránya viszont hogy lassú. Egy gyorsabb és gyakran használt módszer az úgy nevezett Newton vagy érinto módszer. Ez abban áll hogy egy (x n ) n sorozatot hozunk létre ami konvergál az egyenlet gyöke felé. A sorozat tagjait úgy kapjuk, hogy az f függvény görbéjéhez érintoket huzzunk az f (x n ) pontokban majd ezeket metsszük az Ox tengellyel f (x n ) x n+ = x n f ; n : (7) (x n ) Az x kezdeti értéket a-val vagy b-vel tesszük gyenlové attól függoen hogy f (a) f (a) > vagy f (b) f (b) > : 7
8 A felezo módszer. A Newton-féle módszer. Az eljárást folytatjuk míg az abszolút, illetve relatív hiba kissebb mint egy adott > : jx n+ x n j < ; jx n+ x n j < : jx n j Az említett kilépési kritériumot csak akkor használhatjuk ha az (x n ) n sorozat konver- Remark gens. Algoritmus (Newton módszer): Bemeno adatok: a; b; f; x = a if f (x) f (x) < then x = b do x = x x = ' (x ) := x f(x ) f(x ) while jx x j print x: A Matlab programozási nyelvben az f függvény gyökét meghatározó parancs a következo: [x,fval] = fzero(f,x ) ahol x egy gyök körüli érték. Feladat. Oldjuk meg az x = sin (x) + egyenletet. Megoldás. Az f (x) = sin (x) + x függvényt ábrázoljuk és a [; ] egy elkülöníto intervallumnak bizonyul. Az intervallum felezo algoritmust alkalmazva azt kapjuk, hogy az x gyök az alábbi egymásba skatulyázott intervallumokban található: h i [; ] 2 ; 2 ; 3 ::: 3 x: 4 A Newton módszert alkalmazva a sorozat a következo lesz ; + 2 ; ::: A Matlab programban az elkülonítés érdekében ábrázoljuk az f függvényt. Eloször értelmezzük az f függvényt: f = inline ( sin (x) + x ), majd ábrázoljuk egy aránylag nagy intervallumon, például [ ; ]: fplot(f; [ ; ]): x = kezdeti értéket felhasználva kapjuk az egyenlet közelíto megoldását ' :9346: Megjegyzés: Ha az egyenletnek több megoldása van és az elkülönítést nem végezzük el akkor az algoritmus csak egy megoldást kap. Kituzött feladatok: ) Oldjuk meg az alábbi egyenletet e x = :
9 2) Az x 3 x + 3 = egyenlet esetében vegyük az x = kezdeti értéket a Newton módszerhez. Mit lehet észrevenni? 3) A Newton módszert alkalmazva számítsuk ki p a értéket ahol a > adott. Vegyük gyelembe hogy p a az x 2 a = egyenlet gyöke. Általánosítsuk.
3 A húr, a szel o, a Steffensen-féle módszer. Gyakorlat célja: bemutatni a Newton módszer hátrányait és alternatív megoldásokat adni. Elméleti fogalmak Annak ellenére hogy az érinto módszer nagyon gyors és hatékony, szükséges az f derivált ismerete. A derivált numerikus megközelítésébol különbözo módszereket kapunk. A húr módszer esetében a derivált iránytényezoje megközelítheto (lásd.-es ábra) a (b; f (b)) ; (x; f (x)) pontokat összekoto húr iránytényezojével: f (x) ' f (x) f (b) : x b (8) Tehát a ' iteratív függvény a Newton módszerben bf (x) xf (b) ' (x) = f (x) f (b) : (9) Hasonlóan -a párhuzamosak módszer f (x) = f (x ) ; ' (x) = x f (x) ; () -szelo módszer f (x) = f (x) f (y) ; ' (x; y) = x y -Steffensen módszer: f f (x + f (x)) (x) = f (x) ; ' (x) = f (x) Gyakorlat menete Feladat. Számítsuk ki az f (x) y f (y) x f (x) f (y) () f 2 (x) f (x + f (x)) f (x) : (2) e x = egyenlet gyökét = 6 pontossággal és hasonlítsuk össze hány lépésre van szükség a bemutatott módszerek esetében. Megoldás. A megoldást az alábbi táblázat tartalmazza. lépés megoldás Newton 6 7.78e-7 Steffensen 8 2.6e-7 szelo 9 4.48e-5 Húr 6-4.79e-7 A táblázatból látszik hogy a Newton és a Steffensen módszerek úgy lépésben mind megoldásban közel állnak.
2 A húr, a szelo, a Steffensen-féle módszer. Kituzött feladatok. Oldjuk meg az alábbi egyenleteket: (i) 3e x 4 cos (x) = ; (ii) arctg (x) = :
4 A Newton-Horner módszer az algebrai egyenletek gyökeinek a meghatározására. Gyakorlat célja: kiaknázni a polinomok elonyeit annak érdekében hogy a Newton módszerben a derivált értéket minél pontosabban lehessen kiszámítani. Elméleti fogalmak A Newton-Horner séma a P (x) = algebrai egyenletek valós gyökeinek a meghatározására szolgál, ahol P (x) = a + a x + ::: + a n x n : (3) A P polinomiális függvény behelyettesítési értékét egy t 2 R pontban a Horner sémával számítjuk ki P (t) = a + t (a + ::: + t (a n + ta n )) : (4) Deriválva a P (x) = (x t) Q (x) + r; Q 2 P n ; (5) képletet kapjuk hogy P (x) = (x t) Q (x) + Q (x) : Tehát P (t) = Q (t) ; (6) vagyis a P derivált értéke megegyezik a Q polinom behelyettesítési értékével amit újból Horner sémával oldunk meg. Az algebrai egyenleteket P (x) = a (7) Newton módszerrel oldjuk meg x n+ = x n P (x n ) P (x n ) ; n ; és a P értékét a (6) sémával számítjuk ki. Kezdeti értéknek lehet venni x = ; vagy x = a a : Gyakorlat menete A Horner sémát a következo rekurzív eljárással végezzük a n = q n ; q j = a j + tq j ; j = n; : (7) Feladat. Oldjuk meg az P (x) = x 4 x 3 + 35x 2 5x + 24 = algebrai egyenletet. 3
4 A Newton-Horner módszer az algebrai egyenletek gyökeinek a meghatározására. Megoldás. x = véve kezdeti értéknek azt kapjuk hogy: P () x = x P () = 24 5 ; jx x j = :48; x 2 = x P (:48) P (:48) = :48 7: 22:869 = :78; jx 2 x j = :3 ::: A Matlab programban a (3) polinom beolvasása, a polinom kiszámítása a t pontban (Horner séma) és a gyökök meghatározása a következo utasításokkal történik: P=[a n a n ::: a a ] Pt=polyval(P, t) r=roots(p). Az elobbi gyakorlat adatait véve alapul: P=[ - 35-5 24] ; r=roots(p)) r =4,3,2,. Kituzött feladat: Számítsuk ki az x 3 = egyenlet gyökeit.
5 A Newton-Raphson-féle módszer nemlineáris egyenletrendszerek megoldására. Gyakorlat célja: nemlineáris egyenletrendszerek numerikus megoldása. Elméleti fogalmak A Newton-Raphson módszer egy iteratív eljárás a nemlineáris egyenletrendszerek megoldására, vagyis egy X kezdeti közelíto megoldást felhasználva egy olyan X ; X 2 ; :::; X k vektor sorozatot hozunk létre ami konvergál az egyenletrendszer megoldásához. Tekintsük az alábbi egyenletrendszert: f (x; y) = g (x; y) = ; (8) illetve annak egy X = (x ; y ) közelíto megoldását. Az f; g függvényeket Taylor sorba fejtjük a lineáris tagokkal bezárólag f (x; y) = f (x ; y ) + (x x ) @f @x (x ; y ) + (y @f @g @x @y @g @x @f @y y ) @f @y (x ; y ) y ) @g @y (x ; y ) ; g (x; y) = g (x ; y ) + (x x ) @g @x (x ; y ) + (y és gyelembe véve a (8) egyenletrendszert azt kapjuk, hogy @f f @y @f @g @x f g @g @y (x;y x x = ) @x g ; y y = det J (x ; y ) det J (x ; y ) ahol det J (x ; y ) = (x ; y ) 6= : (x ;y ) ; (9) A (8) egyenletrendszer megoldásának következo X = (x ; y ) közelítése: @f f @y @f @g @x f g @g @y (x;y x = x ) @x g (x ; y = y ;y ) : (2) detj (x ; y ) detj (x ; y ) Hasonlóan a k-ik lépésben ha det J (x k ; y k ) 6= akkor: @f f @y @f @g @x f g @g @y (xk ;y x k+ = x k ) @x g (x k ; y k+ = y k ;y k ) k : (2) det J (x k ; y k ) det J (x k ; y k ) Az eljárást folytatjuk míg két egymásutáni vektor X k = (x k ; y k ) és X k+ = (x k+ ; y k+ ) abszolút, 5
6 A Newton-Raphson-féle módszer nemlineáris egyenletrendszerek megoldására. illetve relatív különbsége kisebb mint egy adott > pontosság: X k+ X k ; X k+ X k jjx k jj : Gyakorlat menete Feladat. A Newton-Raphson módszert használva oldjuk meg a kovetkezo egyenletrendszert: f (x; y) = x 3 + y 3 6x + 3 = g (x; y) = x 3 y 3 6y + 2 = : (22) Megoldás. Legyen X = (x ; y ) = (; ) egy kezdeti megoldás.=) f (; ) = 3; g (; ) = 2; 3x 2 6 3y J (x ; y ) = 2 6 3x 2 3y 2 (; ) = 6 6 =) det J (; ) = 36: Akkor a (2) megfeleloen kapjuk a következo megközelítést: 3 2 6 x = = 8 6 3 36 36 = :5; y 2 = = 2 36 36 = :33 ) X = (:5; :33) ; X X 2 = :6; ::: A (22) egyenletrendszernek a mértani jelentése az alábbi ábrán látható: Ha az X = (; ) pontból indulunk ki, akkor az X k megoldás sorozat a (:53; :35) pont k felé konvergál. A Matlab programban a f (x ; x 2 ) F (x) = = ; x = (x ; x 2 ) g (x ; x 2 ) nemlineáris egyenletrendszert a következo utasítással oldjuk meg: x=fsolve(f,x ) ahol x egy kezdeti megoldás.
6 A Gauss és az LU faktorizációs módszer. Gyakorlat célja: lineáris egyenletrendszerk numerikus megoldása. Elméleti fogalmak A 8 >< a x + a 2 x 2 + ::: + a n x n = b a 22 x 2 + ::: + a 2n x n = b 2 (23) ::: >: a nn x n = b n lineáris egyenletrendszert felsoháromszög tipusúnak nevezzük mert az A mátrix nemnulla tagjai a foátló fölött helyezkednek el: A = B @ Ha a ii 6= ; i = ; n; akkor a (23) megoldása Egy négyzetes x n = b n a n ; x k = b k a a 2 ::: a n a 22 ::: a 2n ::: ::: a nn C A : P n i=k+ a kix i a kk ; k = n ; : (24) Ax = b (25) A = (a ij ) i;j=;n ; x = (x x 2 ::: x n ) t ; b = (b b 2 ::: b n ) t egyenletrendszernek a megoldásához használhatjuk a Gauss módszert ami a lineáris algebrából ismert kicserélési lemmára alapoz. Lineáris transzformációkat alkalmazva a sorok között, a (25) egyenletrendszert visszavezetjuk a (23) háromszög alakú egyenletrendszerre. A Matlab programban ha meg van adva az A és a b mátrix, a megoldást x=anb utasítással számítjuk ki. Az LU faktorizációs módszer az A = (a i;j ) i;j=;n mátrix szorzatra való felbontásán alapszik A = LU ahol L = B @ ::: l 2 ::: ::: l n l n2 ::: C A ; U = B @ u u 2 ::: u n u 22 ::: u 2n ::: ::: u nn C A 7
8 A Gauss és az LU faktorizációs módszer. egy alsó-, illetve felsoháromszög alakú mátrix: l ij = a P i ij k= l iku kj ; i = j + ; n; u jj Xi u ij = a ij l ik u kj ; i = ; j: Akkor az Ax = b, LUx = b egyenletrendszert két háromszög egyenletrendszer megoldására vezetjük vissza Ly = b; k= Ux = y: Egy A mátrix felbontása a Matlab programmal [L,U]=lu(A) [L,U,P]=lu(A) ahol a P mátrix a permutációs mátrix, i.e.: PA=LU. Az LU felbontás alkalmas a determináns kiszámítására is ny det A = u ii : Gyakorlat menete Feladat. i=.) Oldjuk meg az alábbi lineáris egyenletrendszert 8 < : 2x + 3x 2 + x 3 = 6 x + + 4x 3 = 2 x + 2x 2 + 3x 3 = : (26) Megoldás. A (26) egyenletrendszer ekvivalens az alábbi háromszög egyenletrendszerrel 8 < 2x + 3x 2 + x 3 = 6 3x 2 7x 3 = : 22x 3 = 22 aminek a (24) képlet szerint (x ; x 2 ; x 3 ) = (2; ; ) a megoldása. Az A mátrix LU felbontása a következo mátrixokat eredményezi: L = @ :5 :5 :33 A ; U = @ 2 3 :5 3:5 3:66 A ; P = I 3 : 2.) Szerkesszük meg azt a negyedfokú P (x) = a 4 x 4 + a 3 x 3 + a 2 x 2 + a x + a P 4 polinomot mely összeköti a (; ) ; (4; 2) ; (9; 3) ; (6; 4) ; (25; 5) pontokat.
9 Megoldás. A P (x i ) = y i ; i = ; 5 feltételekbol következik, hogy: 8 a 4 + a 3 + a 2 + a + a = >< 256a 4 + 64a 3 + 6a 2 + 4a + a = 2 656a 4 + 729a 3 + 8a 2 + 9a + a = 3 : 65536a 4 + 496a 3 + 256a 2 + 6a + a = 4 >: 39 625a 4 + 5625a 3 + 625a 2 + 25a + a = 5 Az egyenletrendszer megoldása: a = :55555555555556 8>< a = :478525573922 a 2 = :35392592593 a 3 = :62373737 >: a 4 = :275573922 3.) Alkalmazzuk Kirchoff törvényét az alábbi áramkörök esetében: Megoldás. A Kirchoff tétel szerint minden zárt hurokban az áramköri elemekben lévo feszültségek összege zéró. Az elso, illetve második hurokban az egyenletek: Ur + U r6 + U r5 U = U r2 + U r3 + U r4 + U r6 = majd az Ohm törvényét használva: r i + r 6 (i i 2 ) + r 5 i = U r 2 i 2 + r 3 i 2 + r 4 i 2 + r 6 (i 2 i ) = =) 3i i 2 = 2 i + 7i 2 = =) i = :7 i 2 = : :
7 Jacobi-féle iteratív módszer. Rosszul kondicionált mátrixok. Gyakorlat célja: lineáris egyenletrendszerek iteratív megoldása. Elméleti fogalmak Az egyenletrendszer ahol ekvivalens a ahol B J = A = B @ B @ a a 2 ::: a n a 2 a 22 ::: a 2n ::: a n a n2 ::: a nn a 2 Ax = b (27) C A ; b = B @ b b 2 ::: b n C A x = B J x + C (28) a n a 2n a 22 a ::: a 2 a 22 ::: ::: a n a n2 a nn a nn ::: C A ; C = Ha adott egy X kezdeti megoldás akkor a (28) rekurzív képletbol X = B J X + C; :::; X k+ = B J X k + C; ::: Az eljárás folytatható míg X k+ X k ahol > egy elore megadott pontosság. Gyakorlat menete Feladat. Oldjuk meg az alábbi lineáris egyenletrendszert Jacobi módszerrel 8 < : 9x 2x 2 3x 3 = 4 x 7x 2 + 2x 3 = 4 x + 4x 2 8x 3 = 5 B @ b a b 2 a 22 ::: b n a nn C A : (29) : (3) Megoldás. Mivel az egyenletrendszer átlósan domináns, a Jacobi módszer konvergál. B J = @ 4 9 4 7 5 8 2 3 9 9 2 7 7 4 8 8 3 68 25 252 43 54 A ; C = @ X = @ A ; X = @ A ; X 2 = @ A,... A lineáris egyenletrendszerek megoldásánál gyelembe kell venni ezek kondicionáltságát. Egy egyenletrendszer rosszul kondicionált ha kis változások az A vagy b mátrixban nagy 2 4 9 4 7 5 8 A
22 Jacobi-féle iteratív módszer. Rosszul kondicionált mátrixok. változásokat eredményeznek a megoldásokban. A kondicionálás méroszáma a cond cond (A) = jjajj A : (3) A Matlab utastás k=cond(a,p) ahol p a norma tipusa. Ha a cond érték nagy az egyenletrendszer instabil, ha pedig cond ' akkor stabil. Példa. A negyedrendu Hilbert-féle mátrix H = kondicionálási száma: cond (H) = 554: B @ 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 C A Example 2) Igazoljuk, hogy a jjjj max : R mn! R; jjajj max = max ja ij j függvény eleget tesz a norma deníciónak, de jjabjj jjajj jjbjj :
8 Sajátértékek, sajátvektorok. Gyakorlat célja: Sajátértékek, sajátvektorok numerikus kiszámítása. Elméleti fogalmak A számot az A = (a ij ) i;j=;n mátrix sajátértékének nevezzük ha 9x 2 R n ; x 6= n úgy, hogy Ax = x: (32) Az x vektort a sajátértékhez hozzárendelt sajátvektornak nevezzük. A sajátértékeket a karakterisztikus polinom gyökeiként lehet kiszámítani det (A I n ) = ; (33) vagy ( ) n n p n + p 2 n 2 + ::: + ( ) n p n = ; (34) ahol p = T r (A) = a + ::: + a nn ; :::; p n = det (A) : (35) A Cayley-Hamilton tétel szerint minden A mátrix teljesíti a karakterisztikus egyenletét: A n p A n + p 2 A n 2 + ::: + ( ) n p n I n = n : (36) y Krylov módszer abban áll hogy a (36) egyenletet beszorozzuk Y = B y2 C @ ::: A ; kezdeti yn vektorral majd Y k = B @ y k y k 2 ::: y k n egyenletrendszerhez jutunk 8 >< >: C A = AY k ; k = ; n jelöléssel a következo n n-es lineáris p y n + p 2 y n 2 + ::: + p n y = y n p y2 n + p 2 y2 n 2 + ::: + p n y2 = y2 n ::: p yn n + p 2 yn n 2 + ::: + p n yn = yn n melynek meogldása a karakterisztikus polinom együtthatói. Ezután megoldjuk a (34) egyenletet. A Matlab [sv,se]=eig(a) utasítással megkapjuk az A mátrix sv sajátvektorait és se sajátértékeit. Gyakorlat menete Feladat. Számítsuk ki az A = @ 2 3 4 A 2 3 mátrix sajátértékeit és sajátvektorait, majd ellenorizzük le a (32) deniciót. 23 (37)
24 Sajátértékek, sajátvektorok. Megoldás. [sv,se]=eig(a) ) :595 :9383 :577 sv = @ :5294 :934 :7927 A ; se = @ 5:7 :7 A : :682 :2866 :26 :79 A sajátértékek az se mátrix átlóján találhatók és a megfelelo oszlopon az sv mátrixban a sajátvektor normázva. Kituzött feladatok. Számítsuk ki az alábbi mátrixok sajátértékeit és sajátvektorait: A = 2 A ; @ 2 2 B = @ 2 2 2 A :
9 Lagrange-féle interpoláló polinom. Runge-féle ellenpélda. Gyakorlat célja: adott pontokra egy interpoláló polinomot szerkeszteni, majd kiemelni a globális interpoláció hátrányát. Elméleti fogalmak Ismerve egy f függvény (x ; f ) ; :::; (x n ; f n ) interpoláló pontjait, keresünk egy olyan n-ed fokú L n f polinomot ami úgyszinten keresztül halad a pontokon: L n f (x i ) = f (x i ) = f i ; i = ; :::; n: (38) Az L n f polinomot a következo alakban szerkesztjük meg: ahol vagy L n f (x) = f l (x) + f l (x) + ::: + f n l n (x) = l i (x) = nx f i l i (x) (39) i= Q k6=i (x x k) Qk6=i (x ; i = ; n; (4) i x k ) $ (x) := (x x ) ::: (x x n ) ; l i (x) = $ (x) (x x i ) $ (x i ) : (4) Gyakorlat menete Feladat. Határozzuk meg a Lagrange féle interpoláló polinomot a következo adatok esetében: x i 4 9 f i 2 3. Megoldás. A harmadfokú interpoláló polinom L 3 f (x) = y l (x) + y l (x) + y 2 l 2 (x) + y 3 l 3 (x) és a (4)-ból (x ) (x 4) (x 9) (x ) (x 4) (x 9) l (x) = ; l (x) = ;... ( ) ( 4) ( 9) () ( 3) ( 8) Téves azt gondolni hogy minél több az interpoláló pont annál pontossabban illeszkedik L n f polinom az adatokra. Ennek érdekében bemutatjuk C. Runge példáját. Az f (x) = +25x ; x 2 [ ; ] ; 2 analítikus függvénybol kiemelünk egyenközu interpolációs pontokat és interpoláljuk ezeket a megfelelo polinommal. Az alábbi ábra hét (..) illetve 4 (- -) pont interpolációs polinomját hasonlítja össze az eredeti f ( ) függvénnyel. Látható, hogy a fokszám növekedésével az interpoláló polinomok egyre jobban divergálnak a széleken. A Matlab Ln=polyt(xi,) utasítás ahol, xi = x i ; fi = f i ; visszatéríti a Lagrange interpoláló polinomot, míg a Q=polyt(xi,,n) 25
visszatéríti az n-ed fokú Q approximáló polinomot (a legkisebb négyzetek módszere). 26
Szakaszos interpoláció. Gyakorlat célja: alternatívát szolgálni a globális interpolicóhoz. Elméleti fogalmak A Lagrange interpoláció hátrányainak a kiküszöbölésére használjuk a szakaszos interpolációt, vagyis minden I i = [x i ; x i+ ] intervallumon megszerkesztjük az interpoláló polinomot. A harmadfokú Hermite-féle interpoláló polinom alakja s (x) = f i H 3 (x) + f _ i H 3 (x) + f _ i+ H2 3 (x) + f i+ H3 3 (x) ; x 2 [x i ; x i+ ] ; (42) ahol H 3 ; H 3 ; H2 3 ; H3 3 a Hermite-féle alap polinomok 2 3 H 3 xi+ x xi+ x (x) = 3 2 ; h i h i 3! 2 H 3 xi+ x xi+ x (x) = h i ; h i 3! 2 x H2 3 xi x xi (x) = h i ; (43) x H3 3 (x) = 3 h i h i xi 2 x 2 h i h i xi h i 3 ; h i = x i+ x i : Az interpoláló polinom tulajdonságai: s (x i ) = f i ; s (x i+ ) = f i+ (44) s (x i ) = f _ i ; s (x i+ ) = f _ i+ : Ha a f _ i deriváltak ismeretlenek, akkor valmilyen módszerrel meg kell szerkeszteni, például _ f i = f i+ f i x i+ x i ; i = ; n : (45) Gyakorlat menete Feladat. Szerkesszunk egy Hermite-féle interpoláló függvényt a következo adatokra: x i 4 9 y i 2 3: Megoldás. Minden ponthoz hozzárendelünk egy iránytényezot a (45) képlettel f _ = 2 4 ; f_ 2 = 2 8 és f_ = ; f _ 3 = 5 : A Matlab utasítás a (42) polinom megszerkesztéséhez ch=spapi(4,[xi xi],[ di]) ahol xi = x i ; fi = f i ; di = f _ i vektorok. A fenti adatok esetében a Hermite interpoláló polinomot ábrázoljuk az fnplt(ch,'r') utasítással.a (44) képletbol azt kapjuk hogy a Hermite interpolációs polinom C osztályú. Ahhoz hogy símább, C 2 interpoláló polinomot kapjunk használjuk a köbös spline függvényeket s i ; 27
28 Szakaszos interpoláció. i = ; :::; n (s i : [x i ; x i+ ]! R): s=spline(xi,) s=csapi(xi,) s=csape(xi,), s=csapi(xi,,conds, valconds). Feladat. Szerkesszük meg a fenti adatok esetében a köbös spline függvényt a következo perem feltételekkel (i) s (x ) = ; s n (x n ) = ; ("natural", természetes spline) majd (ii) s (x ) = f _ = ; s n (x n ) = f _ n = =5 ("complete" spline). Megoldás. (i) xi=[ 4 9]; =[ 2 3] ;s=csapi(xi,);fnplt(s) (ii) xi=[ 4 9]; =[ 2 3] ;di=[ /5] ;s=csape(xi,,[ ] ;di);fnplt(s)
Közelítés a legkisebb négyzetek módszerével. Gyakorlat célja: olyan approximáló módszert bemutatni ami általánosítja az interpolációt. Elméleti fogalmak Egy (x ; f ) ; :::; (x n ; f n ) pontokban ismert f függvény legkisebb négyzetek szerinti approximációján, egy F függvényt értünk amely minimizálja a pontokban az eltérést: nx (f (x i ) F (x i )) 2! min : (46) i= A továbbiakban az F függvényt az algebrai polinomok családjából választjuk ki: F (x) = a + a x + ::: + a m x m : T Az A = a a : : : a m vektorban szereplo együtthatókat egy MA = V (47) egyenletrenszer megoldásaként kapjuk ahol: és M = B @ M M : : : M m M M 2 : : :. M m M m+ : : : M 2m M j : = V k : = nx i= C A ; V = B @ V V. V m C A (48) x j i ; j = ; 2m (49) nx x k i y i ; k = ; m: Gyakorlat menete Feladat. Szerkesszük meg az alábbi pontokra a lineáris regressziós függvényt. x i 4 9 f i 2 3 Megoldás. F (x) = a x + a ; M = 4, M = 4, M 2 = 98; V = 6; V = 36 =) 4a + 4a = 6 4a + 98a = 36 ; =) a = 3 7 ; a = 5 5 49 =) F (x) = 49 x + 3 7 : i= 29
3 Közelítés a legkisebb négyzetek módszerével. y 3 2 2 3 4 5 6 7 8 9 x A Matlab utasítás: F=polyt(xi,,m) ahol xi = x i ; fi = f i ; m = a keresett approximáló polinom fokszáma.
2 Numerikus deriválás és integrálási képletek. Gyakorlat célja: különbözo eljárást bemutatni derivált és integrál numerikus kiszámítására. Elméleti fogalmak Legyen f : I! R egy folytonos és deriválható függvényt és x 2 I egy pont az I belsejében. A határérték deniciójából kiindulva a következo elemi deriválási képletek adódnak f (x ) = f (x ) f (x h) ; h (5) f (x ) = f (x + h) f (x h) : (5) 2h Az elso képlet pontossága O (h) a másodiknak pedig O h 2 : A másodrendu derivált esetében O h 2 pontossággal. f (x ) = f (x + 2h) 2f (x + h) + f (x ) h 2 (52) Több ismeretlenes függvények esetében f : R m! R; a parciális deriváltak kiszámítása hasonlóan történik @f (x ; :::; x m ) = f (x ; :::; x i + h; :::; x m ) f (x ; :::; x i ; :::; x m ) ; @x i h (53) @f (x ; :::; x m ) = f (x ; :::; x i + h; :::; x m ) f (x ; :::; x i h; :::; x m ) : @x i 2h (54) A másodrendu deriváltakat az alábbi képletekkel számítjuk @ 2 f @x 2 (x ; :::; x m ) i = h 2 (f (x ; :::; x i + h; :::; x m ) 2f (x ; :::; x i ; :::; x m ) + +f (x ; :::; x i h; :::; x m )); @ 2 f @x i @x j (x ; :::; x m ) = 4hk (f (x ; :::; x i + h; :::; x j + k; :::; x m ) f (x ; :::; x i + h; :::; x j k; :::; x m ) f (x ; :::; x i h; :::; x j + k; :::; x m ) + f (x ; :::; x i h; :::; x j k; :::; x m )) ahol h illetve k az x i illetve x j irányban megtett lépés. Gyakorlat menete Feladat. Számítsuk ki f () ; f () értékeket különbözo h lépésekre ha f (x) = e x : Megoldás. Legyen h = 2 : A (5) képletbol f f ( + h) f () () = h 3 = e: e : = 2: 73 9
32 Numerikus deriválás és integrálási képletek. ebben az esetben a hiba f(+h) f() h e = 2: 73 9 2: 78 3 = :3 6: A (5) képletet használva f f ( + h) f ( h) () = = e: e ;99 = 2:78327 2h :2 f(+h) f( h) a hiba pedig 2h e = 2: 78327-2: 78 28 = 4: 6 5 = :46 4. A másodfokú derivált értéke f f ( + h) 2f () + f ( h) () = h 2 = e: e + e ;99 4 = 2:7834 f(+h) 2f()+f( h) a hiba h e = 2:26 5 = :226 4 : 2 Feladat. a.) Számítsuk ki f (=3) ; f (=3) deriváltakat ha f (x) = sin (x) ; x 2 ; 2 ; = 4 pontossággal: b.) Ábrázoljuk az f; f ; f függvényeket. Megoldás. Az f (=3) kiszámításához a (5) képletet használjuk h = 2 lépéssel. f (=3) = sin 3 + h sin 3 h = :499996; a hiba pedig 8:33 6: Hasonlóan, a (52) képlettel: f (=3) = sin 3 + h 2 sin( 3 ) + sin 3 h 2 h = :866; a hiba 7:2 6 : b.) Feladat. Számítsuk ki az f (x; y) = e xy függvény parciális deriváltjait az (; 2) pontban. Megoldás. Legyen h = k = 2 : A (54) képletnek megfeleloen: @f f ( + h; 2) f ( h; 2) (; 2) = = 4:779 @x 2h és a hiba @f @x (; 2) 2e2 = @f @x (; 2) 4:778 = 9:85 4 ; @f f (; 2 + k) f (; 2 k) (; 2) = = 7:3892 @y 2k és a hiba @f @y (; 2) e2 = @f @y (; 2) 7:389 = :23 4 : Numerikus integrálás Legyen f : [a; b]! R egy folytonos függvény és az [a; b] intervallum egy felosztása: a = x < x < ::: < x n = b: 2h
33 Két gyakran használt integrálási képlet az ú.n. trapéz és a Simson képlet Z b a Z b a f (x) dx = h 2 (f (x ) + 2f (x ) + ::: + 2f (x n ) + f (x n )) (55) f (x) dx = h 3 f (x ) + 4! nx nx f (x 2i ) + 2 f (x 2i ) + f (x 2n ) : (56) i= Feladat Számítsuk ki R 3 x2 dx értéket a trapéz illetve Simpson képlet segítségével (n = 4). Megoldás. f (x) = x 2 : A megadott n-bol kiszámítjuk a trapéz módszernek megfelelo lépést: h = 3 4 = :5 majd a (55) képletbol következik hogy: Z 3 x 2 dx = h (f () + 2f ( + :5) + 2f (:5 + :5) + 2f (2 + :5) + f (3)) = 2 = :25 ( + 4:5 + 8 + 2:5 + 9) = 8: 75: x A hiba 8:75 3 = j8:75 8:66j = :9 O n 2 = =6 = :625 : 3 3 Hasonlóan a Simpson módszerbol h = 3 = :25 és a (56) képletbol: Z 3 x 2 dx = 24 h (f () + 4(f (:25) + f (:75) + f (2:25) + f (2:75)) + 2 (f (:5) + f (2) + f (2:5)) + f (3)) = 3 :25 ( + 4 (:5625 + 3:625 + 5:625 + 7:5625) + 2 (2:25 + 4 + 6:25) + 9) = 8: 6666: 3 Mivel a függvény másodfokú polinom, az integrál zéro hibával állítható elo a Simpson képlettel. A trapéz integrálási módszerhez a következo Matlab utasítást használjuk: I=trapz(xi,) ahol x = x i ; fi = f i = f (x i ), míg a Simpson integrálási módszerhez I=quad(f,a,b). A kettes integrál kiszámítására használjuk a I=dblquad(f,a,b,c,d) utasítást. Feladat. Számítsuk ki a f (x; y) = 8e x2 Megoldás. Ki kell számítani a kettes integrált. f=inline('8*exp(-x.^2-y.^4)'); Z d Z b c a f (x; y) dxdy i= y 4 felület az R = [; ] [; ] négyzet fölött bezárt térfogatot. Z Z 8e x2 y 4 dxdy
34 Numerikus deriválás és integrálási képletek. I=dblquad(f,,,,) Az integrál értéke ' 5:45:
3 Az Euler illetve Runge-Kutta módszer differenciálegyenletek megoldására. Gyakorlat célja: közönséges differenciálegyenletek numerikus megoldása. Elméleti fogalmak Tekintsük a Cauchy feladatot: y = f (t; y) y (t ) = y ; t 2 [t ; t f ] ; (57) illetve az [t ; t f ] intervallum egy egyenközu felosztását: a < t < ::: < t n = b; t i = t + ih ahol h = b a n a lépést jelöli. Az Euler módszer lényege, hogy az elméleti görbét -pontról pontra haladva- lineáris szakaszokkal közelítjük meg és eredményül egy P P :::P n tört vonalat kapunk; innen származik a módszer elnevezése. A pontok (y i ) n i= ordinátáit a következoképpen generáljuk y i+ = y i + hf (t i ; y i ) ; i = ; n : (58) Az Euler módszer pontossága O (h) : A pontosság növelése érdekében használjuk a Runge-Kutta2 módszert: ahol: vagy a Runge-Kutta4 módszert ahol y i+ = y i + 2 [k + k 2 ] ; i = ; n (59) k = hf (t i ; y i ) ; k 2 = hf (t i + h; y i + k ) ; y i+ = y i + 6 (k + 2k 2 + 2k 3 + k 4 ) ; i = ; n ; (6) k = hf (t i ; y i ) ; k 2 = hf k 3 = hf t i + h 2 ; y i + k 2 2 A módszerek hibarendjei O h 2, illetve O h 4 : Gyakorlat menete Feladat. t i + h 2 ; y i + k 2 Oldjuk meg a következo Cauchy-féle feladatot (h = :) y = ty ; k 4 = hf (t i + h; y i + k 3 ) : ; t 2 [; 2] y () = 35 ; (6)
36 Az Euler illetve Runge-Kutta módszer differenciálegyenletek megoldására. majd hasonlítsuk össze az elméleti görbével: y (t) = e t2 2 ; t 2 [; 2]. Megoldás. Alkalmazzuk az Euler módszert: f (t; y) = ty; t = ; t i = i :; P (; ) y = y + : f (; ) = + =) P (:; ) y 2 = y + hf (t ; y ) = + : : = : =) P 2 (:2; :) ; :::
4 A rács módszer a parciális differenciálegyenletek megoldására. Gyakorlat célja: parciális differenciálegyenletek numerikus megoldása. Elméleti fogalmak A másodrendu parciális differenciálegyenlet általános alakja a következo: a u xx + b u xy + c u yy + d u x + e u y + f u = g; (x; y) 2 (62) ahol a; b; c; d; e; f; g függvények x; y -ban. Osztályozás: ha b 2 4ac > akkor az (62)-es de.-t hiperbolikusnak nevezzük Pl. Hullámegyenlet: u xx = v 2 u tt; ha b 2 4ac = akkor az (62)-es de.-t parabolikusnak nevezzük Pl. Hoterjedés, diffúzió: u xx = a u t; ha b 2 4ac < akkor az (62)-es de.-t elliptikusnak nevezzük Pl. Lapalce-féle egyenlet u xx + u yy = : A (62)-es differenciálegyenlethez hozzárendelünk kezdeti vagy perem-feltételek Lefedjük az síktartományt egy = fx ; x 2 ; :::; x m g fy ; y 2 ; :::; y n g ráccsal ahol (x i ) m i= ; (y j) n j= egyenközu osztópontok x i+ = x i + h; i = ; m y j+ = y j + k; j = ; n Az u (x; y) függvény megközelítésére az u függvény (x i ; y j ) csomópontokban közelítését használjuk u (x; y) ' u (x i ; y j ) =: u ij ; i = ; m; j = ; n: Az (62) egyenlet diszkrét alakjában behelyettesítjük a deriváltak helyett az ismert numerikus deriválási képleteket (53): u x (x i ; y j ) = (u x ) i;j = u (x i + h; y j ) u (x i ; y j ) h u y (x i ; y j ) = (u y ) i;j = u (x i; y j + k) u (x i ; y j ) k vagy a pontosabb közelítés (54) u x (x i ; y j ) = (u x ) i;j = u (x i + h; y j ) u (x i h; y j ) 2h u y (x i ; y j ) = (u y ) i;j = u (x i; y j + k) u (x i ; y j k) 2k 37 = u i+;j u i;j ; (63) h = u i;j+ u i;j ; k = u i+;j u i ;j ; (64) 2h = u i;j+ u i;j : 2k
38 A rács módszer a parciális differenciálegyenletek megoldására. Hasonlóan a másodrendu deriváltakat u xx (x i ; y j ) = (u xx ) i;j = u (x i + h; y j ) 2u (x i ; y j ) + u (x i h; y j ) h 2 = u i+;j 2u i;j + u i ;j h 2 ; u yy (x i ; y j ) = (u yy ) i;j = u (x i; y j + k) 2u (x i ; y j ) + u (x i ; y j k) k 2 (65) = u i;j+ 2u i;j + u i;j k 2 u xy (x i ; y j ) = (u xy ) i;j = u (x i + h; y j + k) u (x i + h; y j ) u (x i ; y j + k) + u (x i ; y j ) hk = u i+;j+ u i+;j u i;j+ + u i;j : hk A (64) képletek véve alapul az u xy (x i ; y j ) vegyes deriváltat a következo képletett lehet kiszámítani: u xy (x i ; y j ) = (u xy ) i;j (66) = u (x i + h; y j + k) u (x i + h; y j k) u (x i h; y j + k) + u (x i h; y j k) 4hk = u i+;j+ u i+;j u i ;j+ + u i ;j : 4hk A behelyettesítést követoen, attól függoen hogy kezdeti vagy perem-feltételek adódtak, egy rekurzív képletet- vagy egy egyenletrendszert kapunk aminek az ismeretlenei u i;j : Gyakorlat menete Feladat. Hoterjedés: adott egy L egységnyi vastag és végtelen nagyságú lemez. Az eredetileg f (x) ; x 2 [; L] fokos lemezt a t idopontban lehutjük u fokra (a lemez oldalait). Vizsgáljuk a hoterjedést a lemezanyagában ha az oldalak u fokon vannak tartva. 8 >< >: u : [; L] [; T ]! R u xx (x; t) = a u t (x; t) ; u (x; ) = f (x) ; x 2 [; L] u (; t) = g (t) ; u (L; t) = g (t) ; t 2 [; T ] ; (67) ahol [; T ] a tanulmányozott idointervallum, a pedig a lemez hoterjedési együtthatója. Konkrét adatok: L = 2; T = ; 5; f (x) = ( C) ; 8x 2 [; 2] ; u = ( C) ; a = ; g (t) = g (t) = ( C) : Megoldás. Legyen x i = ih; i = ; n; h = (L )=n; és t j = j k; j = ; m; k = (T )=m; illetve az általuk alkotott rács szerkezet (lásd az alábbi ábrát)behelyettesítve a (67) képletbe a (63),(65) képleteket azt kapjuk, hogy u i+;j 2u i;j + u i ;j u i;j+ u i;j h 2 = ; i = ; m ; j = ; n : a k Átalakítva a következo rekurzív képletet kapjuk: u i;j+ = ak h 2 u i ;j + 2 ak h 2 u i;j + ak h 2 u i+;j; i = ; m ; j = ; n :
A konkrét adatok esetében vegyük a következo lépéseket h = :2; k = : ) ak h 2 = :25 u i;j+ = :25u i ;j + :5u i;j + :25u i+;j ; i = ; m ; j = ; n : ahol u ;j+ = ; u n;j+ = ; u i; = : Az alábbi ábrán a homérséklet eloszlása látható a lemezben. 39