Informatika1-2017/Gyakorlat11
(Új oldal, tartalma: „Előző gyakorlat - Fel - Következő gyakorlat = Mátrixozás m…”) |
a |
||
(egy szerkesztő 4 közbeeső változata nincs mutatva) | |||
3. sor: | 3. sor: | ||
= Mátrixozás még = | = Mátrixozás még = | ||
− | == | + | == Emlékeztető és még pár dolog == |
− | Mátrixot megadhatunk a | + | Mátrixot megadhatunk a következő módon: |
<python> | <python> | ||
m = matrix([[1, 0], [0, 1]]) | m = matrix([[1, 0], [0, 1]]) | ||
</python> | </python> | ||
− | Ez a | + | Ez a következő mátrixot eredményezi: |
1 0 | 1 0 | ||
0 1 | 0 1 | ||
− | Blokkmátrixot, csupa 1-es mátrixot, továbbá | + | Blokkmátrixot, csupa 1-es mátrixot, továbbá főátlóval adott mátrixot is kényelmesen adhatunk meg: |
<python> | <python> | ||
A = diagonal_matrix([1, 5]) | A = diagonal_matrix([1, 5]) | ||
19. sor: | 19. sor: | ||
block_matrix([[A, -1*A], [A^(-1), B]]) | block_matrix([[A, -1*A], [A^(-1), B]]) | ||
</python> | </python> | ||
− | Ez a | + | Ez a következő mátrixot eredményezi: |
1 0| -1 0 | 1 0| -1 0 | ||
0 5| 0 -5 | 0 5| 0 -5 | ||
30. sor: | 30. sor: | ||
m.det() | m.det() | ||
</python> | </python> | ||
− | |||
37. sor: | 36. sor: | ||
=== Blokkmátrix === | === Blokkmátrix === | ||
− | Számoljuk ki a determinánsát a | + | Számoljuk ki a determinánsát a következő blokkmátrixnak: |
X I | X I | ||
O X | O X | ||
− | ahol I a 3x3-as egységmátrix és O a 3x3-as csupa 0 mátrix, X pedig a | + | ahol I a 3x3-as egységmátrix és O a 3x3-as csupa 0 mátrix, X pedig a következő: |
0 -1 -1 | 0 -1 -1 | ||
-1 0 -1 | -1 0 -1 | ||
53. sor: | 52. sor: | ||
-2 0 1 | 2 | -2 0 1 | 2 | ||
− | Használjuk az | + | Használjuk az előadáson tanult '''solve_right''' metódust! |
Ha megkaptuk az eredményt, akkor állítsuk át a mátrixot, hogy GF(3) felett legyen értelmezve (a '''change_ring''' metódussal) és nézzük meg így is a megoldást. | Ha megkaptuk az eredményt, akkor állítsuk át a mátrixot, hogy GF(3) felett legyen értelmezve (a '''change_ring''' metódussal) és nézzük meg így is a megoldást. | ||
− | === | + | === Összefüggő === |
− | Határozzuk meg, hogy az alábbi mátrix sorai (vagy oszlopai) milyen '''x''' értékekre lesznek | + | Határozzuk meg, hogy az alábbi mátrix sorai (vagy oszlopai) milyen '''x''' értékekre lesznek összefüggők. (Használjuk a '''solve''' parancsot a fentiekkel együtt.) |
x 0 1 | x 0 1 | ||
0 2 x | 0 2 x | ||
69. sor: | 68. sor: | ||
= Listaértelmezések = | = Listaértelmezések = | ||
− | == | + | == Emlékeztető == |
<python> | <python> | ||
96. sor: | 95. sor: | ||
=== Mit csinál? === | === Mit csinál? === | ||
− | Futtassuk le az alábbi példákat és értelmezzük | + | Futtassuk le az alábbi példákat és értelmezzük őket mi is történik bennük és hogyan érjük ezt el. |
<python> | <python> | ||
128. sor: | 127. sor: | ||
=== Oldjuk meg === | === Oldjuk meg === | ||
− | |||
# Keressük meg az összes olyan 1000 alatti négyzetszámot, melynél eggyel nagyobb szám prím. Pl a 4 ilyen. | # Keressük meg az összes olyan 1000 alatti négyzetszámot, melynél eggyel nagyobb szám prím. Pl a 4 ilyen. | ||
− | # Keressük meg az összes olyan 100 alatti számpárt, melyekre igaz, hogy mindkettő prím és az | + | # Keressük meg az összes olyan 100 alatti számpárt, melyekre igaz, hogy mindkettő prím és az egész osztással vett eredményük is prím. Pl (11, 2) ilyen. |
# Keressük meg az összes egy jegyű számhármast, mely egymás után írva megegyezik a köbeik összegével. Ilyen például az 1, 5, 3, mert 1^3 + 5^3 + 3^3 == 153 | # Keressük meg az összes egy jegyű számhármast, mely egymás után írva megegyezik a köbeik összegével. Ilyen például az 1, 5, 3, mert 1^3 + 5^3 + 3^3 == 153 | ||
# Keressük meg az összes olyan 1000 alatti számot, melynek négyzete megegyezik az nálánál kisebb osztói köbeinek az összegével. (Egy kis csavar a [https://hu.wikipedia.org/wiki/T%C3%B6k%C3%A9letes_sz%C3%A1mok tökéletes számokon]) | # Keressük meg az összes olyan 1000 alatti számot, melynek négyzete megegyezik az nálánál kisebb osztói köbeinek az összegével. (Egy kis csavar a [https://hu.wikipedia.org/wiki/T%C3%B6k%C3%A9letes_sz%C3%A1mok tökéletes számokon]) | ||
# Keressük meg az összes olyan 10000 alatti számot, mely legalább kétféleképpen írható fel 2 darab szám köbének összegeként. | # Keressük meg az összes olyan 10000 alatti számot, mely legalább kétféleképpen írható fel 2 darab szám köbének összegeként. | ||
+ | |||
+ | * Adjuk meg az '''cos(x)sin(x)x^2''' függvény első 10 deriváltját (beleértve a 0. deriváltat) a 0-ban egy 11 hosszú listaként. | ||
+ | * Ábrázoljuk ezt a függvényt 4 deriváltjával együtt a '''[-2pi, 2pi]''' intervallumon! | ||
[[Informatika1-2017/Gyakorlat10|Előző gyakorlat]] - [[Informatika1-2017#Gyakorlatok|Fel]] - [[Informatika1-2017/Gyakorlat12|Következő gyakorlat]] | [[Informatika1-2017/Gyakorlat10|Előző gyakorlat]] - [[Informatika1-2017#Gyakorlatok|Fel]] - [[Informatika1-2017/Gyakorlat12|Következő gyakorlat]] |
A lap jelenlegi, 2017. november 20., 15:01-kori változata
Előző gyakorlat - Fel - Következő gyakorlat
Tartalomjegyzék |
Mátrixozás még
Emlékeztető és még pár dolog
Mátrixot megadhatunk a következő módon:
m = matrix([[1, 0], [0, 1]])
Ez a következő mátrixot eredményezi:
1 0 0 1
Blokkmátrixot, csupa 1-es mátrixot, továbbá főátlóval adott mátrixot is kényelmesen adhatunk meg:
A = diagonal_matrix([1, 5]) B = ones_matrix(2, 2) block_matrix([[A, -1*A], [A^(-1), B]])
Ez a következő mátrixot eredményezi:
1 0| -1 0 0 5| 0 -5 ------+------- 1 0| 1 1 0 1/5| 1 1
Egy mátrix determinánsát kiszámolhatjuk a det metódussal:
m.det()
Feladatok
Blokkmátrix
Számoljuk ki a determinánsát a következő blokkmátrixnak:
X I O X
ahol I a 3x3-as egységmátrix és O a 3x3-as csupa 0 mátrix, X pedig a következő:
0 -1 -1 -1 0 -1 -1 -1 0
Egyenlet megoldás
Oldjuk meg az Ax = b alakú egyenletrendszert, ahol A és b rendre:
1 -1 0 | 1 3 1 -1 | 1 -2 0 1 | 2
Használjuk az előadáson tanult solve_right metódust!
Ha megkaptuk az eredményt, akkor állítsuk át a mátrixot, hogy GF(3) felett legyen értelmezve (a change_ring metódussal) és nézzük meg így is a megoldást.
Összefüggő
Határozzuk meg, hogy az alábbi mátrix sorai (vagy oszlopai) milyen x értékekre lesznek összefüggők. (Használjuk a solve parancsot a fentiekkel együtt.)
x 0 1 0 2 x 1 x -1
Listaértelmezések
Emlékeztető
[kifejezés for elem in bejárható_objektum]
Egy olyan listát hoz létre melyben a kifejezés szerepel a bejárható_objektum minden elemére. Bejárható objektum például egy lista, az is amit a range függvény hoz létre.
[kifejezés if feltétel else kifejezés_alt for elem in bejárható_objektum]
Mint az elõzõ, de csak azok az elemek lesznek benne melyekre teljesül a feltétel.
[kifejezés if feltétel1 else kifejezés_alt for elem1 in bejárható_objektum1 for elem2 in bejárható_objektum2 for elemN in bejárható_objektumN]
Több feltétel és ciklus is írható akár.
Pl:
[n^2 for n in range(1, 5)] # [1, 4, 9, 16] [n for n in [-1, 2, -3, 4] if n > 0] # [2, 4]
Feladatok
Mit csinál?
Futtassuk le az alábbi példákat és értelmezzük őket mi is történik bennük és hogyan érjük ezt el.
[n for n in range(1, 10)]
[(n, m) for n in range(1, 10) for m in range(1, 5)]
[n for n in range(1, 10) if is_prime(n)]
[n for n in range(1, 100) if n % 5 == 0 and n % 7 == 1]
[(n, m) for n in range(1, 5) for m in range(n, 5)]
[(m, n) for n in range(1, 10) for m in range(n, 10) if m % n == 0]
sorted([(m, n) for n in range(1, 10) for m in range(n, 10) if m % n == 0])
sum([n for n in range(1, 10) if is_prime(n)])
Az utolsóhoz egy kis spoiler, ha nem menne: spoiler
[n for n in range(1, 100) if n == sum([m for m in range(1, n) if n % m == 0])]
Oldjuk meg
- Keressük meg az összes olyan 1000 alatti négyzetszámot, melynél eggyel nagyobb szám prím. Pl a 4 ilyen.
- Keressük meg az összes olyan 100 alatti számpárt, melyekre igaz, hogy mindkettő prím és az egész osztással vett eredményük is prím. Pl (11, 2) ilyen.
- Keressük meg az összes egy jegyű számhármast, mely egymás után írva megegyezik a köbeik összegével. Ilyen például az 1, 5, 3, mert 1^3 + 5^3 + 3^3 == 153
- Keressük meg az összes olyan 1000 alatti számot, melynek négyzete megegyezik az nálánál kisebb osztói köbeinek az összegével. (Egy kis csavar a tökéletes számokon)
- Keressük meg az összes olyan 10000 alatti számot, mely legalább kétféleképpen írható fel 2 darab szám köbének összegeként.
- Adjuk meg az cos(x)sin(x)x^2 függvény első 10 deriváltját (beleértve a 0. deriváltat) a 0-ban egy 11 hosszú listaként.
- Ábrázoljuk ezt a függvényt 4 deriváltjával együtt a [-2pi, 2pi] intervallumon!