Interaktyvus pratimas nr. 9. Matricos ir determinantai. Tiesiniai operatoriai
Paskaitos metu kalbėjome apie geometrinę matricų interpretaciją. Šiame interaktyviame pratime nagrinėsime posūkio bei atspingžio tiesinius operatorius ir pavaizduosime juos matriciniu pavidalu. Taip pat išsiaiškinsime matricos determinanto geometrinę prasmę. Tam tikslui nagrinėsime vienetinio kvadrato, pavaizduoto žemiau, kelias transformacijas. Trečioje dalyje panagrinėsime tikrinių reikšmių ir vektorių sąvokas.
I dalis. Posūkio ir atspindžio tiesiniai operatoriai
Tarkime, kad turime vienetinį kvadratą
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
Pradėsime nuo posūkio operatoriaus, t.y. pasuksime šį kvadratą kampu
. Galite keisti kampą α (laipsniais) ir stebėti, kaip keičiasi posūkio matrica, kuri atrodo taip: Taip pat galite matyti grafinę interpretaciją
disp('Posūkio matrica yra: ')
disp(A)
0.5000 -0.8660
0.8660 0.5000
plot([0 0 1 1 0],[0 1 1 0 0]);
Vir_x = [A00(1) A01(1) A11(1) A10(1) A00(1)];
Vir_y = [A00(2) A01(2) A11(2) A10(2) A00(2)];
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
Dabar nagrinėsime atspindžio operatorių. Galite keisti ašies
, kurios atžvilgiu bus daromas atspindys, koordinates (akivaizdu, kad vektorius turi būti nenulinis). MATLAB apskaičiuos atspindžio matricą ir nubraizys grafinį vaizdą (kartu braižomas ir ašies ortas). Atspindžio matrica yra skaičiuojama taip: čia
yra vienetinė matrica. B = eye(2) - 2 * (a * a');
disp('Atspindžio matrica yra: ')
disp(B)
-0.2800 0.9600
0.9600 0.2800
plot([0 0 1 1 0],[0 1 1 0 0]);
Vir_x = [B00(1) B01(1) B11(1) B10(1) B00(1)];
Vir_y = [B00(2) B01(2) B11(2) B10(2) B00(2)];
quiver(0,0,aa(1),aa(2),0)
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
Pademonstruosime pagrindinę matricų daugybos savybę, t.y.
. Tam panaudosime anksčiau sugeneruotas posūkio ir atspindžio operatorius. Pavaizduosime, kaip transformuoja šių matricų sandaugos vienetinį kvadratą. Laikysime, kad A yra posūkio matrica, o B yra atspindžio matrica. Tarkime, kad pirmą atliekame posūkį, o tada ieškome atspindžio. Tada vienetinį kvadratą veikia sandauga
. Turime tokį vaizdą: plot([0 0 1 1 0],[0 1 1 0 0]);
Vir_x = [C00(1) C01(1) C11(1) C10(1) C00(1)];
Vir_y = [C00(2) C01(2) C11(2) C10(2) C00(2)];
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
Dabar tarkime, kad pirmą pritaikome atspindžio transformaciją, o tada atliekame posūkį. Tada vienetinį kvadratą veikia sandauga
. Turime tokį vaizdą: plot([0 0 1 1 0],[0 1 1 0 0]);
Vir_x = [D00(1) D01(1) D11(1) D10(1) D00(1)];
Vir_y = [D00(2) D01(2) D11(2) D10(2) D00(2)];
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
Palyginkite gautus vaizdus. Dabar pagrindinė matricų savybė yra akivaizdi!
II dalis. Determinanto geometrinė interpretacija
Apskaičiuokime pirmoje dalyje nagrinėtų matricų determinantus:
Šiuos rezultatus lengvai galima įrodyti. Siūlome šio kurso klausytojams tai padaryti patiems.
Dabar pademonstruosime kvadratinės matricos determinanto geometrinę interpretaciją. Kurso klausytojui siūlome pasirinkti sveikąją determinanto reikšmę iš intervalo
. MATLAB sugeneruos matricą, kurios determinantas yra jūsų pasirinktas skaičius ir paveiks šia matrica vienetinį kvadratą. Žemiau bus nubraižytas grafinis vaizdas. plot([0 0 1 1 0],[0 1 1 0 0]);
Vir_x = [C00(1) C01(1) C11(1) C10(1) C00(1)];
Vir_y = [C00(2) C01(2) C11(2) C10(2) C00(2)];
axis([-10, 10, -10, 10]);
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
Apskaičiuosime gauto lygiagretainio plotą:
Plotas = norm(cross([C10; 0], [C01; 0]));
Palyginkime lygiagretainio plotą ir determinantą:
disp(['Jūsų pasirinktas determinantas det(C) = ' num2str(d)]);
Jūsų pasirinktas determinantas det(C) = 2
disp(['Gauto lygiagretainio plotas yra lygus: ' num2str(Plotas)]);
Gauto lygiagretainio plotas yra lygus: 2
Taigi matome, kad antros eilės matricos determinanto modulis rodo santykį tarp pradinės ir po transformacijos gautų figūrų plotų. Tas pats galioja ir tūriams trimačiu atveju.
III dalis. Tikrinės reikšmės ir tikriniai vektoriai
Dabar panagrinėsime kvadratinės matricos tikrines reikšmes ir tikrinius vektorius. Priminsime, kad tiesinio operatoriaus A tikriniu vektoriumi vadinamas nenulinis vektorius
, kuris tenkina sąlygą: Skaičius λ yra vadinamas tikrine reikšme. Sakoma, kad tikrinis vektorius
atitinka tikrinę reikšmę λ. Šioje dalyje mes ištirsime geometrinę tikrinių reikšmių ir vektorių interpretaciją. Tam panaudosime specialaus tipo matricas - simetrines matricas, t.y. tokias, kad
. Šį matricų tipą mes nagrinėsime todėl, kad jų tikrinės reikšmės visada yra realios. Taip pat apsiribosime
matricomis. Žemiau bus sugeneruota
simetrinė matrica D, apskaičiuoti jos tikriniai vektoriai ir tikrinės reikšmes. D = [d(1) d(2); d(2) d(1)]
disp(['Tikrinės reikšmės yra: ' num2str(vals(1, 1)) ' ir ' num2str(vals(2, 2))]);
Tikrinės reikšmės yra: 3 ir 7
disp(['Tikriniai vektoriai, atitinkantys tikrinę reikšmę ' num2str(vals(1, 1)) ': (' num2str(vecs(1, 1)) 't; ' num2str(vecs(2, 1)) 't), čia t - bet koks realusis skaičius']);
Tikriniai vektoriai, atitinkantys tikrinę reikšmę 3: (-0.70711t; 0.70711t), čia t - bet koks realusis skaičius
disp(['Tikriniai vektoriai, atitinkantys tikrinę reikšmę ' num2str(vals(2, 2)) ': (' num2str(vecs(1, 2)) 's; ' num2str(vecs(2, 2)) 's), čia s - bet koks realusis skaičius']);
Tikriniai vektoriai, atitinkantys tikrinę reikšmę 7: (0.70711s; 0.70711s), čia s - bet koks realusis skaičius
Galime palyginti, kuo tikriniai vektoriai skiriasi nuo kitų vektorių. Kurso klausytojus siūlome pasirinkti bet kokį vektorių ir paveikti jį aukščiau sugeneruota matrica D. Žemiau bus pavaizduotas tiek pradinis vektorius, tiek jau pavektas tiesiniu operatoriumi D.
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
Galite matyti, kad pasirinkę tikrinį vektorių
, abu pavaizduoti vektoriai (
ir
) yra vienoje tiesėje. Tai reiškia, kad egzistuoja toks skaičius
kad iš jo padauginę tikrinį vektorių
gausime vektorių
. Būtent tokią geometrinę prasmę ir turi tikrinės reikšmė ir jas atitinkantys tikriniai vektoriai. Pabandykite patys
- Įrodykite, kad posūkio ir atspindžio matricų determinantai yra atitinkamai 1 ir -1.
- Įrodykite, kad simetrinės
tikriniai vektoriai yra
ir
. - Atlikite vienetinio kūbo transformaciją su fiksuota determinanto reikšme (braižyti nebūtina). Įsitikinkite, kad gautų tūrių santykis yra lygus transformacijos matricos determinantui.