Informatika1-2015/Gyakorlat11
1. sor: | 1. sor: | ||
− | + | = Mátrixozás még = | |
− | + | == Emlékeztetõ és még pár dolog == | |
Mátrixot megadhatunk a következõ módon: | 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 következõ mátrixot eredményezi: | Ez a következõ mátrixot eredményezi: | ||
11. sor: | 11. sor: | ||
0 1 | 0 1 | ||
− | Blokkmátrixot, továbbá fõátlóval adott mátrixot is kényelmesen adhatunk meg: | + | 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]) | ||
− | block_matrix([[A, -1*A], [A^(-1), | + | B = ones_matrix(2, 2) |
+ | block_matrix([[A, -1*A], [A^(-1), B]]) | ||
</python> | </python> | ||
Ez a következõ mátroxot eredményezi: | Ez a következõ mátroxot eredményezi: | ||
20. sor: | 21. sor: | ||
0 5| 0 -5 | 0 5| 0 -5 | ||
------+------- | ------+------- | ||
− | 1 0| 1 | + | 1 0| 1 1 |
− | 0 1/5| | + | 0 1/5| 1 1 |
Egy mátrix determinánsát kiszámolhatjuk a '''det''' metódussal: | Egy mátrix determinánsát kiszámolhatjuk a '''det''' metódussal: | ||
27. sor: | 28. sor: | ||
m.det() | m.det() | ||
</python> | </python> | ||
+ | |||
+ | == Feladatok == | ||
=== Összefüggõ === | === Összefüggõ === | ||
37. sor: | 40. sor: | ||
=== Blokkmátrix === | === Blokkmátrix === | ||
− | Számoljuk ki a determinánsát a következõ | + | Számoljuk ki a determinánsát a következõ blokkmátrixnak: |
X I | X I | ||
O X | O X | ||
− | ahol | + | 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 | ||
+ | |||
+ | = Listaértelmezések = | ||
− | == | + | == Emlékeztetõ == |
<python> | <python> |
A lap 2015. november 24., 07:48-kori változata
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átroxot 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
Ö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
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
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 for elem in bejárható_objektum if feltétel]
Mint az elõzõ, de csak azok az elemek lesznek benne melyekre teljesül a feltétel.
[kifejezés for elem1 in bejárható_objektum1 if feltétel1 for elem2 in bejárható_objektum2 if feltétel2 for elemN in bejárható_objektumN if feltételN]
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 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)