Komputeralgebra rendszerek

Hasonló dokumentumok
Komputeralgebra Rendszerek

Komputeralgebra Rendszerek

Komputeralgebra Rendszerek

Imperatív programozás

2018, Diszkrét matematika

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

Komputeralgebra rendszerek

Smalltalk 2. Készítette: Szabó Éva

2. előadás. Lineáris algebra numerikus módszerei. Mátrixok Mátrixműveletek Speciális mátrixok, vektorok Norma

Struktúra nélküli adatszerkezetek

Mátrixok, mátrixműveletek

Valasek Gábor

Listák, szótárak, fájlok Listák, szótárak, fájlok

Python tanfolyam Python bevezető I. rész

Programozási nyelvek Python

Komputeralgebra Rendszerek

Komputeralgebra Rendszerek

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

Lineáris algebra (10A103)

Programozási technológia

Komputeralgebra Rendszerek

Apple Swift kurzus 3. gyakorlat

van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Komputeralgebra Rendszerek

1. zárthelyi,

Diszkrét matematika II., 8. előadás. Vektorterek

MATLAB alapismeretek I.

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

Generikus osztályok, gyűjtemények és algoritmusok

Collections. Összetett adatstruktúrák


Mátrixok 2017 Mátrixok

Matematika szigorlat június 17. Neptun kód:

17. előadás: Vektorok a térben

Excel VIII. Visual Basic programozás alapok 2. Vektorműveletek Visual Basic nyelven

A lineáris algebrában központi szerepet betöltı vektortér fogalmát értelmezzük most, s megvizsgáljuk e struktúra legfontosabb egyszerő tulajdonságait.

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Vektorok, mátrixok, lineáris egyenletrendszerek

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

Adatszerkezetek 2. Dr. Iványi Péter

2018, Funkcionális programozás

Fraktálok. Kontrakciók Affin leképezések. Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék. TARTALOMJEGYZÉK Kontrakciók Affin transzformációk

Maple. Maple. Dr. Tóth László egyetemi docens Pécsi Tudományegyetem, 2007

DISZKRÉT MATEMATIKA: STRUKTÚRÁK Előadáson mutatott példa: Bércesné Novák Ágnes

I. VEKTOROK, MÁTRIXOK

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

Adatszerkezetek 1. előadás

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

Táblázatok fontosabb műveletei 1

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

Testek. 16. Legyen z = 3 + 4i, w = 3 + i. Végezzük el az alábbi. a) (2 4), Z 5, b) (1, 0, 0, 1, 1) (1, 1, 1, 1, 0), Z 5 2.

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

Rendezések. Összehasonlító rendezések

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Matematika (mesterképzés)

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Komputeralgebrai Algoritmusok

Dinamikus modellek szerkezete, SDG modellek

2018, Diszkrét matematika

SZÁMÍTÁSOK A TÁBLÁZATBAN

Fejlett programozási nyelvek C++ Iterátorok

Komputeralgebra rendszerek

A Python programozási nyelv

Készítette: Nagy Tibor István

Programozás II. előadás

Komputeralgebra rendszerek

2016, Diszkrét matematika

Számítógépes Számelmélet

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Lineáris algebra Gyakorló feladatok

OpenGL és a mátrixok

A félév során előkerülő témakörök

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Matematika A1a Analízis

Programozás alapjai II. (7. ea) C++

1. Generátorrendszer. Házi feladat (fizikából tudjuk) Ha v és w nem párhuzamos síkvektorok, akkor generátorrendszert alkotnak a sík vektorainak

Shannon és Huffman kód konstrukció tetszőleges. véges test felett

Komputeralgebra rendszerek

Adatszerkezetek. Nevezetes algoritmusok (Keresések, rendezések)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Diszkrét matematika I.

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

VEKTORTEREK I. VEKTORTÉR, ALTÉR, GENERÁTORRENDSZER október 15. Irodalom. További ajánlott feladatok

Algoritmusok Tervezése. 1. Előadás MATLAB 1. Dr. Bécsi Tamás

Programozási nyelvek Java

Meghirdetés féléve 2 Kreditpont Összóraszám (elm+gyak) 2+0

Programozási segédlet

Java és web programozás

Komputeralgebra rendszerek

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor

Generikus Típusok, Kollekciók

Verem Verem mutató 01

Bevezetés az algebrába 1

Térinformatikai algoritmusok Elemi algoritmusok

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Átírás:

XVI. Összetett adatszerkezetek a Sage ben Sándor czirbusz@gmail.com Komputeralgebra Tanszék ELTE Informatika Kar 2010-2011 ősz

Index I 1 Tuplek, listák, sorozatok Tuplek Sorozatok Listák A lista definiálása Egyszerű listakezelés Listainformációk Listaértelmezés Sorkezelés 2 Halmazok A Pythonos halmazok A Sage halmazok 3 Közös tulajdonságok 4 Szótárak

Index II A szótár fogalma A szótár használata 5 Iterátorok 6 Tömbök, vektorok Vektorok Mátrixok Mátrix konstrukciók Mátrixműveletek Lineáris algebra

Tuplek Tuplek Tuple A tuple egy nem módosítható rendezett sorozat, az elemek különféle típusúak is lehetnek. Létrehozása : v = ert1,ert2,... (tuple packaging). Zárójelezve jelenik meg Hivatkozás elemre: v[i] type(v) : <type tuple > Alkalmazások : koordináták, rekordok Tuple szétszedés : x, y, z = v

Sorozatok Sorozatok Sorozatok A sorozatok azonos típusú elemek listája, mely nem módosítható is lehet. Létrehozása : Sequence([lista]) vagy seq([lista]), opt Az opciók : megadhatunk egy típus kényszerítést (coercing) nem módosítható : immutable = true Elemek típusa :.universe() Módosítható e :.is_immutable() Példák létrehozás : Sequence([1,2,3], immutable=true)

Listák Listák Listák A lista alapvető adatszerkezet a Sage ban, elemei bármik lehetnek Létrehozása : szögletes zárójelekkel, vagy a list kulcsszóval Üres lista : [] Az indexelés 0-tól indul, ellentétben a Maple vel. Indexelés : L[m:n] alakban (list slicing), a negtív index viszafelé működik

Listák Listaműveletek A műveletek helyben történnek Listaműveletek Hozzáfűzés :.append(value) Érték első előfordulásának törlése :.remove(value) Beszúrás adott idex elé :.insert(index, value) Megfordítás :.reverse() Rendezés :.sort() Bővítés :.extend(iterable) Elem törlése és visszaadása :.pop([index])

Listák Listainformációk, veremkezelés Listainformációk A lista hossza : len(lista) nem alkalmazható objektum tulajdonsgágként Egy elem előfordulásainak száma :.count(value) A.pop() és az.append() segítségével megvalósítható a stack szerkezet

Listaértelmezés Listaértelmezés... avagy list comprehension. Listakezelés felsőfokon Szintaxis : [kif(x) for x in iteralhato [if felt(x)]] Példa : vec1 = [2, 4, 6] vec2 = [4, 3, 9] [x+y for x in vec1 for y in vec2] Kimenete: [6, 5, -7, 8, 7, -5, 10, 9, -3]

Sorkezelés Sorkezelés Sorkezelés A from collections import deque hatására egy sorkezelő áll rendelkezésünkre. A listaműveletek mellet a lista baloldalát is könnyű lesz kezelnünk. Sor létrehozása : q = deque([lista]) Nyilvánvaló függvények :.popleft(),.appendleft(),.extendleft() Az összes elem törlése :.clear()

A Pythonos halmazok A Python hamazai A halmaz módosítható, rendezetlen kollekció, elemei különfélék lehetnek. A Python hamazai Létrehozása : set(tuple vagy lista) Üres halmaz : set() A redundáns elemek automatikusan törlődnek. A sorrend borul Halmazműveletek :.union(),.intersection(),.difference(),.symmetric_difference(),.difference() Információk :.isdisjoint(),.issubset(), issuperset() A műveleteknek van _update toldalékú párja, ami az obejkutumot átírja

A Sage halmazok A Sage hamazai A Sage hamazai Létrehozása : Set(tuple vagy lista) Üres halmaz : üres tupléra vagy üres listára alkalmazzuk a függvényt Az összes halmazelméleti művelet neve egyezik az előzővel, de mindig az első operandust módosítják Alkalmazása : EZ A matematika halmaz jobb megközleítése; struktúrákat is tekinthetünk halmaznak Végtelen halmazokat is létre tudunk hozni: Set(Primes()). Set of all prime numbers: 2, 3, 5, 7,...

Közös tulajdonságok A halmazok, listák, tuplék rendelkeznek azonos objektum tulajdonságokkal Halmazok, tuplék és listák Elemszám : len(l) Bennfoglalsás : x in L Listák és tuplék Egy elem előfordulásai : L.count(obj) Egy elem első előfordulása : L.index(obj) Egyesítés : L 1 + L 2

A szótár fogalma A szótár sturktúra A Python os terminológia : dictionary; más nyelvekben asszociatív tömb, vagy hash dictionary Kulcs érték párok rendezetlen kolleckciója Konstrukció : d = {k1:e1, k2:e2,... } Konverálás : dict([párok listája]) Egy elem lekérdezése : d[kn] Egyszerű infók :.keys(),.values()

A szótár használata A szótár használata A dictionary tulajdonságai Az összes elem törlése :.clear() Másolat készítése.copy() Elem lekérdezése másképp :.get(k[, default]) Iterátorok :.iteritems(),.iterkeys(),.itervalues() Példa : [a*b for a, b in d.iteritems()] összeszorozza a kulcs érték párokat Érték vagy teljes elem törlése :.pop(k),.popitem(k) Frissítés :.update(d2) (Az azonos kulcsút felülírja, az újat beszúrja)

Iterátorok Az iterátor memóriatakarékosság miatt menet közben állítja elő az adatot (generátor) Az iterátorok Konstrukció : w = (kif(n) for n in iterálható if felt(n)) Konverzió : iter(list tuple[, strázsa]) A Sage megkülönbözeteti az iterátorokat az alaptípus szerint Amit minden iterátor tud.next() Példa : w = (4 p+1 for p in Primes() if is_prime(4 p+1)) w.next() A Sage objektumok jelentős rész rendelkezik saját iterátorral.

Vektorok Konstrukció és műveletek vector Konstruktor : vector([r,] lista szótár) Az első paraméter opcionális, az alapgyűrű. Default : Z Ha szótárral adjuk meg, akkor a kulcs érték párokkal a vektor adott pozícióját lévő értéket adjuk meg. (A többi 0) Műveletek : lineáris kombináció,.dot_product(v) (avagy.inner_product()),.cross_product(v) Norma :.norm([p]); ha nem adjuk meg, akkor p=2, az Euklideszi norma. Lehet végtelen is.

Mátrixok Mátrix konstrukciók Az első paraméter itt is az alapgyűrű, most nem tüntetjük föl (Default: Z) Konstrukció Listák listája : matrix([sor1,sor2,... ]) ; a sorok azonos hosszúságú listák Megadva a sorok számát : matrix(r,lista); r sorra bontja a listát. Hiba, ha nincs elég elem Mindkét koordinátát megadva : matrix(r,c,[par1,par2,...]); pontosan r c elem kell felsorolni Zérus mátrix : matrix(r,c,0) Egységmátrix : identity_matrix(c) A pontos méret feltüntetése estén az elemek megadhatók szótárral is.

Mátrixok Mátrixműveletek I Alapműveletek Összeadás, szorzás, hatványozás : mint linalgban, nincs speciális műveleti jel Ha v vektor, A mátrix, összeszorozhatók, akkor a B.iterate(v) olyan mátrixot generál, mely sorai :v B k Transzponálás :.transpose() Exponeciális függvény :.exp() Mátrixpolinom :.act_on_polynomial(p), ha p ugyanazon gyűrű fölött értelmezett.

Mátrixok Mátrixműveletek II Manipulációk Sor/oszlop szorzása skalárral :.rescale_row col(i, s[, start=0]) Egyik sor/oszlop többbszörösének hozzáadása a másikhoz:.add_multiple_of_row column(i, j, s[, start=0]) Sor/oszlop csere :.swap_rows columns(r1, r2) Háromszögalakra hozás :.echelon_form(),.echelonize() Részmátrix : lehetőség van sorok, oszlopok, blokkok külön kezelésére (megannyi függvény) Mátrixok összerakás:.augment() és.stack()

Mátrixok Lineáris algebra I Elemi linalg Trace, determináns, norma : szokásos kulcsszavak Karakterisztikus polinom :.characteristic_polynomial(var). vagy röviden.charpoly(var) Sajátártékek :.eigenvalues() (Lehetőség van a bal é jobboldali kezelésére) Jordan forma :.jordan_form() LU dekompuzíció :.LU()

Mátrixok Lineáris algebra II Vektor- és mátrixterek A Sage ben létrehozhatunk adott gyűrű, test fölött vektorteret VectorSpace, illetve MatrixSpace kulcsszavakkal és minden gyűrűkkel kapcsolatos tevékenységet el tudunk végezni

Példák Lásd a munkalapokon