08/01/15 04:05:55
スレリンク(tech板:576番)
狭義対角優位って |a_ii| >= ∑|aij| (j!=i) でよかったっけ
// diagonally dominat -> 1, else -> 0
int is_dd_sq_matrix( double * mat, int n ) {
int i, j;;
if ( mat == 0 || n < 1 ) return 0;
for ( i = 0; i < n; ++i ) {
double a = fabs( mat[ i * n + i ] );
for ( j = 0; j < n; ++j ) a -= fabs( mat[ i * n + j ] );
if ( a < 0 ) return 0;
}
return 1;
}
int main(){
int n = 10;
double * mat = malloc( sizeof(double)*n*n);
if ( mat ) { int i;for(i=0;i<n*n;++i) mat[ i ] = rand()/(double)RAND_MAX;
printf( "mat is%sdd\n", is_dd_sq_matrix(mat,n) ? " " : " not "); free(mat);}
return 0;}