File: rendite.e

package info (click to toggle)
euler 1.61.0-12
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, forky, sid, trixie
  • size: 5,164 kB
  • sloc: ansic: 24,761; sh: 8,314; makefile: 141; cpp: 47; php: 1
file content (121 lines) | stat: -rw-r--r-- 3,946 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
.. Berechnet die Rendite eines Wertpapieres

function rendite (x)
## berechnet die Rendite von Zahlungen x zu Perioden 0,1,2,3,...
    if sum(x)<0; error("Rendite negativ?"); endif;
    q=polydif(x);
    c=1;
    repeat
        cnew=c-polyval(x,c)/polyval(q,c);
        if c~=cnew; break; endif;
        c=cnew;
    end;
    return (1/cnew-1)*100;
endfunction

function rendite2 (x,n)
## berechnet die Rendite von Zahlungen x zu gebrochenen Perioden n.
    if sum(x)<0; error("Rendite negativ?"); endif;
    k2=x*n; n2=n-1;
    k2=k2[2:length(x)]; n2=n2[2:length(x)];
    c=1;
    repeat
        cnew=c-sum(x*c^n)/sum(k2*c^n2);
        if c~=cnew; break; endif;
        c=cnew;
    end;
    return (1/cnew-1)*100;
endfunction

function anlageformel (f,k0,r,k1,n,i0,i1)
	return k0*f^n+r*f^i1*(f^(n-i0-i1+1)-1)/(f-1)+k1
endfunction

function anlage1 (kapital,rate,endkapital,laufzeit,start,halten)
	f=bisect("anlageformel",1.0000001,2,kapital,rate, ..
			endkapital,laufzeit,start,halten);
	return (f-1)*100;
endfunction

function anlage (kapital,rate,endkapital,laufzeit,start=1,halten=1)
## Berechnet die Rendite einer Anlage oder eines Darlehens in %.
## kapital : Zahlung zu Beginn
## rate : Zahlung zu Beginn von Periode "start"
##        bis Beginn Periode "laufzeit"-"halten"
## endkapital : Auszahlung bzw. Endkapital nach laufzeit
## Zahlung mssen negativ eingegeben werden !
## Die Rendite mu zwischen 0 und 100 % liegen.
## Beispiel: anlage(-104,8.75,100,8)
	return map("anlage1",kapital,rate,endkapital,laufzeit,start,halten);
endfunction

function effzins (kurs,laufzeit,zins)
## berechnet den effektiven Zins eines Wertpapieres.
## kurs und zins in %, laufzeit in Zinsperioden.
## z.B. effzins(104,8,8.75).
	return anlage(-kurs,zins,100,laufzeit,1,0);
endfunction

function rate (darlehen,laufzeit,zins,rest=0,faellig=1)
## Berechnet die Rate fr ein Darlehen mit Restschuld.
## Der Zins wird in % angegeben.
## Die erste Zahlung wird nach der faellig-sten Zinsperiode fllig.
## Die letzte Rate wird nach der n-ten Zinsperiode fllig.
## Die Restschuld ist die Schuld nach der n-ten Periode.
    f=1+zins/100;
    return (darlehen*f^laufzeit-rest)*(f-1)/(f^(laufzeit-faellig+1)-1);
endfunction

function darlzins (darlehen,laufzeit,rate,rest=0,faellig=1)
## Berechnet den Zinssatz eines Darlehens in %.
## Die anderen Parameter sind wie bei "rate".
	return anlage(darlehen,-rate,-rest,laufzeit,faellig,0);
endfunction

function restschuld (darlehen,laufzeit,zins,rate,faellig=1)
## Berechnet die Restschuld.
## Die Parameter sind wie bei "rate".
	f=1+zins/100;
	return darlehen*f^laufzeit-rate*(f^(laufzeit-faellig+1)-1)/(f-1);
endfunction

function restschulden (darlehen,laufzeit,zins,rate,faellig=1)
## Berechnet einen Vektor mit Restschulden.
## Die Parameter sind wie bei "rate".
## Die Funktion kann nicht mit Vektoren aufgerufen werden.
	r=dup(darlehen,laufzeit+1)';
	f=1+zins/100;
	if faellig==0; r[1]=r[1]-rate; endif;
	loop 2 to laufzeit+1;
		r[#]=r[#-1]*f;
		if #>faellig;
			r[#]=r[#]-rate;
		endif;
	end;
	return r;
endfunction

function sparzins (rate,laufzeit,endkapital)
## Berechnet den effektiven Zins eines Sparvertrages.
    return darlehen(0,-rate,endkapital,laufzeit,0,1);
endfunction

function endkap (rate,laufzeit,zins)
## Berechnet das Endkapital eines Sparvertrages.
	p=1+zins/100;
    return p*rate*(p^laufzeit-1)/(p-1);
endfunction

"rendite(zahlungen) definiert."
"rendite2(zeiten,zahlungen) definiert."
"anlage(startkapital,rate,endkapital,laufzeit,start,halten) definiert"
"effzins(kurs%,laufzeit,zins%) definiert."
"rate(darlehen,laufzeit,zins%,rest=0,faellig=1) definiert."
"darlzins(darlehen,laufzeit,rate,rest=0,faellig=1) definiert."
"restschuld(darlehen,laufzeit,rate,faellig=1) definiert."
"restschulden(darlehen,laufzeit,rate,faellig=1) definiert."
"sparzins(rate,laufzeit,endkapital) definiert."
"endkap(rate,laufzeit,zins%) definiert."

"Benutzen Sie help ... fr weitere Informationen."