Задача NNLS:
![$\|Ex -f\|_2 \rightarrow min, \ x \geq 0, $ $\|Ex -f\|_2 \rightarrow min, \ x \geq 0, $](https://dxdy-03.korotkov.co.uk/f/6/a/8/6a8868c33c384cedabdf062b2c82ecb182.png)
где
![$E$ $E$](https://dxdy-01.korotkov.co.uk/f/8/4/d/84df98c65d88c6adf15d4645ffa25e4782.png)
- матрица размеров
![$m$ $m$](https://dxdy-01.korotkov.co.uk/f/0/e/5/0e51a2dede42189d77627c4d742822c382.png)
на
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
,
![$m > n$ $m > n$](https://dxdy-01.korotkov.co.uk/f/0/7/9/079bfec7814e7f4bcbae5a5e2830bb5182.png)
В книге "Численное решение задач метода наименьших квадратов" Лоусона Ч. указан следующий алгоритм решения этой задачи (стр 124):
(
![$E, m_2, n, f, x, w, z, \Phi, Z$ $E, m_2, n, f, x, w, z, \Phi, Z$](https://dxdy-02.korotkov.co.uk/f/d/3/f/d3fa18908a0f45670dd1a2ab7744b35682.png)
):
1. Положить
![$\Phi = \varnothing, Z = \{1, 2, ..., n\}, x = 0$ $\Phi = \varnothing, Z = \{1, 2, ..., n\}, x = 0$](https://dxdy-02.korotkov.co.uk/f/5/d/2/5d20d8cfb15fde6c5f1cc1ce649b5d3682.png)
2. Вычислить
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
-вектор
![$w = E^{T}(f - Ex)$ $w = E^{T}(f - Ex)$](https://dxdy-04.korotkov.co.uk/f/b/a/3/ba3bea8c5b044bdc32d377bf3c0e981882.png)
3. Если множество
![$ Z$ $ Z$](https://dxdy-01.korotkov.co.uk/f/c/f/1/cf15f0f6d5e5f768f8048a99124657dc82.png)
пусто или
![$w_i \leq 0$ $w_i \leq 0$](https://dxdy-03.korotkov.co.uk/f/6/a/9/6a963b5fb1eac9961532b3a50095d90a82.png)
для всех
![$i \in Z$ $i \in Z$](https://dxdy-01.korotkov.co.uk/f/8/b/f/8bf90753dfd31fb408a72b34f6379a8882.png)
, перейти к шагу 12
4. Найти индекс
![$t \in Z$ $t \in Z$](https://dxdy-02.korotkov.co.uk/f/5/3/1/53127fae324b73e53fa09e59aaeea75c82.png)
такой, что
![$w_t = max\{w_j: j \in Z\}$ $w_t = max\{w_j: j \in Z\}$](https://dxdy-03.korotkov.co.uk/f/6/a/4/6a4162bade366a7c5a5e2825052ef08482.png)
5. Переместить индекс
![$t$ $t$](https://dxdy-01.korotkov.co.uk/f/4/f/4/4f4f4e395762a3af4575de74c019ebb582.png)
из множества
![$Z$ $Z$](https://dxdy-02.korotkov.co.uk/f/5/b/5/5b51bd2e6f329245d425b8002d7cf94282.png)
в множество
![$\phi$ $\phi$](https://dxdy-04.korotkov.co.uk/f/f/5/0/f50853d41be7d55874e952eb0d80c53e82.png)
6. Пусть
![$E_{\Phi}$ $E_{\Phi}$](https://dxdy-04.korotkov.co.uk/f/f/a/f/faf0e4503367a1b4ce4670dbb9af965882.png)
-
![$m_2 \times n$ $m_2 \times n$](https://dxdy-03.korotkov.co.uk/f/a/2/2/a2277f1bdff43bf24d6e45c49a4f31c382.png)
-матрица, определяемая таким образом:
столбец
![$j$ $j$](https://dxdy-04.korotkov.co.uk/f/3/6/b/36b5afebdba34564d884d347484ac0c782.png)
матрицы
![$E_{\Phi}$ $E_{\Phi}$](https://dxdy-04.korotkov.co.uk/f/f/a/f/faf0e4503367a1b4ce4670dbb9af965882.png)
= столбцу
![$j$ $j$](https://dxdy-04.korotkov.co.uk/f/3/6/b/36b5afebdba34564d884d347484ac0c782.png)
матрицы
![$E$ $E$](https://dxdy-01.korotkov.co.uk/f/8/4/d/84df98c65d88c6adf15d4645ffa25e4782.png)
, если
![$j \in \Phi$ $j \in \Phi$](https://dxdy-03.korotkov.co.uk/f/2/a/3/2a3b26bd56a0c094ad3c68e3af37f75c82.png)
,
![$0$ $0$](https://dxdy-03.korotkov.co.uk/f/2/9/6/29632a9bf827ce0200454dd32fc3be8282.png)
иначе.
Вычислить
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
-вектор
![$z$ $z$](https://dxdy-04.korotkov.co.uk/f/f/9/3/f93ce33e511096ed626b4719d50f17d282.png)
как решение задачи наименьших квадратов
![$E_{\Phi}z = f$ $E_{\Phi}z = f$](https://dxdy-03.korotkov.co.uk/f/6/a/1/6a167486288faed0a98738fe728610ed82.png)
7. Если
![$z_i > 0$ $z_i > 0$](https://dxdy-04.korotkov.co.uk/f/b/d/c/bdce8b801fcd8a84d6f1c3e5e815715182.png)
для всех
![$j \in \Phi$ $j \in \Phi$](https://dxdy-03.korotkov.co.uk/f/2/a/3/2a3b26bd56a0c094ad3c68e3af37f75c82.png)
, положить
![$x = z$ $x = z$](https://dxdy-02.korotkov.co.uk/f/1/a/9/1a93e215e64a06b96553c5a3b8b3bdce82.png)
и перейти к шагу 2
8. Найти индекс
![$q \in \Phi$ $q \in \Phi$](https://dxdy-01.korotkov.co.uk/f/c/5/0/c505b3f4cb11a7dd9b227c49fd657c1382.png)
такой, что
![$x_q/(x_q - z_q) = min \{x_j/(x_j - z_j): z_j \leq 0, j \in \Phi\} $ $x_q/(x_q - z_q) = min \{x_j/(x_j - z_j): z_j \leq 0, j \in \Phi\} $](https://dxdy-04.korotkov.co.uk/f/7/9/8/7987c69e8f91642acca8be58a2c1d8b482.png)
9. Положить
![$\alpha = x_q/(x_q - z_q)$ $\alpha = x_q/(x_q - z_q)$](https://dxdy-04.korotkov.co.uk/f/3/0/f/30f3f64ef8527ef3efcab0a0e1a37b8482.png)
10. Положить
![$x = x + \alpha(z - x)$ $x = x + \alpha(z - x)$](https://dxdy-03.korotkov.co.uk/f/a/e/9/ae900be73ed4d57b6466dea1e9579efa82.png)
11. Переместить из множества
![$\Phi$ $\Phi$](https://dxdy-02.korotkov.co.uk/f/5/e/1/5e16cba094787c1a10e568c61c63a5fe82.png)
в множество
![$Z$ $Z$](https://dxdy-02.korotkov.co.uk/f/5/b/5/5b51bd2e6f329245d425b8002d7cf94282.png)
все индексы
![$j \in \Phi$ $j \in \Phi$](https://dxdy-03.korotkov.co.uk/f/2/a/3/2a3b26bd56a0c094ad3c68e3af37f75c82.png)
, для которых
![$x_j = 0$ $x_j = 0$](https://dxdy-04.korotkov.co.uk/f/f/5/e/f5e6021c34bfbd9ec0c22a8b660173e482.png)
. Перейти к шагу 6.
12. Конец
Не понимаю как работает критерий окончания.
Если
![$Z$ $Z$](https://dxdy-02.korotkov.co.uk/f/5/b/5/5b51bd2e6f329245d425b8002d7cf94282.png)
пусто, это значит, что точка
![$x$ $x$](https://dxdy-04.korotkov.co.uk/f/3/3/2/332cc365a4987aacce0ead01b8bdcc0b82.png)
является внутренней точкой для всех полупространств
![$x_j \geq 0$ $x_j \geq 0$](https://dxdy-01.korotkov.co.uk/f/4/d/7/4d7eade3107e105984e8ad3fa0f5aa4182.png)
. Почему из этого следует, что это точка минимума функционала?
Если
![$w_i \leq 0$ $w_i \leq 0$](https://dxdy-03.korotkov.co.uk/f/6/a/9/6a963b5fb1eac9961532b3a50095d90a82.png)
для всех
![$i \in Z$ $i \in Z$](https://dxdy-01.korotkov.co.uk/f/8/b/f/8bf90753dfd31fb408a72b34f6379a8882.png)
, то это значит, что для того, чтобы уменьшить невязку, придется выйти из допустимой области?
Почему переменная вводимая на шаге 5 будет не отрицательной? В книге написано
"Выбранный на шаге 4 индекс
![$t$ $t$](https://dxdy-01.korotkov.co.uk/f/4/f/4/4f4f4e395762a3af4575de74c019ebb582.png)
указывает компоненту, не представленную пока в множестве
![$\Phi$ $\Phi$](https://dxdy-02.korotkov.co.uk/f/5/e/1/5e16cba094787c1a10e568c61c63a5fe82.png)
, которая в соответствии с леммой 23.17 будет положительна, если ее ввести в решение."
Лемма 23.17:
Пусть
![$A - m \times n$ $A - m \times n$](https://dxdy-03.korotkov.co.uk/f/2/8/c/28c32f7092296a282100ba464578f55282.png)
матрица ранга
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
, а
![$b - m$ $b - m$](https://dxdy-03.korotkov.co.uk/f/2/8/3/283741bdbf672156b8189ab198c3cdf782.png)
-вектор, для которого
![$A^{T}b = \begin{bmatrix}
0\\
\cdots\\
0\\
w
\end{bmatrix}$ $A^{T}b = \begin{bmatrix}
0\\
\cdots\\
0\\
w
\end{bmatrix}$](https://dxdy-01.korotkov.co.uk/f/c/6/7/c67da77cab30c29aa73e5baf5394c9d982.png)
![$w > 0$ $w > 0$](https://dxdy-01.korotkov.co.uk/f/0/a/1/0a142d3cb07e8c7bba8e73d263bd3c5882.png)
Если
![$\hat_{x}$ $\hat_{x}$](https://dxdy-01.korotkov.co.uk/f/8/9/7/8975245c111c46756cf1a1fb8a33881682.png)
- решение задачи
![$Ax = b$ $Ax = b$](https://dxdy-04.korotkov.co.uk/f/7/0/6/70681e99f542745bf6a0c56bd4600b3982.png)
(в смысле задачи НК), то его
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
-я компонента
![$\hat_{x_n}$ $\hat_{x_n}$](https://dxdy-03.korotkov.co.uk/f/6/7/2/672d63fc7f3fee03b81ec0b064fe672082.png)
> 0
Для моих примеров условие для
![$ E_{\Phi}^{T}f$ $ E_{\Phi}^{T}f$](https://dxdy-03.korotkov.co.uk/f/6/1/2/6129d08a733c46025d5fca616ee1e0c382.png)
не выполняется