Cvičení č. 3: Řešení soustav lineárních rovnic

Tomáš Kalvoda, KAM FIT ČVUT, 2019

Uvažme soustavu s maticí

A = matrix([
        [1,  0,  1/2],
        [0,  2,   -1],
        [1,  2, -1/2]
    ])

show(A)
(10120211212)\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & 0 & \frac{1}{2} \\ 0 & 2 & -1 \\ 1 & 2 & -\frac{1}{2} \end{array}\right)

a pravou stranou

b = vector([1,2,3])

show(b)
(1,2,3)\newcommand{\Bold}[1]{\mathbf{#1}}\left(1,\,2,\,3\right)

Nalezení partikulárního řešení.

x = A.solve_right(b)

show(x)
(1,1,0)\newcommand{\Bold}[1]{\mathbf{#1}}\left(1,\,1,\,0\right)

Ověřme, že se skutečně jedná o partikulární řešení naší soustavy:

A * x - b
(0, 0, 0)

Nalezení jádra matice soustavy, tj. množiny (ve skutečnosti podprostoru) všech řešení homogenní soustavy.

kern = A.right_kernel()

kern
Vector space of degree 3 and dimension 1 over Rational Field
Basis matrix:
[ 1 -1 -2]

Jádro je jednodimenzionální podprostor

kern.dimension()
1

s bází

kern.basis()
[
(1, -1, -2)
]

Vektor v bázi opravdu řeší homogenní soustavu:

A * kern.basis()[0]
(0, 0, 0)

Množina všech řešení je tedy dána {(1+t,1t,2t)tC}\{(1+t, 1-t,-2t)\mid t\in\mathbb{C}\}.