<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=V</id>
	<title>Алговики - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=V"/>
	<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/V"/>
	<updated>2026-10-24T03:12:25Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19628</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19628"/>
		<updated>2016-11-30T12:32:19Z</updated>

		<summary type="html">&lt;p&gt;V: /* Существующие реализации алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Сложность последовательного алгоритма порядка &amp;lt;math&amp;gt;O(n^{3})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
Для исследования масштабируемости были проведены серии тестов с различным числом узлов (в степенях 2). Чем больше узлов, тем меньше загруженность каждого, если хотим получить одинаковый совокупный объем данных, а, следовательно, программа выполняется быстрее.&lt;br /&gt;
График для фиксированных n = 100, p = 10.&lt;br /&gt;
[[Файл:Graphhh.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Все тесты проводились на [https://ru.wikipedia.org/wiki/Ломоносов_(суперкомпьютер) суперкомпьютере Ломоносов].&lt;br /&gt;
Характеристики вычислительного кластера: [http://users.parallel.ru/wiki/pages/22-config link].&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;mkl.h&amp;quot;&lt;br /&gt;
#include &amp;lt;ctime&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sstream&amp;gt;&lt;br /&gt;
#include &amp;quot;mpi.h&amp;quot;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;iterator&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
void diagMatrix(int p, int k, float *m);&lt;br /&gt;
void ortBasis(int p, float *m);&lt;br /&gt;
void out(int p, float *m);&lt;br /&gt;
void choleskyFactorization(int p, float *m);&lt;br /&gt;
void copy(int p, float *from, float *to);&lt;br /&gt;
void samplesGenerate(int n, int p, float *mean, float *chol, float *res);&lt;br /&gt;
void wGenerate(int n, float* w);&lt;br /&gt;
void sampleCovarianceBootstrap(int n, int p, float* Samples, float* Result);&lt;br /&gt;
void sampleCovariance(int n, int p, float* Samples, float* Result);&lt;br /&gt;
void eigenDecomposition(int p, float* m, float *values);&lt;br /&gt;
void rProjector(int p, int r, float *vectors, float* projector);&lt;br /&gt;
float S(int n, int p, float *m1, float *m2);&lt;br /&gt;
&lt;br /&gt;
void diagMatrix(int p, int k, float *m)&lt;br /&gt;
{&lt;br /&gt;
    float numbers[5] = {36, 30, 25, 19, 15};&lt;br /&gt;
    int ind = 0;&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for (int j = 0; j &amp;lt; p; ++j)&lt;br /&gt;
            m[i*p + j] = 0.0;&lt;br /&gt;
        if (k &amp;gt; 0)&lt;br /&gt;
        {&lt;br /&gt;
            m[i*p + i] = numbers[ind];&lt;br /&gt;
            ind++;&lt;br /&gt;
            k--;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
            m[i*p + i] = 1.0 + 5.0*rand() / float(RAND_MAX);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ortBasis(int p, float *m)&lt;br /&gt;
{&lt;br /&gt;
for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        for(int j = 0; j &amp;lt; p; j++)&lt;br /&gt;
            m[i*p + j] = rand();&lt;br /&gt;
    float* tau = (float*) calloc(p, sizeof(float));&lt;br /&gt;
    LAPACKE_sgeqrf(LAPACK_ROW_MAJOR, p, p, m, p, tau);&lt;br /&gt;
    LAPACKE_sorgqr(LAPACK_ROW_MAJOR, p, p, 1, m, p, tau);&lt;br /&gt;
    free(tau);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void out(int r, int c, float *m)&lt;br /&gt;
{&lt;br /&gt;
    for (int i = 0; i &amp;lt; r; i++)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;{ &amp;quot;;&lt;br /&gt;
        for (int j = 0; j &amp;lt; c; j++)&lt;br /&gt;
            cout &amp;lt;&amp;lt; m[i*c + j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;}&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void choleskyFactorization(int p, float *m)&lt;br /&gt;
{&lt;br /&gt;
    lapack_int q = LAPACKE_spotrf(LAPACK_ROW_MAJOR, &#039;L&#039;, p, m, p);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void copy(int p, float *from, float *to)&lt;br /&gt;
{&lt;br /&gt;
    mkl_somatcopy(&#039;R&#039;, &#039;N&#039;, p, p, 1.0, from, p, to, p);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void samplesGenerate(int n, int p, float *mean, float *chol, float *res)&lt;br /&gt;
{&lt;br /&gt;
    VSLStreamStatePtr stream;&lt;br /&gt;
    int i = (int) rand();&lt;br /&gt;
    vslNewStream(&amp;amp;stream,VSL_BRNG_MCG31, i);&lt;br /&gt;
    vsRngGaussianMV(VSL_RNG_METHOD_GAUSSIANMV_BOXMULLER, stream, n, res, p, VSL_MATRIX_STORAGE_FULL, mean, chol);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void wGenerate(int n, float* w)&lt;br /&gt;
{&lt;br /&gt;
    float *mean = (float *) calloc(n, sizeof(float));&lt;br /&gt;
    float *cov = (float*) calloc(n * n, sizeof(float));&lt;br /&gt;
    for (int i = 1; i &amp;lt; n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        mean[i] = 1;&lt;br /&gt;
        cov[i*n + i] = 1;&lt;br /&gt;
    }&lt;br /&gt;
    int i = (int) rand();&lt;br /&gt;
    VSLStreamStatePtr stream;&lt;br /&gt;
    vslNewStream(&amp;amp;stream,VSL_BRNG_MCG31, i);&lt;br /&gt;
    vsRngGaussianMV(VSL_RNG_METHOD_GAUSSIANMV_BOXMULLER, stream, 1, w, n, VSL_MATRIX_STORAGE_FULL, mean, cov);&lt;br /&gt;
    free(mean);&lt;br /&gt;
    free(cov);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sampleCovarianceBootstrap(int n, int p, float* Samples, float* Result)&lt;br /&gt;
{&lt;br /&gt;
 //Result p*p&lt;br /&gt;
    float *W = (float *) calloc(n, sizeof(float));&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    wGenerate(n, W);&lt;br /&gt;
    for(int k = 0; k &amp;lt; n; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            X[i] = Samples[k*p + i];&lt;br /&gt;
        }&lt;br /&gt;
        cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, W[k], X, p, X, p, 1.0, Result, p);&lt;br /&gt;
    }&lt;br /&gt;
    free(W);&lt;br /&gt;
    for(int k = 0; k &amp;lt; p; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            Result[k*p + i] /= n;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(X);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sampleCovariance(int n, int p, float* Samples, float* Result)&lt;br /&gt;
{&lt;br /&gt;
 //Result p*p&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    for(int k = 0; k &amp;lt; n; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            X[i] = Samples[k*p + i];&lt;br /&gt;
        }&lt;br /&gt;
        cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, 1.0, X, p, X, p, 1.0, Result, p);&lt;br /&gt;
    }&lt;br /&gt;
    for(int k = 0; k &amp;lt; p; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            Result[k*p + i] /= n;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    free(X);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void eigenDecomposition(int p, float* m, float *values) //decreasing orderб столбыц!&lt;br /&gt;
{&lt;br /&gt;
    LAPACKE_ssyevd(LAPACK_ROW_MAJOR, &#039;V&#039;, &#039;U&#039;, p, m, p, values);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rProjector(int p, int r, float *vectors, float* projector)&lt;br /&gt;
{&lt;br /&gt;
    int num = p - r;&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
    {&lt;br /&gt;
        X[i] = vectors[p*i + num];&lt;br /&gt;
    }&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, 1.0, X, p, X, p, 1.0, projector, p);&lt;br /&gt;
    free(X);   &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
float S(int n, int p, float *m1, float *m2)&lt;br /&gt;
{&lt;br /&gt;
    float *m = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        for (int j = 0; j &amp;lt; p; j++)&lt;br /&gt;
            m[i*p + j] = m1[i*p + j] - m2[i*p + j];&lt;br /&gt;
    float norm = LAPACKE_slange(LAPACK_ROW_MAJOR, &#039;F&#039;, p, p, m, p);&lt;br /&gt;
    free(m);&lt;br /&gt;
    return n*norm*norm;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
    //задаем размерности&lt;br /&gt;
    int paral = 16;&lt;br /&gt;
    int p = 20;&lt;br /&gt;
    int k = 3;&lt;br /&gt;
    int M = 3000;&lt;br /&gt;
    int r = 1; //нумерация с 1&lt;br /&gt;
    int N = 3; //45&lt;br /&gt;
    int n = 100;&lt;br /&gt;
    int rank, size, prev, next;&lt;br /&gt;
    &lt;br /&gt;
    //инициализация MPI&lt;br /&gt;
    MPI_Request reqs[4];&lt;br /&gt;
    MPI_Status stats[4];&lt;br /&gt;
    MPI_Init(&amp;amp;argc, &amp;amp;argv);&lt;br /&gt;
    MPI_Comm_size(MPI_COMM_WORLD, &amp;amp;size);&lt;br /&gt;
    MPI_Comm_rank(MPI_COMM_WORLD, &amp;amp;rank);&lt;br /&gt;
    //&lt;br /&gt;
    double MPI_Wtime(void);&lt;br /&gt;
    double t1, t2, dt;&lt;br /&gt;
    //&lt;br /&gt;
    t1 = MPI_Wtime();&lt;br /&gt;
    prev = rank - 1;&lt;br /&gt;
    next = rank + 1;&lt;br /&gt;
    if(rank==0) prev = size - 1;&lt;br /&gt;
    if(rank==size - 1) next = 0;&lt;br /&gt;
&lt;br /&gt;
    //чтобы у всех сгенерировалась одинаковая матрица ковариации srand сработает одновременно&lt;br /&gt;
    srand(time(NULL));&lt;br /&gt;
    //файлы, в который будем писать результаты, у каждого параллельного процесса свой (номер процесса + .txt)&lt;br /&gt;
    ofstream myfile;&lt;br /&gt;
    char intStr[2];&lt;br /&gt;
    if (rank &amp;lt; 10)&lt;br /&gt;
    {&lt;br /&gt;
        intStr[0] = &#039;0&#039;;&lt;br /&gt;
        intStr[1] = &#039;0&#039; + rank;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        intStr[0] = &#039;1&#039;;&lt;br /&gt;
        intStr[1] = &#039;0&#039; + rank - 10;&lt;br /&gt;
    }&lt;br /&gt;
    char *txt = &amp;quot;.txt&amp;quot;;&lt;br /&gt;
    char *str = strcat(intStr,txt);&lt;br /&gt;
&lt;br /&gt;
    myfile.open(str);&lt;br /&gt;
&lt;br /&gt;
    //файлы, в которые будем отправлять размерности и тд, за это будет отвечать нулевой процесс&lt;br /&gt;
    ofstream dim;&lt;br /&gt;
    ofstream val;&lt;br /&gt;
&lt;br /&gt;
    if (rank == 0){&lt;br /&gt;
        dim.open(&amp;quot;dimensions.txt&amp;quot;);&lt;br /&gt;
        val.open(&amp;quot;values.txt&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (rank == 0)&lt;br /&gt;
    {&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;p = &amp;quot; &amp;lt;&amp;lt; p &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;k = &amp;quot; &amp;lt;&amp;lt; k &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;M = &amp;quot; &amp;lt;&amp;lt; M &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;r = &amp;quot; &amp;lt;&amp;lt; r &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;N = &amp;quot; &amp;lt;&amp;lt; N*(paral-1) &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;n = &amp;quot; &amp;lt;&amp;lt; n;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //генерация матрицы ковариации&lt;br /&gt;
    float *COV = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *MEAN = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *COV_Chol = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *Basis = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *COV_L = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    ortBasis(p, Basis);&lt;br /&gt;
&lt;br /&gt;
    diagMatrix(p, k, COV_L);&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, p, p, p, 1.0, Basis, p, COV_L, p, 0.0, COV, p);&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, p, p, p, 1.0, COV, p, Basis, p, 0.0, COV_L, p);&lt;br /&gt;
    copy(p, COV_L, COV);&lt;br /&gt;
    &lt;br /&gt;
    copy(p, COV, COV_Chol);&lt;br /&gt;
    choleskyFactorization(p, COV_Chol);&lt;br /&gt;
    free(Basis);&lt;br /&gt;
    free(COV_L);&lt;br /&gt;
&lt;br /&gt;
    float *values_pr = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *vectors_pr = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    copy(p, COV, vectors_pr);&lt;br /&gt;
    eigenDecomposition(p, vectors_pr, values_pr);&lt;br /&gt;
&lt;br /&gt;
    //для исследования нам понадобятся собственные значения, поэтому их тоже выводит нулевой процесс&lt;br /&gt;
    if(rank ==0){&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            val &amp;lt;&amp;lt; values_pr[i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        val &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(values_pr);&lt;br /&gt;
    free(vectors_pr);&lt;br /&gt;
&lt;br /&gt;
    //вычислим проектор для реальной матрицы ковариации&lt;br /&gt;
    float *values = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *vectors = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *ProjectorR = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    copy(p, COV, vectors);&lt;br /&gt;
    eigenDecomposition(p, vectors, values);&lt;br /&gt;
    rProjector(p, r, vectors, ProjectorR);&lt;br /&gt;
    //ProjectorR - нужный проектор&lt;br /&gt;
    free(values);&lt;br /&gt;
    free(vectors);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    //для каждого процесса запустим свой рандом (зависящий от ранка), иначе все значения у каждого процесса будут одинаковые&lt;br /&gt;
    srand(time(NULL) + rank);&lt;br /&gt;
&lt;br /&gt;
    float* NormsBootstrapWorld = (float *) calloc(N * M, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
    {&lt;br /&gt;
        float *Samples = (float *) calloc(n * p, sizeof(float)); //Каждый Xj - строка в матрице&lt;br /&gt;
        for (int j = 0; j &amp;lt; M; j++)&lt;br /&gt;
        {&lt;br /&gt;
            float *COV_SampleBootstrap = (float *) calloc(p * p, sizeof(float));            &lt;br /&gt;
            float *values = (float *) calloc(p, sizeof(float));&lt;br /&gt;
            float *vectors = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
            float *ProjectorSB = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
            sampleCovarianceBootstrap(n, p, Samples, COV_SampleBootstrap);&lt;br /&gt;
            copy(p, COV_SampleBootstrap, vectors);&lt;br /&gt;
            eigenDecomposition(p, vectors, values); //вектора в столбцах&lt;br /&gt;
            rProjector(p, r, vectors, ProjectorSB);&lt;br /&gt;
            //ProjectorSB - нужный проектор&lt;br /&gt;
&lt;br /&gt;
            float s = S(n, p, ProjectorR, ProjectorSB);&lt;br /&gt;
            NormsBootstrapWorld[i*M + j] = s;&lt;br /&gt;
&lt;br /&gt;
            free(COV_SampleBootstrap);&lt;br /&gt;
            free(values);&lt;br /&gt;
            free(vectors);&lt;br /&gt;
            free(ProjectorSB);&lt;br /&gt;
        }&lt;br /&gt;
        free(Samples);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(ProjectorR);&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; M; i++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int j = 0; j &amp;lt; N; j++)&lt;br /&gt;
        {&lt;br /&gt;
            myfile &amp;lt;&amp;lt; NormsBootstrapWorld[j*M + i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        myfile &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    //в myfile N столбцов&lt;br /&gt;
&lt;br /&gt;
    myfile &amp;lt;&amp;lt; endl;            &lt;br /&gt;
    free(NormsBootstrapWorld);&lt;br /&gt;
&lt;br /&gt;
    free(COV);&lt;br /&gt;
    free(MEAN);&lt;br /&gt;
    free(COV_Chol);&lt;br /&gt;
    t2 = MPI_Wtime();&lt;br /&gt;
    dt = t2 - t1;&lt;br /&gt;
    if (rank == 0)&lt;br /&gt;
        cout &amp;lt;&amp;lt; dt &amp;lt;&amp;lt; endl;&lt;br /&gt;
    MPI_Finalize(); //конец параллеливания&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Bootstrapping_(statistics) Boostrapping (wiki)]&lt;br /&gt;
* [https://software.intel.com/sites/default/files/managed/ff/c8/mkl-2017-developer-reference-c_0.pdf Developer Reference for Intel® Math Kernel Library 2017 - C(pdf)]&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19625</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19625"/>
		<updated>2016-11-30T11:45:03Z</updated>

		<summary type="html">&lt;p&gt;V: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Сложность последовательного алгоритма порядка &amp;lt;math&amp;gt;O(n^{3})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
Для исследования масштабируемости были проведены серии тестов с различным числом узлов (в степенях 2). Чем больше узлов, тем меньше загруженность каждого, если хотим получить одинаковый совокупный объем данных, а, следовательно, программа выполняется быстрее.&lt;br /&gt;
График для фиксированных n = 100, p = 10.&lt;br /&gt;
[[Файл:Graphhh.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Все тесты проводились на [https://ru.wikipedia.org/wiki/Ломоносов_(суперкомпьютер) суперкомпьютере Ломоносов].&lt;br /&gt;
Характеристики вычислительного кластера: [http://users.parallel.ru/wiki/pages/22-config link].&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;mkl.h&amp;quot;&lt;br /&gt;
#include &amp;lt;ctime&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sstream&amp;gt;&lt;br /&gt;
#include &amp;quot;mpi.h&amp;quot;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;iterator&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
void diagMatrix(int p, int k, float *m);&lt;br /&gt;
void ortBasis(int p, float *m);&lt;br /&gt;
void out(int p, float *m);&lt;br /&gt;
void choleskyFactorization(int p, float *m);&lt;br /&gt;
void copy(int p, float *from, float *to);&lt;br /&gt;
void samplesGenerate(int n, int p, float *mean, float *chol, float *res);&lt;br /&gt;
void wGenerate(int n, float* w);&lt;br /&gt;
void sampleCovarianceBootstrap(int n, int p, float* Samples, float* Result);&lt;br /&gt;
void sampleCovariance(int n, int p, float* Samples, float* Result);&lt;br /&gt;
void eigenDecomposition(int p, float* m, float *values);&lt;br /&gt;
void rProjector(int p, int r, float *vectors, float* projector);&lt;br /&gt;
float S(int n, int p, float *m1, float *m2);&lt;br /&gt;
float **alloc2d(int n, int m);&lt;br /&gt;
&lt;br /&gt;
float **alloc2d(int n, int m)&lt;br /&gt;
{&lt;br /&gt;
    float *data = (float*) malloc(n*m*sizeof(float));&lt;br /&gt;
    float **array = (float **)malloc(n*sizeof(float *));&lt;br /&gt;
    for (int i=0; i&amp;lt;n; i++)&lt;br /&gt;
        array[i] = &amp;amp;(data[i*m]);&lt;br /&gt;
    return array;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct aboutMatrix&lt;br /&gt;
{&lt;br /&gt;
    float* matrix;&lt;br /&gt;
    float* l;&lt;br /&gt;
    float* u;&lt;br /&gt;
    float* cholesky;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void diagMatrix(int p, int k, float *m)&lt;br /&gt;
{&lt;br /&gt;
    float numbers[5] = {36, 30, 25, 19, 15};&lt;br /&gt;
    int ind = 0;&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for (int j = 0; j &amp;lt; p; ++j)&lt;br /&gt;
            m[i*p + j] = 0.0;&lt;br /&gt;
        if (k &amp;gt; 0)&lt;br /&gt;
        {&lt;br /&gt;
            m[i*p + i] = numbers[ind];&lt;br /&gt;
            ind++;&lt;br /&gt;
            k--;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
            m[i*p + i] = 1.0 + 5.0*rand() / float(RAND_MAX);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ortBasis(int p, float *m)&lt;br /&gt;
{&lt;br /&gt;
for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        for(int j = 0; j &amp;lt; p; j++)&lt;br /&gt;
            m[i*p + j] = rand();&lt;br /&gt;
    float* tau = (float*) calloc(p, sizeof(float));&lt;br /&gt;
    LAPACKE_sgeqrf(LAPACK_ROW_MAJOR, p, p, m, p, tau);&lt;br /&gt;
    LAPACKE_sorgqr(LAPACK_ROW_MAJOR, p, p, 1, m, p, tau);&lt;br /&gt;
    free(tau);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void out(int r, int c, float *m)&lt;br /&gt;
{&lt;br /&gt;
    for (int i = 0; i &amp;lt; r; i++)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;{ &amp;quot;;&lt;br /&gt;
        for (int j = 0; j &amp;lt; c; j++)&lt;br /&gt;
            cout &amp;lt;&amp;lt; m[i*c + j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;}&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void choleskyFactorization(int p, float *m)&lt;br /&gt;
{&lt;br /&gt;
    lapack_int q = LAPACKE_spotrf(LAPACK_ROW_MAJOR, &#039;L&#039;, p, m, p);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void copy(int p, float *from, float *to)&lt;br /&gt;
{&lt;br /&gt;
    mkl_somatcopy(&#039;R&#039;, &#039;N&#039;, p, p, 1.0, from, p, to, p);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void samplesGenerate(int n, int p, float *mean, float *chol, float *res)&lt;br /&gt;
{&lt;br /&gt;
    VSLStreamStatePtr stream;&lt;br /&gt;
    int i = (int) rand();&lt;br /&gt;
    vslNewStream(&amp;amp;stream,VSL_BRNG_MCG31, i);&lt;br /&gt;
    vsRngGaussianMV(VSL_RNG_METHOD_GAUSSIANMV_BOXMULLER, stream, n, res, p, VSL_MATRIX_STORAGE_FULL, mean, chol);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void wGenerate(int n, float* w)&lt;br /&gt;
{&lt;br /&gt;
    float *mean = (float *) calloc(n, sizeof(float));&lt;br /&gt;
    float *cov = (float*) calloc(n * n, sizeof(float));&lt;br /&gt;
    for (int i = 1; i &amp;lt; n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        mean[i] = 1;&lt;br /&gt;
        cov[i*n + i] = 1;&lt;br /&gt;
    }&lt;br /&gt;
    int i = (int) rand();&lt;br /&gt;
    VSLStreamStatePtr stream;&lt;br /&gt;
    vslNewStream(&amp;amp;stream,VSL_BRNG_MCG31, i);&lt;br /&gt;
    vsRngGaussianMV(VSL_RNG_METHOD_GAUSSIANMV_BOXMULLER, stream, 1, w, n, VSL_MATRIX_STORAGE_FULL, mean, cov);&lt;br /&gt;
    free(mean);&lt;br /&gt;
    free(cov);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sampleCovarianceBootstrap(int n, int p, float* Samples, float* Result)&lt;br /&gt;
{&lt;br /&gt;
 //Result p*p&lt;br /&gt;
    float *W = (float *) calloc(n, sizeof(float));&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    wGenerate(n, W);&lt;br /&gt;
    for(int k = 0; k &amp;lt; n; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            X[i] = Samples[k*p + i];&lt;br /&gt;
        }&lt;br /&gt;
        cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, W[k], X, p, X, p, 1.0, Result, p);&lt;br /&gt;
    }&lt;br /&gt;
    free(W);&lt;br /&gt;
    for(int k = 0; k &amp;lt; p; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            Result[k*p + i] /= n;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(X);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sampleCovariance(int n, int p, float* Samples, float* Result)&lt;br /&gt;
{&lt;br /&gt;
 //Result p*p&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    for(int k = 0; k &amp;lt; n; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            X[i] = Samples[k*p + i];&lt;br /&gt;
        }&lt;br /&gt;
        cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, 1.0, X, p, X, p, 1.0, Result, p);&lt;br /&gt;
    }&lt;br /&gt;
    for(int k = 0; k &amp;lt; p; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            Result[k*p + i] /= n;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    free(X);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void eigenDecomposition(int p, float* m, float *values) //decreasing orderб столбыц!&lt;br /&gt;
{&lt;br /&gt;
    LAPACKE_ssyevd(LAPACK_ROW_MAJOR, &#039;V&#039;, &#039;U&#039;, p, m, p, values);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rProjector(int p, int r, float *vectors, float* projector)&lt;br /&gt;
{&lt;br /&gt;
    int num = p - r;&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
    {&lt;br /&gt;
        X[i] = vectors[p*i + num];&lt;br /&gt;
    }&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, 1.0, X, p, X, p, 1.0, projector, p);&lt;br /&gt;
    free(X);   &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
float S(int n, int p, float *m1, float *m2)&lt;br /&gt;
{&lt;br /&gt;
    float *m = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        for (int j = 0; j &amp;lt; p; j++)&lt;br /&gt;
            m[i*p + j] = m1[i*p + j] - m2[i*p + j];&lt;br /&gt;
    float norm = LAPACKE_slange(LAPACK_ROW_MAJOR, &#039;F&#039;, p, p, m, p);&lt;br /&gt;
    free(m);&lt;br /&gt;
    return n*norm*norm;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
    //задаем размерности&lt;br /&gt;
    int paral = 16;&lt;br /&gt;
    int p = 20;&lt;br /&gt;
    int k = 3;&lt;br /&gt;
    int M = 3000;&lt;br /&gt;
    int r = 1; //нумерация с 1&lt;br /&gt;
    int N = 3; //45&lt;br /&gt;
    int n = 100;&lt;br /&gt;
    int rank, size, prev, next;&lt;br /&gt;
    &lt;br /&gt;
    //инициализация MPI&lt;br /&gt;
    MPI_Request reqs[4];&lt;br /&gt;
    MPI_Status stats[4];&lt;br /&gt;
    MPI_Init(&amp;amp;argc, &amp;amp;argv);&lt;br /&gt;
    MPI_Comm_size(MPI_COMM_WORLD, &amp;amp;size);&lt;br /&gt;
    MPI_Comm_rank(MPI_COMM_WORLD, &amp;amp;rank);&lt;br /&gt;
    //&lt;br /&gt;
    double MPI_Wtime(void);&lt;br /&gt;
    double t1, t2, dt;&lt;br /&gt;
    //&lt;br /&gt;
    t1 = MPI_Wtime();&lt;br /&gt;
    prev = rank - 1;&lt;br /&gt;
    next = rank + 1;&lt;br /&gt;
    if(rank==0) prev = size - 1;&lt;br /&gt;
    if(rank==size - 1) next = 0;&lt;br /&gt;
&lt;br /&gt;
    //чтобы у всех сгенерировалась одинаковая матрица ковариации srand сработает одновременно&lt;br /&gt;
    srand(time(NULL));&lt;br /&gt;
    //файлы, в который будем писать результаты, у каждого параллельного процесса свой (номер процесса + .txt)&lt;br /&gt;
    ofstream myfile;&lt;br /&gt;
    char intStr[2];&lt;br /&gt;
    if (rank &amp;lt; 10)&lt;br /&gt;
    {&lt;br /&gt;
        intStr[0] = &#039;0&#039;;&lt;br /&gt;
        intStr[1] = &#039;0&#039; + rank;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        intStr[0] = &#039;1&#039;;&lt;br /&gt;
        intStr[1] = &#039;0&#039; + rank - 10;&lt;br /&gt;
    }&lt;br /&gt;
    char *txt = &amp;quot;.txt&amp;quot;;&lt;br /&gt;
    char *str = strcat(intStr,txt);&lt;br /&gt;
&lt;br /&gt;
    myfile.open(str);&lt;br /&gt;
&lt;br /&gt;
    //файлы, в которые будем отправлять размерности и тд, за это будет отвечать нулевой процесс&lt;br /&gt;
    ofstream dim;&lt;br /&gt;
    ofstream val;&lt;br /&gt;
&lt;br /&gt;
    if (rank == 0){&lt;br /&gt;
        dim.open(&amp;quot;dimensions.txt&amp;quot;);&lt;br /&gt;
        val.open(&amp;quot;values.txt&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (rank == 0)&lt;br /&gt;
    {&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;p = &amp;quot; &amp;lt;&amp;lt; p &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;k = &amp;quot; &amp;lt;&amp;lt; k &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;M = &amp;quot; &amp;lt;&amp;lt; M &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;r = &amp;quot; &amp;lt;&amp;lt; r &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;N = &amp;quot; &amp;lt;&amp;lt; N*(paral-1) &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;n = &amp;quot; &amp;lt;&amp;lt; n;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //генерация матрицы ковариации&lt;br /&gt;
    float *COV = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *MEAN = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *COV_Chol = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *Basis = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *COV_L = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    ortBasis(p, Basis);&lt;br /&gt;
&lt;br /&gt;
    diagMatrix(p, k, COV_L);&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, p, p, p, 1.0, Basis, p, COV_L, p, 0.0, COV, p);&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, p, p, p, 1.0, COV, p, Basis, p, 0.0, COV_L, p);&lt;br /&gt;
    copy(p, COV_L, COV);&lt;br /&gt;
    &lt;br /&gt;
    copy(p, COV, COV_Chol);&lt;br /&gt;
    choleskyFactorization(p, COV_Chol);&lt;br /&gt;
    free(Basis);&lt;br /&gt;
    free(COV_L);&lt;br /&gt;
&lt;br /&gt;
    float *values_pr = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *vectors_pr = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    copy(p, COV, vectors_pr);&lt;br /&gt;
    eigenDecomposition(p, vectors_pr, values_pr);&lt;br /&gt;
&lt;br /&gt;
    //для исследования нам понадобятся собственные значения, поэтому их тоже выводит нулевой процесс&lt;br /&gt;
    if(rank ==0){&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            val &amp;lt;&amp;lt; values_pr[i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        val &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(values_pr);&lt;br /&gt;
    free(vectors_pr);&lt;br /&gt;
&lt;br /&gt;
    //вычислим проектор для реальной матрицы ковариации&lt;br /&gt;
    float *values = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *vectors = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *ProjectorR = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    copy(p, COV, vectors);&lt;br /&gt;
    eigenDecomposition(p, vectors, values);&lt;br /&gt;
    rProjector(p, r, vectors, ProjectorR);&lt;br /&gt;
    //ProjectorR - нужный проектор&lt;br /&gt;
    free(values);&lt;br /&gt;
    free(vectors);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    //для каждого процесса запустим свой рандом (зависящий от ранка), иначе все значения у каждого процесса будут одинаковые&lt;br /&gt;
    srand(time(NULL) + rank);&lt;br /&gt;
&lt;br /&gt;
    float* NormsBootstrapWorld = (float *) calloc(N * M, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
    {&lt;br /&gt;
        float *Samples = (float *) calloc(n * p, sizeof(float)); //Каждый Xj - строка в матрице&lt;br /&gt;
        for (int j = 0; j &amp;lt; M; j++)&lt;br /&gt;
        {&lt;br /&gt;
            float *COV_SampleBootstrap = (float *) calloc(p * p, sizeof(float));            &lt;br /&gt;
            float *values = (float *) calloc(p, sizeof(float));&lt;br /&gt;
            float *vectors = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
            float *ProjectorSB = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
            sampleCovarianceBootstrap(n, p, Samples, COV_SampleBootstrap);&lt;br /&gt;
            copy(p, COV_SampleBootstrap, vectors);&lt;br /&gt;
            eigenDecomposition(p, vectors, values); //вектора в столбцах&lt;br /&gt;
            rProjector(p, r, vectors, ProjectorSB);&lt;br /&gt;
            //ProjectorSB - нужный проектор&lt;br /&gt;
&lt;br /&gt;
            float s = S(n, p, ProjectorR, ProjectorSB);&lt;br /&gt;
            NormsBootstrapWorld[i*M + j] = s;&lt;br /&gt;
&lt;br /&gt;
            free(COV_SampleBootstrap);&lt;br /&gt;
            free(values);&lt;br /&gt;
            free(vectors);&lt;br /&gt;
            free(ProjectorSB);&lt;br /&gt;
        }&lt;br /&gt;
        free(Samples);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(ProjectorR);&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; M; i++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int j = 0; j &amp;lt; N; j++)&lt;br /&gt;
        {&lt;br /&gt;
            myfile &amp;lt;&amp;lt; NormsBootstrapWorld[j*M + i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        myfile &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    //в myfile N столбцов&lt;br /&gt;
&lt;br /&gt;
    myfile &amp;lt;&amp;lt; endl;            &lt;br /&gt;
    free(NormsBootstrapWorld);&lt;br /&gt;
&lt;br /&gt;
    free(COV);&lt;br /&gt;
    free(MEAN);&lt;br /&gt;
    free(COV_Chol);&lt;br /&gt;
    t2 = MPI_Wtime();&lt;br /&gt;
    dt = t2 - t1;&lt;br /&gt;
    if (rank == 0)&lt;br /&gt;
        cout &amp;lt;&amp;lt; dt &amp;lt;&amp;lt; endl;&lt;br /&gt;
    MPI_Finalize(); //конец параллеливания&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Bootstrapping_(statistics) Boostrapping (wiki)]&lt;br /&gt;
* [https://software.intel.com/sites/default/files/managed/ff/c8/mkl-2017-developer-reference-c_0.pdf Developer Reference for Intel® Math Kernel Library 2017 - C(pdf)]&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19624</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19624"/>
		<updated>2016-11-30T11:34:05Z</updated>

		<summary type="html">&lt;p&gt;V: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
Для исследования масштабируемости были проведены серии тестов с различным числом узлов (в степенях 2). Чем больше узлов, тем меньше загруженность каждого, если хотим получить одинаковый совокупный объем данных, а, следовательно, программа выполняется быстрее.&lt;br /&gt;
График для фиксированных n = 100, p = 10.&lt;br /&gt;
[[Файл:Graphhh.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Все тесты проводились на [https://ru.wikipedia.org/wiki/Ломоносов_(суперкомпьютер) суперкомпьютере Ломоносов].&lt;br /&gt;
Характеристики вычислительного кластера: [http://users.parallel.ru/wiki/pages/22-config link].&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;mkl.h&amp;quot;&lt;br /&gt;
#include &amp;lt;ctime&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sstream&amp;gt;&lt;br /&gt;
#include &amp;quot;mpi.h&amp;quot;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;iterator&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
void diagMatrix(int p, int k, float *m);&lt;br /&gt;
void ortBasis(int p, float *m);&lt;br /&gt;
void out(int p, float *m);&lt;br /&gt;
void choleskyFactorization(int p, float *m);&lt;br /&gt;
void copy(int p, float *from, float *to);&lt;br /&gt;
void samplesGenerate(int n, int p, float *mean, float *chol, float *res);&lt;br /&gt;
void wGenerate(int n, float* w);&lt;br /&gt;
void sampleCovarianceBootstrap(int n, int p, float* Samples, float* Result);&lt;br /&gt;
void sampleCovariance(int n, int p, float* Samples, float* Result);&lt;br /&gt;
void eigenDecomposition(int p, float* m, float *values);&lt;br /&gt;
void rProjector(int p, int r, float *vectors, float* projector);&lt;br /&gt;
float S(int n, int p, float *m1, float *m2);&lt;br /&gt;
float **alloc2d(int n, int m);&lt;br /&gt;
&lt;br /&gt;
float **alloc2d(int n, int m)&lt;br /&gt;
{&lt;br /&gt;
    float *data = (float*) malloc(n*m*sizeof(float));&lt;br /&gt;
    float **array = (float **)malloc(n*sizeof(float *));&lt;br /&gt;
    for (int i=0; i&amp;lt;n; i++)&lt;br /&gt;
        array[i] = &amp;amp;(data[i*m]);&lt;br /&gt;
    return array;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct aboutMatrix&lt;br /&gt;
{&lt;br /&gt;
    float* matrix;&lt;br /&gt;
    float* l;&lt;br /&gt;
    float* u;&lt;br /&gt;
    float* cholesky;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void diagMatrix(int p, int k, float *m)&lt;br /&gt;
{&lt;br /&gt;
    float numbers[5] = {36, 30, 25, 19, 15};&lt;br /&gt;
    int ind = 0;&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for (int j = 0; j &amp;lt; p; ++j)&lt;br /&gt;
            m[i*p + j] = 0.0;&lt;br /&gt;
        if (k &amp;gt; 0)&lt;br /&gt;
        {&lt;br /&gt;
            m[i*p + i] = numbers[ind];&lt;br /&gt;
            ind++;&lt;br /&gt;
            k--;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
            m[i*p + i] = 1.0 + 5.0*rand() / float(RAND_MAX);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ortBasis(int p, float *m)&lt;br /&gt;
{&lt;br /&gt;
for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        for(int j = 0; j &amp;lt; p; j++)&lt;br /&gt;
            m[i*p + j] = rand();&lt;br /&gt;
    float* tau = (float*) calloc(p, sizeof(float));&lt;br /&gt;
    LAPACKE_sgeqrf(LAPACK_ROW_MAJOR, p, p, m, p, tau);&lt;br /&gt;
    LAPACKE_sorgqr(LAPACK_ROW_MAJOR, p, p, 1, m, p, tau);&lt;br /&gt;
    free(tau);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void out(int r, int c, float *m)&lt;br /&gt;
{&lt;br /&gt;
    for (int i = 0; i &amp;lt; r; i++)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;{ &amp;quot;;&lt;br /&gt;
        for (int j = 0; j &amp;lt; c; j++)&lt;br /&gt;
            cout &amp;lt;&amp;lt; m[i*c + j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;}&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void choleskyFactorization(int p, float *m)&lt;br /&gt;
{&lt;br /&gt;
    lapack_int q = LAPACKE_spotrf(LAPACK_ROW_MAJOR, &#039;L&#039;, p, m, p);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void copy(int p, float *from, float *to)&lt;br /&gt;
{&lt;br /&gt;
    mkl_somatcopy(&#039;R&#039;, &#039;N&#039;, p, p, 1.0, from, p, to, p);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void samplesGenerate(int n, int p, float *mean, float *chol, float *res)&lt;br /&gt;
{&lt;br /&gt;
    VSLStreamStatePtr stream;&lt;br /&gt;
    int i = (int) rand();&lt;br /&gt;
    vslNewStream(&amp;amp;stream,VSL_BRNG_MCG31, i);&lt;br /&gt;
    vsRngGaussianMV(VSL_RNG_METHOD_GAUSSIANMV_BOXMULLER, stream, n, res, p, VSL_MATRIX_STORAGE_FULL, mean, chol);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void wGenerate(int n, float* w)&lt;br /&gt;
{&lt;br /&gt;
    float *mean = (float *) calloc(n, sizeof(float));&lt;br /&gt;
    float *cov = (float*) calloc(n * n, sizeof(float));&lt;br /&gt;
    for (int i = 1; i &amp;lt; n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        mean[i] = 1;&lt;br /&gt;
        cov[i*n + i] = 1;&lt;br /&gt;
    }&lt;br /&gt;
    int i = (int) rand();&lt;br /&gt;
    VSLStreamStatePtr stream;&lt;br /&gt;
    vslNewStream(&amp;amp;stream,VSL_BRNG_MCG31, i);&lt;br /&gt;
    vsRngGaussianMV(VSL_RNG_METHOD_GAUSSIANMV_BOXMULLER, stream, 1, w, n, VSL_MATRIX_STORAGE_FULL, mean, cov);&lt;br /&gt;
    free(mean);&lt;br /&gt;
    free(cov);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sampleCovarianceBootstrap(int n, int p, float* Samples, float* Result)&lt;br /&gt;
{&lt;br /&gt;
 //Result p*p&lt;br /&gt;
    float *W = (float *) calloc(n, sizeof(float));&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    wGenerate(n, W);&lt;br /&gt;
    for(int k = 0; k &amp;lt; n; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            X[i] = Samples[k*p + i];&lt;br /&gt;
        }&lt;br /&gt;
        cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, W[k], X, p, X, p, 1.0, Result, p);&lt;br /&gt;
    }&lt;br /&gt;
    free(W);&lt;br /&gt;
    for(int k = 0; k &amp;lt; p; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            Result[k*p + i] /= n;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(X);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sampleCovariance(int n, int p, float* Samples, float* Result)&lt;br /&gt;
{&lt;br /&gt;
 //Result p*p&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    for(int k = 0; k &amp;lt; n; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            X[i] = Samples[k*p + i];&lt;br /&gt;
        }&lt;br /&gt;
        cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, 1.0, X, p, X, p, 1.0, Result, p);&lt;br /&gt;
    }&lt;br /&gt;
    for(int k = 0; k &amp;lt; p; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            Result[k*p + i] /= n;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    free(X);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void eigenDecomposition(int p, float* m, float *values) //decreasing orderб столбыц!&lt;br /&gt;
{&lt;br /&gt;
    LAPACKE_ssyevd(LAPACK_ROW_MAJOR, &#039;V&#039;, &#039;U&#039;, p, m, p, values);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rProjector(int p, int r, float *vectors, float* projector)&lt;br /&gt;
{&lt;br /&gt;
    int num = p - r;&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
    {&lt;br /&gt;
        X[i] = vectors[p*i + num];&lt;br /&gt;
    }&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, 1.0, X, p, X, p, 1.0, projector, p);&lt;br /&gt;
    free(X);   &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
float S(int n, int p, float *m1, float *m2)&lt;br /&gt;
{&lt;br /&gt;
    float *m = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        for (int j = 0; j &amp;lt; p; j++)&lt;br /&gt;
            m[i*p + j] = m1[i*p + j] - m2[i*p + j];&lt;br /&gt;
    float norm = LAPACKE_slange(LAPACK_ROW_MAJOR, &#039;F&#039;, p, p, m, p);&lt;br /&gt;
    free(m);&lt;br /&gt;
    return n*norm*norm;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
    //задаем размерности&lt;br /&gt;
    int paral = 16;&lt;br /&gt;
    int p = 20;&lt;br /&gt;
    int k = 3;&lt;br /&gt;
    int M = 3000;&lt;br /&gt;
    int r = 1; //нумерация с 1&lt;br /&gt;
    int N = 3; //45&lt;br /&gt;
    int n = 100;&lt;br /&gt;
    int rank, size, prev, next;&lt;br /&gt;
    &lt;br /&gt;
    //инициализация MPI&lt;br /&gt;
    MPI_Request reqs[4];&lt;br /&gt;
    MPI_Status stats[4];&lt;br /&gt;
    MPI_Init(&amp;amp;argc, &amp;amp;argv);&lt;br /&gt;
    MPI_Comm_size(MPI_COMM_WORLD, &amp;amp;size);&lt;br /&gt;
    MPI_Comm_rank(MPI_COMM_WORLD, &amp;amp;rank);&lt;br /&gt;
    //&lt;br /&gt;
    double MPI_Wtime(void);&lt;br /&gt;
    double t1, t2, dt;&lt;br /&gt;
    //&lt;br /&gt;
    t1 = MPI_Wtime();&lt;br /&gt;
    prev = rank - 1;&lt;br /&gt;
    next = rank + 1;&lt;br /&gt;
    if(rank==0) prev = size - 1;&lt;br /&gt;
    if(rank==size - 1) next = 0;&lt;br /&gt;
&lt;br /&gt;
    //чтобы у всех сгенерировалась одинаковая матрица ковариации srand сработает одновременно&lt;br /&gt;
    srand(time(NULL));&lt;br /&gt;
    //файлы, в который будем писать результаты, у каждого параллельного процесса свой (номер процесса + .txt)&lt;br /&gt;
    ofstream myfile;&lt;br /&gt;
    char intStr[2];&lt;br /&gt;
    if (rank &amp;lt; 10)&lt;br /&gt;
    {&lt;br /&gt;
        intStr[0] = &#039;0&#039;;&lt;br /&gt;
        intStr[1] = &#039;0&#039; + rank;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        intStr[0] = &#039;1&#039;;&lt;br /&gt;
        intStr[1] = &#039;0&#039; + rank - 10;&lt;br /&gt;
    }&lt;br /&gt;
    char *txt = &amp;quot;.txt&amp;quot;;&lt;br /&gt;
    char *str = strcat(intStr,txt);&lt;br /&gt;
&lt;br /&gt;
    myfile.open(str);&lt;br /&gt;
&lt;br /&gt;
    //файлы, в которые будем отправлять размерности и тд, за это будет отвечать нулевой процесс&lt;br /&gt;
    ofstream dim;&lt;br /&gt;
    ofstream val;&lt;br /&gt;
&lt;br /&gt;
    if (rank == 0){&lt;br /&gt;
        dim.open(&amp;quot;dimensions.txt&amp;quot;);&lt;br /&gt;
        val.open(&amp;quot;values.txt&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (rank == 0)&lt;br /&gt;
    {&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;p = &amp;quot; &amp;lt;&amp;lt; p &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;k = &amp;quot; &amp;lt;&amp;lt; k &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;M = &amp;quot; &amp;lt;&amp;lt; M &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;r = &amp;quot; &amp;lt;&amp;lt; r &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;N = &amp;quot; &amp;lt;&amp;lt; N*(paral-1) &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;n = &amp;quot; &amp;lt;&amp;lt; n;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //генерация матрицы ковариации&lt;br /&gt;
    float *COV = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *MEAN = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *COV_Chol = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *Basis = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *COV_L = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    ortBasis(p, Basis);&lt;br /&gt;
&lt;br /&gt;
    diagMatrix(p, k, COV_L);&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, p, p, p, 1.0, Basis, p, COV_L, p, 0.0, COV, p);&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, p, p, p, 1.0, COV, p, Basis, p, 0.0, COV_L, p);&lt;br /&gt;
    copy(p, COV_L, COV);&lt;br /&gt;
    &lt;br /&gt;
    copy(p, COV, COV_Chol);&lt;br /&gt;
    choleskyFactorization(p, COV_Chol);&lt;br /&gt;
    free(Basis);&lt;br /&gt;
    free(COV_L);&lt;br /&gt;
&lt;br /&gt;
    float *values_pr = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *vectors_pr = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    copy(p, COV, vectors_pr);&lt;br /&gt;
    eigenDecomposition(p, vectors_pr, values_pr);&lt;br /&gt;
&lt;br /&gt;
    //для исследования нам понадобятся собственные значения, поэтому их тоже выводит нулевой процесс&lt;br /&gt;
    if(rank ==0){&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            val &amp;lt;&amp;lt; values_pr[i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        val &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(values_pr);&lt;br /&gt;
    free(vectors_pr);&lt;br /&gt;
&lt;br /&gt;
    //вычислим проектор для реальной матрицы ковариации&lt;br /&gt;
    float *values = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *vectors = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *ProjectorR = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    copy(p, COV, vectors);&lt;br /&gt;
    eigenDecomposition(p, vectors, values);&lt;br /&gt;
    rProjector(p, r, vectors, ProjectorR);&lt;br /&gt;
    //ProjectorR - нужный проектор&lt;br /&gt;
    free(values);&lt;br /&gt;
    free(vectors);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    //для каждого процесса запустим свой рандом (зависящий от ранка), иначе все значения у каждого процесса будут одинаковые&lt;br /&gt;
    srand(time(NULL) + rank);&lt;br /&gt;
&lt;br /&gt;
    float* NormsBootstrapWorld = (float *) calloc(N * M, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
    {&lt;br /&gt;
        float *Samples = (float *) calloc(n * p, sizeof(float)); //Каждый Xj - строка в матрице&lt;br /&gt;
        for (int j = 0; j &amp;lt; M; j++)&lt;br /&gt;
        {&lt;br /&gt;
            float *COV_SampleBootstrap = (float *) calloc(p * p, sizeof(float));            &lt;br /&gt;
            float *values = (float *) calloc(p, sizeof(float));&lt;br /&gt;
            float *vectors = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
            float *ProjectorSB = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
            sampleCovarianceBootstrap(n, p, Samples, COV_SampleBootstrap);&lt;br /&gt;
            copy(p, COV_SampleBootstrap, vectors);&lt;br /&gt;
            eigenDecomposition(p, vectors, values); //вектора в столбцах&lt;br /&gt;
            rProjector(p, r, vectors, ProjectorSB);&lt;br /&gt;
            //ProjectorSB - нужный проектор&lt;br /&gt;
&lt;br /&gt;
            float s = S(n, p, ProjectorR, ProjectorSB);&lt;br /&gt;
            NormsBootstrapWorld[i*M + j] = s;&lt;br /&gt;
&lt;br /&gt;
            free(COV_SampleBootstrap);&lt;br /&gt;
            free(values);&lt;br /&gt;
            free(vectors);&lt;br /&gt;
            free(ProjectorSB);&lt;br /&gt;
        }&lt;br /&gt;
        free(Samples);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(ProjectorR);&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; M; i++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int j = 0; j &amp;lt; N; j++)&lt;br /&gt;
        {&lt;br /&gt;
            myfile &amp;lt;&amp;lt; NormsBootstrapWorld[j*M + i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        myfile &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    //в myfile N столбцов&lt;br /&gt;
&lt;br /&gt;
    myfile &amp;lt;&amp;lt; endl;            &lt;br /&gt;
    free(NormsBootstrapWorld);&lt;br /&gt;
&lt;br /&gt;
    free(COV);&lt;br /&gt;
    free(MEAN);&lt;br /&gt;
    free(COV_Chol);&lt;br /&gt;
    t2 = MPI_Wtime();&lt;br /&gt;
    dt = t2 - t1;&lt;br /&gt;
    if (rank == 0)&lt;br /&gt;
        cout &amp;lt;&amp;lt; dt &amp;lt;&amp;lt; endl;&lt;br /&gt;
    MPI_Finalize(); //конец параллеливания&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Bootstrapping_(statistics) Boostrapping (wiki)]&lt;br /&gt;
* [https://software.intel.com/sites/default/files/managed/ff/c8/mkl-2017-developer-reference-c_0.pdf Developer Reference for Intel® Math Kernel Library 2017 - C(pdf)]&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19623</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19623"/>
		<updated>2016-11-30T11:32:48Z</updated>

		<summary type="html">&lt;p&gt;V: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
Для исследования масштабируемости были проведены серии тестов с различным числом узлов (в степенях 2). Чем больше узлов, тем меньше загруженность каждого, если хотим получить одинаковый совокупный объем данных, а, следовательно, программа выполняется быстрее.&lt;br /&gt;
График для фиксированных n = 100, p = 10.&lt;br /&gt;
[[Файл:Graphhh.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Все тесты проводились на [https://ru.wikipedia.org/wiki/Ломоносов_(суперкомпьютер) суперкомпьютере Ломоносов].&lt;br /&gt;
Характеристики вычислительного кластера: [http://users.parallel.ru/wiki/pages/22-config link].&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;mkl.h&amp;quot;&lt;br /&gt;
#include &amp;lt;ctime&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sstream&amp;gt;&lt;br /&gt;
#include &amp;quot;mpi.h&amp;quot;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;iterator&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
void diagMatrix(int p, int k, float *m);&lt;br /&gt;
void ortBasis(int p, float *m);&lt;br /&gt;
void out(int p, float *m);&lt;br /&gt;
void choleskyFactorization(int p, float *m);&lt;br /&gt;
void copy(int p, float *from, float *to);&lt;br /&gt;
void samplesGenerate(int n, int p, float *mean, float *chol, float *res);&lt;br /&gt;
void wGenerate(int n, float* w);&lt;br /&gt;
void sampleCovarianceBootstrap(int n, int p, float* Samples, float* Result);&lt;br /&gt;
void sampleCovariance(int n, int p, float* Samples, float* Result);&lt;br /&gt;
void eigenDecomposition(int p, float* m, float *values);&lt;br /&gt;
void rProjector(int p, int r, float *vectors, float* projector);&lt;br /&gt;
float S(int n, int p, float *m1, float *m2);&lt;br /&gt;
float **alloc2d(int n, int m);&lt;br /&gt;
&lt;br /&gt;
float **alloc2d(int n, int m)&lt;br /&gt;
{&lt;br /&gt;
    float *data = (float*) malloc(n*m*sizeof(float));&lt;br /&gt;
    float **array = (float **)malloc(n*sizeof(float *));&lt;br /&gt;
    for (int i=0; i&amp;lt;n; i++)&lt;br /&gt;
        array[i] = &amp;amp;(data[i*m]);&lt;br /&gt;
    return array;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct aboutMatrix&lt;br /&gt;
{&lt;br /&gt;
    float* matrix;&lt;br /&gt;
    float* l;&lt;br /&gt;
    float* u;&lt;br /&gt;
    float* cholesky;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void diagMatrix(int p, int k, float *m)&lt;br /&gt;
{&lt;br /&gt;
    float numbers[5] = {36, 30, 25, 19, 15};&lt;br /&gt;
    int ind = 0;&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for (int j = 0; j &amp;lt; p; ++j)&lt;br /&gt;
            m[i*p + j] = 0.0;&lt;br /&gt;
        if (k &amp;gt; 0)&lt;br /&gt;
        {&lt;br /&gt;
            m[i*p + i] = numbers[ind];&lt;br /&gt;
            ind++;&lt;br /&gt;
            k--;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
            m[i*p + i] = 1.0 + 5.0*rand() / float(RAND_MAX);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ortBasis(int p, float *m)&lt;br /&gt;
{&lt;br /&gt;
for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        for(int j = 0; j &amp;lt; p; j++)&lt;br /&gt;
            m[i*p + j] = rand();&lt;br /&gt;
    float* tau = (float*) calloc(p, sizeof(float));&lt;br /&gt;
    LAPACKE_sgeqrf(LAPACK_ROW_MAJOR, p, p, m, p, tau);&lt;br /&gt;
    LAPACKE_sorgqr(LAPACK_ROW_MAJOR, p, p, 1, m, p, tau);&lt;br /&gt;
    free(tau);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void out(int r, int c, float *m)&lt;br /&gt;
{&lt;br /&gt;
    for (int i = 0; i &amp;lt; r; i++)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;{ &amp;quot;;&lt;br /&gt;
        for (int j = 0; j &amp;lt; c; j++)&lt;br /&gt;
            cout &amp;lt;&amp;lt; m[i*c + j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;}&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void choleskyFactorization(int p, float *m)&lt;br /&gt;
{&lt;br /&gt;
    lapack_int q = LAPACKE_spotrf(LAPACK_ROW_MAJOR, &#039;L&#039;, p, m, p);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void copy(int p, float *from, float *to)&lt;br /&gt;
{&lt;br /&gt;
    mkl_somatcopy(&#039;R&#039;, &#039;N&#039;, p, p, 1.0, from, p, to, p);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void samplesGenerate(int n, int p, float *mean, float *chol, float *res)&lt;br /&gt;
{&lt;br /&gt;
    VSLStreamStatePtr stream;&lt;br /&gt;
    int i = (int) rand();&lt;br /&gt;
    vslNewStream(&amp;amp;stream,VSL_BRNG_MCG31, i);&lt;br /&gt;
    vsRngGaussianMV(VSL_RNG_METHOD_GAUSSIANMV_BOXMULLER, stream, n, res, p, VSL_MATRIX_STORAGE_FULL, mean, chol);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void wGenerate(int n, float* w)&lt;br /&gt;
{&lt;br /&gt;
    float *mean = (float *) calloc(n, sizeof(float));&lt;br /&gt;
    float *cov = (float*) calloc(n * n, sizeof(float));&lt;br /&gt;
    for (int i = 1; i &amp;lt; n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        mean[i] = 1;&lt;br /&gt;
        cov[i*n + i] = 1;&lt;br /&gt;
    }&lt;br /&gt;
    int i = (int) rand();&lt;br /&gt;
    VSLStreamStatePtr stream;&lt;br /&gt;
    vslNewStream(&amp;amp;stream,VSL_BRNG_MCG31, i);&lt;br /&gt;
    vsRngGaussianMV(VSL_RNG_METHOD_GAUSSIANMV_BOXMULLER, stream, 1, w, n, VSL_MATRIX_STORAGE_FULL, mean, cov);&lt;br /&gt;
    free(mean);&lt;br /&gt;
    free(cov);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sampleCovarianceBootstrap(int n, int p, float* Samples, float* Result)&lt;br /&gt;
{&lt;br /&gt;
 //Result p*p&lt;br /&gt;
    float *W = (float *) calloc(n, sizeof(float));&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    wGenerate(n, W);&lt;br /&gt;
    for(int k = 0; k &amp;lt; n; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            X[i] = Samples[k*p + i];&lt;br /&gt;
        }&lt;br /&gt;
        cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, W[k], X, p, X, p, 1.0, Result, p);&lt;br /&gt;
    }&lt;br /&gt;
    free(W);&lt;br /&gt;
    for(int k = 0; k &amp;lt; p; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            Result[k*p + i] /= n;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(X);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sampleCovariance(int n, int p, float* Samples, float* Result)&lt;br /&gt;
{&lt;br /&gt;
 //Result p*p&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    for(int k = 0; k &amp;lt; n; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            X[i] = Samples[k*p + i];&lt;br /&gt;
        }&lt;br /&gt;
        cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, 1.0, X, p, X, p, 1.0, Result, p);&lt;br /&gt;
    }&lt;br /&gt;
    for(int k = 0; k &amp;lt; p; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            Result[k*p + i] /= n;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    free(X);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void eigenDecomposition(int p, float* m, float *values) //decreasing orderб столбыц!&lt;br /&gt;
{&lt;br /&gt;
    LAPACKE_ssyevd(LAPACK_ROW_MAJOR, &#039;V&#039;, &#039;U&#039;, p, m, p, values);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rProjector(int p, int r, float *vectors, float* projector)&lt;br /&gt;
{&lt;br /&gt;
    int num = p - r;&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
    {&lt;br /&gt;
        X[i] = vectors[p*i + num];&lt;br /&gt;
    }&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, 1.0, X, p, X, p, 1.0, projector, p);&lt;br /&gt;
    free(X);   &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
float S(int n, int p, float *m1, float *m2)&lt;br /&gt;
{&lt;br /&gt;
    float *m = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        for (int j = 0; j &amp;lt; p; j++)&lt;br /&gt;
            m[i*p + j] = m1[i*p + j] - m2[i*p + j];&lt;br /&gt;
    float norm = LAPACKE_slange(LAPACK_ROW_MAJOR, &#039;F&#039;, p, p, m, p);&lt;br /&gt;
    free(m);&lt;br /&gt;
    return n*norm*norm;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
    //задаем размерности&lt;br /&gt;
    int paral = 16;&lt;br /&gt;
    int p = 20;&lt;br /&gt;
    int k = 3;&lt;br /&gt;
    int M = 3000;&lt;br /&gt;
    int r = 1; //нумерация с 1&lt;br /&gt;
    int N = 3; //45&lt;br /&gt;
    int n = 100;&lt;br /&gt;
    int rank, size, prev, next;&lt;br /&gt;
    &lt;br /&gt;
    //инициализация MPI&lt;br /&gt;
    MPI_Request reqs[4];&lt;br /&gt;
    MPI_Status stats[4];&lt;br /&gt;
    MPI_Init(&amp;amp;argc, &amp;amp;argv);&lt;br /&gt;
    MPI_Comm_size(MPI_COMM_WORLD, &amp;amp;size);&lt;br /&gt;
    MPI_Comm_rank(MPI_COMM_WORLD, &amp;amp;rank);&lt;br /&gt;
    //&lt;br /&gt;
    double MPI_Wtime(void);&lt;br /&gt;
    double t1, t2, dt;&lt;br /&gt;
    //&lt;br /&gt;
    t1 = MPI_Wtime();&lt;br /&gt;
    prev = rank - 1;&lt;br /&gt;
    next = rank + 1;&lt;br /&gt;
    if(rank==0) prev = size - 1;&lt;br /&gt;
    if(rank==size - 1) next = 0;&lt;br /&gt;
&lt;br /&gt;
    //чтобы у всех сгенерировалась одинаковая матрица ковариации srand сработает одновременно&lt;br /&gt;
    srand(time(NULL));&lt;br /&gt;
    //файлы, в который будем писать результаты, у каждого параллельного процесса свой (номер процесса + .txt)&lt;br /&gt;
    ofstream myfile;&lt;br /&gt;
    char intStr[2];&lt;br /&gt;
    if (rank &amp;lt; 10)&lt;br /&gt;
    {&lt;br /&gt;
        intStr[0] = &#039;0&#039;;&lt;br /&gt;
        intStr[1] = &#039;0&#039; + rank;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        intStr[0] = &#039;1&#039;;&lt;br /&gt;
        intStr[1] = &#039;0&#039; + rank - 10;&lt;br /&gt;
    }&lt;br /&gt;
    char *txt = &amp;quot;.txt&amp;quot;;&lt;br /&gt;
    char *str = strcat(intStr,txt);&lt;br /&gt;
&lt;br /&gt;
    myfile.open(str);&lt;br /&gt;
&lt;br /&gt;
    //файлы, в которые будем отправлять размерности и тд, за это будет отвечать нулевой процесс&lt;br /&gt;
    ofstream dim;&lt;br /&gt;
    ofstream val;&lt;br /&gt;
&lt;br /&gt;
    if (rank == 0){&lt;br /&gt;
        dim.open(&amp;quot;dimensions.txt&amp;quot;);&lt;br /&gt;
        val.open(&amp;quot;values.txt&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (rank == 0)&lt;br /&gt;
    {&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;p = &amp;quot; &amp;lt;&amp;lt; p &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;k = &amp;quot; &amp;lt;&amp;lt; k &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;M = &amp;quot; &amp;lt;&amp;lt; M &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;r = &amp;quot; &amp;lt;&amp;lt; r &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;N = &amp;quot; &amp;lt;&amp;lt; N*(paral-1) &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;n = &amp;quot; &amp;lt;&amp;lt; n;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //генерация матрицы ковариации&lt;br /&gt;
    float *COV = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *MEAN = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *COV_Chol = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *Basis = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *COV_L = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    ortBasis(p, Basis);&lt;br /&gt;
&lt;br /&gt;
    diagMatrix(p, k, COV_L);&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, p, p, p, 1.0, Basis, p, COV_L, p, 0.0, COV, p);&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, p, p, p, 1.0, COV, p, Basis, p, 0.0, COV_L, p);&lt;br /&gt;
    copy(p, COV_L, COV);&lt;br /&gt;
    &lt;br /&gt;
    copy(p, COV, COV_Chol);&lt;br /&gt;
    choleskyFactorization(p, COV_Chol);&lt;br /&gt;
    free(Basis);&lt;br /&gt;
    free(COV_L);&lt;br /&gt;
&lt;br /&gt;
    float *values_pr = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *vectors_pr = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    copy(p, COV, vectors_pr);&lt;br /&gt;
    eigenDecomposition(p, vectors_pr, values_pr);&lt;br /&gt;
&lt;br /&gt;
    //для исследования нам понадобятся собственные значения, поэтому их тоже выводит нулевой процесс&lt;br /&gt;
    if(rank ==0){&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            val &amp;lt;&amp;lt; values_pr[i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        val &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(values_pr);&lt;br /&gt;
    free(vectors_pr);&lt;br /&gt;
&lt;br /&gt;
    //вычислим проектор для реальной матрицы ковариации&lt;br /&gt;
    float *values = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *vectors = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *ProjectorR = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    copy(p, COV, vectors);&lt;br /&gt;
    eigenDecomposition(p, vectors, values);&lt;br /&gt;
    rProjector(p, r, vectors, ProjectorR);&lt;br /&gt;
    //ProjectorR - нужный проектор&lt;br /&gt;
    free(values);&lt;br /&gt;
    free(vectors);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    //для каждого процесса запустим свой рандом (зависящий от ранка), иначе все значения у каждого процесса будут одинаковые&lt;br /&gt;
    srand(time(NULL) + rank);&lt;br /&gt;
&lt;br /&gt;
    float* NormsBootstrapWorld = (float *) calloc(N * M, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
    {&lt;br /&gt;
        float *Samples = (float *) calloc(n * p, sizeof(float)); //Каждый Xj - строка в матрице&lt;br /&gt;
        for (int j = 0; j &amp;lt; M; j++)&lt;br /&gt;
        {&lt;br /&gt;
            float *COV_SampleBootstrap = (float *) calloc(p * p, sizeof(float));            &lt;br /&gt;
            float *values = (float *) calloc(p, sizeof(float));&lt;br /&gt;
            float *vectors = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
            float *ProjectorSB = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
            sampleCovarianceBootstrap(n, p, Samples, COV_SampleBootstrap);&lt;br /&gt;
            copy(p, COV_SampleBootstrap, vectors);&lt;br /&gt;
            eigenDecomposition(p, vectors, values); //вектора в столбцах&lt;br /&gt;
            rProjector(p, r, vectors, ProjectorSB);&lt;br /&gt;
            //ProjectorSB - нужный проектор&lt;br /&gt;
&lt;br /&gt;
            float s = S(n, p, ProjectorR, ProjectorSB);&lt;br /&gt;
            NormsBootstrapWorld[i*M + j] = s;&lt;br /&gt;
&lt;br /&gt;
            free(COV_SampleBootstrap);&lt;br /&gt;
            free(values);&lt;br /&gt;
            free(vectors);&lt;br /&gt;
            free(ProjectorSB);&lt;br /&gt;
        }&lt;br /&gt;
        free(Samples);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(ProjectorR);&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; M; i++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int j = 0; j &amp;lt; N; j++)&lt;br /&gt;
        {&lt;br /&gt;
            myfile &amp;lt;&amp;lt; NormsBootstrapWorld[j*M + i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        myfile &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    //в myfile N столбцов&lt;br /&gt;
&lt;br /&gt;
    myfile &amp;lt;&amp;lt; endl;            &lt;br /&gt;
    free(NormsBootstrapWorld);&lt;br /&gt;
&lt;br /&gt;
    free(COV);&lt;br /&gt;
    free(MEAN);&lt;br /&gt;
    free(COV_Chol);&lt;br /&gt;
    t2 = MPI_Wtime();&lt;br /&gt;
    dt = t2 - t1;&lt;br /&gt;
    if (rank == 0)&lt;br /&gt;
        cout &amp;lt;&amp;lt; dt &amp;lt;&amp;lt; endl;&lt;br /&gt;
    MPI_Finalize(); //конец параллеливания&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Bootstrapping_(statistics)]&lt;br /&gt;
* [https://software.intel.com/sites/default/files/managed/ff/c8/mkl-2017-developer-reference-c_0.pdf]&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19622</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19622"/>
		<updated>2016-11-30T11:27:54Z</updated>

		<summary type="html">&lt;p&gt;V: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
Для исследования масштабируемости были проведены серии тестов с различным числом узлов (в степенях 2). Чем больше узлов, тем меньше загруженность каждого, если хотим получить одинаковый совокупный объем данных, а, следовательно, программа выполняется быстрее.&lt;br /&gt;
График для фиксированных n = 100, p = 10.&lt;br /&gt;
[[Файл:Graphhh.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Все тесты проводились на [https://ru.wikipedia.org/wiki/Ломоносов_(суперкомпьютер) суперкомпьютере Ломоносов].&lt;br /&gt;
Характеристики вычислительного кластера: [http://users.parallel.ru/wiki/pages/22-config link].&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;mkl.h&amp;quot;&lt;br /&gt;
#include &amp;lt;ctime&amp;gt;&lt;br /&gt;
#include &amp;lt;cstdlib&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sstream&amp;gt;&lt;br /&gt;
#include &amp;quot;mpi.h&amp;quot;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
#include &amp;lt;iterator&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
void diagMatrix(int p, int k, float *m);&lt;br /&gt;
void ortBasis(int p, float *m);&lt;br /&gt;
void out(int p, float *m);&lt;br /&gt;
void choleskyFactorization(int p, float *m);&lt;br /&gt;
void copy(int p, float *from, float *to);&lt;br /&gt;
void samplesGenerate(int n, int p, float *mean, float *chol, float *res);&lt;br /&gt;
void wGenerate(int n, float* w);&lt;br /&gt;
void sampleCovarianceBootstrap(int n, int p, float* Samples, float* Result);&lt;br /&gt;
void sampleCovariance(int n, int p, float* Samples, float* Result);&lt;br /&gt;
void eigenDecomposition(int p, float* m, float *values);&lt;br /&gt;
void rProjector(int p, int r, float *vectors, float* projector);&lt;br /&gt;
float S(int n, int p, float *m1, float *m2);&lt;br /&gt;
float **alloc2d(int n, int m);&lt;br /&gt;
&lt;br /&gt;
float **alloc2d(int n, int m)&lt;br /&gt;
{&lt;br /&gt;
    float *data = (float*) malloc(n*m*sizeof(float));&lt;br /&gt;
    float **array = (float **)malloc(n*sizeof(float *));&lt;br /&gt;
    for (int i=0; i&amp;lt;n; i++)&lt;br /&gt;
        array[i] = &amp;amp;(data[i*m]);&lt;br /&gt;
    return array;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct aboutMatrix&lt;br /&gt;
{&lt;br /&gt;
    float* matrix;&lt;br /&gt;
    float* l;&lt;br /&gt;
    float* u;&lt;br /&gt;
    float* cholesky;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void diagMatrix(int p, int k, float *m)&lt;br /&gt;
{&lt;br /&gt;
    float numbers[5] = {36, 30, 25, 19, 15};&lt;br /&gt;
    int ind = 0;&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; ++i)&lt;br /&gt;
    {&lt;br /&gt;
        for (int j = 0; j &amp;lt; p; ++j)&lt;br /&gt;
            m[i*p + j] = 0.0;&lt;br /&gt;
        if (k &amp;gt; 0)&lt;br /&gt;
        {&lt;br /&gt;
            m[i*p + i] = numbers[ind];&lt;br /&gt;
            ind++;&lt;br /&gt;
            k--;&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
            m[i*p + i] = 1.0 + 5.0*rand() / float(RAND_MAX);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ortBasis(int p, float *m)&lt;br /&gt;
{&lt;br /&gt;
for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        for(int j = 0; j &amp;lt; p; j++)&lt;br /&gt;
            m[i*p + j] = rand();&lt;br /&gt;
    float* tau = (float*) calloc(p, sizeof(float));&lt;br /&gt;
    LAPACKE_sgeqrf(LAPACK_ROW_MAJOR, p, p, m, p, tau);&lt;br /&gt;
    LAPACKE_sorgqr(LAPACK_ROW_MAJOR, p, p, 1, m, p, tau);&lt;br /&gt;
    free(tau);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void out(int r, int c, float *m)&lt;br /&gt;
{&lt;br /&gt;
    for (int i = 0; i &amp;lt; r; i++)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;{ &amp;quot;;&lt;br /&gt;
        for (int j = 0; j &amp;lt; c; j++)&lt;br /&gt;
            cout &amp;lt;&amp;lt; m[i*c + j] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;}&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void choleskyFactorization(int p, float *m)&lt;br /&gt;
{&lt;br /&gt;
    lapack_int q = LAPACKE_spotrf(LAPACK_ROW_MAJOR, &#039;L&#039;, p, m, p);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void copy(int p, float *from, float *to)&lt;br /&gt;
{&lt;br /&gt;
    mkl_somatcopy(&#039;R&#039;, &#039;N&#039;, p, p, 1.0, from, p, to, p);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void samplesGenerate(int n, int p, float *mean, float *chol, float *res)&lt;br /&gt;
{&lt;br /&gt;
    VSLStreamStatePtr stream;&lt;br /&gt;
    int i = (int) rand();&lt;br /&gt;
    vslNewStream(&amp;amp;stream,VSL_BRNG_MCG31, i);&lt;br /&gt;
    vsRngGaussianMV(VSL_RNG_METHOD_GAUSSIANMV_BOXMULLER, stream, n, res, p, VSL_MATRIX_STORAGE_FULL, mean, chol);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void wGenerate(int n, float* w)&lt;br /&gt;
{&lt;br /&gt;
    float *mean = (float *) calloc(n, sizeof(float));&lt;br /&gt;
    float *cov = (float*) calloc(n * n, sizeof(float));&lt;br /&gt;
    for (int i = 1; i &amp;lt; n; i++)&lt;br /&gt;
    {&lt;br /&gt;
        mean[i] = 1;&lt;br /&gt;
        cov[i*n + i] = 1;&lt;br /&gt;
    }&lt;br /&gt;
    int i = (int) rand();&lt;br /&gt;
    VSLStreamStatePtr stream;&lt;br /&gt;
    vslNewStream(&amp;amp;stream,VSL_BRNG_MCG31, i);&lt;br /&gt;
    vsRngGaussianMV(VSL_RNG_METHOD_GAUSSIANMV_BOXMULLER, stream, 1, w, n, VSL_MATRIX_STORAGE_FULL, mean, cov);&lt;br /&gt;
    free(mean);&lt;br /&gt;
    free(cov);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sampleCovarianceBootstrap(int n, int p, float* Samples, float* Result)&lt;br /&gt;
{&lt;br /&gt;
 //Result p*p&lt;br /&gt;
    float *W = (float *) calloc(n, sizeof(float));&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    wGenerate(n, W);&lt;br /&gt;
    for(int k = 0; k &amp;lt; n; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            X[i] = Samples[k*p + i];&lt;br /&gt;
        }&lt;br /&gt;
        cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, W[k], X, p, X, p, 1.0, Result, p);&lt;br /&gt;
    }&lt;br /&gt;
    free(W);&lt;br /&gt;
    for(int k = 0; k &amp;lt; p; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            Result[k*p + i] /= n;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(X);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sampleCovariance(int n, int p, float* Samples, float* Result)&lt;br /&gt;
{&lt;br /&gt;
 //Result p*p&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    for(int k = 0; k &amp;lt; n; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            X[i] = Samples[k*p + i];&lt;br /&gt;
        }&lt;br /&gt;
        cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, 1.0, X, p, X, p, 1.0, Result, p);&lt;br /&gt;
    }&lt;br /&gt;
    for(int k = 0; k &amp;lt; p; k++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            Result[k*p + i] /= n;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    free(X);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void eigenDecomposition(int p, float* m, float *values) //decreasing orderб столбыц!&lt;br /&gt;
{&lt;br /&gt;
    LAPACKE_ssyevd(LAPACK_ROW_MAJOR, &#039;V&#039;, &#039;U&#039;, p, m, p, values);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void rProjector(int p, int r, float *vectors, float* projector)&lt;br /&gt;
{&lt;br /&gt;
    int num = p - r;&lt;br /&gt;
    float *X = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
    {&lt;br /&gt;
        X[i] = vectors[p*i + num];&lt;br /&gt;
    }&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasTrans, CblasNoTrans, p, p, 1, 1.0, X, p, X, p, 1.0, projector, p);&lt;br /&gt;
    free(X);   &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
float S(int n, int p, float *m1, float *m2)&lt;br /&gt;
{&lt;br /&gt;
    float *m = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        for (int j = 0; j &amp;lt; p; j++)&lt;br /&gt;
            m[i*p + j] = m1[i*p + j] - m2[i*p + j];&lt;br /&gt;
    float norm = LAPACKE_slange(LAPACK_ROW_MAJOR, &#039;F&#039;, p, p, m, p);&lt;br /&gt;
    free(m);&lt;br /&gt;
    return n*norm*norm;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
    //задаем размерности&lt;br /&gt;
    int paral = 16;&lt;br /&gt;
    int p = 20;&lt;br /&gt;
    int k = 3;&lt;br /&gt;
    int M = 3000;&lt;br /&gt;
    int r = 1; //нумерация с 1&lt;br /&gt;
    int N = 3; //45&lt;br /&gt;
    int n = 100;&lt;br /&gt;
    int rank, size, prev, next;&lt;br /&gt;
    &lt;br /&gt;
    //инициализация MPI&lt;br /&gt;
    MPI_Request reqs[4];&lt;br /&gt;
    MPI_Status stats[4];&lt;br /&gt;
    MPI_Init(&amp;amp;argc, &amp;amp;argv);&lt;br /&gt;
    MPI_Comm_size(MPI_COMM_WORLD, &amp;amp;size);&lt;br /&gt;
    MPI_Comm_rank(MPI_COMM_WORLD, &amp;amp;rank);&lt;br /&gt;
    //&lt;br /&gt;
    double MPI_Wtime(void);&lt;br /&gt;
    double t1, t2, dt;&lt;br /&gt;
    //&lt;br /&gt;
    t1 = MPI_Wtime();&lt;br /&gt;
    prev = rank - 1;&lt;br /&gt;
    next = rank + 1;&lt;br /&gt;
    if(rank==0) prev = size - 1;&lt;br /&gt;
    if(rank==size - 1) next = 0;&lt;br /&gt;
&lt;br /&gt;
    //чтобы у всех сгенерировалась одинаковая матрица ковариации srand сработает одновременно&lt;br /&gt;
    srand(time(NULL));&lt;br /&gt;
    //файлы, в который будем писать результаты, у каждого параллельного процесса свой (номер процесса + .txt)&lt;br /&gt;
    ofstream myfile;&lt;br /&gt;
    char intStr[2];&lt;br /&gt;
    if (rank &amp;lt; 10)&lt;br /&gt;
    {&lt;br /&gt;
        intStr[0] = &#039;0&#039;;&lt;br /&gt;
        intStr[1] = &#039;0&#039; + rank;&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
        intStr[0] = &#039;1&#039;;&lt;br /&gt;
        intStr[1] = &#039;0&#039; + rank - 10;&lt;br /&gt;
    }&lt;br /&gt;
    char *txt = &amp;quot;.txt&amp;quot;;&lt;br /&gt;
    char *str = strcat(intStr,txt);&lt;br /&gt;
&lt;br /&gt;
    myfile.open(str);&lt;br /&gt;
&lt;br /&gt;
    //файлы, в которые будем отправлять размерности и тд, за это будет отвечать нулевой процесс&lt;br /&gt;
    ofstream dim;&lt;br /&gt;
    ofstream val;&lt;br /&gt;
&lt;br /&gt;
    if (rank == 0){&lt;br /&gt;
        dim.open(&amp;quot;dimensions.txt&amp;quot;);&lt;br /&gt;
        val.open(&amp;quot;values.txt&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (rank == 0)&lt;br /&gt;
    {&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;p = &amp;quot; &amp;lt;&amp;lt; p &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;k = &amp;quot; &amp;lt;&amp;lt; k &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;M = &amp;quot; &amp;lt;&amp;lt; M &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;r = &amp;quot; &amp;lt;&amp;lt; r &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;N = &amp;quot; &amp;lt;&amp;lt; N*(paral-1) &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;&lt;br /&gt;
        dim &amp;lt;&amp;lt; &amp;quot;n = &amp;quot; &amp;lt;&amp;lt; n;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    //генерация матрицы ковариации&lt;br /&gt;
    float *COV = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *MEAN = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *COV_Chol = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *Basis = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *COV_L = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    ortBasis(p, Basis);&lt;br /&gt;
&lt;br /&gt;
    diagMatrix(p, k, COV_L);&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, p, p, p, 1.0, Basis, p, COV_L, p, 0.0, COV, p);&lt;br /&gt;
    cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, p, p, p, 1.0, COV, p, Basis, p, 0.0, COV_L, p);&lt;br /&gt;
    copy(p, COV_L, COV);&lt;br /&gt;
    &lt;br /&gt;
    copy(p, COV, COV_Chol);&lt;br /&gt;
    choleskyFactorization(p, COV_Chol);&lt;br /&gt;
    free(Basis);&lt;br /&gt;
    free(COV_L);&lt;br /&gt;
&lt;br /&gt;
    float *values_pr = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *vectors_pr = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    copy(p, COV, vectors_pr);&lt;br /&gt;
    eigenDecomposition(p, vectors_pr, values_pr);&lt;br /&gt;
&lt;br /&gt;
    //для исследования нам понадобятся собственные значения, поэтому их тоже выводит нулевой процесс&lt;br /&gt;
    if(rank ==0){&lt;br /&gt;
        for (int i = 0; i &amp;lt; p; i++)&lt;br /&gt;
        {&lt;br /&gt;
            val &amp;lt;&amp;lt; values_pr[i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        val &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(values_pr);&lt;br /&gt;
    free(vectors_pr);&lt;br /&gt;
&lt;br /&gt;
    //вычислим проектор для реальной матрицы ковариации&lt;br /&gt;
    float *values = (float *) calloc(p, sizeof(float));&lt;br /&gt;
    float *vectors = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
    float *ProjectorR = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
    copy(p, COV, vectors);&lt;br /&gt;
    eigenDecomposition(p, vectors, values);&lt;br /&gt;
    rProjector(p, r, vectors, ProjectorR);&lt;br /&gt;
    //ProjectorR - нужный проектор&lt;br /&gt;
    free(values);&lt;br /&gt;
    free(vectors);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    //для каждого процесса запустим свой рандом (зависящий от ранка), иначе все значения у каждого процесса будут одинаковые&lt;br /&gt;
    srand(time(NULL) + rank);&lt;br /&gt;
&lt;br /&gt;
    float* NormsBootstrapWorld = (float *) calloc(N * M, sizeof(float));&lt;br /&gt;
    for (int i = 0; i &amp;lt; N; i++)&lt;br /&gt;
    {&lt;br /&gt;
        float *Samples = (float *) calloc(n * p, sizeof(float)); //Каждый Xj - строка в матрице&lt;br /&gt;
        for (int j = 0; j &amp;lt; M; j++)&lt;br /&gt;
        {&lt;br /&gt;
            float *COV_SampleBootstrap = (float *) calloc(p * p, sizeof(float));            &lt;br /&gt;
            float *values = (float *) calloc(p, sizeof(float));&lt;br /&gt;
            float *vectors = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
            float *ProjectorSB = (float *) calloc(p * p, sizeof(float));&lt;br /&gt;
&lt;br /&gt;
            sampleCovarianceBootstrap(n, p, Samples, COV_SampleBootstrap);&lt;br /&gt;
            copy(p, COV_SampleBootstrap, vectors);&lt;br /&gt;
            eigenDecomposition(p, vectors, values); //вектора в столбцах&lt;br /&gt;
            rProjector(p, r, vectors, ProjectorSB);&lt;br /&gt;
            //ProjectorSB - нужный проектор&lt;br /&gt;
&lt;br /&gt;
            float s = S(n, p, ProjectorR, ProjectorSB);&lt;br /&gt;
            NormsBootstrapWorld[i*M + j] = s;&lt;br /&gt;
&lt;br /&gt;
            free(COV_SampleBootstrap);&lt;br /&gt;
            free(values);&lt;br /&gt;
            free(vectors);&lt;br /&gt;
            free(ProjectorSB);&lt;br /&gt;
        }&lt;br /&gt;
        free(Samples);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    free(ProjectorR);&lt;br /&gt;
&lt;br /&gt;
    for (int i = 0; i &amp;lt; M; i++)&lt;br /&gt;
    {&lt;br /&gt;
        for (int j = 0; j &amp;lt; N; j++)&lt;br /&gt;
        {&lt;br /&gt;
            myfile &amp;lt;&amp;lt; NormsBootstrapWorld[j*M + i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        myfile &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    //в myfile N столбцов&lt;br /&gt;
&lt;br /&gt;
    myfile &amp;lt;&amp;lt; endl;            &lt;br /&gt;
    free(NormsBootstrapWorld);&lt;br /&gt;
&lt;br /&gt;
    free(COV);&lt;br /&gt;
    free(MEAN);&lt;br /&gt;
    free(COV_Chol);&lt;br /&gt;
    t2 = MPI_Wtime();&lt;br /&gt;
    dt = t2 - t1;&lt;br /&gt;
    if (rank == 0)&lt;br /&gt;
        cout &amp;lt;&amp;lt; dt &amp;lt;&amp;lt; endl;&lt;br /&gt;
    MPI_Finalize(); //конец параллеливания&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
ываыва&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19621</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19621"/>
		<updated>2016-11-30T11:25:09Z</updated>

		<summary type="html">&lt;p&gt;V: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
Для исследования масштабируемости были проведены серии тестов с различным числом узлов (в степенях 2). Чем больше узлов, тем меньше загруженность каждого, если хотим получить одинаковый совокупный объем данных, а, следовательно, программа выполняется быстрее.&lt;br /&gt;
График для фиксированных n = 100, p = 10.&lt;br /&gt;
[[Файл:Graphhh.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
Все тесты проводились на [https://ru.wikipedia.org/wiki/Ломоносов_(суперкомпьютер) суперкомпьютере Ломоносов].&lt;br /&gt;
Характеристики вычислительного кластера: [http://users.parallel.ru/wiki/pages/22-config link].&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
ваыва&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
ываыва&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19620</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19620"/>
		<updated>2016-11-30T11:24:43Z</updated>

		<summary type="html">&lt;p&gt;V: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
Для исследования масштабируемости были проведены серии тестов с различным числом узлов (в степенях 2). Чем больше узлов, тем меньше загруженность каждого, если хотим получить одинаковый совокупный объем данных, а, следовательно, программа выполняется быстрее.&lt;br /&gt;
График для фиксированных n = 100, p = 10.&lt;br /&gt;
[[Файл:Graphhh.jpg]]&lt;br /&gt;
&lt;br /&gt;
Все тесты проводились на [https://ru.wikipedia.org/wiki/Ломоносов_(суперкомпьютер) суперкомпьютере Ломоносов].&lt;br /&gt;
Характеристики вычислительного кластера: [http://users.parallel.ru/wiki/pages/22-config link].&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
ваыва&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
ываыва&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19619</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19619"/>
		<updated>2016-11-30T11:24:25Z</updated>

		<summary type="html">&lt;p&gt;V: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
Для исследования масштабируемости были проведены серии тестов с различным числом узлов (в степенях 2). Чем больше узлов, тем меньше загруженность каждого, если хотим получить одинаковый совокупный объем данных, а, следовательно, программа выполняется быстрее.&lt;br /&gt;
График для фиксированных n = 100, p = 10.&lt;br /&gt;
[[Файл:Graphhh.jpg|center|500px]]&lt;br /&gt;
&lt;br /&gt;
Все тесты проводились на [https://ru.wikipedia.org/wiki/Ломоносов_(суперкомпьютер) суперкомпьютере Ломоносов].&lt;br /&gt;
Характеристики вычислительного кластера: [http://users.parallel.ru/wiki/pages/22-config link].&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
ваыва&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
ываыва&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19618</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19618"/>
		<updated>2016-11-30T11:24:11Z</updated>

		<summary type="html">&lt;p&gt;V: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
Для исследования масштабируемости были проведены серии тестов с различным числом узлов (в степенях 2). Чем больше узлов, тем меньше загруженность каждого, если хотим получить одинаковый совокупный объем данных, а, следовательно, программа выполняется быстрее.&lt;br /&gt;
График для фиксированных n = 100, p = 10.&lt;br /&gt;
[[Файл:Graphhh.jpg|center|200px]]&lt;br /&gt;
&lt;br /&gt;
Все тесты проводились на [https://ru.wikipedia.org/wiki/Ломоносов_(суперкомпьютер) суперкомпьютере Ломоносов].&lt;br /&gt;
Характеристики вычислительного кластера: [http://users.parallel.ru/wiki/pages/22-config link].&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
ваыва&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
ываыва&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19617</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19617"/>
		<updated>2016-11-30T11:23:38Z</updated>

		<summary type="html">&lt;p&gt;V: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
Для исследования масштабируемости были проведены серии тестов с различным числом узлов (в степенях 2). Чем больше узлов, тем меньше загруженность каждого, если хотим получить одинаковый совокупный объем данных, а, следовательно, программа выполняется быстрее.&lt;br /&gt;
График для фиксированных n = 100, p = 10.&lt;br /&gt;
[[Файл:Graphh.jpg|center|200px]]&lt;br /&gt;
&lt;br /&gt;
Все тесты проводились на [https://ru.wikipedia.org/wiki/Ломоносов_(суперкомпьютер) суперкомпьютере Ломоносов].&lt;br /&gt;
Характеристики вычислительного кластера: [http://users.parallel.ru/wiki/pages/22-config link].&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
ваыва&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
ываыва&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19595</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19595"/>
		<updated>2016-11-30T08:54:37Z</updated>

		<summary type="html">&lt;p&gt;V: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;br /&gt;
&lt;br /&gt;
== Возможные способы и особенности параллельной реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Масштабируемость алгоритма и его реализации ==&lt;br /&gt;
&lt;br /&gt;
ффывфы&lt;br /&gt;
&lt;br /&gt;
== Динамические характеристики и эффективность реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Выводы для классов архитектур ==&lt;br /&gt;
&lt;br /&gt;
== Существующие реализации алгоритма ==&lt;br /&gt;
&lt;br /&gt;
ваыва&lt;br /&gt;
&lt;br /&gt;
= Литература =&lt;br /&gt;
&lt;br /&gt;
ываыва&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19564</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19564"/>
		<updated>2016-11-29T22:30:26Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|700px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19563</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19563"/>
		<updated>2016-11-29T22:30:02Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19562</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19562"/>
		<updated>2016-11-29T22:26:38Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Ресурс параллелизма алгоритма ==&lt;br /&gt;
&lt;br /&gt;
В принципе, параллельный алгоритм не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее. Так же на каждом узле параллельно вычисляются внутри узла многие операции (умножение матриц и т.д.)&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19561</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19561"/>
		<updated>2016-11-29T22:24:49Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
В принципе, он не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее.&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
== Свойства алгоритма ==&lt;br /&gt;
&lt;br /&gt;
= Программная реализация алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Особенности реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Локальность данных и вычислений ==&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19560</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19560"/>
		<updated>2016-11-29T22:23:27Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
В принципе, он не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее.&lt;br /&gt;
&lt;br /&gt;
== Входные и выходные данные алгоритма ==&lt;br /&gt;
=== Входные данные ===&lt;br /&gt;
&lt;br /&gt;
* Размерности матриц&lt;br /&gt;
* Количество повторений циклов&lt;br /&gt;
* Собственные значения&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Эти параметры меняются в коде&lt;br /&gt;
&lt;br /&gt;
=== Выходные данные ===&lt;br /&gt;
&lt;br /&gt;
От каждого вычислительного узла будет получена матрица значений статистик&lt;br /&gt;
&lt;br /&gt;
* Определенный интеграл функции на отрезке [a, b] с точностью ε.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Файл:Парал.png|center|500px]]&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19558</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19558"/>
		<updated>2016-11-29T22:20:45Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;br /&gt;
&lt;br /&gt;
В принципе, он не сильно отличается от схемы последовательного алгоритма, но внешний цикл будет выполняться уже не условные N раз, а N деленное на число вычислительных узлов, поэтому программа будет работать быстрее.&lt;br /&gt;
[[Файл:Парал.png|center|500px]]&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19556</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19556"/>
		<updated>2016-11-29T22:03:25Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;br /&gt;
&lt;br /&gt;
== Последовательная сложность алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Явную формулу сложности последовательного алгоритма выписать не представляется возможным из-за огромного количества матричных операций из библиотеки MKL.&lt;br /&gt;
&lt;br /&gt;
== Информационный граф ==&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19554</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19554"/>
		<updated>2016-11-29T21:54:38Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;br /&gt;
&lt;br /&gt;
[[Файл:послед.png|center|500px]]&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19551</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19551"/>
		<updated>2016-11-29T21:30:35Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Проделываем следующий цикл N раз:&lt;br /&gt;
##Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
##Проделываем следующий цикл M раз:&lt;br /&gt;
###Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
###Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
###Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19549</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19549"/>
		<updated>2016-11-29T21:28:47Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt; (этот и последующие шаги N раз)&lt;br /&gt;
#Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
#Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt; (для каждого набора сгенерированных векторов проделываем этот и последующие шаги M раз)&lt;br /&gt;
#Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
#Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#В итоге имеем NxM значений.&lt;br /&gt;
== Вычислительное ядро алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Основное время работы алгоритма приходится на работу с матрицами (присутствует очень много умножений).&lt;br /&gt;
&lt;br /&gt;
== Макроструктура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
== Схема реализации последовательного алгоритма ==&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19545</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19545"/>
		<updated>2016-11-29T21:19:35Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U.&amp;lt;/math&amp;gt;&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma).&amp;lt;/math&amp;gt;&lt;br /&gt;
#Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1).&amp;lt;/math&amp;gt;&lt;br /&gt;
#Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k}. &amp;lt;/math&amp;gt;&lt;br /&gt;
#Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
#Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}.&amp;lt;/math&amp;gt;&lt;br /&gt;
#Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}.&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19544</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19544"/>
		<updated>2016-11-29T21:18:43Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,\dots,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,\dots,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma)&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1)&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k} &amp;lt;/math&amp;gt;.&lt;br /&gt;
#Вычисление собственных векторов &amp;lt;math&amp;gt;u_{1},\dots,u_{p}&amp;lt;/math&amp;gt; (в порядке убывания).&lt;br /&gt;
#Вычисление проекторов (считаем, что одномерные) по формуле &amp;lt;math&amp;gt;u = u_{r}u^{T}_{r}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Вычисление статистик &amp;lt;math&amp;gt;S^{o} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19542</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19542"/>
		<updated>2016-11-29T21:15:39Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma)&amp;lt;/math&amp;gt;&lt;br /&gt;
#Генерация весов &amp;lt;math&amp;gt;w&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(1, 1)&amp;lt;/math&amp;gt;&lt;br /&gt;
#Вычисление матриц ковариаций в бутстрэпе &amp;lt;math&amp;gt;\Sigma^{o} = \frac{1}{n}\sum_{k = 1}^{n}w_{k}X_{k}X^{T}_{k} &amp;lt;/math&amp;gt;&lt;br /&gt;
#Вычисление проекторов&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19541</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19541"/>
		<updated>2016-11-29T21:11:29Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; ~ &amp;lt;math&amp;gt;N(\theta, \Sigma)&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19540</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19540"/>
		<updated>2016-11-29T21:11:02Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X \Tilde N(\theta, \Sigma)&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19538</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19538"/>
		<updated>2016-11-29T21:10:03Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X \~ N(\theta, \Sigma)&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19537</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19537"/>
		<updated>2016-11-29T21:09:29Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X ~~~ N(\theta, \Sigma)&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19536</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19536"/>
		<updated>2016-11-29T21:09:17Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X &amp;lt;verb&amp;gt;~&amp;lt;/verb&amp;gt; N(\theta, \Sigma)&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19535</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19535"/>
		<updated>2016-11-29T21:09:08Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X &amp;lt;verb&amp;gt;~&amp;lt;\verb&amp;gt; N(\theta, \Sigma)&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19534</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19534"/>
		<updated>2016-11-29T21:08:45Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X ~~ N(\theta, \Sigma)&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19533</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19533"/>
		<updated>2016-11-29T21:07:16Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X \tilda N(\theta, \Sigma)&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19532</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19532"/>
		<updated>2016-11-29T21:07:07Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X \Tilda N(\theta, \Sigma)&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19531</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19531"/>
		<updated>2016-11-29T21:06:36Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X ~ N(\Theta, \Sigma)&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19530</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19530"/>
		<updated>2016-11-29T21:06:26Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов &amp;lt;math&amp;gt;X ~ N(\Theta, \Sigma)&amp;lt;\math&amp;gt;&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19529</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19529"/>
		<updated>2016-11-29T21:05:20Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#Генерация векторов.&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19528</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19528"/>
		<updated>2016-11-29T21:04:31Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19527</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19527"/>
		<updated>2016-11-29T21:03:35Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп (&amp;lt;ref&amp;gt;https://ru.wikipedia.org/wiki/Статистический_бутстрэп&amp;lt;\ref&amp;gt;) и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19526</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19526"/>
		<updated>2016-11-29T21:01:26Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;br /&gt;
#&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19525</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19525"/>
		<updated>2016-11-29T20:59:55Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
#Генерация матрицы ковариации.&lt;br /&gt;
##Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
##Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19524</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19524"/>
		<updated>2016-11-29T20:59:00Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
1. Генерация матрицы ковариации.&lt;br /&gt;
Возьмем нужный нам набор собственных значений и поместим их на диагонали матрицы &amp;lt;math&amp;gt;\Lambda&amp;lt;/math&amp;gt;.&lt;br /&gt;
Далее генерируем базис &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt;-мерного пространства и поместим его в матрицу &amp;lt;math&amp;gt;U&amp;lt;/math&amp;gt;.&lt;br /&gt;
Тогда &amp;lt;math&amp;gt;\Sigma = U\Lambda U^{T}&amp;lt;/math&amp;gt;.&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19523</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19523"/>
		<updated>2016-11-29T20:46:51Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа &amp;lt;math&amp;gt;M&amp;lt;/math&amp;gt; матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;br /&gt;
&lt;br /&gt;
== Математическое описание алгоритма ==&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19521</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19521"/>
		<updated>2016-11-29T20:45:50Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа M матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}, j = 1,...,M.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19520</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19520"/>
		<updated>2016-11-29T20:45:24Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа M матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}&amp;lt;/math&amp;gt;, j = 1,\dots,M.&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}, j = 1,...,M&amp;lt;/math&amp;gt; - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19519</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19519"/>
		<updated>2016-11-29T20:45:07Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа M матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}&amp;lt;/math&amp;gt;, j = 1,\dots,M.&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}, P^{o}_{j}&amp;lt;/math&amp;gt;, j = 1,...,M - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19518</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19518"/>
		<updated>2016-11-29T20:44:50Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа M матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}&amp;lt;/math&amp;gt;, j = 1,\dots,M.&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;P^{o}_{j}&amp;lt;/math&amp;gt;, j = 1,...,M - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19516</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19516"/>
		<updated>2016-11-29T20:43:55Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в &amp;lt;math&amp;gt;\R&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt;^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в &amp;lt;math&amp;gt;\R&amp;lt;/math&amp;gt;&amp;lt;math&amp;gt;^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа M матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}&amp;lt;/math&amp;gt;, j = 1,\dots,M.&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;P^{o}_{j}&amp;lt;/math&amp;gt;, j = 1,\dots,M - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19515</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19515"/>
		<updated>2016-11-29T20:40:44Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в $$\mathbb{R}$$\&amp;lt;math&amp;gt;^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в $\mathbb{R}$&amp;lt;math&amp;gt;^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа M матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}&amp;lt;/math&amp;gt;, j = 1,\dots,M.&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;P^{o}_{j}&amp;lt;/math&amp;gt;, j = 1,\dots,M - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19514</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19514"/>
		<updated>2016-11-29T20:38:37Z</updated>

		<summary type="html">&lt;p&gt;V: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X_{1},\dots, X_{n}&amp;lt;/math&amp;gt; -- независимые и нормально распределенные случайные вектора в $\mathbb{R}$\&amp;lt;math&amp;gt;^p&amp;lt;/math&amp;gt; с нулевым средним и матрицей ковариацией &amp;lt;math&amp;gt;\Sigma&amp;lt;/math&amp;gt;, она лежит в $\mathbb{R}$&amp;lt;math&amp;gt;^{pxp}&amp;lt;/math&amp;gt; и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа M матриц ковариаций сигма &amp;lt;math&amp;gt;\Sigma^{o}_{j}&amp;lt;/math&amp;gt;, j = 1,\dots,M.&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, обозначим за  &amp;lt;math&amp;gt;P_{r}&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;P^{o}_{j}&amp;lt;/math&amp;gt;, j = 1,\dots,M - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19513</id>
		<title>Участница:V/Вычисление статистик квадрата норм разностей спектральных проекторов случайных матриц</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D1%86%D0%B0:V/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B0_%D0%BD%D0%BE%D1%80%D0%BC_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9_%D1%81%D0%BF%D0%B5%D0%BA%D1%82%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2_%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86&amp;diff=19513"/>
		<updated>2016-11-29T20:34:42Z</updated>

		<summary type="html">&lt;p&gt;V: Новая страница: «Основные авторы описания: В.С.Шумовская  = Свойства и структура алгоритма =  ==…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Основные авторы описания: [[Участник:v|В.С.Шумовская]]&lt;br /&gt;
&lt;br /&gt;
= Свойства и структура алгоритма =&lt;br /&gt;
&lt;br /&gt;
== Общее описание алгоритма ==&lt;br /&gt;
&lt;br /&gt;
Пусть \begin{math}X_{1},\dots, X_{n}\end{math} -- независимые и нормально распределенные случайные вектора в $\mathbb{R}$\begin{math}^p\end{math} с нулевым средним и матрицей ковариацией \begin{math}\Sigma\end{math}, она лежит в $\mathbb{R}$\begin{math}^{pxp}\end{math} и такая, что ее собственные значения быстро убывают, т.е. 3-5 больших, а остальные, к примеру, в диапазоне от 1 до 3.&lt;br /&gt;
&lt;br /&gt;
К этой выборке применим бутстрэп и вычислим в мире бутстрэпа M матриц ковариаций сигма \begin{math}\Sigma^{o}_{j}\end{math}, j = 1,\dots,M.&lt;br /&gt;
&lt;br /&gt;
Далее фиксируем \begin{math}r\end{math}, обозначим за  \begin{math}P_{r}\end{math}, \begin{math}P^{o}_{j}\end{math}, j = 1,\dots,M - проекторы на r-ое подпространство и вычислим следующие статистики:&lt;br /&gt;
&lt;br /&gt;
\begin{math}S^{o}_{j} = ||P_{r} - P^{o}_{r}||^{2}_{2}\end{math}&lt;br /&gt;
&lt;br /&gt;
Задача -- вычислить большое количество этих статистик для визуализации их распределения.&lt;/div&gt;</summary>
		<author><name>V</name></author>
	</entry>
</feed>