"justify">//розмірність матриці визначимо як 1000хn/1000
h=0; (i=0; i lt; m; i ++) (j=0; j lt; n; j ++)
{[j] [i]=x [0] [h]; ++;
} ( amp; Xm [0], amp; XT [0], n, m); ( amp; Xm [0], amp; XT [0], n, m, amp; Rxx [0]); (i=0; i lt; n; i ++) (j=0; j lt; n; j ++) [i] [j]=Rxx [i] [j]/m; ** R =(double **) malloc (sizeof (double *) * n); ** Q=(double **) malloc (sizeof (double *) * n); (i=0; i lt; n; i ++)
{[i]=(double *) malloc (sizeof (double) * n); [i]=(double *) malloc (sizeof (double) * n);
} ( amp; Rxx [0], n, amp; R [0], amp; Q [0]); * eig=(double *) malloc (sizeof (double) * n) ; (i=0; i lt; n; i ++) [i]=R [i] [i]; ( amp; eig [0], amp; Q [0], n); ** W=(double * *) malloc (sizeof (double *) * k); (i=0; i lt; k; i ++) [i]=(double *) malloc (sizeof (double) * n); (i=0; i lt ; k; i ++) (j=0; j lt; n; j ++) [i] [j]=Q [j] [i]; (i=0; i lt; k; i ++) (j=0; j lt; n; j ++) [i]=W [i] [j] * x [0] [j]; (x); (Xm); (XT);
free (Rxx); (W);
}
//Побудова графіків
//Аргументи:
//vect - покажчик на масив значень
//n - кількість значень
# include lt; FL/FL. H gt;
# include Simple_window. h
# include Graph. h plot (double * vect, int n)
{namespace Graph_lib; int xmax=600;// Розмір окнаint ymax=400; int x_orig=xmax/2;// Точка (0,0) - центр окнаint y_orig=ymax/2; Point orig (x_orig, y_orig); int r_min=- 1000;// Діапазонint r_max=1000; int n_noits=(r_max - r_min) * n;// Кількість точок в
//діапазоне_scale=30;// Масштабуючий множітельint y_scale=30; p1 (100,100); _ window win (p1, 600, 400, Plot );// Створення окнаint xlen=xmax - 40;// Створюємо осі
constintylen=ymax - 40;// Робимо їх трохи менше
//розміру вікна (Axis :: x, Point (20, y_orig), xlen, xlen/x_scale, x );
//створення координатних осей (Axis :: y, Point (x_orig, ylen + 20), ylen, ylen/y_scale, y );
//створення координатних осей. attach (x) ;. attach (y); max=vect [0]; i; (i=0; i lt; n; i ++) (vect [i] gt; max)=vect [i]; * y1=(int *) malloc ( sizeof (int) * n); (i=0; i lt; n; i ++) [i]=vect [i] * ymax/max; _polyline poly; t=r_min; dt=(r_max - r_min)/n; (i=0; i lt; n; i ++)
{. add (Point (t, y1 [i]));=t + dt;
}. set_color (Color :: black) ;. attach (poly);// Додавання poly у вікно. wait_for_button ();// Висновок вікна
return;
}
//Читання з файлу
//Аргументи:
//vect - покажчик на вектор значень, зчитуються з файлу
# include lt; stdlib. h gt; readFile (double * vect)
{i; (% s , filename: ); filename [200];//={ Laquo; I: . txt }; (% s raquo ;, amp; filename); * file;=fopen (filename, r );=0; (file!=NULL)
{(true)
{= (double *) realloc (vect, sizeof (double) * (i + 1)); (vect!=NULL)
{[i]=fscanf (file, % f , amp; vect [i]);// Читаємо з файлу
//чергове число
} (vect [i] == EOF || vect == NULL)
{(file); i;
} ++;
} i;
}
}
//Головна функція_tmain (int argc, _TCHAR * argv [])
{f0=true, f1=true;
while (f0)
{= true;
//введення імені файлу і даних з нього
printf (% s raquo ;, Please enter the file name n ); * vect=(double *) malloc (sizeof (double)); n=readFile (vect);
//вибір методу обработкіnum; (% s raquo ;, Please select the method n ); (% s raquo ;, 1. FFT n ); ( % s raquo ;, 2. PCA n ); (% s raquo ;, 3. Correlation n ); (% s raquo ;, 4. Autocorrelation n ); (% s raquo ;, 5. To attach another file n ); (% s raquo ;, 6. Exit n ); (f1)
{(% s raquo ;, Number: ); (% d raquo ;, amp; num);
if (num == 1)
{= n; (n amp; (n - 1))//якщо побітовое і дає 1, то n//НЕ//дорівнює ступеню 2
{(i amp; (i - 1))
{= (double *) realloc (vect, sizeof (double) * (i + 1)); [i]=0;
}
} * y=(complex *) malloc (sizeof (complex) * i); (vect, i, y); * y1=(double *) malloc (sizeof (double) * i) ; (i...