Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Excel-Funktion IKV (https://www.delphipraxis.net/151280-excel-funktion-ikv.html)

Spezi 11. Mai 2010 10:34


Excel-Funktion IKV
 
Hallo,

ich verzweifle an der Umsetzung der Microsoft Excel Funktion IKV.
Diese berechnet den internen Zinsfuss oder so ähnlich.

Weiß jemand wie man diese Funktion in Delphi umsetzen kann?

Bzw. Weiß jemand wie diese Funktion überhaupt genau funktioniert?

MfG
spezi

mkinzler 11. Mai 2010 10:39

Re: Excel-Funktion IKV
 
Dieser Thread dreht sich um das selbe Thema

Spezi 12. Mai 2010 21:46

Re: Excel-Funktion IKV
 
So, habe mir es mal angeschaut, und im Prinzip müsste man den Kapitalwert doch über folgende Funktion berechnen können, oder?

t: Anzahl der Jahre (1 Geldstrom pro Jahr --> Anzahl der Geldströme)
i: interner Zinsfuss
c: Array mit den Ein-/Auszahlungen

Delphi-Quellcode:
function berechne_kapitalwert(t:Integer;i:Double;c:Array of Double):Double;
var zaehler:Integer;
    erg:Double;
begin
  erg:=0;
  for zaehler:=0 to (t-1) do begin
    erg:=erg+c[zaehler]/math.power((1+i),zaehler);
  end;
  result:=erg;
end;
Aber ich glaube des stimmt nicht, weil ich es mal für Werte eines anderen Programms getestet habe, und ich bekomme einen Kapitalwert von ca. -550 raus, statt der gewünschten 0.
Habe schon ein paar andere Formeln ausprobiert, aber irgendwie klappt es nie.
Weiß jemand woran das liegt?

MfG
spezi

Spezi 18. Mai 2010 20:26

Re: Excel-Funktion IKV
 
*push* :glaskugel:

Hat denn wirklich noch niemand sich mit sowas beschäftigt?
Ich blick da einfach nicht wirklich durch...

MfG
spezi

jus 21. Mai 2010 00:57

Re: Excel-Funktion IKV
 
Zitat:

Zitat von Spezi
*push* :glaskugel:

Hat denn wirklich noch niemand sich mit sowas beschäftigt?
Ich blick da einfach nicht wirklich durch...

MfG
spezi


Hallo Spezi,

eigentlich ist die Bestimmung des internen Zinsfußes nix anderes als die Bestimmung von Nullstelle(n). Der Link von mkinzler beschreibt bereits das Problem und mögliche Lösungsansätze. Ich versuche es mal von Anfang an zu erklären (das ganze liegt bei mir zwar schon einige Jahre zurück):

-----------------------------------------------------------------
Für 2 Perioden würde das Problem prinzipiell so aussehen:

0 = -Anschaffungskosten + CashFlow1/(1+p)^1 + Cashflow2/(1+p)^2

bekannt sind Anschaffungskosten, CashFlow1, CashFlow2
bestimme p (=interner Zinsfuß)
-----------------------------------------------------------------
Für 3 Perioden würde das Problem prinzipiell so aussehen:
0 = -Anschaffungskosten + CashFlow1/(1+p)^1 + Cashflow2/(1+p)^2 + Cashflow3/(1+p)^3

bekannt sind Anschaffungskosten, CashFlow1, CashFlow2, CashFlow3
bestimme p (=interner Zinsfuß)
-----------------------------------------------------------------
usw.

Rein mathematisch gesehen, muß aber es nicht unbedingt nur ein p (=Nullstelle) geben. Bei Gleichungen mit Polynomen n-ter Ordnung könnten theoretisch bis zu n mögliche Nullstellen oder sogar gar keine Nullstellen geben. Aber nehmen wir mal an, dass es nur eine einzige Nullstelle/interner Zinsfuß existiert, so verwendet man Iterationsverfahren um die Nullstelle zu berechnen. Wir hatten damals, so weit ich mich erinnern kann, Newton-Verfahren verwendet. Auf diesen Link ist es erklärt. Man muß die Ausgangsgleichung einmal ableiten, damit man den Startwert berechnen kann, dann setzt man den errechneten Wert immer wieder in die Newtonformel ein, bis man die gewünschte Genauigkeit hat.

Lg,
jus

Spezi 22. Mai 2010 13:57

Re: Excel-Funktion IKV
 
Hmm, ok, dankeschön.

Das ergibt für mich Sinn.
Zufällig habe ich gerade in der Schule die Bestimmung von Nullstellen 8-)

Aber ich nehme glaube ich nicht das Newton-Verfahren, einfach weil ich dann eine Ableitung bräuchte.
Mal schauen ob ich es irgendwie hinbekomme.

MfG
spezi


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:35 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz