Gauss Algorithmus
-
Hallo Forum,
hat jemand von Euch vielleicht einen Gauss-Algorithmus (LGS) liegen?
Er soll so weit eliminieren, bis nur noch die Diagonale ("Treppe") übrig ist.Danke im voraus
Susi
-
Das folgende ist ein etwas modifiziertes Gauss-Jordan-Verfahren zum Gleichungssystem-lösen:
[java]
public static float [] solveSystem (float [][] system)
throws NotSolvableException
{
int rows = system.length;
int columns = system[0].length;
if (rows + 1 != columns) throw new NotSolvableException ();
int [] selectedRows = new int [rows];
boolean [] usedRows = new boolean [rows];
int i;
int vars = columns - 1;
for (i = 0 ; i < vars ; ++i)
{
selectedRows [i] = getOptimalRow (system,i,usedRows);
usedRows [selectedRows [i]] = true;
processRow (system,i,selectedRows [i]);
}
float [] result = new float [vars];
for (i = 0 ; i < vars ; ++i)
{
result [i] = system [selectedRows [i]][vars];
}
return result;
}/**
* @param system [row][column]
*/
private static void processRow (float [][] system, int column, int row)
{
float factor = 1.0f / system [row][column];
system [row][column] = 1.0f;
int columnCount = system[0].length;
int rowCount = system.length;
int i,j;
for (i = column + 1 ; i < columnCount ; ++i)
{
system [row][i] *= factor;
}
for (j = 0 ; j < rowCount ; ++j)
{
if (j == row) continue;
factor = system [j][column];
system [j][column] = 0.0f;
for (i = column + 1 ; i < columnCount ; ++i)
{
system [j][i] -= factor * system [row][i];
}
}
}/**
* @param system [row][column]
*/
private static int getOptimalRow (float [][] system, int column,
boolean [] usedRows)
throws NotSolvableException
{
int selectedRow = 0;
float currentAbsValue = 0.0f;
float tempValue = 0.0f;
int rows = system.length;
for (int i = 0 ; i < rows ; ++i)
{
if (usedRows [i]) continue;
if ((tempValue = Math.abs(system[i][column])) > currentAbsValue)
{
currentAbsValue = tempValue;
selectedRow = i;
}
}
if (currentAbsValue < 1e-3f) throw new NotSolvableException();
return selectedRow;
}[/code]
...die Funktionalität ist aber etwas eingeschränkt.
-
wenn zum ende des semester geht, posten komischerweise alle typen immer unter frauennamen.. wie seltsam.. schon die zweite
-
tolle erkenntnis
-
Original erstellt von <Ilse>:
tolle erkenntnisjo .. gelle