Informatics1-2017/Practice11
Tartalomjegyzék |
Using Sage
Sage server
If your browser finds the certificate untrustworthy, accept it manually!
More matrices
Reminder and new stuff
In sage we can define a matrix as follows:
m = matrix([[1, 0], [0, 1]])
This results in the matrix:
1 0 0 1
Blockmatrices, all one matrices, diagonal matrices can be created easily, like in octave:
A = diagonal_matrix([1, 5]) B = ones_matrix(2, 2) block_matrix([[A, -1*A], [A^(-1), B]])
This results in the matrix:
1 0| -1 0 0 5| 0 -5 ------+------- 1 0| 1 1 0 1/5| 1 1
The det method calculates the determinant of the matrix:
m.det()
Tasks
Blockmatrix
Calculate the determinant of the following blockmatrix:
X I O X
where I is the 3x3 identity matrix and O is the 3x3 all 0 matrix, X is the following:
0 -1 -1 -1 0 -1 -1 -1 0
Equations
Solve the following system of equations with the form Ax = b, where A and b are:
1 -1 0 | 1 3 1 -1 | 1 -2 0 1 | 2
Use the solve_right method from the lecture!
Once you have the solution, make the matrix into a matrix over the ring GF(3) (with the change_ring method), solve it with this new matrix.
Linear independence
Find out for which values of x would the rows (or columns) of the following matrix be dependent / independent. (Use the solve method.)
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észosztá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.