Hey,
OK, dann mal eine Idee in Pseudocode, wie das gehen könnte.
Gegeben: Ein Startvektor s mit Elementen s[i] und eine Matrix M[i][j]
Ich spiele mal etwas:
for(i) { // über Spalten von M bzw Elemente von s
while(!nichtok) {
sum = s[i]
for(j){ // über Zeilen von M
sum += M[i][j]
nichtok = sum<0 // prüfen, ob Summe negativ
if(!nichtok) // korrigieren
if(M[i][j]<0) // prüfen ob Wert negativ
for(i){ // über Spalten von M
f = l = 0
for(j){
if(M[i][j]<0)
f += M[i][j]
l++
}
M[i][j] *= l/f // Zeile im Verhältnis verkleinern
}
}
}
}
}
Moment... ich bin schon wieder raus.
Nochmal ganz langsam Schritt für Schritt Formulieren.
- Die Summe der Spalte und dem Vektorelement soll positiv sein.
- Nur Zeilen in der Matrix die Negative Werte enthalten sollen skaliert werden, falls die Summe kleiner 0 wird, sodass die Summe 0 ergibt.
- Falls 2 Werte in der Spalte negativ sind sollen diese abhängig von einander skaliert werden, ebenfalls wenn die Summe kleiner 0 wird, sodass die Summe 0 ergibt
Soll heißen, ich versuche mich morgen weiter. Danke erstmal für die Axt, hoffe ich finde morgen die Kettensäge.
Gruß
Jo