Informatika1-2015/Gyakorlat9megoldasok
Tartalomjegyzék |
Mi ez?
Figyeljük meg a következőket.
A=[1,2,3;4,5,6;7,8,9]; B=[9,8,7;6,5,4;3,2,1]; trace(A*B') A(:)'*B(:)
Mi a trace(A*B')?
Megoldás
A*B' nyoma.
LER (könnyű)
Számoljuk ki a következő lineáris egyenletrendszer megoldását:
x + 2y = 3 4x + 5y = 6
Megoldás
A=[1,2;4,5] b=[3;6]
és ekkor egyszerűen:
x=A^-1*b
Erre van egy speciális szintaxis:
(A^-1)*b = A\b
És inverzzel jobbról szorozva:
B*(A^-1) = B/A
Még LER (könnyű - közepes)
Oldjuk meg a következő egyenletrendszereket:
x + 5y = 1 2x + 4y = 2
x + 5y = 1 2x + 4y = 2 5x - 6y = -1
x + 2y + 5z = 1 5x + 4y + 6z = 2
Megoldás
A = [1, 5; 2, 4] b = [1; 2] A\b
Túlhatározott egyenletrendszer, itt a legjobb közelítést adja meg:
A = [1, 5; 2, 4; 5, -6] b = [1; 2; -1] A\b
Alulhatározott egyenletrendszer, itt a sortérbe eső megoldást kapjuk:
A = [1, 2, 5; 5, 4, 6] b = [1; 2] A\b
Nagy mátrix okosan (közepes)
- Készítsük el a következő mátrixot okosan! (Minél kevesebb karaktert használva.)
1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 2 2 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 2 5 2 2 2 2 2 2 2 2 2 2 6 2 2 2 2 2 2 2 2 2 2 7 2 2 2 2 2 2 2 2 2 2 8 2 2 2 2 2 2 2 2 2 2 9 2 2 2 2 2 2 2 2 2 2 10
- És most ezt:
0 1 0 0 0 0 0 0 0 -1 0 1 0 0 0 0 0 0 0 -1 0 1 0 0 0 0 0 0 0 -1 0 1 0 0 0 0 0 0 0 -1 0 1 0 0 0 0 0 0 0 -1 0 1 0 0 0 0 0 0 0 -1 0 1 0 0 0 0 0 0 0 -1 0 1 0 0 0 0 0 0 0 -1 0
- Sakktáblaszabály
1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1
Megoldás
ones(10,10)*2 + diag(-1:8)
diag(ones(9,1),1) + diag(ones(9,1)*(-1),-1) [-1, 1, -1, 1, -1]'*[-1, 1, -1, 1, -1]
Függvény mátrixokon (közepes)
Írjunk függvényt, mely az adott mátrix minden elemére alkalmazza a 2sin2x + 1 függvényt.
Megoldás
function R = fv(x) R = 2*sin(x).^2+1; endfunction
fv([1, 2; 3, 4])
Részmátrix (közepes - nehéz)
Írjunk függvényt, mely egy 5x5-ös mátrix 2. és 4. sorából és 1., 3. és 5. oszlopából álló mátrixot adja.
Megoldás
function R = fv2(x) R = x(2:2:4,1:2:5); endfunction
fv2([1,2,3,4,5;6,7,8,9,0;1,2,3,4,5;6,7,8,9,0;1,2,3,4,5])
Részmátrixon függvény (közepes - nehéz)
Írjuk meg az előző két függvény kombinációját, mely az adott mátrix 2. és 4. sorából és 1., 3. és 5. oszlopából álló mátrixon alkalmazza a 2sin2x + 1 függvényt.
Megoldás
function R = fv3(x) R = fv(fv2(x)); endfunction
fv3([1,2,3,4,5;6,7,8,9,0;1,2,3,4,5;6,7,8,9,0;1,2,3,4,5])
Minden második oszlop (közepes - nehéz))
Írjunk függvényt, mely tetszőleges mátrix minden második oszlopából álló mátrixot adja vissza. (Segítség, a size sorvektorban megadja a mátrix dimenzióját. (size nélkül is meg lehet oldani))
Megoldás
function R = fv4(x) R = x(:,2:2:end); endfunction
fv4([1,2,3,4,5;6,7,8,9,0;1,2,3,4,5;6,7,8,9,0;1,2,3,4,5])
Függvény alkalmazás csak adott elemeken (nehéz)
Írjunk függvényt, mely a kapott mátrix csak minden második oszlopán hajtja végre a 2sin2x + 1 függvényt. (Az eredmény mátrix dimenziója ugyanaz, mint a kapott mátrix.)
Megoldás
function R = fv5(x) R = x; R(:,2:2:end) = fv(R(:,2:2:end)); endfunction
fv5([1,2,3,4,5;6,7,8,9,0;1,2,3,4,5;6,7,8,9,0;1,2,3,4,5])