Permalänk
Medlem

Programmeringshjälp Matlab

Hej.

Jag skulle behöva lite hjälp med att programmera i Matlab.

Jag har en datumserie:
01/01/12
02/01/12
...
31/12/12

Vid fyra givna tidpunkter detta år kommer det att utbetalas en summa, säg 5 kr. Jag vill för varje datum räkna ut det diskonterade värdet på denna summa.

Om vi säger att jag står på dag 1 så blir det:
5/(1+ränta)^((datum för utbet1 - idag)/365))+ 5/(1+ränta)^((datum för utbet2 - idag)/365))+ ...
5/(1+ränta)^((datum för utbet4 - idag)/365))+

För dag två gör vi samma exercis och så vidare.
Det här går utmärkt tills jag passerar första utbetalningen. Säg att jag har en utbetalning 20e april. Den 21a april vill jag inte räkna med den då jag redan fått den, men det kommer ju ske om jag bara fortsätter utan någon form av IF-sats och liknande.

Nu har jag inte bara fyra utbetalningar utan många fler (10-20 st) vilket gör att det vore bra med en hyfsat dynamisk lösning utan 20 st IF-satser... Jag skulle kunna konstruera en matris med ettor och nollor men det känns inte heller så elegant.

Jag kan gärna förtydliga om något är oklart

Permalänk
Medlem
Skrivet av mrc:

Hej.

Jag skulle behöva lite hjälp med att programmera i Matlab.

Jag har en datumserie:
01/01/12
02/01/12
...
31/12/12

Vid fyra givna tidpunkter detta år kommer det att utbetalas en summa, säg 5 kr. Jag vill för varje datum räkna ut det diskonterade värdet på denna summa.

Om vi säger att jag står på dag 1 så blir det:
5/(1+ränta)^((datum för utbet1 - idag)/365))+ 5/(1+ränta)^((datum för utbet2 - idag)/365))+ ...
5/(1+ränta)^((datum för utbet4 - idag)/365))+

För dag två gör vi samma exercis och så vidare.
Det här går utmärkt tills jag passerar första utbetalningen. Säg att jag har en utbetalning 20e april. Den 21a april vill jag inte räkna med den då jag redan fått den, men det kommer ju ske om jag bara fortsätter utan någon form av IF-sats och liknande.

Nu har jag inte bara fyra utbetalningar utan många fler (10-20 st) vilket gör att det vore bra med en hyfsat dynamisk lösning utan 20 st IF-satser... Jag skulle kunna konstruera en matris med ettor och nollor men det känns inte heller så elegant.

Jag kan gärna förtydliga om något är oklart

Du använder en for-loop? Drar bort värdet av summan du fått hittills? Dvs för varje utbetalning lägger du till den summan i en variabel. Denna summa dras bort från utbetalningen som du räknar på nu. Loppen körs så många gånger som du har utbetalningar. På något sätt måste du dock ange vilka dagar som är utbetalningsdagar.

Permalänk
Medlem

Nu var det ett tag sen jag jobbade i matlab men en matris med 1 och 0 är ju riktigt smidigt och elegant bara du gör den som en gles matris