Собственные значения матрицы можно находить не только через непосредственное вычисление характеристического определителя. Один из удобных подходов — метод Фаддеева. Он относится к точным численным методам и тесно связан с методом Леверье.
Его главное преимущество заключается в последовательном построении вычислений. Сначала формируются вспомогательные матрицы. Затем через их следы находятся коэффициенты характеристического многочлена. А уже после этого определяются собственные значения матрицы. Кроме того, метод Фаддеева можно использовать для нахождения обратной матрицы и собственных векторов.
Собственные Значения Матрицы Методом Фаддеева: Основная Идея
Метод Фаддеева можно рассматривать как модификацию метода Леверье. В методе Леверье для нахождения коэффициентов характеристического многочлена используют степени матрицы:
\[ A,\ A^2,\ \dots,\ A^n. \]
Метод Фаддеева работает иначе. В нём вместо прямого вычисления степеней матрицы строят вспомогательные матрицы. Именно эта последовательность постепенно приводит к коэффициентам характеристического многочлена.
Пусть задана квадратная матрица \( A \) порядка \( n \):
\[ A= \begin{pmatrix} a_{11} & a_{12} & \dots & a_{1n}\\ a_{21} & a_{22} & \dots & a_{2n}\\ \vdots & \vdots & \ddots & \vdots\\ a_{n1} & a_{n2} & \dots & a_{nn} \end{pmatrix}. \]
Нужно найти её собственные значения. С чего начать? Сначала нужно построить характеристический многочлен.
В методе Фаддеева его удобно записывать так:
\[ D(\lambda)=\lambda^n-\sigma_1\cdot\lambda^{n-1}-\sigma_2\cdot\lambda^{n-2}-\dots-\sigma_{n-1}\cdot\lambda-\sigma_n. \]
Тогда собственные значения матрицы находят из характеристического уравнения:
\[ D(\lambda)=0. \]
Итак, задача метода Фаддеева состоит в том, чтобы найти коэффициенты
\[ \sigma_1,\sigma_2,\dots,\sigma_n. \]
После этого остаётся решить характеристическое уравнение. Именно его корни и будут собственными значениями матрицы \( A \).
Метод Фаддеева: Построение Вспомогательных Матриц
Теперь перейдём к самому алгоритму. Пусть \( I \) — единичная матрица того же порядка, что и матрица \( A \):
\[ I= \begin{pmatrix} 1 & 0 & \dots & 0\\ 0 & 1 & \dots & 0\\ \vdots & \vdots & \ddots & \vdots\\ 0 & 0 & \dots & 1 \end{pmatrix}. \]
В методе Фаддеева последовательно строят матрицы
\[ A_1,A_2,\dots,A_n \]
и
\[ B_1,B_2,\dots,B_n. \]
Начнём с первого шага. Сначала берём исходную матрицу:
\[ A_1=A. \]
Затем через след матрицы \( A_1 \) находим число \( q_1 \):
\[ q_1=tr(A_1). \]
После этого строим первую вспомогательную матрицу:
\[ B_1=A_1-q_1\cdot I. \]
Зачем нужна матрица \( B_1 \)? Она используется для построения следующей матрицы \( A_2 \). То есть первый шаг не завершает вычисления, а подготавливает переход к следующему этапу.
Переходим ко второму шагу. Теперь исходную матрицу \( A \) умножаем на уже найденную матрицу \( B_1 \):
\[ A_2=A\cdot B_1. \]
Далее находим число \( q_2 \). Для этого берём след матрицы \( A_2 \) и делим его на номер шага:
\[ q_2=\frac{tr(A_2)}{2}. \]
После этого строим вторую вспомогательную матрицу:
\[ B_2=A_2-q_2\cdot I. \]
Матрица \( B_2 \), как и \( B_1 \), нужна для продолжения алгоритма. Она будет использована уже на следующем шаге при построении матрицы \( A_3 \).
После второго шага схема становится понятной. Каждый следующий шаг строится по тому же принципу: новая матрица \( A_k \) образуется через предыдущую матрицу \( B_{k-1} \), число \( q_k \) находится через след матрицы \( A_k \), а матрица \( B_k \) подготавливает следующий шаг.
В общем случае, если матрица \( B_{k-1} \) уже найдена, то для шага \( k \) имеем:
\[ A_k=A\cdot B_{k-1},\qquad q_k=\frac{tr(A_k)}{k},\qquad B_k=A_k-q_k\cdot I, \]
где \( k=3,4,\dots,n \).
След матрицы — это сумма элементов её главной диагонали. Если на некотором шаге матрица \( A_k \) имеет вид
\[ A_k= \begin{pmatrix} a_{11}^{(k)} & a_{12}^{(k)} & \dots & a_{1n}^{(k)}\\ a_{21}^{(k)} & a_{22}^{(k)} & \dots & a_{2n}^{(k)}\\ \vdots & \vdots & \ddots & \vdots\\ a_{n1}^{(k)} & a_{n2}^{(k)} & \dots & a_{nn}^{(k)} \end{pmatrix}, \]
то в общем случае её след вычисляется так:
\[ tr(A_k)=a_{11}^{(k)}+a_{22}^{(k)}+\dots+a_{nn}^{(k)}. \]
Именно числа
\[ q_1,q_2,\dots,q_n \]
имеют ключевое значение в алгоритме. После завершения построения матриц они используются как коэффициенты характеристического многочлена с учётом выбранной записи этого многочлена.
Таким образом, во втором разделе мы получили саму вычислительную схему метода Фаддеева. Теперь остаётся понять, как из чисел \( q_k \) перейти к характеристическому многочлену и собственным значениям.
Характеристический Многочлен: Переход к Собственным Значениям
После завершения построения вспомогательных матриц имеем числа
\[ q_1,q_2,\dots,q_n. \]
Теперь они задают коэффициенты характеристического многочлена:
\[ \sigma_1=q_1,\qquad \sigma_2=q_2,\qquad \dots,\qquad \sigma_n=q_n. \]
Или кратко:
\[ \sigma_k=q_k,\qquad k=1,2,\dots,n. \]
Поэтому характеристический многочлен матрицы \( A \) записывается в виде:
\[ D(\lambda)=\lambda^n-\sigma_1\cdot\lambda^{n-1}-\sigma_2\cdot\lambda^{n-2}-\dots-\sigma_{n-1}\cdot\lambda-\sigma_n. \]
С учётом найденных чисел \( q_1,q_2,\dots,q_n \) имеем:
\[ D(\lambda)=\lambda^n-q_1\cdot\lambda^{n-1}-q_2\cdot\lambda^{n-2}-\dots-q_{n-1}\cdot\lambda-q_n. \]
Далее решаем характеристическое уравнение:
\[ D(\lambda)=0. \]
Его корни
\[ \lambda_1,\lambda_2,\dots,\lambda_n \]
являются собственными значениями матрицы \( A \).
Итак, важно не смешивать два этапа. Метод Фаддеева сначала даёт коэффициенты характеристического многочлена. А уже потом собственные значения находятся как корни характеристического уравнения.
Кроме нахождения собственных значений, как уже отмечалось, метод Фаддеева имеет ещё одно полезное свойство. Если матрица \( A \) является невырожденной, то есть
\[ \det A\neq 0, \]
то можно найти обратную матрицу:
\[ A^{-1}=\frac{B_{n-1}}{\sigma_n}. \]
В этой формуле используется тот же знак коэффициента \( \sigma_n \), что и в записанном выше характеристическом многочлене. Это важно, потому что в разных источниках характеристический многочлен могут записывать с другой системой знаков.
Также метод Фаддеева позволяет находить собственные векторы. Если \( \lambda_i \) — собственное значение матрицы \( A \), то строят матрицу
\[ R_i=\lambda_i^{n-1}\cdot I+\lambda_i^{n-2}\cdot B_1+\dots+\lambda_i\cdot B_{n-2}+B_{n-1}. \]
Каждый ненулевой столбец матрицы \( R_i \) можно взять в качестве собственного вектора, который соответствует собственному значению \( \lambda_i \).
Таким образом, метод Фаддеева даёт последовательную схему работы с матрицей. Сначала строятся матрицы \( A_k \) и \( B_k \), затем через следы матриц находятся числа \( q_k \), далее формируется характеристический многочлен, а его корни дают собственные значения матрицы.
Практическая Часть: Как Найти Собственные Значения Методом Фаддеева
Теперь рассмотрим, как метод Фаддеева работает на конкретных матрицах. Начнём с матрицы второго порядка, а затем постепенно перейдём к матрицам третьего и четвёртого порядка. В каждом примере будем строить вспомогательные матрицы, находить коэффициенты характеристического многочлена и переходить к собственным значениям.
Пример 1. Найти собственные значения матрицы
\[ A= \begin{pmatrix} 2 & 1\\ 0 & 3 \end{pmatrix}. \]
Перед нами матрица второго порядка, поэтому нужно выполнить два шага. Начинаем с матрицы
\[ A_1=A= \begin{pmatrix} 2 & 1\\ 0 & 3 \end{pmatrix}. \]
Находим число \( q_1 \) через след матрицы \( A_1 \):
\[ q_1=tr(A_1)=2+3=5. \]
Теперь строим матрицу \( B_1 \):
\[ B_1=A_1-q_1\cdot I. \]
Подставляем матрицы:
\[ B_1= \begin{pmatrix} 2 & 1\\ 0 & 3 \end{pmatrix} — 5\cdot \begin{pmatrix} 1 & 0\\ 0 & 1 \end{pmatrix}. \]
Итак,
\[ B_1= \begin{pmatrix} -3 & 1\\ 0 & -2 \end{pmatrix}. \]
Переходим ко второму шагу. Находим матрицу \( A_2 \). Для этого умножаем исходную матрицу \( A \) на матрицу \( B_1 \):
\[ A_2=A\cdot B_1. \]
То есть
\[ A_2= \begin{pmatrix} 2 & 1\\ 0 & 3 \end{pmatrix} \cdot \begin{pmatrix} -3 & 1\\ 0 & -2 \end{pmatrix}. \]
После умножения имеем:
\[ A_2= \begin{pmatrix} -6 & 0\\ 0 & -6 \end{pmatrix}. \]
Теперь находим число \( q_2 \):
\[ q_2=\frac{tr(A_2)}{2}=\frac{-6+(-6)}{2}=-6. \]
Итак,
\[ q_1=5,\qquad q_2=-6. \]
Для матрицы второго порядка характеристический многочлен имеет вид:
\[ D(\lambda)=\lambda^2-q_1\cdot\lambda-q_2. \]
Подставляем найденные значения:
\[ D(\lambda)=\lambda^2-5\cdot\lambda-(-6). \]
То есть
\[ D(\lambda)=\lambda^2-5\cdot\lambda+6. \]
Решаем характеристическое уравнение:
\[ \lambda^2-5\cdot\lambda+6=0. \]
Разложим левую часть на множители:
\[ (\lambda-2)\cdot(\lambda-3)=0. \]
Отсюда получаем собственные значения:
\[ \lambda_1=2,\qquad \lambda_2=3. \]
Пример 2. Найти собственные значения матрицы
\[ A= \begin{pmatrix} 1 & 1 & 0\\ 0 & 2 & 1\\ 0 & 0 & 3 \end{pmatrix}. \]
Матрица имеет третий порядок, поэтому нужно найти числа \( q_1,\ q_2,\ q_3 \).
Начинаем с первого шага:
\[ A_1=A= \begin{pmatrix} 1 & 1 & 0\\ 0 & 2 & 1\\ 0 & 0 & 3 \end{pmatrix}. \]
Находим след матрицы \( A_1 \):
\[ q_1=tr(A_1)=1+2+3=6. \]
Строим матрицу \( B_1 \):
\[ B_1=A_1-q_1\cdot I. \]
Подставляем матрицы:
\[ B_1= \begin{pmatrix} 1 & 1 & 0\\ 0 & 2 & 1\\ 0 & 0 & 3 \end{pmatrix} — 6\cdot \begin{pmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1 \end{pmatrix}. \]
Итак,
\[ B_1= \begin{pmatrix} -5 & 1 & 0\\ 0 & -4 & 1\\ 0 & 0 & -3 \end{pmatrix}. \]
Переходим ко второму шагу. Находим матрицу \( A_2 \). Для этого умножаем матрицу \( A \) на матрицу \( B_1 \):
\[ A_2=A\cdot B_1. \]
То есть
\[ A_2= \begin{pmatrix} 1 & 1 & 0\\ 0 & 2 & 1\\ 0 & 0 & 3 \end{pmatrix} \cdot \begin{pmatrix} -5 & 1 & 0\\ 0 & -4 & 1\\ 0 & 0 & -3 \end{pmatrix}. \]
После умножения получаем:
\[ A_2= \begin{pmatrix} -5 & -3 & 1\\ 0 & -8 & -1\\ 0 & 0 & -9 \end{pmatrix}. \]
Находим число \( q_2 \):
\[ q_2=\frac{tr(A_2)}{2}=\frac{-5+(-8)+(-9)}{2}=\frac{-22}{2}=-11. \]
Теперь строим матрицу \( B_2 \):
\[ B_2=A_2-q_2\cdot I. \]
Поскольку \( q_2=-11 \), имеем:
\[ B_2=A_2-(-11)\cdot I. \]
Подставляем матрицы:
\[ B_2= \begin{pmatrix} -5 & -3 & 1\\ 0 & -8 & -1\\ 0 & 0 & -9 \end{pmatrix} — (-11)\cdot \begin{pmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1 \end{pmatrix}. \]
Поэтому
\[ B_2= \begin{pmatrix} 6 & -3 & 1\\ 0 & 3 & -1\\ 0 & 0 & 2 \end{pmatrix}. \]
Переходим к третьему шагу. Находим матрицу \( A_3 \). Для этого умножаем матрицу \( A \) на матрицу \( B_2 \):
\[ A_3=A\cdot B_2. \]
То есть
\[ A_3= \begin{pmatrix} 1 & 1 & 0\\ 0 & 2 & 1\\ 0 & 0 & 3 \end{pmatrix} \cdot \begin{pmatrix} 6 & -3 & 1\\ 0 & 3 & -1\\ 0 & 0 & 2 \end{pmatrix}. \]
После умножения имеем:
\[ A_3= \begin{pmatrix} 6 & 0 & 0\\ 0 & 6 & 0\\ 0 & 0 & 6 \end{pmatrix}. \]
Находим число \( q_3 \):
\[ q_3=\frac{tr(A_3)}{3}=\frac{6+6+6}{3}=6. \]
Итак,
\[ q_1=6,\qquad q_2=-11,\qquad q_3=6. \]
Для матрицы третьего порядка характеристический многочлен имеет вид:
\[ D(\lambda)=\lambda^3-q_1\cdot\lambda^2-q_2\cdot\lambda-q_3. \]
Подставляем найденные значения:
\[ D(\lambda)=\lambda^3-6\cdot\lambda^2-(-11)\cdot\lambda-6. \]
То есть
\[ D(\lambda)=\lambda^3-6\cdot\lambda^2+11\cdot\lambda-6. \]
Решаем характеристическое уравнение:
\[ \lambda^3-6\cdot\lambda^2+11\cdot\lambda-6=0. \]
Разложим многочлен на множители:
\[ \lambda^3-6\cdot\lambda^2+11\cdot\lambda-6 = (\lambda-1)\cdot(\lambda-2)\cdot(\lambda-3). \]
Поэтому
\[ (\lambda-1)\cdot(\lambda-2)\cdot(\lambda-3)=0. \]
Отсюда получаем собственные значения:
\[ \lambda_1=1,\qquad \lambda_2=2,\qquad \lambda_3=3. \]
Пример 3. Найти собственные значения матрицы
\[ A= \begin{pmatrix} 8 & 5 & -4 & 5\\ -9 & -6 & 7 & -9\\ -8 & -8 & 10 & -10\\ -3 & -3 & 3 & -2 \end{pmatrix}. \]
Матрица имеет четвёртый порядок, поэтому нужно найти числа \( q_1,\ q_2,\ q_3,\ q_4 \).
Начинаем с первого шага:
\[ A_1=A= \begin{pmatrix} 8 & 5 & -4 & 5\\ -9 & -6 & 7 & -9\\ -8 & -8 & 10 & -10\\ -3 & -3 & 3 & -2 \end{pmatrix}. \]
Находим число \( q_1 \):
\[ q_1=tr(A_1)=8+(-6)+10+(-2)=10. \]
Строим матрицу \( B_1 \):
\[ B_1=A_1-q_1\cdot I. \]
Подставляем матрицы:
\[ B_1= \begin{pmatrix} 8 & 5 & -4 & 5\\ -9 & -6 & 7 & -9\\ -8 & -8 & 10 & -10\\ -3 & -3 & 3 & -2 \end{pmatrix} — 10\cdot \begin{pmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{pmatrix}. \]
Итак,
\[ B_1= \begin{pmatrix} -2 & 5 & -4 & 5\\ -9 & -16 & 7 & -9\\ -8 & -8 & 0 & -10\\ -3 & -3 & 3 & -12 \end{pmatrix}. \]
Переходим ко второму шагу. Находим матрицу \( A_2 \). Для этого умножаем матрицу \( A \) на матрицу \( B_1 \):
\[ A_2=A\cdot B_1. \]
То есть
\[ A_2= \begin{pmatrix} 8 & 5 & -4 & 5\\ -9 & -6 & 7 & -9\\ -8 & -8 & 10 & -10\\ -3 & -3 & 3 & -2 \end{pmatrix} \cdot \begin{pmatrix} -2 & 5 & -4 & 5\\ -9 & -16 & 7 & -9\\ -8 & -8 & 0 & -10\\ -3 & -3 & 3 & -12 \end{pmatrix}. \]
После умножения имеем:
\[ A_2= \begin{pmatrix} -44 & -23 & 18 & -25\\ 43 & 22 & -33 & 47\\ 38 & 38 & -54 & 52\\ 15 & 15 & -15 & 6 \end{pmatrix}. \]
Находим число \( q_2 \):
\[ q_2=\frac{tr(A_2)}{2} = \frac{-44+22+(-54)+6}{2} = \frac{-70}{2} = -35. \]
Строим матрицу \( B_2 \):
\[ B_2=A_2-q_2\cdot I. \]
Поскольку \( q_2=-35 \), имеем:
\[ B_2=A_2-(-35)\cdot I. \]
Подставляем матрицы:
\[ B_2= \begin{pmatrix} -44 & -23 & 18 & -25\\ 43 & 22 & -33 & 47\\ 38 & 38 & -54 & 52\\ 15 & 15 & -15 & 6 \end{pmatrix} — (-35)\cdot \begin{pmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{pmatrix}. \]
Поэтому
\[ B_2= \begin{pmatrix} -9 & -23 & 18 & -25\\ 43 & 57 & -33 & 47\\ 38 & 38 & -19 & 52\\ 15 & 15 & -15 & 41 \end{pmatrix}. \]
Переходим к третьему шагу. Находим матрицу \( A_3 \). Для этого умножаем матрицу \( A \) на матрицу \( B_2 \):
\[ A_3=A\cdot B_2. \]
То есть
\[ A_3= \begin{pmatrix} 8 & 5 & -4 & 5\\ -9 & -6 & 7 & -9\\ -8 & -8 & 10 & -10\\ -3 & -3 & 3 & -2 \end{pmatrix} \cdot \begin{pmatrix} -9 & -23 & 18 & -25\\ 43 & 57 & -33 & 47\\ 38 & 38 & -19 & 52\\ 15 & 15 & -15 & 41 \end{pmatrix}. \]
После умножения получаем:
\[ A_3= \begin{pmatrix} 66 & 24 & -20 & 32\\ -46 & -4 & 38 & -62\\ -42 & -42 & 80 & -66\\ -18 & -18 & 18 & 8 \end{pmatrix}. \]
Находим число \( q_3 \):
\[ q_3=\frac{tr(A_3)}{3} = \frac{66+(-4)+80+8}{3} = \frac{150}{3} = 50. \]
Строим матрицу \( B_3 \):
\[ B_3=A_3-q_3\cdot I. \]
Подставляем матрицы:
\[ B_3= \begin{pmatrix} 66 & 24 & -20 & 32\\ -46 & -4 & 38 & -62\\ -42 & -42 & 80 & -66\\ -18 & -18 & 18 & 8 \end{pmatrix} — 50\cdot \begin{pmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{pmatrix}. \]
Поэтому
\[ B_3= \begin{pmatrix} 16 & 24 & -20 & 32\\ -46 & -54 & 38 & -62\\ -42 & -42 & 30 & -66\\ -18 & -18 & 18 & -42 \end{pmatrix}. \]
Переходим к четвёртому шагу. Находим матрицу \( A_4 \). Для этого умножаем матрицу \( A \) на матрицу \( B_3 \):
\[ A_4=A\cdot B_3. \]
То есть
\[ A_4= \begin{pmatrix} 8 & 5 & -4 & 5\\ -9 & -6 & 7 & -9\\ -8 & -8 & 10 & -10\\ -3 & -3 & 3 & -2 \end{pmatrix} \cdot \begin{pmatrix} 16 & 24 & -20 & 32\\ -46 & -54 & 38 & -62\\ -42 & -42 & 30 & -66\\ -18 & -18 & 18 & -42 \end{pmatrix}. \]
После умножения имеем:
\[ A_4= \begin{pmatrix} -24 & 0 & 0 & 0\\ 0 & -24 & 0 & 0\\ 0 & 0 & -24 & 0\\ 0 & 0 & 0 & -24 \end{pmatrix}. \]
Находим число \( q_4 \):
\[ q_4=\frac{tr(A_4)}{4} = \frac{-24+(-24)+(-24)+(-24)}{4} = \frac{-96}{4} = -24. \]
Итак,
\[ q_1=10,\qquad q_2=-35,\qquad q_3=50,\qquad q_4=-24. \]
Для матрицы четвёртого порядка характеристический многочлен имеет вид:
\[ D(\lambda)=\lambda^4-q_1\cdot\lambda^3-q_2\cdot\lambda^2-q_3\cdot\lambda-q_4. \]
Подставляем найденные значения:
\[ D(\lambda)=\lambda^4-10\cdot\lambda^3-(-35)\cdot\lambda^2-50\cdot\lambda-(-24). \]
То есть
\[ D(\lambda)=\lambda^4-10\cdot\lambda^3+35\cdot\lambda^2-50\cdot\lambda+24. \]
Решаем характеристическое уравнение:
\[ \lambda^4-10\cdot\lambda^3+35\cdot\lambda^2-50\cdot\lambda+24=0. \]
Разложим многочлен на множители:
\[ \lambda^4-10\cdot\lambda^3+35\cdot\lambda^2-50\cdot\lambda+24 = (\lambda-1)\cdot(\lambda-2)\cdot(\lambda-3)\cdot(\lambda-4). \]
Поэтому
\[ (\lambda-1)\cdot(\lambda-2)\cdot(\lambda-3)\cdot(\lambda-4)=0. \]
Отсюда получаем собственные значения:
\[ \lambda_1=1,\qquad \lambda_2=2,\qquad \lambda_3=3,\qquad \lambda_4=4. \]
Что Изучать Дальше: Другие Методы Нахождения Собственных Значений
После метода Фаддеева стоит рассмотреть ещё несколько близких тем. Они помогут увидеть, как одна и та же задача может решаться разными вычислительными подходами.
- Метод Данилевского: Собственные значения через преобразование матрицы — В статье речь пойдёт о переходе к форме Фробениуса и построении характеристического многочлена через последовательные преобразования матрицы.
- Метод Крылова: Собственные значения через последовательность векторов — В статье будет показано, как через векторы Крылова составить систему уравнений и найти характеристический многочлен матрицы.
- LU-разложение: Собственные значения через повторные вычисления — В статье будет рассматриваться, как LU-разложение помогает приближённо находить собственные значения через последовательную работу с матрицами.
Собственные Значения Матрицы: Алгоритм для Реализации в Программе
Если вам интересно не только считать вручную, но и превращать математический метод в рабочий код, блок-схема ниже станет хорошей основой для практики. Она показывает логику программы, которая находит собственные значения матрицы второго порядка методом Фаддеева.
Попробуйте реализовать этот алгоритм на Pascal, Python, C++, JavaScript или любом другом языке, с которым вам удобно работать. Так вы лучше увидите, как формулы из теории переходят в переменные, вычисления, условия и финальный результат.
