Code
A_eig <- matrix(c(4,1,
1,4),
nrow = 2, byrow = TRUE)
A_eig [,1] [,2]
[1,] 4 1
[2,] 1 4
Pre štvorcovú maticu \(\mathbf A\) platí, že vlastné číslo \(\lambda\) a príslušný vlastný vektor \(\mathbf v \ne \mathbf 0\) spĺňajú vzťah
\[ \mathbf A \mathbf v = \lambda \mathbf v. \] Hodnota \(\lambda\) určuje, ako sa pri násobení maticou mení veľkosť prípadne orientácia vlastného vektora.
Použijeme symetrickú maticu :
\[ \mathbf A = \begin{pmatrix} 4 & 1 \\ 1 & 4 \end{pmatrix}. \] Vlastné čísla vypočítame zo vzťahu
\[ \det(\mathbf A-\lambda \mathbf I)=0. \] Pre našu maticu dostávame
\[ \mathbf A-\lambda \mathbf I = \begin{pmatrix} 4-\lambda & 1 \\ 1 & 4-\lambda \end{pmatrix}. \] Determinant je
\[ \det(\mathbf{A}-\lambda \mathbf{I})=(4-\lambda)^2-1. \] Po úprave dostaneme charakteristickú rovnicu
\[ (4-\lambda)^2-1=\lambda^2-8\lambda+15=(\lambda-5)(\lambda-3)=0. \] Vlastné čísla sú teda
\[ \lambda_1=5, \qquad \lambda_2=3. \]Výpočet vlastného vektora pre \(\lambda_1=5\)
Vlastný vektor vypočítame zo vzťahu \[ (\mathbf A-\lambda_1\mathbf I)\mathbf h_1=\mathbf 0. \] Po dosadení \(\lambda_1=5\) dostaneme
\[ \begin{pmatrix} -1 & 1 \\ 1 & -1 \end{pmatrix} \begin{pmatrix} h_{11} \\ h_{21} \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix} \] Získame sústavu rovníc
\[ -h_{11}+h_{21}=0, \] \[ h_{11}-h_{21}=0. \] Z toho vyplýva
\[ h_{11}=h_{21}. \] Pri normalizácii vlastného vektora platí
\[ \sqrt{h_{11}^2+h_{21}^2}=1. \] Dostávame
\[ h_{11}=h_{21}=\sqrt{\frac{1}{2}}. \] Vlastný vektor prislúchajúci vlastnému číslu \(\lambda_1=5\) je teda \[ \mathbf h_1= \begin{pmatrix} \sqrt{\frac{1}{2}}\\ \sqrt{\frac{1}{2}} \end{pmatrix}. \]Výpočet vlastného vektora pre \(\lambda_2=3\)
Pre druhé vlastné číslo použijeme rovnaký posup
\[ (\mathbf A-\lambda_2\mathbf I)\mathbf h_2=\mathbf 0. \] Po dosadení \(\lambda_2=3\) dostávame
\[ \begin{pmatrix} 1 & 1 \\ 1 & 1 \end{pmatrix} \begin{pmatrix} h_{12}\\ h_{22} \end{pmatrix} = \begin{pmatrix} 0\\ 0 \end{pmatrix} \] Dostávame podmienku
\[ h_{12}+h_{22}=0, \]
z ktorej vyplýva
\[ h_{22}=-h_{12}. \]
Pri normalizácii platí
\[ \sqrt{h_{12}^2+h_{22}^2}=1. \]
Môžeme teda zvoliť \[ h_{12}=\sqrt{\frac{1}{2}}, \qquad h_{22}=-\sqrt{\frac{1}{2}}. \]
Vlastný vektor prislúchajúci vlastnému číslu \(\lambda_2=3\) je
\[ \mathbf h_2= \begin{pmatrix} \sqrt{\frac{1}{2}}\\ -\sqrt{\frac{1}{2}} \end{pmatrix}. \]
Pre prvý vlastný vektor platí
\[ \mathbf A\mathbf h_1 = \begin{pmatrix} 4&1\\ 1&4 \end{pmatrix} \begin{pmatrix} \sqrt{\frac{1}{2}}\\ \sqrt{\frac{1}{2}} \end{pmatrix} = 5 \begin{pmatrix} \sqrt{\frac{1}{2}}\\ \sqrt{\frac{1}{2}} \end{pmatrix}. \] Teda platí
\[ \mathbf A\mathbf h_1=\lambda_1\mathbf h_1. \]Matice vlastných čísel a vlastných vektorov
A_eig <- matrix(c(4,1,
1,4),
nrow = 2, byrow = TRUE)
A_eig [,1] [,2]
[1,] 4 1
[2,] 1 4
Vypočítame vlastné čísla a vlastné vektory
eig_A <- eigen(A_eig, symmetric = TRUE)
eig_Aeigen() decomposition
$values
[1] 5 3
$vectors
[,1] [,2]
[1,] 0.7071068 -0.7071068
[2,] 0.7071068 0.7071068
Výsledok môžeme vypísať aj samostatne
lambda_A <- eig_A$values
V_A <- eig_A$vectors
lambda_A[1] 5 3
V_A [,1] [,2]
[1,] 0.7071068 -0.7071068
[2,] 0.7071068 0.7071068
Znak “$” umožňuje vybrať konkrétnu časť výsledku, keď chceme vypočítať iba vlastné čísla tak použijeme
eigen(A_eig, symmetric = TRUE, only.values = TRUE)$values[1] 5 3
Na overenie použijeme prvé vlastné číslo a prvý vlastný vektor
lambda_1 <- lambda_A[1]
v_1 <- V_A[, 1]
lava_strana <- as.vector(A_eig %*% v_1)
prava_strana <- lambda_1 * v_1
cat("Ľavá strana je ", paste(lava_strana, collapse = ","),
"a pravá strana je" , paste(prava_strana, collapse = ","), ".", sep = "")Ľavá strana je 3.53553390593274,3.53553390593274a pravá strana je3.53553390593274,3.53553390593274.
local({
povodne <- par(mfrow = c(1, 2), mar = c(4, 4, 3, 1))
on.exit(par(povodne))
priklady <- list(c(1, 1), c(1, -1))
nazvy <- c("Vlastný vektor: lambda = 5",
"Vlastný vektor: lambda = 3")
for (j in seq_along(priklady)) {
x_plot <- priklady[[j]]
Ax_plot <- as.vector(A_eig %*% x_plot)
plot(NA, xlim = c(-2, 6), ylim = c(-6, 6),
asp = 1,
xlab = "Prvá súradnica",
ylab = "Druhá súradnica",
main = nazvy[j],
cex.main = 0.85)
abline(h = 0, v = 0, col = "grey80")
arrows (0, 0, Ax_plot[1], Ax_plot[2],
col = "darkorange2", lwd = 4, length = 0.12)
arrows(0, 0, x_plot[1], x_plot[2],
col = "steelblue4", lwd = 2, lty = 2, length = 0.10)
legend("topleft",
legend = c("x", "Ax"),
col = c("steelblue4", "darkorange2"),
lty = c(2, 1),
lwd = c(2, 4),
bty = "n",
cex = 0.8)
}
})B_eig <- matrix(c(3, 1, 0,
1, 3, 0,
0, 0, 5),
nrow = 3, byrow = TRUE)
B_eig [,1] [,2] [,3]
[1,] 3 1 0
[2,] 1 3 0
[3,] 0 0 5
eig_B <- eigen(B_eig, symmetric = TRUE)
eig_B$values[1] 5 4 2
eig_B$vectors [,1] [,2] [,3]
[1,] 0 0.7071068 0.7071068
[2,] 0 0.7071068 -0.7071068
[3,] 1 0.0000000 0.0000000
Overíme, že súčty štvorcov prvkov jednotlivých vlastných vektorov sú rovné 1.
colSums(eig_B$vectors^2)[1] 1 1 1
Overíme, aj všetky tri vlastné páry
max(abs(B_eig %*% eig_B$vectors -
eig_B$vectors %*% diag(eig_B$values)))[1] 8.881784e-16
c(sucet_vlastnych_cisel = sum(eig_B$values),
stopa_matice = sum(diag(B_eig)))sucet_vlastnych_cisel stopa_matice
11 11
Obidve hodnoty sú rovné 11.
c(sucin_vlastnych_cisel = prod(eig_B$values),
determinant = det(B_eig))sucin_vlastnych_cisel determinant
40 40
Pre vlastnú symetrickú maticu 3 × 3 vypočítame vlastné čísla a vlastné vektory.
Najskôr vytvoríme vektor hodnôt a následne z neho maticu.
hodnoty <- c(
0.000225, 0.000012, 0.000095,
0.000012, 0.000081, 0.000047,
0.000095, 0.000047, 0.000625
)
E <- matrix(hodnoty, nrow = 3, byrow = TRUE)
E [,1] [,2] [,3]
[1,] 0.000225 1.2e-05 0.000095
[2,] 0.000012 8.1e-05 0.000047
[3,] 0.000095 4.7e-05 0.000625
Pomocou funkcie eigen() vypočítame vlastné čísla a vlastné vektory.
eig_E <- eigen(E, symmetric = TRUE)
eig_Eeigen() decomposition
$values
[1] 6.505440e-04 2.035988e-04 7.685721e-05
$vectors
[,1] [,2] [,3]
[1,] -0.21937295 0.97520511 0.02916352
[2,] -0.08482918 0.01071313 -0.99633791
[3,] -0.97194625 -0.22104351 0.08037568
Samostatne vypíšeme vlastné čísla.
eig_E$values[1] 6.505440e-04 2.035988e-04 7.685721e-05
Samostatne vypíšeme vlastné vektory.
eig_E$vectors [,1] [,2] [,3]
[1,] -0.21937295 0.97520511 0.02916352
[2,] -0.08482918 0.01071313 -0.99633791
[3,] -0.97194625 -0.22104351 0.08037568
:::