Hello,
Ich habe die Iteration nicht fertig gemacht. Ich dachte, dass Du das mal versuchen willst?
Dann muss ich von vorn anfangen. Der Befriff Iteration sagt mir nichts, ich habe nur die 10. Klasse gemacht (und das ist 20 Jahre her).
Iteration ist die möglichst konvergente Annäherung an den gesuchten Wert durch Proberechnung. Konvergenz ist das Gegenteil von Divergenz und bedeutet, dass man sich eben dem Wert mit jeder Proberechnung annähert und nicht das Gegenteil. Also ist "konvergente Annäherung" eigentlich doppelt gemoppelt.
Die Überlegung mit der Formel galt der Abschätzung des ersten Annahmewertes für die Rate. Man schätzt einfach das gesamte zurückzuführende Kapital ab und nimmt dann nur eine einfache teilung durch die Anzahl der zu lesitenden Raten vor, um die Rate zu ermitteln.
mit dieser Rate steigt man dann in die Berechnungsschleife nach der ersten Formel ein, und schaut, was nach der vorgegeben Anzahl von Raten übrig bleibt. Ist es zuviel, muss die Rate erhöht werden, ist das Ergebnis kleiner 0, muss sie eben verringert werden. Der Trick an einer guten Iteration ist eigentlich die Wahl eines möglichst passenden Startwertes UND einer schlau gewählten Formel für das Incrementes/Decrementes. Zweiteres ist eigentlich noch viel wichtiger.
Wenn also der Fehler am Ende 10% beträgt, also nach der 36. Rate noch 1000 übrig sind, dann könnte man jetzt die Rate auch um 10% erhöhen, was aber leicht voraussehbar zu einer Überzahlung (alsoe negativem Endwert führen wird).
Bei diesen Zinsaufgaben hat sich als Dekrement/Increment die Wurzel des Fehlers bewährt.
Die Abweichung beträgt 0.1 (10%) dann müsste die Rate also mit sqrt(1.1) verändet werden.
Wenn jetzt als nächstes ein negativer Betrag rauskommt, ist der Fehler z.B -0.05
Dann müsste die Rate ja verringert werden, und da bietet sich sqrt(0.95) als Faktor an.
Du müsstest also versuchen, dass nun in eine Funktion zu gießen, die den Restwert ermittelt und eine Funktion, die den Faktor für die neue Rate der nächsten Proberechnung bestimmt.
Und dann darauf achten, dass die Fehler eben immer kleiner werden, und nicht größer.
Pseudocode:
Kapital = 10000
Restwert = Kapitel
sooft Raten gezahlt werden sollen >>
Restwert = Restwert * (1+Zins_decimal/12) - Rate
<<Rückgabe Restwert
Faktor = sqrt(Kapital/Restwert);
Rate = Rate * Faktor;
und die obere Schleife nochmal.
Das ganze solange, wie der Betrag der Abweichung von einem zum nächsten Durchlauf immer
kleiner wird.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau