Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.
| Download
Project: Algebra_II_viesas
Views: 142Image: ubuntu2004
# Kaip papildyti vektorių sistemą iki erdvės bazės? def papildom_poerdviai(W, V): """ Gražina tiesinės erdvės V poerdvio W papildinio iki V bazę. Kitaip sakant, randa tokį poerdvį U, kad V yra W ir U tiesioginė suma ir gražina jo bazę. """ Q, pi, lift = V.quotient_abstract(W) Basis = [lift(v) for v in Q.basis()] return Basis # pi yra projekcijos atvaizdis iš erdvės V į faktorerdvę V/W: pi(v) = v + W. # lift yra "atvirkštinis" atvaizdis iš faktorerdvės Q = V/W į erdvę V, tenkinantis # lygybę pi(lift(u)) = u su visais u iš Q. def papildom(vec, V): """ Tiesinės erdvės V vektorių šeimą vec papildo vektoriais v1,..., vn iki erdvės V bazės ir gražina papildytus vektorius v1,..., vn. """ return papildom_poerdviai(V.span(vec), V)
A_eilutes = [[244,-103,-92,24,71,-24,37,-16], [697,-297,-265,67,203,-68,112,-48], [781,-336,-294,77,227,-76,124,-54], [341,-148,-129,37,97,-32,56,-25], [781,-336,-297,76,230,-76,125,-54], [-21,13,6,3,-3,3,-12,4], [341,-148,-129,34,97,-32,59,-25], [-571,246,217,-52,-167,56,-94,42]] A = matrix(QQ,8,8,A_eilutes)
# 5 pavyzdys. Rasime matricos show(A)
244697781341781−21341−571−103−297−336−148−33613−148246−92−265−294−129−2976−1292172467773776334−527120322797230−397−167−24−68−76−32−763−32563711212456125−1259−94−16−48−54−25−544−2542
# Žodano formą ir atitinkamą bazę.
Sprendimas
# Randame matricos charakteristinį polinomą: p = A.charpoly(var = 't') show(p.factor())
(t−3)8
# Nagrinėjame matricą B := A-3*E ir skaičiuojame jos laipsnių branduolių dimensijas: B = A - 3*matrix.identity(8) show(B)
241697781341781−21341−571−103−300−336−148−33613−148246−92−265−297−129−2976−1292172467773476334−527120322797227−397−167−24−68−76−32−760−32563711212456125−1256−94−16−48−54−25−544−2539
# Matricos B branduolys ker B ir jo dimensija: L1 = B.left_kernel() L1.dimension()
4
# Matricos B^2 branduolys ker B^2 ir jo dimensija: L2 = (B**2).left_kernel() L2.dimension()
7
# Matricos B^3 branduolys ker B^3 ir jo dimensija: L3 = (B**3).left_kernel() L3.dimension()
8
# Poerdvio L2 bazę pildant iki erdvės L3 bazės, reikia pridėti 1 vektorių, kurį # atitiks lygiai vianas 3-os eilės Žordano langelis. # Rasime šį vektorių: v1 = papildom(L2.basis(), L3)[0] v1
(1, 0, 0, 0, 0, 0, 0, 0)
# Suskaičiuojame dar du vektorius: v2 = v1*B # priklauso L2 v3 = v2*B # priklauso L1 v2 v3
(241, -103, -92, 24, 71, -24, 37, -16)
(330, -143, -125, 29, 96, -32, 56, -23)
# Vektorius v1, v2 ir v3 atitinka lygiai vianas 3-os eilės Žordano langelis. # Poerdvio L1 bazę pildant iki erdvės L2 bazės, reikia pridėti 3 vektorius. # Vieną vektorių jau turime: vektorius v2 priklauso L2, bet nepriklauso L1. # Taigi vektorių šeimą {v2, L1 bazė} pildant iki L2 bazės, reikės pridėti # lygiai 2 vektorius. Kiekvieną iš šių vektorių atitiks 2-os eilės Žordano # langelis. Rasime šiuos vektorius: vektoriai = papildom(L1.basis()+[v2], L2) v4 = vektoriai[0] v6 = vektoriai[1] v4 v6
(1, 0, 0, 0, 0, 0, 0, 1)
(0, 1, 0, 0, 0, 0, 0, 1)
# Suskaičiuojame dar du vektorius: v5 = v4*B # priklauso L1 v7 = v6*B # priklauso L1 v5 v7
(-330, 143, 125, -28, -96, 32, -57, 23)
(126, -54, -48, 15, 36, -12, 18, -9)
# Vektorius v4, v5 atitinka vienas 2-os eilės Žordano langelis, o # vektorius v6, v7 -- dar vienas 2-os eilės Žordano langelis. # Poerdvyje L1 turime 3 tiesiškai nepriklausomus vektorius v3,v5 ir v7. # Šią vektorių šeimą pildant iki erdvės L1 bazės, reikės pridėti vieną # vektorių. Rasime šį vektorių: v8 = papildom([v3,v5,v7], L1)[0] v8
(1, 0, 0, 0, -9/2, 3/2, 17/4, -13/4)
# Taigi radome Žordano bazę v1,v2,...,v8. # Perėjimo matrica (iš standartinės bazės į Žordano bazę): T = matrix(QQ,8,8,[v1,v2,v3,v4,v5,v6,v7,v8]) show(T)
12413301−330012610−103−14301431−5400−92−12501250−480024290−280150071960−96036−290−24−320320−1223037560−570184170−16−231231−9−413
# Pradinės matricos Žordano matrica: show(T*A*(T^(-1)))
3000000013000000013000000003000000013000000003000000013000000003