april04 student
Član broj: 215443 Poruke: 10 *.adsl.net.t-com.hr.
|
Dobro veče, evo mene još malo :)
Sad moram napraviti dvije matrice, A i B, prema slijedćim pravilima:
A matrica mora biti oblika (30,20) i ima random elemente iz skupa {-1,0,1}
B matrica je kvadratna matrica reda 20, koja na glavnoj dijagonali i dijagonali iznad nje ima random elemente iz [-5,5]
To sam izveo ovako:
A = Table[Random[Integer, {-1, 1}], {30}, {20}]
B = DiagonalMatrix[Table[Random[Integer, {-5, 5}], {20}], 0, 20] + DiagonalMatrix[Table[Random[Integer, {-5, 5}], {19}], 1, 20]
E sad, trebam generirati random matrice oblika AB i napraviti 70 iteracija, te ispisati te matrice i odrediti im rang.
To sam riješio pomoću While petlje - odnosno, u svakoj iteraciji generiram A matricu koju množim sa B matricom i ispisujem rezultat i rang te nove matrice
n = 1; While[n < 71, Print[MatrixForm[c = (Table[Random[Integer, {-1, 1}], {30}, {20}]).(DiagonalMatrix[Table[Random[Integer, {-5, 5}], {20}], 0, 20] + DiagonalMatrix[Table[Random[Integer, {-5, 5}], {19}], 1, 20])], " je rang matrice :)" MatrixRank[c]]; n++]
Nisam stavljao Print[MatrixForm[c=A.B]] jer sam skužio da mi onda izbaci iste matrice, jel...koje su već izgenerirane. Ovako im generira baš u petlji, u svakoj iteraciji po novu matricu.
I sad mi je zadatak od tih 70 matrica odabrati onu sa najmanjim rangom i odrediti joj jezgu i defekt. Za to dvoje ću se snaći, ali mene zanima jel postoji neka funkcija koja bi prošla kroz tih 70 matrica i odabrala onu sa najmanjim rangom, ili ja moram ručno skrolati i odabrati?
Napomenuo bih da se u zadatku kaže da ako ima više matrica sa najmanjim rangom (što je kod mene slučaj), onda nek se odabere po želji (naravno, od tih sa najmanjih rangom).
|