Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Модулі статистичної обробки аналізатора &Тензотрем&

Реферат Модулі статистичної обробки аналізатора &Тензотрем&





//вектор=стовпець, сформуємо вектор х=transp (vect)

double ** x=(double **) malloc (sizeof (double *)); [0]=(double *) malloc (sizeof (double) * n); (i=0; i lt; n; i ++) [0] [i]=vect [i]; ** Xm=(double **) malloc (sizeof (double *) * n); ** XT=(double **) malloc ( sizeof (double *) * m); (i=0; i lt; n; i ++) [i]=(double *) malloc (sizeof (double) * m); (i=0; i lt; m; i ++ ) [i]=(double *) malloc (sizeof (double) * n); ** Rxx=(double **) malloc (sizeof (double *) * n); (i=0; i lt; n; i ++ ) [i]=(double *) malloc (sizeof (double) * n);

//сформуємо матрицю Х вихідних векторів

//розмірність матриці визначимо як 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);

}


Для реалізації методу головних компонент були так само реалізовані множення і транспонування матриць, QR метод пошуку власних чисел і векторів, для якого було потрібно обчислення квадратного кореня і сортування власних чисел і сполучених з ними власних векторів.

Розглянемо реалізацію тільки QR-алгоритму та алгоритму сортування, так як всі інші алгоритми прості і не вимагають детального розгляду.

QR - алгоритм

В якості аргументів метод приймає покажчик на матрицю, для якої будуть вестися обчислення, покажчики на результуючі матриці RіQ, а так само розмірність всіх матриць. Так як алгоритм реалізований для квадратних матріцnxn, то розмірність матриць можна передати одним цілочисловим параметром.


//QR-алгоритм

//Аргументи:

//A - покажчик на вхідну квадратну матрицю nxn

//n - розмірність даних

//R - покажчик на результуючу матрицю з СЧ матриці А на

//головної діагоналі разіерності nxn

//Q - покажчик на результуючу матрицю СВ матриці А

//разіерностіnxnQR (double ** A, int n, double ** R, double ** Q)

{** E=(double **) malloc (sizeof (double *) * n); ** T=(double **) malloc (sizeof (double *) * n); i , j, k, g; (i=0; i lt; n; i ++)

{[i]=(double *) malloc (sizeof (double) * n); [i]=(double *) malloc (sizeof (double) * n);

} (i=0; i lt; n; i ++)

{(j=0; j lt; n; j ++)

{[i] [j]=A [i] [j]; [i] [j]=1; (i == j) [i] [j]=1; [i ] [j]=0;

}

} (k=0; k lt; (n - 1); k ++)

{(i=k + 1; i lt; n; i ++)

{(j=0; j lt; n; j ++)

{(g=0; g lt; n; g ++)

{[j] [g]=E [j] [g];

}

} (R [i] [k]!=0)

{[k] [k]=R [k] [k]/sqrtx (powx (R [k] [k], 2) + powx (A [i] [k], 2 )); [i] [i]=T [k] [k]; [k] [i]=R [i] [k]/sqrtx (powx (R [k] [k], 2) + powx ( A [i] [k], 2)); [i] [k]=T [k] [i];

} ( amp; T [0], amp; R [0], n, n, amp; R [0]); ( amp; T [0], amp; Q [0] , n, n, amp; Q [0]);

}

} (E); (T);

}


Сортування

Модуль сортування здійснює перестановку масиву власних чисел матірци в порядку убування і, відповідно до нього, перестановку сполучених з власними числами власних векторів матриці. Тобто при зміні місцями iіjсобственних чисел, відповідно міняються місцями так само і iіjсобственние вектора.

Модуль приймає в якості аргументів покажчики на масив власних чисел, матрицю власних векторів і розмірність масиву. Так як обчислення власних значень велися для квадратної матриці nxn, то в загальному випадку у неї nсобственн...


Назад | сторінка 9 з 16 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Double Standards in Modern Politics
  • Реферат на тему: Double Entry Types of Balance Sheet
  • Реферат на тему: Double electric layer. Mechanism of formation and theory of structure
  • Реферат на тему: Алгебраїчна проблема власних значень для матриць спеціального виду та її пр ...
  • Реферат на тему: Розробка в середовищі Turbo Pascal програми сортування елементів, що знаход ...