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

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





y">//А - покажчик на перший множник

//В - покажчик на другий множник

//n, m - розмірність матриць

//R - покажчик на результат

void mulMatr (double ** A, double ** B, int n, int m, double ** R)

{i, j, k; (i=0; i lt; n; i ++) (j=0; j lt; m; j ++) (k=0; k lt; m; k ++ ) [i] [j]=R [i] [j] + A [i] [k] * B [k] [j];

}

//Обчислення кореня числа

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

//x - число, квадратний корінь якого треба вирахувати

//Примітка: обчислення ведеться методом Ньютона (doublex)

{i; res=1; (i=0; i lt; 100; i ++)=(res + x/res)/2; res;

}

//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);

}

//Трансспонірованіе матриці розміру nxm

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

//x - покажчик на початкову матрицю

//xt - покажчик на результуючу матрицю

//n, m - розмірність матриць

void transp (double ** x, double ** xt, int n, int m)

{i, j; (i=0; i lt; n; i ++) (j=0; j lt; m; j ++) [i] [j]=x [j] [i ];

}

//Сортування СЧ і СВ

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

//eig - покажчик на масив СЧ

//Q - покажчик на масив СВ

//n - розмірність массівовsort (double * eig, double ** Q, int n)

{i, j; fl=true; a; (fl)

{= false; (i=0; i lt; n - 1; i ++) (eig [i] lt; eig [i + 1])

{= true;=eig [i]; [i]=eig [i + 1]; [i + 1]=a; (j=0; j lt; n - 1; j ++ )

{= Q [i] [j]; [i] [j]=Q [i + 1] [j]; [i + 1] [j]=a;

}

}

}

}

//Метод головних компонент

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

//vect - покажчик на одновимірний масив вихідних даних

//y - покажчик на одновимірний масив результату

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

//k - розмірність результату

void PCA (double * vect, double * y, int n, int k)

{, j, m=n/k, h;

//так як vect - вектор-рядок, а алгоритм розрахований на

//вектор=стовпець, сформуємо вектор х=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);

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


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





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

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