3D számítógépes geometria Numerikus analízis alapok ujjgyakorlat megoldások Várady Tamás, Salvi Péter / BME October, 18
Ujjgyakorlat 1 Feladat: 1 cos(x) dx kiszámítása trapéz-módszerrel
Ujjgyakorlat 1 Feladat: 1 cos(x) dx kiszámítása trapéz-módszerrel 1. iteráció: f () = 1, f (1) =.4 S 1 = 1 [ 1 1 + 1.4] =.77
Ujjgyakorlat 1 Feladat: 1 cos(x) dx kiszámítása trapéz-módszerrel 1. iteráció: f () = 1, f (1) =.4 S 1 = 1 [ 1 1 + 1.4] =.77. iteráció: f (.) =.878 S = 1 [ 1 1 +.878 + 1.4] = 1 [S 1 + 1.878] =.84 Ebből a javított érték 4 3.84 1 3.77 =.84
Ujjgyakorlat 1 Feladat: 1 cos(x) dx kiszámítása trapéz-módszerrel 1. iteráció: f () = 1, f (1) =.4 S 1 = 1 [ 1 1 + 1.4] =.77. iteráció: f (.) =.878 S = 1 [ 1 1 +.878 + 1.4] = 1 [S 1 + 1.878] =.84 Ebből a javított érték 4 3.84 1 3.77 =.84 3. iteráció: f (.) =.969, f (.7) =.73 S 3 = 1 [ 1 4 1 +.969 +.878 +.73 + 1 [.4] S + 1 (.969 +.73)] =.837 = 1 Ebből a javított érték 4 3.837 1 3.84 =.841... ami pontos 3 tizedesjegyre. A függvényt összesen x kellett kiértékelni.
Ujjgyakorlat (a) Feladat: 1 cos(x) dx kiszámítása Gauss Legendre kvadratúrával: ˆ 1 1 f (x) dx f ( ) ( ) 3 3 + f 3 3
Ujjgyakorlat (a) Feladat: 1 cos(x) dx kiszámítása Gauss Legendre kvadratúrával: ˆ 1 1 f (x) dx f ( ) ( ) 3 3 + f 3 3 A függvényt át kell alakítani a megfelelő formára: ˆ 1 cos(x) dx = Ebből f (y) = 1 cos ( ) y+1 ˆ 1 1 ( ) y + 1 1 cos dy
Ujjgyakorlat (a) Feladat: 1 cos(x) dx kiszámítása Gauss Legendre kvadratúrával: ˆ 1 1 f (x) dx f ( ) ( ) 3 3 + f 3 3 A függvényt át kell alakítani a megfelelő formára: ˆ 1 cos(x) dx = Ebből f (y) = 1 cos ( ) y+1 ˆ 1 1 ( ) y + 1 1 cos dy Kiértékelések: f ( 3/3) =.3, f ( 3/3) =.489 ˆ 1 cos(x) dx.3 +.489 =.841
Ujjgyakorlat (b) Feladat: 1 cos(x) dx kiszámítása Gauss Csebisev kvadratúrával: 1 f (x) dx π [ ( ) ( )] f + f 1 x ˆ 1 1
Ujjgyakorlat (b) Feladat: 1 cos(x) dx kiszámítása Gauss Csebisev kvadratúrával: 1 f (x) dx π [ ( ) ( )] f + f 1 x ˆ 1 1 A függvényt át kell alakítani a megfelelő formára: f (y) = 1 ( ) y + 1 cos 1 y
Ujjgyakorlat (b) Feladat: 1 cos(x) dx kiszámítása Gauss Csebisev kvadratúrával: 1 f (x) dx π [ ( ) ( )] f + f 1 x ˆ 1 1 A függvényt át kell alakítani a megfelelő formára: f (y) = 1 ( ) y + 1 cos 1 y Kiértékelések: f ( /) =.3, f ( /) =.3 ˆ 1 cos(x) dx 1.71 (.3 +.3) =.914 Általános képlet: x i = cos ( (i 1)π n Vagy: π f (cos α) dα és x i = (i 1)π n ) és w i = π n, i [1... n]
Ujjgyakorlat (c) Feladat: 1 cos(x) dx kiszámítása Gauss Hermite kvadratúrával: ˆ e x f (x) dx π [ f ( ) ( + f )]
Ujjgyakorlat (c) Feladat: 1 cos(x) dx kiszámítása Gauss Hermite kvadratúrával: ˆ e x f (x) dx π [ f ( ) ( + f )] Az 1/(1 + e x ) szigmoid függvénnyel áttérünk [, ]-re: ( f (y) = cos 1 1 + e y ) e y+y (1 + e y )
Ujjgyakorlat (c) Feladat: 1 cos(x) dx kiszámítása Gauss Hermite kvadratúrával: ˆ e x f (x) dx π [ f ( ) ( + f )] Az 1/(1 + e x ) szigmoid függvénnyel áttérünk [, ]-re: ( f (y) = cos 1 1 + e y ) e y+y (1 + e y ) Kiértékelések: f ( /) =.86, f ( /) =.34 ˆ 1 cos(x) dx.886 (.86 +.34) =.9 Tanulság: akkor használjuk, ha az integrandus hasonló alakú
Ujjgyakorlat 3 Feladat: π kiszámítása Monte Carlo módszerrel Legyen f (p) = 1, ekkor ˆ p kör f (p) dp = π Kiegészítjük az integrálandó térfogatot [ 1, 1] -re f (p) az egységkörön kívül Monte Carlo integrálás: ˆ π = f (p) dp 1 N f (p i ) p [ 1,1] N i=1 A körön belülre eső pontok arányának négyszerese Kb. 1 millió mintára lesz (várhatóan) tizedesjegyig pontos :)
Ujjgyakorlat 4(a) Feladat: Pont követése Euler-módszerrel, h = lépésközzel. Vektortér: ( ) cos(x) + sin(y) cos(y) + sin(x),
Ujjgyakorlat 4(a) Feladat: Pont követése Euler-módszerrel, h = lépésközzel. Vektortér: ( ) cos(x) + sin(y) cos(y) + sin(x), 1. lépés: ( cos() + sin() (, )+, ) cos() + sin() = (.764, 1.834)
Ujjgyakorlat 4(a) Feladat: Pont követése Euler-módszerrel, h = lépésközzel. Vektortér: ( ) cos(x) + sin(y) cos(y) + sin(x), 1. lépés: ( cos() + sin() (, )+,. lépés: ( cos(.764) + sin(1.834) (.764, 1.834) +, ) cos() + sin() = (.764, 1.834) = (1.439,.7) ) cos(1.834) + sin(.764)
Ujjgyakorlat 4(b) Feladat: Pont követése Runge Kutta módszerrel, h = lépésközzel. Vektortér: ( cos(x) + sin(y) f (x, y) =, ) cos(y) + sin(x)
Ujjgyakorlat 4(b) Feladat: Pont követése Runge Kutta módszerrel, h = lépésközzel. Vektortér: ( cos(x) + sin(y) f (x, y) =,.. lépés: f (, ) = (.764,.166) ) cos(y) + sin(x)
Ujjgyakorlat 4(b) Feladat: Pont követése Runge Kutta módszerrel, h = lépésközzel. Vektortér: ( cos(x) + sin(y) f (x, y) =,.. lépés: f (, ) = (.764,.166) ) cos(y) + sin(x) 1. lépés: (, ) + f ( +.764/,.166/) = (.747,.13)
Ujjgyakorlat 4(b) Feladat: Pont követése Runge Kutta módszerrel, h = lépésközzel. Vektortér: ( cos(x) + sin(y) f (x, y) =,.. lépés: f (, ) = (.764,.166) ) cos(y) + sin(x) 1. lépés: (, ) + f ( +.764/,.166/) = (.747,.13) 1.. lépés: f (.747,.13) = (.6,.11)
Ujjgyakorlat 4(b) Feladat: Pont követése Runge Kutta módszerrel, h = lépésközzel. Vektortér: ( cos(x) + sin(y) f (x, y) =,.. lépés: f (, ) = (.764,.166) ) cos(y) + sin(x) 1. lépés: (, ) + f ( +.764/,.166/) = (.747,.13) 1.. lépés: f (.747,.13) = (.6,.11). lépés: (.747,.13) + f (.747 +.6/,.13 +.11/) (.747,.13) + f (1.7,.64) = (1.9,.17)
Ujjgyakorlat Euler
Ujjgyakorlat Runge Kutta
Ujjgyakorlat Pontos