Hallo,
ich habe eine Matrix
gegeben. Ich möchste nun dass mein Programm daraus alle Kombinationen von 3x3 Matrizen macht.
Aus der Matrix A wird also:
-1.0 0.0 0.0
0.0 -1.0 0.0
0.0 0.0 -1.0
-1.0 0.0 0.0
0.0 -1.0 0.0
1.0 1.0 1.0
-1.0 0.0 0.0
0.0 0.0 -1.0
1.0 1.0 1.0
0.0 -1.0 0.0
0.0 0.0 -1.0
1.0 1.0 1.0
Das funktioniert auch wunderbar. Nun will ich jede dieser Teilmatritzen an eine Klasse übergeben welche mir diese Gleichungssysteme löst und die Lösung dann zurückgibt. Die Klasse LGS das hab ich von
http://www.java-forum.org/de/viewtopic.php?p=435704 übernommen.
Das funktioniert leider aber nicht. Nachdem LGS aufgerufen wird verändert sich meine Matrix a, nämlich in:
-1.0 0.0 0.0
-0.0 -1.0 0.0
-0.0 -0.0 -1.0
-1.0 0.0 0.0
0.0 -1.0 0.0
-1.0 -1.0 1.0
-1.0 0.0 0.0
0.0 0.0 -1.0
1.0 -1.0 1.0
0.0 -1.0 0.0
0.0 -0.0 -1.0
1.0 -1.0 1.0
Ich will eigentlich nur dass ich die Matrix a an LGS übergebe, LGS dann die Lösung zurückgibt und die Schleife weiterläuft, ohne das in der Klasse "Schnittpunkt" irgendwas verändert wird. Wie mach ich das?
ich habe eine Matrix
Code:
double A[][] = {{-1,0,0},{0,-1,0},{0,0,-1},{1,1,1}};
double B[] = {0,0,0,1};
Aus der Matrix A wird also:
-1.0 0.0 0.0
0.0 -1.0 0.0
0.0 0.0 -1.0
-1.0 0.0 0.0
0.0 -1.0 0.0
1.0 1.0 1.0
-1.0 0.0 0.0
0.0 0.0 -1.0
1.0 1.0 1.0
0.0 -1.0 0.0
0.0 0.0 -1.0
1.0 1.0 1.0
Das funktioniert auch wunderbar. Nun will ich jede dieser Teilmatritzen an eine Klasse übergeben welche mir diese Gleichungssysteme löst und die Lösung dann zurückgibt. Die Klasse LGS das hab ich von
http://www.java-forum.org/de/viewtopic.php?p=435704 übernommen.
Das funktioniert leider aber nicht. Nachdem LGS aufgerufen wird verändert sich meine Matrix a, nämlich in:
-1.0 0.0 0.0
-0.0 -1.0 0.0
-0.0 -0.0 -1.0
-1.0 0.0 0.0
0.0 -1.0 0.0
-1.0 -1.0 1.0
-1.0 0.0 0.0
0.0 0.0 -1.0
1.0 -1.0 1.0
0.0 -1.0 0.0
0.0 -0.0 -1.0
1.0 -1.0 1.0
Ich will eigentlich nur dass ich die Matrix a an LGS übergebe, LGS dann die Lösung zurückgibt und die Schleife weiterläuft, ohne das in der Klasse "Schnittpunkt" irgendwas verändert wird. Wie mach ich das?
Code:
static Punkt[] Schnittpunkt(double[][] array,double [] erg,int i)
{
Punkt Schnittpunkte []= new Punkt[20];
double a [][]=new double[3][3];
double b []=new double[3];
int zaehler=-1;
for(int j=0;j<=i-3;j++)
{
for(int k=j+1;k<=i-2;k++)
{
for(int l=k+1;l<=i-1;l++) //Diese 3 Schleifen erzeugen die Teilmatrizen.
{ // Das funktioniert soweit auch :)
a[0]=array[j];
a[1]=array[k];
a[2]=array[l];
b[0]=erg[j];
b[1]=erg[k];
b[2]=erg[l];
double[] Loesung = LGS.solve(a, b); //Hier ist das Problem: Nachdem LGS aufgerufen wird
// werden die Teilmatrizen nicht mehr richtig erzeugt.
double x=Loesung[0];
double y=Loesung[1];
double z=Loesung[2];
zaehler++;
Schnittpunkte[zaehler] = new Punkt(x, y, z);
}
}
}
return Schnittpunkte;
}