Metoda Gaussa - Borland C++ (błąd)
Ostatnio zmodyfikowano 2015-05-01 23:49
Xvn Temat założony przez niniejszego użytkownika |
Metoda Gaussa - Borland C++ (błąd) » 2015-05-01 23:49:58 Witam, wyświetlając wynik ciągle wyskakują te same liczby, które nie mają nic wspólnego z rozwiązaniem. Ktoś naprowadziłby o co chodzi? Jestem laikiem... double ** A; int r = rozmiar;
A =( double ** ) malloc( r * sizeof( double * ) ); for( i = 0; i < r; i++ ) { A[ i ] =( double * ) malloc( r * sizeof( double ) ); for( j = 0; j < r; j++ ) A[ i ][ j ] = StrToFloat( a->Cells[ j + 1 ][ i + 1 ] ); };
double * B = new double[ r ]; double * X = new double[ r ];
for( int k = 0; k < r - 1; k++ ) { for( int i = k + 1; i < r; i++ ) { A[ i ][ k ] = A[ i ][ k ] / A[ k ][ k ]; for( int j = k + 1; j < r + 1; j++ ) { if( j == r ) B[ i ] = B[ i ] - A[ i ][ k ] * B[ k ]; else A[ i ][ j ] = A[ i ][ j ] - A[ i ][ k ] * A[ k ][ j ]; } A[ i ][ k ] = 0; } } for( int i = r - 1; i >= 0; i-- ) { X[ i ] = B[ i ]; for( int j = i + 1; j < r; j++ ) { if( j == r ) X[ i ] = X[ i ] - B[ i ] * X[ j ]; else X[ i ] = X[ i ] - A[ i ][ j ] * X[ j ]; } X[ i ] = X[ i ] / A[ i ][ i ]; }
for( int i = 0; i < r; i++ ) x->Cells[ 1 ][ i + 1 ] = CurrToStrF( X[ i ], ffNumber, dokladnosc );
Label5->Visible = true; x->Visible = true;
|
|
« 1 » |