http://www.ee.ucl.ac.uk/~mflanaga/java/Matrix.html
everything about matrix

解决方案 »

  1.   

    import java.awt.*;/* invert the D matrix */
    double[][] invert( double[][] D, int n)
    {
    double alpha;
    double beta;
    int i;
    int j;
    int k;
    int error; error = 0;
    int n2 = 2*n;/* init the reduction matrix  */
    for( i = 1; i <= n; i++ )
    {
    for( j = 1; j <= n; j++ )
    {
    D[i][j+n] = 0.;
    }
    D[i][i+n] = 1.0;
    }/* perform the reductions  */
    for( i = 1; i <= n; i++ )
    {
    alpha = D[i][i];
    if( alpha == 0.0 ) /* error - singular matrix */
    {
    error = 1;
    break;
    }
    else
    {
    for( j = 1; j <= n2; j++ )
    {
    D[i][j] = D[i][j]/alpha;
    }
    for( k = 1; k <= n; k++ )
    {
    if( (k-i) != 0 )
    {
    beta = D[k][i];
    for( j = 1; j <= n2; j++ )
    {
    D[k][j] = D[k][j] - beta*D[i][j];
    }
    }
    }
    }
    }
    return D;
    }