Informatika1-2015/Gyakorlat9megoldasok

A MathWikiből
A lap korábbi változatát látod, amilyen Kkovacs (vitalap | szerkesztései) 2015. december 8., 21:57-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

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

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
Személyes eszközök