https://wiki.tntu.edu.ua/api.php?action=feedcontributions&user=Natalochka&feedformat=atomWiki ТНТУ - Внесок користувача [uk]2024-03-29T08:11:10ZВнесок користувачаMediaWiki 1.30.0https://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13362Сингулярне розкладання2012-03-01T08:05:17Z<p>Natalochka: </p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і псевдообернених матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center> <math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
<center>і</center><br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження псевдооберненої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена псевдообернена матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> псевдооберненою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}\|_{E}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Усічене SVD при зверненні матриць =<br />
<br />
Нехай матриця <math>A</math> представлена у вигляді <math>A=U\Lambda {{V}^{T}}.</math> Тоді при знаходженні оберненої матриці <math>{{A}^{+}}=V{{\Lambda }^{-1}}{{U}^{T}}~</math> в силу ортогональності матриць <math>U</math> і <math>V</math> і в силу умови убування діагональних елементів матриці <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{n}}),</math> псевдообернена матриця <math>{{A}^{+}}</math> буде більш залежати від тих елементів матриці<br />
<math>\Lambda,</math> які мають менші значення, ніж від перших сингулярних чисел. Дійсно, якщо матриця <math>A</math> має сингулярні числа <math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}},</math> то сингулярні числа матриці <math>{{A}^{+}}</math> дорівнюють<br />
<center><br />
<math>{{\Lambda }^{-1}}=\text{diag}(\frac{1}{{{\lambda }_{1}}},...,\frac{1}{{{\lambda }_{n}}})</math><br />
</center><br />
<center>і</center><br />
<center><br />
<math>\frac{1}{{{\lambda }_{1}}}\le \frac{1}{{{\lambda }_{2}}}...\le \frac{1}{{{\lambda }_{n}}}.</math><br />
</center><br />
Вважаючи перший сингулярних чисел визначальними власний простір матриці <math>A,</math> використовуємо при зверненні матриці <math>A</math> перша <math>s</math> сингулярність чисел, <math>s\le \text{rank}A.</math> Тоді обернена матриця <math>{{A}^{+}}</math> буде знайдена як <math>{{A}^{+}}=V\Lambda _{s}^{-1}{{U}^{T}}.</math> <br />
<br />
Визначимо усічену псевдообернену матрицю <math>A_{s}^{+}~</math> як<br />
<center><br />
<math>A_{s}^{+}=V\Lambda _{s}^{-1}{{U}^{T}},</math><br />
</center><br />
де <math>\Lambda _{s}^{-1}=\text{diag}(\lambda _{1}^{-1},...,\lambda _{s}^{-1},0,...,0)~</math> - <br />
<math>(n\times n)-</math> діагональна матриця.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13361Сингулярне розкладання2012-03-01T08:04:27Z<p>Natalochka: </p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і псевдообернених матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
<center>і</center><br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження псевдооберненої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена псевдообернена матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> псевдооберненою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}\|_{E}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Усічене SVD при зверненні матриць =<br />
<br />
Нехай матриця <math>A</math> представлена у вигляді <math>A=U\Lambda {{V}^{T}}.</math> Тоді при знаходженні оберненої матриці <math>{{A}^{+}}=V{{\Lambda }^{-1}}{{U}^{T}}~</math> в силу ортогональності матриць <math>U</math> і <math>V</math> і в силу умови убування діагональних елементів матриці <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{n}}),</math> псевдообернена матриця <math>{{A}^{+}}</math> буде більш залежати від тих елементів матриці<br />
<math>\Lambda,</math> які мають менші значення, ніж від перших сингулярних чисел. Дійсно, якщо матриця <math>A</math> має сингулярні числа <math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}},</math> то сингулярні числа матриці <math>{{A}^{+}}</math> дорівнюють<br />
<center><br />
<math>{{\Lambda }^{-1}}=\text{diag}(\frac{1}{{{\lambda }_{1}}},...,\frac{1}{{{\lambda }_{n}}})</math><br />
</center><br />
<center>і</center><br />
<center><br />
<math>\frac{1}{{{\lambda }_{1}}}\le \frac{1}{{{\lambda }_{2}}}...\le \frac{1}{{{\lambda }_{n}}}.</math><br />
</center><br />
Вважаючи перший сингулярних чисел визначальними власний простір матриці <math>A,</math> використовуємо при зверненні матриці <math>A</math> перша <math>s</math> сингулярність чисел, <math>s\le \text{rank}A.</math> Тоді обернена матриця <math>{{A}^{+}}</math> буде знайдена як <math>{{A}^{+}}=V\Lambda _{s}^{-1}{{U}^{T}}.</math> <br />
<br />
Визначимо усічену псевдообернену матрицю <math>A_{s}^{+}~</math> як<br />
<center><br />
<math>A_{s}^{+}=V\Lambda _{s}^{-1}{{U}^{T}},</math><br />
</center><br />
де <math>\Lambda _{s}^{-1}=\text{diag}(\lambda _{1}^{-1},...,\lambda _{s}^{-1},0,...,0)~</math> - <br />
<math>(n\times n)-</math> діагональна матриця.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13331Сингулярне розкладання2012-03-01T00:04:40Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і псевдообернених матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
<center>і</center><br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження псевдооберненої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена псевдообернена матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> псевдооберненою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}\|_{E}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Усічене SVD при зверненні матриць =<br />
<br />
Нехай матриця <math>A</math> представлена у вигляді <math>A=U\Lambda {{V}^{T}}.</math> Тоді при знаходженні оберненої матриці <math>{{A}^{+}}=V{{\Lambda }^{-1}}{{U}^{T}}~</math> в силу ортогональності матриць <math>U</math> і <math>V</math> і в силу умови убування діагональних елементів матриці <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{n}}),</math> псевдообернена матриця <math>{{A}^{+}}</math> буде більш залежати від тих елементів матриці<br />
<math>\Lambda,</math> які мають менші значення, ніж від перших сингулярних чисел. Дійсно, якщо матриця <math>A</math> має сингулярні числа <math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}},</math> то сингулярні числа матриці <math>{{A}^{+}}</math> дорівнюють<br />
<center><br />
<math>{{\Lambda }^{-1}}=\text{diag}(\frac{1}{{{\lambda }_{1}}},...,\frac{1}{{{\lambda }_{n}}})</math><br />
</center><br />
<center>і</center><br />
<center><br />
<math>\frac{1}{{{\lambda }_{1}}}\le \frac{1}{{{\lambda }_{2}}}...\le \frac{1}{{{\lambda }_{n}}}.</math><br />
</center><br />
Вважаючи перший сингулярних чисел визначальними власний простір матриці <math>A,</math> використовуємо при зверненні матриці <math>A</math> перша <math>s</math> сингулярність чисел, <math>s\le \text{rank}A.</math> Тоді обернена матриця <math>{{A}^{+}}</math> буде знайдена як <math>{{A}^{+}}=V\Lambda _{s}^{-1}{{U}^{T}}.</math> <br />
<br />
Визначимо усічену псевдообернену матрицю <math>A_{s}^{+}~</math> як<br />
<center><br />
<math>A_{s}^{+}=V\Lambda _{s}^{-1}{{U}^{T}},</math><br />
</center><br />
де <math>\Lambda _{s}^{-1}=\text{diag}(\lambda _{1}^{-1},...,\lambda _{s}^{-1},0,...,0)~</math> - <br />
<math>(n\times n)-</math> діагональна матриця.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13330Сингулярне розкладання2012-03-01T00:02:59Z<p>Natalochka: </p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і псевдообернених матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження псевдооберненої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена псевдообернена матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> псевдооберненою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}\|_{E}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Усічене SVD при зверненні матриць =<br />
<br />
Нехай матриця <math>A</math> представлена у вигляді <math>A=U\Lambda {{V}^{T}}.</math> Тоді при знаходженні оберненої матриці <math>{{A}^{+}}=V{{\Lambda }^{-1}}{{U}^{T}}~</math> в силу ортогональності матриць <math>U</math> і <math>V</math> і в силу умови убування діагональних елементів матриці <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{n}}),</math> псевдообернена матриця <math>{{A}^{+}}</math> буде більш залежати від тих елементів матриці<br />
<math>\Lambda,</math> які мають менші значення, ніж від перших сингулярних чисел. Дійсно, якщо матриця <math>A</math> має сингулярні числа <math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}},</math> то сингулярні числа матриці <math>{{A}^{+}}</math> дорівнюють<br />
<center><br />
<math>{{\Lambda }^{-1}}=\text{diag}(\frac{1}{{{\lambda }_{1}}},...,\frac{1}{{{\lambda }_{n}}})</math><br />
</center><br />
<center>і</center><br />
<center><br />
<math>\frac{1}{{{\lambda }_{1}}}\le \frac{1}{{{\lambda }_{2}}}...\le \frac{1}{{{\lambda }_{n}}}.</math><br />
</center><br />
Вважаючи перший сингулярних чисел визначальними власний простір матриці <math>A,</math> використовуємо при зверненні матриці <math>A</math> перша <math>s</math> сингулярність чисел, <math>s\le \text{rank}A.</math> Тоді обернена матриця <math>{{A}^{+}}</math> буде знайдена як <math>{{A}^{+}}=V\Lambda _{s}^{-1}{{U}^{T}}.</math> <br />
<br />
Визначимо усічену псевдообернену матрицю <math>A_{s}^{+}~</math> як<br />
<center><br />
<math>A_{s}^{+}=V\Lambda _{s}^{-1}{{U}^{T}},</math><br />
</center><br />
де <math>\Lambda _{s}^{-1}=\text{diag}(\lambda _{1}^{-1},...,\lambda _{s}^{-1},0,...,0)~</math> - <br />
<math>(n\times n)-</math> діагональна матриця.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13329Сингулярне розкладання2012-03-01T00:02:05Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження псевдооберненої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена псевдообернена матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> псевдооберненою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}\|_{E}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Усічене SVD при зверненні матриць =<br />
<br />
Нехай матриця <math>A</math> представлена у вигляді <math>A=U\Lambda {{V}^{T}}.</math> Тоді при знаходженні оберненої матриці <math>{{A}^{+}}=V{{\Lambda }^{-1}}{{U}^{T}}~</math> в силу ортогональності матриць <math>U</math> і <math>V</math> і в силу умови убування діагональних елементів матриці <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{n}}),</math> псевдообернена матриця <math>{{A}^{+}}</math> буде більш залежати від тих елементів матриці<br />
<math>\Lambda,</math> які мають менші значення, ніж від перших сингулярних чисел. Дійсно, якщо матриця <math>A</math> має сингулярні числа <math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}},</math> то сингулярні числа матриці <math>{{A}^{+}}</math> дорівнюють<br />
<center><br />
<math>{{\Lambda }^{-1}}=\text{diag}(\frac{1}{{{\lambda }_{1}}},...,\frac{1}{{{\lambda }_{n}}})</math><br />
</center><br />
<center>і</center><br />
<center><br />
<math>\frac{1}{{{\lambda }_{1}}}\le \frac{1}{{{\lambda }_{2}}}...\le \frac{1}{{{\lambda }_{n}}}.</math><br />
</center><br />
Вважаючи перший сингулярних чисел визначальними власний простір матриці <math>A,</math> використовуємо при зверненні матриці <math>A</math> перша <math>s</math> сингулярність чисел, <math>s\le \text{rank}A.</math> Тоді обернена матриця <math>{{A}^{+}}</math> буде знайдена як <math>{{A}^{+}}=V\Lambda _{s}^{-1}{{U}^{T}}.</math> <br />
<br />
Визначимо усічену псевдообернену матрицю <math>A_{s}^{+}~</math> як<br />
<center><br />
<math>A_{s}^{+}=V\Lambda _{s}^{-1}{{U}^{T}},</math><br />
</center><br />
де <math>\Lambda _{s}^{-1}=\text{diag}(\lambda _{1}^{-1},...,\lambda _{s}^{-1},0,...,0)~</math> - <br />
<math>(n\times n)-</math> діагональна матриця.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13328Сингулярне розкладання2012-02-29T23:59:22Z<p>Natalochka: /* Усічене SVD при зверненні матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}\|_{E}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Усічене SVD при зверненні матриць =<br />
<br />
Нехай матриця <math>A</math> представлена у вигляді <math>A=U\Lambda {{V}^{T}}.</math> Тоді при знаходженні оберненої матриці <math>{{A}^{+}}=V{{\Lambda }^{-1}}{{U}^{T}}~</math> в силу ортогональності матриць <math>U</math> і <math>V</math> і в силу умови убування діагональних елементів матриці <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{n}}),</math> псевдообернена матриця <math>{{A}^{+}}</math> буде більш залежати від тих елементів матриці<br />
<math>\Lambda,</math> які мають менші значення, ніж від перших сингулярних чисел. Дійсно, якщо матриця <math>A</math> має сингулярні числа <math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}},</math> то сингулярні числа матриці <math>{{A}^{+}}</math> дорівнюють<br />
<center><br />
<math>{{\Lambda }^{-1}}=\text{diag}(\frac{1}{{{\lambda }_{1}}},...,\frac{1}{{{\lambda }_{n}}})</math><br />
</center><br />
<center>і</center><br />
<center><br />
<math>\frac{1}{{{\lambda }_{1}}}\le \frac{1}{{{\lambda }_{2}}}...\le \frac{1}{{{\lambda }_{n}}}.</math><br />
</center><br />
Вважаючи перший сингулярних чисел визначальними власний простір матриці <math>A,</math> використовуємо при зверненні матриці <math>A</math> перша <math>s</math> сингулярність чисел, <math>s\le \text{rank}A.</math> Тоді обернена матриця <math>{{A}^{+}}</math> буде знайдена як <math>{{A}^{+}}=V\Lambda _{s}^{-1}{{U}^{T}}.</math> <br />
<br />
Визначимо усічену псевдообернену матрицю <math>A_{s}^{+}~</math> як<br />
<center><br />
<math>A_{s}^{+}=V\Lambda _{s}^{-1}{{U}^{T}},</math><br />
</center><br />
де <math>\Lambda _{s}^{-1}=\text{diag}(\lambda _{1}^{-1},...,\lambda _{s}^{-1},0,...,0)~</math> - <br />
<math>(n\times n)-</math> діагональна матриця.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13327Сингулярне розкладання2012-02-29T23:58:28Z<p>Natalochka: /* Усічене SVD при зверненні матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}\|_{E}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Усічене SVD при зверненні матриць =<br />
<br />
Нехай матриця <math>A</math> представлена у вигляді <math>A=U\Lambda {{V}^{T}}.</math> Тоді при знаходженні оберненої матриці <math>{{A}^{+}}=V{{\Lambda }^{-1}}{{U}^{T}}~</math> в силу ортогональності матриць <math>U</math> і <math>V</math> і в силу умови убування діагональних елементів матриці <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{n}}),</math> псевдообернена матриця <math>{{A}^{+}}</math> буде більш залежати від тих елементів матриці<br />
<math>\Lambda,</math> які мають менші значення, ніж від перших сингулярних чисел. Дійсно, якщо матриця <math>A</math> має сингулярні числа <math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}},</math> то сингулярні числа матриці <math>{{A}^{+}}</math> дорівнюють<br />
<center><br />
<math>{{\Lambda }^{-1}}=\text{diag}(\frac{1}{{{\lambda }_{1}}},...,\frac{1}{{{\lambda }_{n}}})</math><br />
</center><br />
і<br />
<center><br />
<math>\frac{1}{{{\lambda }_{1}}}\le \frac{1}{{{\lambda }_{2}}}...\le \frac{1}{{{\lambda }_{n}}}.</math><br />
</center><br />
Вважаючи перший сингулярних чисел визначальними власний простір матриці <math>A,</math> використовуємо при зверненні матриці <math>A</math> перша <math>s</math> сингулярність чисел, <math>s\le \text{rank}A.</math> Тоді обернена матриця <math>{{A}^{+}}</math> буде знайдена як <math>{{A}^{+}}=V\Lambda _{s}^{-1}{{U}^{T}}.</math> <br />
<br />
Визначимо усічену псевдообернену матрицю <math>A_{s}^{+}~</math> як<br />
<center><br />
<math>A_{s}^{+}=V\Lambda _{s}^{-1}{{U}^{T}},</math><br />
</center><br />
де <math>\Lambda _{s}^{-1}=\text{diag}(\lambda _{1}^{-1},...,\lambda _{s}^{-1},0,...,0)~</math> - <br />
<math>(n\times n)-</math> діагональна матриця.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13326Сингулярне розкладання2012-02-29T23:50:35Z<p>Natalochka: /* Усічене SVD при зверненні матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}\|_{E}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Усічене SVD при зверненні матриць =<br />
<br />
Нехай матриця представлена у вигляді. Тоді при знаходженні оберненої матриці в силу ортогональності матриць і і в силу умови убування діагональних елементів матриці, псевдообернених матриця буде більш залежати від тих елементів матриці, які мають менші значення, ніж від перших сингулярних чисел. Дійсно, якщо матриця має сингулярні числа, то сингулярні числа матриці дорівнюють<br />
<center><br />
<math>{{\Lambda }^{-1}}=\text{diag}(\frac{1}{{{\lambda }_{1}}},...,\frac{1}{{{\lambda }_{n}}})</math><br />
</center><br />
і<br />
<center><br />
<math>\frac{1}{{{\lambda }_{1}}}\le \frac{1}{{{\lambda }_{2}}}...\le \frac{1}{{{\lambda }_{n}}}.</math><br />
</center><br />
Вважаючи перший сингулярних чисел визначальними власний простір матриці <math>A,</math> використовуємо при зверненні матриці <math>A</math> перша <math>s</math> сингулярність чисел, <math>s\le \text{rank}A.</math> Тоді обернена матриця <math>{{A}^{+}}</math> буде знайдена як <math>{{A}^{+}}=V\Lambda _{s}^{-1}{{U}^{T}}.</math> <br />
<br />
Визначимо усічену псевдообернену матрицю <math>A_{s}^{+}~</math> як<br />
<center><br />
<math>A_{s}^{+}=V\Lambda _{s}^{-1}{{U}^{T}},</math><br />
</center><br />
де <math>\Lambda _{s}^{-1}=\text{diag}(\lambda _{1}^{-1},...,\lambda _{s}^{-1},0,...,0)~</math> - <br />
<math>(n\times n)-</math> діагональна матриця.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13325Сингулярне розкладання2012-02-29T23:50:10Z<p>Natalochka: /* Усічене SVD при зверненні матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}\|_{E}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Усічене SVD при зверненні матриць =<br />
<br />
Нехай матриця представлена у вигляді. Тоді при знаходженні оберненої матриці в силу ортогональності матриць і і в силу умови убування діагональних елементів матриці, псевдообернених матриця буде більш залежати від тих елементів матриці, які мають менші значення, ніж від перших сингулярних чисел. Дійсно, якщо матриця має сингулярні числа, то сингулярні числа матриці дорівнюють<br />
<center><br />
<math>{{\Lambda }^{-1}}=\text{diag}(\frac{1}{{{\lambda }_{1}}},...,\frac{1}{{{\lambda }_{n}}})</math><br />
</center><br />
і<br />
<center><br />
<math>\frac{1}{{{\lambda }_{1}}}\le \frac{1}{{{\lambda }_{2}}}...\le \frac{1}{{{\lambda }_{n}}}.</math><br />
</center><br />
Вважаючи перший сингулярних чисел визначальними власний простір матриці <math>A,</math> використовуємо при зверненні матриці <math>A</math> перша <math>s</math> сингулярність чисел, <math>s\le \text{rank}A.</math> Тоді обернена матриця <math>{{A}^{+}}</math> буде знайдена як <math>{{A}^{+}}=V\Lambda _{s}^{-1}{{U}^{T}}.</math> </br><br />
Визначимо усічену псевдообернену матрицю <math>A_{s}^{+}~</math> як<br />
<center><br />
<math>A_{s}^{+}=V\Lambda _{s}^{-1}{{U}^{T}},</math><br />
</center><br />
де <math>\Lambda _{s}^{-1}=\text{diag}(\lambda _{1}^{-1},...,\lambda _{s}^{-1},0,...,0)~</math> - <br />
<math>(n\times n)-</math> діагональна матриця.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13324Сингулярне розкладання2012-02-29T23:49:29Z<p>Natalochka: /* Усічене SVD при зверненні матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}\|_{E}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Усічене SVD при зверненні матриць =<br />
<br />
Нехай матриця представлена у вигляді. Тоді при знаходженні оберненої матриці в силу ортогональності матриць і і в силу умови убування діагональних елементів матриці, псевдообернених матриця буде більш залежати від тих елементів матриці, які мають менші значення, ніж від перших сингулярних чисел. Дійсно, якщо матриця має сингулярні числа, то сингулярні числа матриці дорівнюють<br />
<center><br />
<math>{{\Lambda }^{-1}}=\text{diag}(\frac{1}{{{\lambda }_{1}}},...,\frac{1}{{{\lambda }_{n}}})</math><br />
</center><br />
і<br />
<center><br />
<math>\frac{1}{{{\lambda }_{1}}}\le \frac{1}{{{\lambda }_{2}}}...\le \frac{1}{{{\lambda }_{n}}}.</math><br />
</center><br />
Вважаючи перший сингулярних чисел визначальними власний простір матриці <math>A,</math> використовуємо при зверненні матриці <math>A</math> перша <math>s</math> сингулярність чисел, <math>s\le \text{rank}A.</math> Тоді обернена матриця <math>{{A}^{+}}</math> буде знайдена як <math>{{A}^{+}}=V\Lambda _{s}^{-1}{{U}^{T}}.</math> <\br><br />
Визначимо усічену псевдообернену матрицю <math>A_{s}^{+}~</math> як<br />
<center><br />
<math>A_{s}^{+}=V\Lambda _{s}^{-1}{{U}^{T}},</math><br />
</center><br />
де <math>\Lambda _{s}^{-1}=\text{diag}(\lambda _{1}^{-1},...,\lambda _{s}^{-1},0,...,0)~</math> - <br />
<math>(n\times n)-</math> діагональна матриця.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13323Сингулярне розкладання2012-02-29T23:43:08Z<p>Natalochka: </p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}\|_{E}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Усічене SVD при зверненні матриць =<br />
<br />
Нехай матриця представлена у вигляді. Тоді при знаходженні оберненої матриці в силу ортогональності матриць і і в силу умови убування діагональних елементів матриці, псевдообернених матриця буде більш залежати від тих елементів матриці, які мають менші значення, ніж від перших сингулярних чисел. Дійсно, якщо матриця має сингулярні числа, то сингулярні числа матриці дорівнюють<br />
<center><br />
<math>{{\Lambda }^{-1}}=\text{diag}(\frac{1}{{{\lambda }_{1}}},...,\frac{1}{{{\lambda }_{n}}})</math><br />
<center><br />
і<br />
<center><br />
<math>\frac{1}{{{\lambda }_{1}}}\le \frac{1}{{{\lambda }_{2}}}...\le \frac{1}{{{\lambda }_{n}}}.</math><br />
</center><br />
<br />
<center><br />
<math>A_{s}^{+}=V\Lambda _{s}^{-1}{{U}^{T}},</math><br />
</center><br />
де <math>\Lambda _{s}^{-1}=\text{diag}(\lambda _{1}^{-1},...,\lambda _{s}^{-1},0,...,0)~</math> - <br />
<math>(n\times n)-</math> діагональна матриця.<br />
<br />
<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13322Сингулярне розкладання2012-02-29T23:38:14Z<p>Natalochka: /* Метод найменших квадратів і число обумовленості */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}\|_{E}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13321Сингулярне розкладання2012-02-29T23:37:28Z<p>Natalochka: /* Метод найменших квадратів і число обумовленості */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>\kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A\|_{E}\|{{A}^{-1}}{\|_{E}}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13320Сингулярне розкладання2012-02-29T23:34:59Z<p>Natalochka: /* Метод найменших квадратів і число обумовленості */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>kappa(A)</math> визначено відношенням<br />
<center><br />
<math>\kappa (A)=\|A{{\|}_{E}}\|{{A}^{-1}}{{\|}_{E}}.</math><br />
</center><br />
З формули евклідової норми матриці і попередньої формули випливає, що число обумовленості матриці є ставлення її першого сингулярного числа до останнього.<br />
<center><br />
<math>\kappa (A)=\frac{{{\lambda }_{1}}}{{{\lambda }_{n}}}.</math><br />
</center><br />
Отже, число обумовленості матриці <math>{{A}^{T}}A</math> є квадрат числа обумовленості матриці <math>A.</math> Це висловлювання справедливо і для вироджених матриць, якщо вважати число обумовленості як відношення, <math>{{\lambda }_{1}}/{{\lambda }_{r}},~r~</math> - ранг матриці <math>A.</math> Тому для отримання звернення, стійкого до малих змін значень матриці <math>A,</math> використовується усічене SVD.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13319Сингулярне розкладання2012-02-29T23:27:47Z<p>Natalochka: /* Метод найменших квадратів і число обумовленості */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>аe(A)</math> визначено відношенням<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13318Сингулярне розкладання2012-02-29T23:27:16Z<p>Natalochka: /* Метод найменших квадратів і число обумовленості */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення <math>\mathbf{w}</math> потрібно звернути матрицю <math>{{A}^{T}}A.</math> Для квадратних матриць <math>A</math> число обумовленості <math>ae(A)</math> визначено відношенням<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13317Сингулярне розкладання2012-02-29T23:20:38Z<p>Natalochka: /* Метод найменших квадратів і число обумовленості */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}\|_{E}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення потрібно звернути матрицю. Для квадратних матриць число обумовленості визначено відношенням<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13316Сингулярне розкладання2012-02-29T23:19:51Z<p>Natalochka: /* Метод найменших квадратів і число обумовленості */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>(n)-</math>вектор<math>\mathbf{w},</math> що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}{{\|}_{E}}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення потрібно звернути матрицю. Для квадратних матриць число обумовленості визначено відношенням<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13315Сингулярне розкладання2012-02-29T23:17:58Z<p>Natalochka: /* Метод найменших квадратів і число обумовленості */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор <math>Y.</math> Потрібно знайти дійсний <math>\mathbf{w}-</math>вектор, що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}{{\|}_{E}}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення потрібно звернути матрицю. Для квадратних матриць число обумовленості визначено відношенням<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13314Сингулярне розкладання2012-02-29T23:15:46Z<p>Natalochka: </p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Метод найменших квадратів і число обумовленості =<br />
Задача найменших квадратів ставиться наступним чином. Дано дійсна <math>(m\times n)-</math>матриця <math>A</math> і дійсний <math>(m)-</math>вектор. Потрібно знайти дійсний <math>\mathbf{w}-</math>вектор, що мінімізує Евклідову довжину вектора нев'язки, <br />
<center><br />
<math>\|Y-A\mathbf{w}{{\|}_{E}}\to \min.</math><br />
</center><br />
Рішення задачі найменших квадратів -<br />
<center><br />
<math>\mathbf{w}={{({{A}^{T}}A)}^{-1}}({{A}^{T}}Y).</math><br />
</center><br />
Для відшукання рішення потрібно звернути матрицю. Для квадратних матриць число обумовленості визначено відношенням<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13313Сингулярне розкладання2012-02-29T22:52:33Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
}\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13312Сингулярне розкладання2012-02-29T22:52:10Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13311Сингулярне розкладання2012-02-29T22:51:54Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A.} \\<br />
\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13310Сингулярне розкладання2012-02-29T22:51:05Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13309Сингулярне розкладання2012-02-29T22:50:19Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<br />
<br />
<math>\begin{array}{*{35}{l}}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
<br />
<br />
<br />
<math>\begin{array}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13308Сингулярне розкладання2012-02-29T22:50:01Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<br />
<br />
<math>\begin{array}{}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
<br />
<br />
<math>\begin{array}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13307Сингулярне розкладання2012-02-29T22:48:20Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13306Сингулярне розкладання2012-02-29T22:46:42Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{A}^{+}A}={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13305Сингулярне розкладання2012-02-29T22:45:59Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13304Сингулярне розкладання2012-02-29T22:45:42Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13303Сингулярне розкладання2012-02-29T22:45:30Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13302Сингулярне розкладання2012-02-29T22:45:10Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
<br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13301Сингулярне розкладання2012-02-29T22:44:11Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
<br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13300Сингулярне розкладання2012-02-29T22:43:50Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
<br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13299Сингулярне розкладання2012-02-29T22:43:06Z<p>Natalochka: /* Знаходження транспонованої матриці за допомогою SVD */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}{*{35}{l}}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
<br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13298Сингулярне розкладання2012-02-29T22:41:02Z<p>Natalochka: </p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Знаходження транспонованої матриці за допомогою SVD =<br />
<br />
Якщо <math>(m\times n)</math> - матриця <math>A</math> є виродженою або прямокутною, то оберненої матриці <math>{{A}^{-1}}</math> для неї не існує. Однак для <math>A</math> може бути знайдена транспонована матриця <math>{{A}^{+}}</math> - така матриця, для якої виконуються умови<br />
<center><br />
<math>\begin{array}{*{35}{l}}<br />
{{A}^{+}}A={{I}_{n}}, \\<br />
A{{A}^{+}}={{I}_{m}}, \\<br />
{{A}^{+}}A{{A}^{+}}={{A}^{+}}, \\<br />
A{{A}^{+}}A=A. \\<br />
\end{array}</math><br />
</center><br />
Нехай знайдено розкладання матриці виду<br />
<center><br />
<math>A=U\Lambda {{V}^{T}},</math><br />
</center><br />
де <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}}),~r=\min (m,n)~</math> і <math>{{U}^{T}}U={{I}_{m}},V{{V}^{T}}={{I}_{n}}.</math> Тоді матриця <math>{{A}^{+}}={{V}^{T}}{{\Lambda }^{-1}}U</math> є для матриці <math>A</math> транспонованою. Дійсно, <math>{{A}^{+}}A=V{{\Lambda }^{-1}}{{U}^{T}}U\Lambda {{V}^{T}}={{I}_{n}},~A{{A}^{+}}=U\Lambda {{V}^{T}}V{{\Lambda }^{-1}}{{U}^{T}}={{I}_{m}}.</math><br />
<br />
<br />
<br />
<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13297Сингулярне розкладання2012-02-29T22:29:50Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}\|_{E}=1\}.</math><br />
</center><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13296Сингулярне розкладання2012-02-29T22:29:06Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}{\|_{E}}=1\}.</math><br />
</center><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13295Сингулярне розкладання2012-02-29T22:27:42Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A\|_{F}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A\|_{E}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A{{\|}_{F}}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}{{\|}_{E}}=1\}.</math><br />
</center><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13294Сингулярне розкладання2012-02-29T22:26:26Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A\|_{E}=\underset{\|\mathbf{x}\|=1}{\max }\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A{{\|}_{F}}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A{{\|}_{E}}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A{{\|}_{F}}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}{{\|}_{E}}=1\}.</math><br />
</center><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13293Сингулярне розкладання2012-02-29T22:24:35Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A{\|_{E}}=\underset{\|\mathbf{x}\|=1}{\mathop{\max }}\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A{{\|}_{F}}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A{{\|}_{E}}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A{{\|}_{F}}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}{{\|}_{E}}=1\}.</math><br />
</center><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13292Сингулярне розкладання2012-02-29T22:22:34Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A{{\|}_{E}}=\underset{\|\mathbf{x}\|=1}{\mathop{\max }}\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A{{\|}_{F}}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A{{\|}_{E}}={{\lambda }_{1}},</math><br />
</center><br />
і<br />
<center><br />
<math>\|A{{\|}_{F}}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
Сингулярні числа матриці <math>A</math> - це довжини осей еліпсоїда, заданого безліччю<br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}{{\|}_{E}}=1\}.</math><br />
</center><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13291Сингулярне розкладання2012-02-29T22:21:12Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A{{\|}_{E}}=\underset{\|\mathbf{x}\|=1}{\mathop{\max }}\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
Альтернативою Евклідової нормі є норма Фробеніуса:<br />
<center><br />
<math>\|A{{\|}_{F}}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
Якщо відомо сингулярне розкладання, то обидві ці норми легко обчислити. Нехай <math>{{\lambda }_{1}},\ldots ,{{\lambda }_{r}}~</math> - сингулярні числа матриці<math>A,</math> відмінні від нуля. Тоді<br />
<center><br />
<math>\|A{{\|}_{E}}={{\lambda }_{1}},</math><br />
</center><br />
<center><br />
<math>\|A{{\|}_{F}}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}{{\|}_{E}}=1\}.</math><br />
</center><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13290Сингулярне розкладання2012-02-29T22:17:50Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<center><br />
<math>\|A{{\|}_{E}}=\underset{\|\mathbf{x}\|=1}{\mathop{\max }}\,\left( \frac{\|A\mathbf{x}\|}{\|\mathbf{x}\|} \right).</math><br />
</center><br />
<br />
<center><br />
<math>\|A{{\|}_{F}}=\sqrt{\sum\limits_{i=1}^{m}{\sum\limits_{j=1}^{n}{a_{ij}^{2}}}}.</math><br />
</center><br />
<center><br />
<math>\|A{{\|}_{E}}={{\lambda }_{1}},</math><br />
</center><br />
<center><br />
<math>\|A{{\|}_{F}}=\sqrt{\sum\limits_{k=1}^{r}{\lambda _{k}^{2}}}.</math><br />
</center><br />
<center><br />
<math>\left. \{A\mathbf{x} \right|\|\mathbf{x}{{\|}_{E}}=1\}.</math><br />
</center><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13289Сингулярне розкладання2012-02-29T22:13:47Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора <math>x</math> заданої матрицею <math>A.</math><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13288Сингулярне розкладання2012-02-29T22:13:12Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора заданої матрицею<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13287Сингулярне розкладання2012-02-29T22:12:58Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтянула вектор <math>x</math>.<\br><br />
Евклидова норма матриці є максимальний коефіцієнт розтягування довільного вектора заданої матрицею<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13286Сингулярне розкладання2012-02-29T22:11:10Z<p>Natalochka: /* SVD і норма матриць */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
Якщо матриця <math>A.</math> ортогональна, довжина вектора <math>A\mathbf{x}</math> залишається незмінною. В іншому випадку можна вирахувати, наскільки матриця <math>A</math> розтягла вектор <math>x</math>.<br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13284Сингулярне розкладання2012-02-29T22:08:52Z<p>Natalochka: /* SVD і власні числа матриці */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochkahttps://wiki.tntu.edu.ua/index.php?title=%D0%A1%D0%B8%D0%BD%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B5_%D1%80%D0%BE%D0%B7%D0%BA%D0%BB%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D1%8F&diff=13283Сингулярне розкладання2012-02-29T22:08:17Z<p>Natalochka: /* SVD і власні числа матриці */</p>
<hr />
<div>{{Завдання|Чура Н. Я.|Назаревич О. Б.|18 березня 2012}}<br />
{|border=2 style="float: right; margin-left: 1em; margin-bottom: 0.5em; width: 242px; border: #99B3FF solid 1px"<br />
<br />
|-<br />
| '''Прізвище''' || Чура<br />
|-<br />
| '''Ім'я''' || Наталя<br />
|-<br />
| '''По-батькові''' || Ярославівна<br />
|-<br />
| '''Факультет''' || ФІС<br />
|-<br />
| '''Група''' || СНм-51<br />
|-<br />
| '''Залікова книжка''' || СНм-11-256<br />
|}<br />
<br />
'''Сингулярне розкладання''' (Singular Value Decomposition, SVD) – декомпозиція речовинної матриці з метою її приведення до канонічного виду. Сингулярне розкладання є зручним методом при роботі з матрицями. Воно показує геометричну структуру матриці і дозволяє наочно представити наявні дані. Сингулярне розкладання використовується при вирішенні найрізноманітніших завдань - від наближення методом найменших квадратів і рішення систем рівнянь до стиснення зображень. При цьому використовуються різні властивості сингулярного розкладання, наприклад, здатність показувати ранг матриці, наближати матриці даного рангу. SVD дозволяє обчислювати зворотні і транспонованих матриць великого розміру, що робить його корисним інструментом при вирішенні задач регресійного аналізу.<br><br />
Для будь-якої речовинної <math>(n\times n)</math> - матриці <math>A</math> існує дві речовинні ортогональні <math>(n\times n)</math> - матриці <math>U</math> і <math>V</math> й такі, що <math>{{U}^{T}}AV</math> - діагональна матриця <math>\Lambda </math>,<br />
<center><br />
<math>{{U}^{T}}AV=\Lambda </math>.<br />
</center><br />
Матриці <math>U</math> і <math>V</math> вибираються так, щоб диагональні елементи матриці <math>\Lambda </math> мали вид <br />
<center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{r}}>{{\lambda }_{r+1}}=...={{\lambda }_{n}}=0</math>,<br />
</center><br />
де <math>~r</math> - ранг матриці<math>A</math>. Зокрема, якщо <math>A</math> невироджена, то <center><br />
<math>{{\lambda }_{1}}\ge {{\lambda }_{2}}\ge ...\ge {{\lambda }_{n}}>0~</math>.<br />
</center><br />
Індекс <math>r</math> елемента <math>{{\lambda }_{r}}</math> є фактична розмірність власного простору матриці <math>A</math>.<br><br />
Стовпці матриць <math>U</math> і <math>V</math> називаються відповідно лівими і правими сингулярними векторами, а значення діагоналі матриці <math>\Lambda </math> називаються сингулярними числами.<br><br />
Еквівалентна запис сингулярного розкладання <math>A=U\Lambda {{V}^{T}}</math>.<br><br />
Наприклад, матриця<br />
<center><br />
<math>A=\left( \begin{matrix}<br />
0.96 & 1.72 \\<br />
2.28 & 0.96 \\<br />
\end{matrix} \right)</math><br />
</center><br />
має сингулярне розкладання<br />
<center><br />
<math>A=U\Lambda {{V}^{T}}=\left( \begin{matrix}<br />
0.6 & 0.8 \\<br />
0.8 & -0.6 \\<br />
\end{matrix} \right)\left( \begin{matrix}<br />
3 & 0 \\<br />
0 & 1 \\<br />
\end{matrix} \right){{\left( \begin{matrix}<br />
0.8 & -0.6 \\<br />
0.6 & 0.8 \\<br />
\end{matrix} \right)}^{T}}</math><br />
</center><br />
Легко побачити, що матриці <math>U</math> і <math>V</math> ортогональні,<br />
<center><math>{{U}^{T}}U=U{{U}^{T}}=I</math>, також <math>~{{V}^{T}}V=V{{V}^{T}}=I</math>,</center> <br />
і сума квадратів значень їх стовпців дорівнює одиниці.<br />
<br />
= Геометричний зміст SVD =<br />
<br />
Нехай матриці <math>A</math> поставлений у відповідність лінійний оператор. Cінгулярне розкладання можна переформулювати в геометричних термінах. Лінійний оператор, що відображає елементи простору <math>{{R}^{n}}</math> в себе представимо у вигляді послідовно виконуваних лінійних операторів обертання, розтягування і обертання. Тому компоненти сингулярного розкладання наочно показують геометричні зміни при відображенні лінійним оператором <math>A</math> безлічі векторів з векторного простору в себе або в векторний простір іншої розмірності.<br />
<br />
= Простори матриці і SVD =<br />
<br />
Сингулярне розкладання дозволяє знайти ортогональні базиси різних векторних просторів розкладається матриці<br />
<center><br />
<math>{{A}_{(n\times n)}}={{U}_{(n\times n)}}{{\Lambda }_{(n\times n)}}V_{(n\times n)}^{T}.</math><br />
</center><br />
Для прямокутних матриць існує так зване економне уявлення сингулярного розкладання матриці<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times m)}}{{\Lambda }_{(m\times n)}}V_{(n\times n)}^{T}</math><br />
</center><br />
Згідно з цим поданням при <math>m>n</math>, діагональна матриця <math>\Lambda </math> має порожні рядки (їх елементи рівні нулю), а при <math>m<n</math> - порожні стовпці. Тому існує ще одне економне подання<br />
<center><br />
<math>{{A}_{(m\times n)}}={{U}_{(m\times r)}}{{\Lambda }_{(r\times r)}}V_{(r\times n)}^{T},</math><br />
</center><br />
в якому <math>r=\min (m,n).</math><br />
Нуль-простір матриці <math>A</math> - набір векторів <math>\mathbf{x}</math>, для якого справедливе висловлювання <math>A\mathbf{x}=\mathbf{0}.</math> Власне простір матриці <math>A</math> - набір векторів <math>\mathbf{b}</math>, при якому рівняння <math>A\mathbf{x}=\mathbf{b}</math> має ненульове рішення для <math>\mathbf{x}</math>. Позначимо <math>{{\mathbf{u}}_{k}}</math> і <math>{{\mathbf{v}}_{k}}</math> - стовпці матриць <math>U</math> і <math>V</math>. Тоді розкладання <math>A=U\Lambda {{V}^{T}}~</math> може бути записано у вигляді: <math>A=\sum\limits_{k=1}^{r}{{{A}_{k}}},\text{ }</math> де <math>~{{A}_{k}}={{\mathbf{u}}_{k}}{{\lambda }_{k}}\mathbf{v}_{k}^{T}.</math> Якщо сингулярне число <math>{{\lambda }_{k}}=0,</math> то <math>A{{\mathbf{v}}_{k}}=\mathbf{0}~</math> і <math>{{\mathbf{v}}_{k}}</math> знаходиться в нуль-просторі матриці <math>A</math>, а якщо сингулярне число <math>{{\lambda }_{k}}\ne 0,</math> то вектор <math>{{\mathbf{u}}_{k}}</math> перебувають у власному просторі матриці <math>A</math>.<br />
Отже, можна сконструювати базиси для різних векторних підпросторів, визначених матрицею <math>A</math>. Hабір векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> у векторному просторі <math>V~</math> формує базис для <math>V~</math>, якщо будь-який вектор <math>\mathbf{x}</math> з <math>V~</math> можна представити у вигляді лінійної комбінації векторів <math>{{\mathbf{v}}_{1}},\ldots ,{{\mathbf{v}}_{k}}</math> єдиним способом. Нехай <math>{{V}_{0}}</math> буде набором тих стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{V}_{1}}</math> - всі інші стовпці <math>{{\lambda }_{k}}\ne 0,</math>. Також, нехай <math>{{U}_{0}}</math> буде набором стовпців <math>{{\mathbf{u}}_{k}},</math> для яких <math>{{\lambda }_{k}}\ne 0,</math> а <math>{{U}_{1}}</math> - всі інші стовпці <math>{{\mathbf{u}}_{k}},</math> включаючи і ті, для яких <math>k>n.</math><br />
Тоді, якщо <math>r</math> - кількість ненульових сингулярних чисел, то <math>r</math> мається стовпців в наборі <math>{{V}_{0}}</math> і <math>n-r~</math> стовпців в наборі <math>{{V}_{1}}</math> і <math>{{U}_{1}},</math> а також <math>m-n+r</math> стовпців в наборі <math>{{U}_{0}}.</math> Кожен з цих наборів формує базис векторного простору матриці <math>A</math>:<br />
*<math>{{V}_{0}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>,<br />
*<math>{{V}_{1}}</math> - Ортонормований базис для нуль-простору <math>A</math>,<br />
*<math>{{U}_{0}}</math> - Ортонормований базис для власного простору <math>A</math>,<br />
*<math>{{U}_{1}}</math> - Ортонормований базис для ортогонального комплементарного нуль-простору <math>A</math>.<br />
<br />
= SVD і власні числа матриці =<br />
<br />
Сингулярне розкладання володіє властивістю, яке пов'язує задачу відшукання сингулярного розкладання і завдання відшукання власних векторів. Власний вектор <math>\mathbf{x}</math> матриці <math>A</math> - такий вектор, при якому виконується умова <math>A\mathbf{x}=\lambda \mathbf{x},~</math> число <math>\lambda</math> називається власним числом. Так як матриці <math>U</math> і <math>V</math> ортогональні, то<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}=U\Lambda {{V}^{T}}V\Lambda {{U}^{T}}=U{{\Lambda }^{2}}{{U}^{T}}, \\<br />
{{A}^{T}}A=V\Lambda {{U}^{T}}U\Lambda {{V}^{T}}=V{{\Lambda }^{2}}{{V}^{T}}. \\<br />
\end{matrix}</math><br />
</center><br />
Домножуючи обидва вирази справа відповідно на <math>U</math> і <math>V</math> отримуємо<br />
<center><br />
<math>\begin{matrix}<br />
A{{A}^{T}}U=U{{\Lambda }^{2}}, \\<br />
{{A}^{T}}AV=V{{\Lambda }^{2}}. \\<br />
\end{matrix}</math><br />
</center><br />
З цього випливає, що стовпці матриці <math>U</math> є власними векторами матриці <math>A{{A}^{T}},</math> а квадрати сингулярних чисел <math>\Lambda =\text{diag}({{\lambda }_{1}},...,{{\lambda }_{r}})</math> - її власними числами. Також стовпці матриці <math>V</math> є власними векторами матриці <math>{{A}^{T}}A,</math> а квадрати сингулярних чисел є її власними числами.<br />
<br />
= SVD і норма матриць =<br />
<br />
Розглянемо зміну довжини вектора <math>x</math> до і після його множення зліва на матрицю <math>A.</math> Евклидова норма вектора визначена як<br />
<center><br />
<math>\|\mathbf{x}\|_{E}^{2}={{\mathbf{x}}^{T}}\mathbf{x}.</math><br />
</center><br />
<br />
= Список використаних літератури =<br />
<br />
1. Голуб Дж., Ван-Лоун Ч. Матричные вычисления. М.: Мир. 1999.<br><br />
2. Деммель Дж. Вычислительная линейная алгебра. URSS. 2001.<br><br />
3. Логинов Н.В. Сингулярное разложение матриц. М.: МГАПИ. 1996.<br><br />
4. Стренг Г. Линейная алгебра и ее применения. М.: Мир. 1980.<br><br />
5. Форсайт Дж., Молер К. Численное решение систем линейных алгебраических уравнений. М.: Мир. 1969.<br><br />
6. Хорн Р., Джонсон Ч. Матричный анализ. М.: Мир. 1989.<br><br />
7. Vetterling W. T. Flannery B. P. Numerical Recipies in C: The Art of Scientific Computing. NY: Cambridge University Press. 1999.<br><br />
<br />
= Посилання =<br />
<br />
http://www.prip.tuwien.ac.at/teaching/ws/statistische-mustererkennung/apponly.pdf<br />
<br />
[[Категорія:Планування експерименту]]</div>Natalochka