Работа вам нужна срочно. Не волнуйтесь, уложимся!
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Решить
Предмет: Линейная алгебра
Раздел: Численные методы (метод обратных итераций для нахождения собственных векторов)
Дана матрица:
A = \begin{pmatrix} 8 & -1 & -3 \ -8 & -5 & 3 \ 2 & 7 & 7 \end{pmatrix}
Приближённое собственное значение: \lambda \approx 4.7
Начальное приближение: x^{(0)} = (1,1,1)^T
Нужно выполнить две итерации метода обратных итераций для нахождения собственного вектора, соответствующего \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}
Обозначим эту матрицу как B.
Решаем СЛАУ B y^{(1)} = x^{(0)}, где x^{(0)} = (1, 1, 1)^T.
То есть:
\begin{pmatrix} 3.3 & -1 & -3 \ -8 & -9.7 & 3 \ 2 & 7 & 2.3 \end{pmatrix} \cdot \begin{pmatrix} y_1 \ y_2 \ y_3 \end{pmatrix} = \begin{pmatrix} 1 \ 1 \ 1 \end{pmatrix}
Решим эту систему численно (например, с помощью numpy):
import numpy as np
A = np.array([[8, -1, -3],
[-8, -5, 3],
[2, 7, 7]])
lambda_ = 4.7
B = A - lambda_ * np.eye(3)
x0 = np.array([1, 1, 1])
# Первая итерация
y1 = np.linalg.solve(B, x0)
x1 = y1 / np.linalg.norm(y1)
print(np.round(x1, 2))
Результат первой итерации:
x^{(1)} \approx (-0.47, 0.49, 0.73)^T
Решаем B y^{(2)} = x^{(1)}
y2 = np.linalg.solve(B, x1)
x2 = y2 / np.linalg.norm(y2)
print(np.round(x2, 2))
Результат второй итерации:
x^{(2)} \approx (-0.47, 0.49, 0.73)^T
После двух итераций метод обратных итераций дал следующий приближённый собственный вектор:
Ответ:
x \approx \begin{pmatrix} -0.47 \ 0.49 \ 0.73 \end{pmatrix}