#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int max_row_order(int n, double A[n][n])
{
double m = 0;
int mro = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (j == i)
{
continue;
}
if (fabs(A[i][j]) > m)
{
m = fabs(A[i][j]);
mro = i;
}
}
}
int p = mro;
return p;
}
int max_column_order(int n, double A[n][n])
{
double m = 0;
int mco = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (j == i)
{
continue;
}
if (fabs(A[i][j]) > m)
{
m = fabs(A[i][j]);
mco = j;
}
}
}
int q = mco;
return q;
}
double t_slove(int n, double A[n][n], int p, int q)
{
double s = (A[q][q] - A[p][p])/(2*A[p][q]);
double t;
if (s == 0)
{
t = 1;
}
else
{
double x1 = -s + sqrt(s*s+1);
double x2 = -s - sqrt(s*s+1);
if (fabs(x1) > fabs(x2))
{
t = x2;
}
else
{
t = x1;
}
}
return t;
}
double calculate_nondiagonal(int n, double A[n][n])
{
double sum = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (j == i)
{
continue;
}
sum = sum + A[i][j] * A[i][j];
}
}
return sum;
}
void print_matrix(int row, int col, double matrix[row][col])
{
for(int i = 0;i < row;i ++)
{
for(int j = 0;j < col;j ++)
{
printf("%.12lf\t",matrix[i][j]);
}
printf("\n");
}
printf("----------------------------------------------");
printf("\n");
}
void print_vector(int n, double vector[n])
{
for(int i = 0;i < n;i ++)
{
printf("%.12lf\n",vector[i]);
}
printf("----------------------------------------------");
printf("\n");
}
double calculate_mode(int row, double x[row][1])
{
double mode2 = 0;
for (int i = 0;
PCA降维的C语言实现
于 2024-03-25 15:57:23 首次发布