Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

Problem mit Formel

Fachkräfte:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Finanzmathematik

 

shad
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.01.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2021, 19:17     Titel: Finanzmathematik
  Antworten mit Zitat      
Halllo Zusammen,

ich bin noch Anfänger in Matlab und würde mich freuen wenn mir jemand bei dieser Aufgabe helfen könnte.

Am 1.01.2020 hat ein Bankkunde eine Hypothek in Höhe von H Euro zu p% bei jährlicher Verzinsung aufgenommen. Um dieses Darlehen zu tilgen, hat er sich verpflichtet, jedes Jahr am 31.Dezember T Euro einzuzahlen.

1.Aufgabe: Stellen Sie ein Mathematisches Modell für die Berechnung der Restschuld des Kunden am 1.Januar eines jeden Jahres.

2.Aufgabe: Schreiben Sie eine MATLAB-Funktion mit vier Parametern (Höhe der Hypothek H, Höhe der jährlichen Tilgung T, Zinssatz p, Anzahl der Jahre) für die Berechnung der Restschuld nach N Jahren.

Vielen Dank vorab für die Rückmeldung
Grüße
Private Nachricht senden Benutzer-Profile anzeigen


ueg
Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 15.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2021, 19:47     Titel:
  Antworten mit Zitat      
Hallo,

wie schaut denn dein Ansatz bisher aus? Zumindest das mathematische Modell (die Funktion der Schuld über die Zeit) ist ja auch ohne Matlab Kenntnisse recht einfach machbar.
Du könntest dir ja mal, zur Not auch erst mal mit Worten, überlegen was da berechnet werden muss.
Die Implementierung in Matlab bekommen wir dann gemeinsam sicher hin. Wink

Viele Grüße und viel Erfolg
Tim
Private Nachricht senden Benutzer-Profile anzeigen
 
shad
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.01.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2021, 20:16     Titel:
  Antworten mit Zitat      
Hi Tim,

danke erstmal für die Antwort. Na jedes Jahr kommt auf die Hypothek 4% Zinsen. Und das für jedes Jahr n. Denke H*(1-p*n)? Was mache ich aber mit T?

Vielen Dank für die Rückmeldung.
Private Nachricht senden Benutzer-Profile anzeigen
 
ueg
Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 15.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2021, 21:23     Titel:
  Antworten mit Zitat      
Hi,
damit kann man ja schon mal was anfangen. Nur wird die Schuld ja immer größer mit jedem Jahr, also wird die Schuld vom letzten Jahr mit (1+p) multipliziert. Die Tilgung kannst du dann ganz einfach von der Schuld abziehen.

Meiner Meinung nach ist die Aufgabe insofern etwas ungenau, da man nicht weiß, wann genau die Zinsen auf das Darlehen kommen und wann in Relation dazu die Tilgung stattfindet. Also ob jedes Jahr erst die Zinsen berechnet werden und dann getilgt wird oder andersrum.

Wenn immer nur an diskreten Zeitpunkten (jedes Jahr am 1. Januar) ausgewertet werden soll, kannst du annehmen

Code:
H(n+1)=H(n)*(1+p)-T
%Ausgeschrieben bedeutet das
%Schuld vom nächsten Jahr = Schuld von diesem Jahr + Zunahme der Schuld aufgrund der Zinsen - die Tilgung

 


In diesem Fall werden die Zinsen erst fällig und anschließend wird getilft.
Wird erst getilgt und die Zinsen kommen anschließend drauf gilt:

Code:
H(n+1)=(H(n)-T)*(1+p)


Du bräuchtest also eine Matlab Funktion, die für 4 Eingabewerte den Endwert ausgibt.

Eine Funktion ist prinzipiell so aufgebaut

Code:
output = Funktionsname(Eingabewert1, Eingabewert2, ...)
%Hier kommt eine Berechnung hin, z.B.
output = Eingabewert1+Eingabewert2;
end
%Der Output wird dann von der Funktion zurückgegeben.
 


Als allereinfachstes würde ich mir einen Vektor erstellen lassen der von 1 bis N+1 (Anzahl der Jahre die vergehen sollen+1) geht und dann darauf die Berechnung in einer for-Schleife laufen lassen.

Du könntest ja mal zum Start versuchen eine Funktion zu schreiben, die diesen Vektor
Code:
n=[1, 2, 3, ... , N+1];

erstellt. Das müsste mit etwas probieren ganz flott gehen.
Beim Rest helfe ich dir dann auch gern. Wink

Viele Grüße
Tim
Private Nachricht senden Benutzer-Profile anzeigen
 
shad
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.01.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2021, 22:27     Titel:
  Antworten mit Zitat      
Erstmal liebend Dank, dass du dir die Zeit nimmst und mir ausfürhlich hilfst Smile

Es gibt noch ne Aufgabe 3

Berechnen Sie mit der Matlab-Funktion aus Aufgabe 2 die Restschuld (mit 2 Nachkommastellen) nach 8 Jahren, wenn die Höhe der Hypothek 80000€, der Zinssatz 4%, und die Höhe der jährlichen Tilgung 5000€ betragen.

Ich hab es mit der for-Schleife versucht und bin zu diesem Ergebnis gekommen:
Code:
n = 8;
M(1)= 80000;
p= 0.04;
T = 5000;

a = (1 + p);
for i = 1:n-1
    M(i+1) = a*(M(i)-T)
end


Habe ich es richtig gemacht?

Danke schonmal im voraus.
Private Nachricht senden Benutzer-Profile anzeigen
 
ueg
Forum-Anfänger

Forum-Anfänger


Beiträge: 44
Anmeldedatum: 15.08.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.01.2021, 23:26     Titel:
  Antworten mit Zitat      
Hi,
das sieht schon sehr gut aus, klasse!

Ein einziger winziger Fehler ist noch im Code. Du musst die Schleife von 1:n durchlaufen lassen, nicht bis n-1.
Das liegt daran, dass M(1) dein Startwert (die Hypothek im Jahr 0) ist.
Dann ist M(2) nach Jahr 1, M(3) nach Jahr 2 usw. bis M(9) = M(n+1) wenn n=8 Jahre dann nach dem achten Jahr.

Falls ihr das noch in eine Funktion packen sollt, kannst du das so machen:

Code:

function Restschuld = Schuldenberechnung(StartHypothek, ZinssatzinProzent, Tilgung, Dauer)
    M(1)= StartHypothek;
    p=ZinssatzinProzent/100;
    T=Tilgung;
    n=Dauer;
   
    a=1+p;
    for k=1:n
        M(k+1)=a*(M(k)-T);
    end
    Restschuld = M(end); %Gibt nur die Schulden am Ende aus
%Restschuld = M; %Gibt eine Tabelle mit den Schulden nach jedem Jahr aus (Achtung, ebenfalls gilt M(1) --> Nach Jahr 0 usw.!)
end
 


Die legst du dann einfach als MatlabScript "Schuldenberechnung.m" in deinen in Matlab aktiven Ordner und kannst die Funktion dann aufrufen indem du
Code:
Schuldenberechnung(80000, 4, 5000,8)

in das Befehlsfenster in Matlab eintippst.

Wenn du noch die geforderte Anzahl Nachkommastellen sehen willst, kannst du vor deiner Rechnung noch
Code:
einfügen. Wenn du fertig bist mit deiner Rechnerei, oder dich die Darstellung der vielen Nachkommastellen stört, einfach wieder durch
Code:
zurücksetzen.

Als kleine Anmerkung noch: Ich würde vermeiden "i" oder "j" als Laufindex für Schleifen zu verwenden. Das könnte später mal zu Verwechslungen mit dem "i" in komplexen Zahlen führen. Das dürfte dich allerdings wahrscheinlich noch eine Weile nicht beschäftigen. Wink

Das hat viel schneller geklappt, als ich gedacht hätte.
Sehr schön!
Viel Erfolg noch bei für was auch immer du den Code brauchst. Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
shad
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 27.01.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2021, 00:35     Titel:
  Antworten mit Zitat      
Hi Tim,

schön dass wir es noch hinbekommen haben. Ich danke dir sehr für deine Hilfsbereitschaft. Du hast mein Tag gerettet.
Dir auch viel Erfolg und bleib Gesund!!!

Beste Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2021 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.