Deutsch
Quelltexte/ Codesnippets

Nettoverzinsung bei periodisch anfallenden Fixkosten checken

 

p.specht

Die Formel für den n.ten Term einer Folge mit dem multiplikativ-additiv
erzeugenden Bildungsgesetz x[n+1] = a*x[n] + b lautet:

x[n] = x[1]*a^(n-1) + b * SUM( k=0..(n-2): a^k )


Anmerkung: Könnte noch beschleunigt werden wegen der bekannten Zinseszins-
Formel SUM(i=0..N: x^i ) = ( x^(N+1) - 1 ) / ( x - 1)


Damit kann man z.B. die Nettoverzinsung bei periodisch anfallenden Fixkosten berechnen. Der Wert a wäre dann der Zinssatz (wenn es noch Zinsen gäbe ) und b (als negativer Wert!!) die periodischen Kontoführungskosten.
WindowTitle "N.tes Folgeglied einer multiplikativ-additiven"+\
" Folge berechnen - Version 2.0":WindowStyle 24
declare x!,x1!,a!,sgn!,b!,sum!,i&,k&,n&
lup:
CLS rgb(200,200,200):font 2
print "\n Bildungsgesetz x[n+1] = a * x[n] + b"
print "\n  Faktor a (nun auch negativ erlaubt) = ";:input a!:sgn!=(a!>0)-(a!<0)
print "\n Summand b = ";:input b!
print "\n 1. Glied der Folge x[1] = ";:input x1!
print "\n"
print " Bis zu welchem Folgeglied-Index berechnen? N = ";
input n&:n&=abs(n&):casenot n&:n&=17
print
x!=x1!
print "  Index       Iterativ:            per Formel:           "
print " --------------------------------------------------------"

whileloop n&:k&=&Loop

    print "  x[";k&;"]=",tab(15);format$("%g",x!),tab(40);
    sum!=0

    if sgn!<>0

        whileloop 0,K&-2

            sum!=sum!+if(sgn!>0,1,if(&Loop mod 2,-1,1))*abs(a!)^&loop

        endwhile

        print format$("%g",x1!*if(sgn!>0,1,if(&Loop mod 2,1,-1))*abs(a!)^(k&-1)+b!*sum!),

    else

        print format$("%g",b!),

    endif

    print
    x!=x!*a!+b!

endwhile

waitinput
goto "lup"
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
30.05.2021  
 




p.specht

Hier mein Versuch, die obige Staffelrechnung umzukehren und aus Anfangsbetrag, Anzahl Perioden und Endbetrag auf den Faktor (Verzinsung) und das additive Glied (Prämie/Periodenspesen) zu schließen. Achtung, weitgehend ungeprüft und rein experimentell!
WindowTitle "Rückschluss von verzinseszinsten Beträgen und Kontospesen auf den Nominalzinssatz"
'(X) Experimentalwär 2019-05 by p.specht/Wien - ohne jede Gewähr!!!
WindowStyle 24:set("decimals",17):font 2
declare an!,a!,x1!,n&,xn!,b!,bn!
declare i&,j&,eps!,sahi!,siahi!,W$
eps!=val("1e-12")
x1!=1000
n&=20
xn!=4000
b!=-20
a!= 7 /100+1
lup:
CLS rgb(190+rnd(66),190+rnd(66),190+rnd(66))
print "\n Nominalzins [1] oder Spesen [2] oder beides [3, experimentell] berechnen?: ";
input w$
case w$="2":goto "lup2"
case w$="3":goto "lup3"
CLS rgb(190+rnd(66),190+rnd(66),190+rnd(66))
print "\n    A N G A B E N :              "
print "\n    Anfangsbetrag: ";:input w$:case w$>"":x1!=val(w$)
print "\n  Anzahl Perioden: ";:input w$:case w$>"":n&=val(w$)
print "\n        Endbetrag: ";:input w$:case w$>"":xn!=val(w$)
print "\n Prämien minus Spesen je Periode: ";:input w$:case w$>"":b!=val(w$)
print
locate 1,1
print "\n    A N G A B E N :              "
print "\n    Anfangsbetrag: ";format$("%g",x1!)
print "\n  Anzahl Perioden: ";n&
print "\n        Endbetrag: ";format$("%g",xn!)
print "\n Prämien minus Spesen je Periode: ";format$("%g",b!)
print
print "\n    E R G E B N I S:                      \n"
print "  Zinsfaktor:          Spesendurchschnitt: \n\n"

Whileloop 1000

    sahi!=SUM_ahi(n&-2,a!)
    an!=a!-(x1!*a!^(n&-1)+b!*sahi! - xn!)/(x1!*(n&-1)*a!^(n&-2)+b!*SUM_iahi(n&-3,a!))
    ' bn!=b!-(x1!*a!^(n&-1)+b!*sahi! - xn!)/sahi!
    locate %csrlin-1,2:print a!,b!
    case (abs(an!-a!)<eps!) :break'and (abs(bn!-b!)<eps!)
    a!=an!
    ' b!=bn!
    case &Loop=1000:print "\n ERGEBNIS INSTABIL!"

endwhile

beep
print "\n Nominalzinssatz: ";format$("###0.#### %",(a!-1)*100)
print "___"
waitinput
goto "lup"

proc SUM_ahi :parameters bis&,a!

    declare s!,i&

    whileloop 0,bis&

        s!=s!+a!^&Loop

    endwhile

    return s!

endproc

proc SUM_iahi :parameters bis&,a!

    declare s!,i&

    whileloop 0,bis&

        s!=s!+&Loop*a!^&Loop

    endwhile

    return s!

endproc

lup2:
WindowTitle "Rückschluss von verzinseszinsten Beträgen und Nominalzinsfaktor auf Periodenspesen"
CLS rgb(190+rnd(66),190+rnd(66),190+rnd(66))
print "\n    A N G A B E N :              "
print "\n    Anfangsbetrag: ";:input w$:case w$>"":x1!=val(w$)
print "\n  Anzahl Perioden: ";:input w$:case w$>"":n&=val(w$)
print "\n        Endbetrag: ";:input w$:case w$>"":xn!=val(w$)
print "\n Nominalzinsfaktor:";:input w$:case w$>"":a!=val(w$)
print
locate 1,1
print "\n    A N G A B E N :              "
print "\n    Anfangsbetrag: ";format$("%g",x1!)
print "\n  Anzahl Perioden: ";n&
print "\n        Endbetrag: ";format$("%g",xn!)
print "\n Nominalzinsfaktor:";format$("%g",a!)
print
print "\n    E R G E B N I S:                      \n"
print "  Zinsfaktor:          Spesendurchschnitt: \n\n"

Whileloop 1000

    sahi!=SUM_ahi(n&-2,a!)
    ' an!=a!-(x1!*a!^(n&-1)+b!*sahi! - xn!)/(x1!*(n&-1)*a!^(n&-2)+b!*SUM_iahi(n&-3,a!))
    bn!=b!-(x1!*a!^(n&-1)+b!*sahi! - xn!)/sahi!
    locate %csrlin-1,2:print a!,b!
    case (abs(bn!-b!)<eps!) :break'and (abs(an!-a!)<eps!)
    ' a!=an!
    b!=bn!
    case &Loop=1000:print "\n ERGEBNIS INSTABIL!"

endwhile

beep
print "\n Nominalzinssatz: ";format$("###0.#### %",(a!-1)*100)
print "\n Fixbetrag ";if(b!>0,"Prämien(+)","Spesen");" je Periode: ";format$("#####0.#####",b!)
print "___"
waitinput
goto "lup"
lup3:
WindowTitle "Rückschluss von verzinseszinsten Beträgen auf Nominalzinsfaktor und Periodenspesen"
CLS rgb(190+rnd(66),190+rnd(66),190+rnd(66))
print "\n    A N G A B E N :              "
print "\n    Anfangsbetrag: ";:input w$:case w$>"":x1!=val(w$)
print "\n  Anzahl Perioden: ";:input w$:case w$>"":n&=val(w$)
print "\n        Endbetrag: ";:input w$:case w$>"":xn!=val(w$)
locate 1,1
print "\n    A N G A B E N :              "
print "\n    Anfangsbetrag: ";format$("%g",x1!)
print "\n  Anzahl Perioden: ";n&
print "\n        Endbetrag: ";format$("%g",xn!)
print
print "\n    E R G E B N I S:                      \n"
print "  Zinsfaktor:          Spesendurchschnitt: \n\n"

Whileloop 1000

    sahi!=SUM_ahi(n&-2,a!)
    bn!=b!-(x1!*a!^(n&-1)+b!*sahi! - xn!)/sahi!
    an!=a!-(x1!*a!^(n&-1)+b!*sahi! - xn!)/(x1!*(n&-1)*a!^(n&-2)+b!*SUM_iahi(n&-3,a!))
    locate %csrlin-1,2:print a!,b!
    case (abs(bn!-b!)<eps!) and (abs(an!-a!)<eps!):break
    a!=an!
    b!=bn!
    case &Loop=1000:print "\n  E R G E B N I S   I N S T A B I L !"

endwhile

beep
print "\n Nominalzinssatz: ";format$("###0.#### %",(a!-1)*100)
print "\n Fixbetrag ";if(b!>0,"Prämien(+)","Spesen");" je Periode: ";format$("#####0.####",b!)
print "___"
waitinput
goto "lup"
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
30.05.2021  
 




p.specht

Verzinseszinsungsdauer unter Speseneinfluss
==================================
Ergänzend hier eine vereinfachte Berechnung, wie man aus den (im nachstehenden Snippet testweise fest einprogramierten) Werten Anfangsbetrag, Verzinsungsfaktor, Periodenspesen und einem Endbetrag auf die Anzahl der Verzinsungsperioden rückschliessen kann. Natürlich wieder mal ohne Gewähr!
WindowTitle "Aus Anfangsbetrag, Verzinsung, Spesen und Endbetrag auf die Periode schließen"
cls
declare a!,b!,x1!,xn!,n!
a!=2'Zinsfaktor (zB: 1.04 = 4%)
b!=-1'Spesen
x1!=2'Anfangsbetrag
xn!=9'Endbetrag
n!=(ln(((a!-1)*(xn!-1))/((a!-1)*x1!+b!))+ln(a!))/ln(a!)
print " Diese Daten treten am Ende der ";format$("%g",n!);". Periode auf!"
waitinput
End
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
30.05.2021  
 



Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.138 Betrachtungen

Unbenanntvor 0 min.
p.specht20.11.2021
Uwe Lang20.11.2021
Manfred Barei19.11.2021
Wilfried Friebe17.11.2021
Mehr...

Themeninformationen

Dieses Thema hat 1 Teilnehmer:

p.specht (3x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie