|
знак БОЛЬШЕ заменен на ]
знак МЕНЬШЕ заменен на [
void SolveLinear
(
float * DataSnsSolve, // CO, NO, NO2, SO2
float * ResSnsSolve
)
{
signed char i;
unsigned char j;
float TempClbGas[ NUM_EQU ][ NUM_EQU ];
float TempB[ NUM_EQU ];
float Temp;for( i=0; i[NUM_EQU; i++ )
{
for( j=0; j[NUM_EQU; j++ )
TempClbGas[ i ][ j ] = ClbData.ClbGas[ i ][ j ];
TempB[ i ] = DataSnsSolve[ i ];
}for( i=0; i[NUM_EQU-1; i++ )
for( j=i+1; j{
TempClbGas[ j ][ i ] /= -TempClbGas[ i ][ i ];
for( unsigned char k=i+1; j[NUM_EQU; j++ )
TempClbGas[ j ][ k ] += TempClbGas[ j ][ i ]*TempClbGas[ i ][ k ];
TempB[ j ] += TempClbGas[ j ][ i ]*TempB[ i ];
}
ResSnsSolve[ NUM_EQU-1 ] = TempB[ NUM_EQU-1 ]/TempClbGas[ NUM_EQU-1 ][ NUM_EQU-1 ];
for( i=NUM_EQU-2; i]=0; i-- )
{
Temp = TempB[ i ];
for( j=i+1; j[NUM_EQU; j++ )
Temp -= ResSnsSolve[ j ]*TempClbGas[ i ][ j ];
ResSnsSolve[ i ] = Temp/TempClbGas[ i ][ i ];
}
}
E-mail: info@telesys.ru