2018, Diszkrét matematika

Hasonló dokumentumok
2016, Diszkrét matematika

2016, Diszkrét matematika

2018, Diszkrét matematika

2015, Diszkrét matematika

2018, Diszkrét matematika

2015, Diszkrét matematika

2016, Diszkrét matematika

2016, Diszkrét matematika

1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:

2018, Diszkre t matematika. 10. elo ada s

2017, Diszkrét matematika

2016, Diszkrét matematika

2018, Diszkre t matematika. 8. elo ada s

2018, Diszkrét matematika

Komplex számok. Wettl Ferenc előadása alapján Wettl Ferenc előadása alapján Komplex számok / 18

ARANYMETSZÉS. - érettségi dolgozat védése analízis és algebrából - Készítette: Szénási Eszter Mentor: Dr. Péics Hajnalka június 11.

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Sapientia Egyetem, Matematika-Informatika Tanszék.

MATEK-INFO UBB verseny április 6.

Algebra es sz amelm elet 3 el oad as Nevezetes sz amelm eleti probl em ak Waldhauser Tam as 2014 oszi f el ev

Sorozatok határértéke SOROZAT FOGALMA, MEGADÁSA, ÁBRÁZOLÁSA; KORLÁTOS ÉS MONOTON SOROZATOK

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Nagy Gábor compalg.inf.elte.hu/ nagy

Osztályozóvizsga és javítóvizsga témakörei Matematika 9. évfolyam

Kiegészítő részelőadás 2. Algebrai és transzcendens számok, nevezetes konstansok

Bevezetés az algebrába 1

KOVÁCS BÉLA, MATEMATIKA I.

Klasszikus algebra előadás. Waldhauser Tamás április 14.

ÍRÁSBELI BELSŐ VIZSGA MATEMATIKA 8. évfolyam reál tagozat Az írásbeli vizsga gyakorlati és elméleti feladatai a következő témakörökből származnak.

2019, Funkcionális programozás. 5. el adás. MÁRTON Gyöngyvér

Diszkrét matematika I.

2019, Diszkrét matematika. 1. el adás

Osztályozóvizsga követelményei

HALMAZOK. A racionális számok halmazát olyan számok alkotják, amelyek felírhatók b. jele:. A racionális számok halmazának végtelen sok eleme van.

Gyakorló feladatok I.

VIK A1 Matematika BOSCH, Hatvan, 5. Gyakorlati anyag

Diszkrét matematika 1.

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Számelméleti alapfogalmak

A PiFast program használata. Nagy Lajos

Akkor én most bölcsész vagyok?! Avagy: híd, amit matematikának hívunk

Imperatív programozás

2018, Funkcionális programozás

Matematika szóbeli érettségi témakörök 2016/2017-es tanév őszi vizsgaidőszak

2018, Diszkrét matematika

Intergrált Intenzív Matematika Érettségi

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

2016, Funkcionális programozás

Rekurzív sorozatok. SZTE Bolyai Intézet nemeth. Rekurzív sorozatok p.1/26

Funkcionálanalízis. n=1. n=1. x n y n. n=1

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Kiegészítő részelőadás 2. Algebrai és transzcendens számok, nevezetes konstansok

Komplex számok. (a, b) + (c, d) := (a + c, b + d)

Osztályozó- és javítóvizsga. Matematika tantárgyból

A Riemann-Siegel zeta függvény kiugró értékeinek keresése. A matematikai egyik legnehezebb problémája, avagy a prímszámok misztériuma

2018, Funkcionális programozás

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Diszkrét matematika I.

Python tanfolyam Python bevezető I. rész

Információk. Ismétlés II. Ismétlés. Ismétlés III. A PROGRAMOZÁS ALAPJAI 2. Készítette: Vénné Meskó Katalin. Algoritmus. Algoritmus ábrázolása

Imperatív programozás

2010. október 12. Dr. Vincze Szilvia

BABEŞ-BOLYAI TUDOMÁNYEGYETEM MATEMATIKA-INFORMATIKA KAR Felvételi verseny - minta Informatika írásbeli

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Tanmenet a évf. fakultációs csoport MATEMATIKA tantárgyának tanításához

Osztályozó- és javítóvizsga témakörei MATEMATIKA tantárgyból 2016 / tanév

Nagy Gábor compalg.inf.elte.hu/ nagy

Egész pontokról racionálisan

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

2018/2019. Matematika 10.K

} számtani sorozat első tagja és differenciája is 4. Adja meg a sorozat 26. tagját! A = { } 1 pont. B = { } 1 pont. x =

4. modul: MŰVELETEK A VALÓS SZÁMOK KÖRÉBEN

Matematikai logika és halmazelmélet

2018, Funkcionális programozás

Bevezetés az algebrába az egész számok

Negatív alapú számrendszerek

Diszkrét matematika 1. estis képzés

TANMENET 2015/16. Készítette: KOVÁCS ILONA, Felhasználja: Juhász Orsolya

Bevezetés a matematikába (2009. ősz) 1. röpdolgozat

Matematikai alapok. Dr. Iványi Péter

Obudai Egyetem RKK Kar. Feladatok a Matematika I tantárgyhoz

1. tétel Halmazok és halmazok számossága. Halmazműveletek és logikai műveletek kapcsolata.

Sapientia Egyetem, Műszaki és Humántudományok Tanszék.

Számelmélet Megoldások

Osztályozóvizsga követelményei

INFORMATIKA javítókulcs 2016

Sorozatok I. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma)

Kalkulus I. gyakorlat Fizika BSc I/1.

Tanmenet a Matematika 10. tankönyvhöz

Numerikus matematika vizsga

MATEMATIKA A és B variáció

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Trigonometria

= Itt a jobb oldalon föllelhető az először az Egyiptomi Középbirodalomban használt

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Analízis előadás és gyakorlat vázlat

Irodalom. (a) A T, B T, (b) A + B, C + D, D C, (c) 3A, (d) AD, DA, B T A, 1 2 B = 1 C = A = 1 0 D = (a) 1 1 3, B T = = ( ) ; A T = 1 0

Átírás:

Diszkrét matematika 4. előadás mgyongyi@ms.sapientia.ro Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia 2018, őszi félév

Miről volt szó az elmúlt előadáson? számtartományok: racionális számok racionális számok irreducibilis alakja legnagyobb közös osztó algoritmusa - iteratív, rekurzív változatok racionális számok sorozatba rendezése - két módszer lánctörtek: a racionális számok lánctört jegyei a Farey sorozat

Miről lesz szó? Python alapfogalmak: függvények, paraméterátadás, a decimal modul számtartományok: irracionális számok, valós számok híresebb irracionális számok ( 2, π, e, φ) értéke a sin értéke az log értéke a k-ik gyök értéke: Newton módszerrel

Függvények, paraméterátadás Pythonban def fof1(): db = 0 segedf1(db) print (db) def segedf1(x): x += 10 >>> fof1() 0 A fof1 függvényben nem látjuk, hogy a segedf1 függvényben megváltoztattuk a paraméter értékét.

Függvények, paraméterátadás Pythonban def fof2(): db = 0 db = segedf2(db) print (db) def segedf2(x): x += 10 return x >>> fof2() 10 A fof2 függvényben látjuk, hogy a segedf2 függvényben megváltoztattuk a paraméter értékét.

A decimal modul Próbáljuk ki az alábbi műveleteket: >>> 0.1 + 0.1-0.2 0.0 >>> 0.1 + 0.1 + 0.1 0.30000000000000004 >>> 0.1 + 0.1 + 0.1-0.3 5.551115123125783e-17 A Python bevezeti a Decimal típust, amely pontosabb számolást tesz lehetővé, a nem egész számok körében:

A decimal modul A Decimal típus a decimal modulban van definiálva, és a felhasználó által óhajtott pontossággal ábrázolja a lebegőpontos (valós) számokat: >>> from decimal import Decimal >>> 1/3 0.3333333333333333 >>> Decimal(1/3) Decimal( 0.333333333333333314829616256247390992939472198486328125 ) >>> Decimal( 0.3 ) Decimal( 0.3 ) >>> Decimal(0.1) + Decimal(0.1) + Decimal(0.1) - Decimal(0.3) Decimal( 2.775557561565156540423631668E-17 ) >>> Decimal( 0.1 ) + Decimal( 0.1 ) + Decimal( 0.1 ) - Decimal( 0.3 ) Decimal( 0.0 )

A decimal modul A getcontext.prec() segítségével a tizedes jegyek számát adhatjuk meg. >>> from decimal import getcontext >>> x = Decimal(1) >>> y = Decimal(3) >>> getcontext().prec = 10 >>> x / y Decimal( 0.3333333333 ) >>> getcontext().prec = 25 >>> x / y Decimal( 0.3333333333333333333333333 ) Vegyük észre, hogy az int, a float, a string típusokból egyaránt létre lehet hozni Decimal típusú értéket.

Irracionális számok halmazjelölés: Q, azok a számok, melyek nem írhatóak fel két egész szám hányadosaként, azaz a végtelen, nem szakaszos tizedes törtek, híresebb irracionális számok: 2 = 1.4142..., π = 3.1415..., e = 2.7182..., φ = 1 + 5 = 1.6118..., az aranyarány. 2 a számítástechnika az irracionális számok közeĺıtett értékét tudja meghatározni az irracionális számok végtelen lánctörtek lánctörtek segítségével könnyedén meglehet határozni a közeĺıtett érték tízedesjegyeit

n értéke 1. feladat Határozzuk meg n értékét lánctörtek segítségével. A kiinduló képlet a következő, ahol a értéke egy akármilyen szám lehet: ha a = 1, akkor: n = 1 + 2 + n = a + n a 2 2 + n 1 n 1 a + n n 1 2 + n 1 2 +...

2 értéke 2. feladat Határozzuk meg 2 értékét lánctörtek segítségével. 2 = 1 + 1 from decimal import Decimal, getcontext def lanct_sqrt(): p = 500 getcontext().prec = 30 # 30 szamjegy temp = Decimal(0) for x in range (0, p): temp = 1 / (2 + temp) return 1 + temp 1 2 + 1 2 + 2 +... >>> lanct_sqrt() Decimal( 1.41421356237309504880168872421 )

A π szám a kör kerületének és átmérőjének hányadosa az eukleidészi geometriában más definíciók is léteznek, melyek kihagyják a kört irracionális és transzcendens szám (nincs olyan egész együtthatós polinom amelynek gyöke lenne) A π értékének meghatározására több lánctört-képlet is ismert: π = 1 + 3 + 4 1 2 2 2 5 + 32 7 +... π = 3 + 6 + 6 + 1 3 2 5 2 6 + 72 6 +...

A π szám 3. feladat Határozzuk meg π értékét lánctörtek segítségével. def lanct_pi(): p = 1000 getcontext().prec = 100 # 100 szamjegy temp = Decimal(0) for x in range (p + 1, 0, -1): a = x * x b = 2 * x + 1 temp = a / (b + temp) return 4 / (1 + temp) >>> lanct_pi() Decimal( 3.1415926535897932384626433832795028841971693993751058209 74944592307816406286208998628034825342117067 )

Az e szám irracionális és transzcendens szám többféleképpen lehet értelmezni: ( e = lim 1 + 1 ) n. n n e = 2 + 1 + 2 + 1 1 2 3 + 3 4 +...

A ϕ szám, aranymetszés, aranyarány (Golden Ratio) két mennyiség, a, b, a > b az aranymetszés szerint aránylik egymáshoz, ha fennáll: ϕ def = a b = a + b a a ϕ meghatározása érdekében feĺırhatjuk: a + b a = 1 + 1 a, azaz fennáll: b ϕ = 1 + 1 ϕ ϕ2 = ϕ + 1 megoldva a fenti egyenletet kapjuk, hogy ϕ = 1 + 5 2 a ϕ irracionális szám = 1.61803... és ˆϕ = 1 5 2 = 0.61803...

A ϕ szám, aranymetszés, aranyarány (Golden Ratio) építészet: Parthenon homlokzatának arányértékei: logok: Toyota, Mercedesz, stb. Pentagramma (szabályos ötszög): természet: napraforgó spirlajai piros zold = zold kek = kek lila = ϕ

A ϕ szám, aranymetszés, aranyarány (Golden Ratio) Kiindulva a ϕ = 1 + 1 ϕ összefüggésből, a ϕ értékét feĺırhatjuk a következőképpen is: ϕ = 1 + 1 + 1 + 1 1 1 1 + 1... Két egymás utáni Fibonacci szám arányaként is feĺırhatjuk a ϕ értékét: def fib_phi(n, m): f1 = 0 f2 = 1 for i in range(2, m): f = f1 + f2 if i >= n: print("{0:4d} {1:5d} {2:5d} {3:10,.6f}".format(i, f, f2, f/f2)) f1 = f2 f2 = f >>> fib_phi(10, 20)

Valós számok a racionális és irracionális számok halmaza halmazjelölés: R = Q Q egy szám egyszerre nem lehet racionális és irracionális is a valós számokhoz hozzárendelhető, egy mindkét irányban végtelen egyenes egy-egy pontja kommutatívitás, asszociatívítás, disztributívítás az egész számokkal ellentétben a valós számok halmaza nem megszámlálható a számítástechnikában nem valós mennyiségekkel dolgozunk, ezek egy közeĺıtő értéke lesz eltárolva: lebegőpontos ábrázolás

Valós számok A valós számok halmaza nem megszámlálható: feltételezzük, az ellenkezőjét, ha a valós számok halmaza megszámlálható lenne, akkor, a 0 és 1 közötti valós számok halmaza is megszámlálható lenne, létezik egy számsorozat, amelyet a 0 és 1 közötti valós számok alkotnak : r 1, r 2,..., r n,..., alkalmazzuk a következő ábrázolási módot: r 1 = 0.d 11d 12d 13d 14... r 2 = 0.d 21d 22d 23d 24... r 3 = 0.d 31d 32d 33d 34... r 4 = 0.d 41d 42d 43d 44.... ahol d ij {0, 1, 2,..., 9} ekkor az r = 0.d 1d 2d 3d 4... egy új valós szám lesz, { amely nem szerepel a 4 ha dii 4, fenti szabály szerint megadott listában, ahol d i = 5 ha d ii = 4.

Valós számok Példa: r 1 = 0.3567842... r 2 = 0.2146577... r 3 = 0.8945678... r 4 = 0.3452109.... A listában nem szereplő valós szám: 0.4454..., mert d 11 4, d 22 4, d 33 = 4, d 44 4,....

A sin(z) értéke 4. feladat Határozzuk meg sin(z) értékét lánctörtek segítségével. z sin(z) = z 2 1 + 2 3 z 2 2 3 z 2 + 4 5 z 2 4 5 z 2 + 6 7 z 2 +... def lanct_sin(z): p = 300 getcontext().prec = 50 temp = Decimal(0) for x in range (2*p, 0, -2): a = (x+2) * (x+3) - z*z b = x * (x+1) * z * z temp = b / (a + temp) temp = z*z / (2*3 - z*z + temp) return z / (1 + temp)

A sin(z) értéke >>> lanct_sin(60) Decimal( -0.30481062110221670562576204186131345751440565822218 ) >>> import math >>> math.sin(60) -0.3048106211022167 >>> math.sqrt(3)/2 0.8660254037844386 Mi a probléma? Miért nem a helyes eredményt kapjuk? >>> math.sin(60 * math.pi/180) 0.8660254037844386 >>> math.sin(math.radians(60)) 0.8660254037844386 A paraméterként megadott értéket át kell alakítani radiánba!

A sin(z) értéke Átalakítjuk a szöget radián-ba: from math import radians, pi def lanct_sinr(z): p = 300 getcontext().prec = 50 z = Decimal(z * pi/180) #z = Decimal(radians(z)) temp = Decimal(0) for x in range (2*p, 0, -2): a = (x+2) * (x+3) - z*z b = x * (x+1) * z * z temp = b / (a + temp) temp = z*z / (2*3-z*z + temp) return z / (1 + temp) >>> lanct_sinr(60) Decimal( 0.86602540378443858934550903079182617193526553351420 )

Az ln(z) értéke 5. feladat Határozzuk meg ln(z) értékét lánctörtek segítségével. ln(1 + z) = 1 + 2 + 3 + z 1 2 z 4 + 1 2 z 2 2 z 2 2 z 5 + 32 z 6 +... def lanct_log(z, p, szj): z -= 1 getcontext().prec = szj temp = Decimal(0) for x in range (p, 0, -1): t = (x + 1) // 2 a = x + 1 b = t * t * z temp = b / (a + temp) return z / (1 + temp)

Az ln(z) értéke >>> lanct_log(2) Decimal( 0.69314718055994530940 ) >>> import math >>> math.log(2) 0.6931471805599453 >>> lanct_log(decimal(math.e)) Decimal( 0.99999999999999994681 ) >>> math.log(math.e) 1.0

Az ln(z) értéke A ln(z) értékének meghatározásához használhatóak a következő összefüggések is ln (z) = (z 1) (z 1)2 2 ln (z) = lim n n (z 1/n 1) + (z 1)3 3 (z 1)4 4 = ( 1) n+1 (z 1) n n n=1 def ln(z): getcontext().prec = 60 n = 10 ** 40 exp = Decimal(1) / n return n * ( (z ** exp) - 1) >>> ln(2) Decimal( 0.693147180559945309400000000000000000000000000000000000000 )

A n értéke Newton féle módszerrel 6. feladat Határozzuk meg n értékét a Newton féle módszerrel. x 0 = 1 x i+1 = 1 (x 2 i + n ) x i from decimal import Decimal, getcontext def my_sqrt(n): getcontext().prec = 100 n = Decimal(n) x0 = 1 while True: xi = (x0 + n/x0) / 2 if xi == x0: return xi x0 = xi

A k n értéke Newton féle módszerrel Általános esetben a k n értéke: x i+1 = 1 [ (k 1) x i + n ], ahol x k x k 1 0 = 1. i ha k = 2, akkor a négyzetgyök meghatározásának képletét kapjuk: x i+1 = 1 (x 2 i + n ) x i a beépített operátorral is dolgozhatunk: >>> 10 ** 0.5 3.1622776601683795 >>> from decimal import Decimal, getcontext >>> getcontext().prec = 100 >>> 10 ** Decimal( 0.5 ) Decimal( 3.16227766016837933199889354443271853371955513932521682685... )