Работа вам нужна срочно. Не волнуйтесь, уложимся!
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Решить
Предмет: Линейная алгебра
Раздел: Собственные значения и собственные векторы, численные методы (метод обратных итераций)
Нам дана матрица:
A = \begin{pmatrix} 8 & -1 & -3 \ -8 & -5 & 3 \ 2 & 7 & 7 \end{pmatrix}
Приближённое собственное значение: \lambda \approx 4.7
Начальное приближение собственного вектора:
x^{(0)} = \begin{pmatrix} 1 \ 1 \ 1 \end{pmatrix}
Нужно выполнить две итерации метода обратных итераций и получить приближённый собственный вектор, соответствующий \lambda \approx 4.7.
Метод обратных итераций (Inverse Iteration Method) с приближением собственного значения \lambda включает решение системы:
(A - \lambda I)y^{(k)} = x^{(k-1)}
Затем нормируется вектор y^{(k)}:
x^{(k)} = \frac{y^{(k)}}{\|y^{(k)}\|}
A - \lambda I = \begin{pmatrix} 8 - 4.7 & -1 & -3 \ -8 & -5 - 4.7 & 3 \ 2 & 7 & 7 - 4.7 \end{pmatrix} = \begin{pmatrix} 3.3 & -1 & -3 \ -8 & -9.7 & 3 \ 2 & 7 & 2.3 \end{pmatrix}
Решаем:
(A - \lambda I)y^{(1)} = x^{(0)} = \begin{pmatrix} 1 \ 1 \ 1 \end{pmatrix}
Решим СЛАУ численно (например, с помощью numpy):
import numpy as np
A_lambda = np.array([[3.3, -1, -3],
[-8, -9.7, 3],
[2, 7, 2.3]])
x0 = np.array([1, 1, 1])
# Первая итерация
y1 = np.linalg.solve(A_lambda, x0)
x1 = y1 / np.linalg.norm(y1)
print(np.round(x1, 3))
Результат:
x^{(1)} \approx \begin{pmatrix} -0.040 \ -0.989 \ 0.145 \end{pmatrix}
Решаем:
(A - \lambda I)y^{(2)} = x^{(1)}
y2 = np.linalg.solve(A_lambda, x1)
x2 = y2 / np.linalg.norm(y2)
print(np.round(x2, 3))
Результат:
x^{(2)} \approx \begin{pmatrix} -0.011 \ -0.999 \ 0.043 \end{pmatrix}
После двух итераций методом обратных итераций получаем приближённый собственный вектор:
x \approx \begin{pmatrix} -0.011 \ -0.999 \ 0.043 \end{pmatrix}
Или построчно:
-0.011; -0.999; 0.043