Informatics1-2017/Practice11

A MathWikiből
A lap korábbi változatát látod, amilyen Kkovacs (vitalap | szerkesztései) 2017. november 20., 06:24-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

Tartalomjegyzék

Using Sage

Sage server

https://sage.math.bme.hu/

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

  1. Keressük meg az összes olyan 1000 alatti négyzetszámot, melynél eggyel nagyobb szám prím. Pl a 4 ilyen.
  2. 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.
  3. 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
  4. 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)
  5. 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.
Személyes eszközök