Hallo Rolf,
ja, die erste Version hab ich erstmal überschrieben, weil sie von der Antwort auf meine dann gestellte Frage abhing... Ich packe sie also wieder aus:
Du gehst also erstmal die erste Spalte durch. Wenn die Summierung zum Unterlauf führt, willst du die Zeilenvektoren herunter skalieren, die in der betrachteten Spalte negative Werte haben. Das ist, denke ich, am einfachsten, wenn du zunächst positive und negative Werte für die ganze Spalte getrennt addierst und danach schaust, ob du skalieren musst. Wenn ja, berechne den Faktor und skaliere die betroffenen Zeilen.
Genau, ist schon fertig.
Dann machst du das gleiche mit Spalte 2. Problem ist, dass hier andere Zeilen die negativen Werte enthalten können, d.h. wenn du jetzt skalierst, machst du dir ggf. die Summe für Spalte 1 negativ. Das ignoriere erstmal. Gehe einfach alle Spalten durch.
Muss ich ja gar nicht, da die while
Schleife, wenn skaliert wurde nochmal durchläuft, um zu schauen ob alles passt.
skaliereNegativeZeilen
habe ich noch um einen Parameter i erweitert, weil diese Funktion ja wissen muss, in welcher Spalte sie nach negativen Werten schauen muss.
Ist bei mir schon ein Object, da schon der im Verhältnis stehende skalierungsfaktor berechnet wird und die Zeilen auf der dieser angewendet werden soll.
Das und
skaliereNegativeZeilen
zu implementieren schaffst Du bestimmt selbst, und die eigentlich Addition der Spaltenvektoren auf s kommt zum Schluss.
Auch schon fertig.
Hier schon mal das Zwischenergebnis. Jetzt noch die Exponentielle abhängigkeit und ich bin Fertig.
Gruß
Jo