Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
E Ö T V Ö S L O R Á N D T U D O M Á N Y E G Y E T E M
T E R M É S Z E T T U D O M Á N Y I K A R
Nádas Katalin
Matematika BSc, Matematikai elemző szakirány
Pénzügyi problémák megoldásai
Maple és más környezetekben
Szakdolgozat
Témavezető: Pröhle Tamás
Valószínűségelméleti és Statisztika Tanszék
Budapest, 2010
- 2 -
Tartalomjegyzék
1. Bevezetés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Pénzügyi elmélet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Egyedi befektetések kockázatának és hozamának mérése . . 4
2.2. Befektetői magatartás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3. Portfólió hozama és kockázata . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4. Egyedi és piaci kockázat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5. A tőkepiaci árfolyamok modellje . . . . . . . . . . . . . . . . . . . . . . . . . 7
3. A Maple bemutatása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1. Történeti áttekintés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2. Alapfunkciók . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3. Adattípusok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.4. Grafika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.5. Csomagok – Pénzügyi csomag . . . . . . . . . . . . . . . . . . . . . . . . . 16
4. Más környezetek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1. Microsoft Office Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2. R programnyelv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5. Feladatok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.1. Feladatok „papíron” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.2. Megoldások Maple-ben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3. Feladatok továbbfejlesztése Maple-ben . . . . . . . . . . . . . . . . . 36
5.4. Feladatok megoldása Excelben . . . . . . . . . . . . . . . . . . . . . . . . 40
5.5. Megoldások R-ben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6. Összefoglalás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7. Irodalomjegyzék . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8. Köszönetnyilvánítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
- 3 -
1. Bevezetés
„Az emberek szívesebben viselik el a megszokott körülményeket, mint a kockázatvállalást és a
jutalmazást. Érdemes felvállalni a kényelmetlen – kellemetlen helyzeteket, mert akkor fejlődik az
ember, és azokból tanul. Ha tudatosan hozod magadat kellemetlen helyzetbe, idővel cserébe nagy
kényelmet fogsz tudni magadnak biztosítani.” (T. Harv Eker)
„A biztonság többnyire csupán egy babonának tekinthető, mivel a természetben soha sem fordul elő, és
az emberek életében sem tapasztalható. Hosszú távon a veszélyt elkerülni semmivel sem
biztonságosabb, mint szembefordulni vele. Az élet egy merész vállalkozás, vagy egy nagy semmi.”
(Helen Keller)
Napjainkban a pénz világa igen fontos szerepet játszik mindenki életében.
Pénzügyi döntéseiknél mindenképp érdemes megnézni annak kockázatát. Mennyit
nyerhetünk, esetleg veszthetünk egy adott befektetésen? Vajon érdemes-e
kockáztatni? Inkább a biztosabb, de alacsonyabb hozamút válasszuk? Mibe és
mennyit érdemes befektetni? Dolgozatomban ezekre a kérdésekre szeretnék
rávilágítani néhány példán keresztül. Ehhez segítségül hívtam egy számomra
igencsak kedves szoftvert, a Maple-t, amit a tanulmányaim során ismertem meg. Ez
a program könnyen megtanulható, nem szükségesek mély programozási ismeretek
hozzá. Azonban jelenleg Magyarországon még nem igazán ismert, annak ellenére,
hogy a matematika számos területén alkalmazható. Azért is választottam a Maple-t,
hogy egy kevésbé ismert oldaláról is bemutassam, ezzel „reklámozva” a szoftvert.
- 4 -
2. Pénzügyi elmélet – kockázat és hozam
A pénzügyek egyik kulcs tényezője a bizonytalanság. A pénzügyi döntések egyik
alapját képzik a kockázatok meghatározása, számszerűsítése, esetlegesen
csökkentése egy adott szintre. A döntések során a különböző kockázatú és hozamú
lehetőségekből kell kiválasztani a legmegfelelőbbet.
2.1. Egyedi befektetések kockázatának és hozamának mérése
A pénzügyek világában kockázaton a jövőbeli pénzáramlások bizonytalanságát
értjük. Pénzügyi befektetéseknél a kockázat azt jelenti, hogy a befektetés tényleges
jövőbeli hozamai eltérnek az elvárt hozamtól. Ez nem csak negatív irányú eltérés
lehet, hanem pozitív is, vagyis a vártnál magasabb hozam is lehetséges.
A pénzügyi kockázat fő jellemzői valószínűségi fogalmakkal írhatóak le. Egy
esemény valószínűsége 0 és 1 közötti érték lehet. A lehetetlen eseménynek 0 a
valószínűsége, a biztos eseménynek pedig 1. A lehetséges kimeneteleket a
valószínűségi eloszlás írja le. Az eloszlásból két fontos statisztikai mutatót lehet
kiszámítani: a várható értéket (jelen esetben a várható hozamot) és a szórást (a
kockázatot).
A hozam várható értéke a valószínűségeikkel súlyozott számtani átlaga az összes
lehetséges hozamnak:
𝐸 𝑟 = 𝑝𝑖 ∙ 𝑟𝑖
𝑛
𝑖=1
𝐸 𝑟 a hozam várható értéke
𝑟𝑖 a hozam i-edik lehetséges kimenete
𝑝𝑖 az i-edik kimenetel valószínűsége
A kockázat annak a valószínűsége, hogy egy befektetés tényleges hozama el fog
térni a várt hozamtól. Ezt a lehetséges hozamok szórásnégyzetével, varianciával
vagy szórásával, átlagos eltéréssel mérjük.
Szórásnégyzet (σ2): a lehetséges hozamok és a várt hozam közötti eltérések
négyzetösszegének valószínűségekkel súlyozott átlaga:
σ𝑟2 = 𝑝𝑖 ∙ [𝑟𝑖 − 𝐸 𝑟 ]2
𝑛
𝑖=1
- 5 -
Szórás (σ): a várt hozamtól való eltérések négyzetes átlag:
σ𝑟 = σ𝑟2
Ha 0 a szórás, akkor nincs kockázat, a hozamok biztosak. Minél nagyobb a szórás,
annál változatosabbak a befektetés hozamai, azaz kockázatosabb a befektetés.
2.2. Befektetői magatartás
A befektetőket különböző tényezők befolyásolják. Az egyik ilyen a kockázathoz
való viszonyuk. A legtöbb befektető inkább a biztosabb befektetéseket választja, és
nem vállal felesleges kockázatot, még akkor is, ha magasabb hozamot érhetnének
el a kockázatos befektetéssel. A befektetőket magatartás alapján három csoportba
oszthatjuk:
Kockázatkerülő: az azonos hozamú befektetések közül a kisebb kockázatút
választja, csak akkor vállal nagyobb kockázatot, ha azért többlethozamot kap.
Kockázatkedvelő: a nagyobb kockázat vállalásért nem várnak magasabb
hozamot.
Kockázatelutasító: a befektető számára az alacsony kockázat a meghatározó,
bármekkora hozam esetében.
A három magatartásformát a kockázat-hozam közömbösségi görbék segítségével
ábrázoljuk:
- 6 -
2.3. Portfolió hozama és kockázata
A portfólió tágabb értelemben a befektetéseknek összege. A befektetők a
befektetni szánt összeget megosztják a különböző kockázat-hozam tulajdonságú
eszközök között, vagyis diverzifikálják a befektetéseiket.
A portfólió hozama az őt alkotó befektetések várható hozamának súlyozott
számtani átlaga:
𝐸 𝑟𝑝 = 𝑤𝑖 ∙ 𝐸 𝑟𝑖
𝑛
𝑖=1
𝐸 𝑟𝑝 a portfólió várható hozama
𝑤𝑖 az i-edik befektetés súlya a portfólióban
𝐸 𝑟𝑖 az i-edik befektetés várható hozama
A portfóliók szórása a befektetések egyedi szórásától és az egymáshoz viszonyított
változástól függ. Az egymáshoz viszonyított változás mérőszáma a kovariancia,
azaz a tényleges hozamoknak a várható hozamtól való eltéréseinek együttes átlaga.
Egy kételemű portfólió kovarianciája:
𝐶𝑂𝑉𝑋,𝑌 = 𝑤𝑖
𝑖
∙ 𝑟𝑋 − 𝑟𝑋 ∙ (𝑟𝑌 − 𝑟𝑌 )
A kovariancia értéke pozitív, ha a befektetések hozama együtt mozog és negatív, ha
a hozamok alakulása ellentétes. Ha a kovariancia nulla, akkor a befektetések
függetlenek egymásra. Az egyes befektetések hozamai közötti kapcsolatot a
lineáris korrelációs együttható fejezi ki. A és B befektetés közötti lineáris
korrelációs a következő képen számítható ki:
𝜌𝐴,𝐵 =𝐶𝑂𝑉𝐴,𝐵
𝜎𝐴 ∙ 𝜎𝐵
Ez az érték -1 és +1 közötti értéket vehet fel. Minél közelebb esik az abszolút értéke
az 1-hez, annál szorosabb a kapcsolat.
A kételemű portfólió szórásnégyzete:
𝜎𝑝2 = (𝑤𝐴 ∙ 𝜎𝐴)2 + 2 ∙ 𝜌𝐴,𝐵 ∙ 𝑤𝐴 ∙ 𝜎𝐴 ∙ 𝑤𝐵 ∙ 𝜎𝐵 + (𝑤𝐵 ∙ 𝜎𝐵)2
𝜎𝑝2 = (𝑤𝐴 ∙ 𝜎𝐴)2 + 2 ∙ 𝐶𝑂𝑉𝐴,𝐵 ∙ 𝑤𝐴 ∙ 𝑤𝐵 + (𝑤𝐵 ∙ 𝜎𝐵)2
- 7 -
Többelemű portfólió szórása:
𝜎𝑝 = 𝑤𝑖 ∙ 𝑤𝑗 ∙ 𝐶𝑂𝑉𝑖,𝑗
𝑗𝑖
𝜎𝑝 = 𝑤𝑖 ∙ 𝑤𝑗 ∙ 𝜌𝑖 ,𝑗 ∙ 𝜎𝑖 ∙ 𝜎𝑗𝑗𝑖
2.4. Egyedi és piaci kockázat
Kockázaton egy pénzügyi eszköz vagy portfólió tényleges hozama és a várható
hozama közötti eltérést értjük. A tőzsdén forgalmazott részvények hozama két
részre bontható. Az egyik a várható hozam, a másik a kockázatos hozam. A
kockázatos hozam a piaci váratlan eseményektől függ. Megkülönböztetünk egyedi
és piaci kockázatot attól függően, hogy a vállalatok mekkora körét érintik a
kockázati tényezők.
Egyedi kockázat: csak egy adott cégre vonatkozó kockázat. Ez csökkenthető a
befektetések megosztásával, vagyis a kockázat diverzifikálható.
Piaci kockázat: a kockázat az a része, mely diverzifikáció ellenére sem
kerülhető el
A portfólió kialakításakor fontos tényező, hogy hányfajta részvénytípus legyen
benne. A részvényfajták növelése csökkenti a kockázatot. Azonban az egyelemű
portfólió kockázata az egyedi kockázattal, illetve az olyan portfólió a kockázata,
melyben az összes részvényfajta szerepel, a piaci kockázattal egyenlő. A köztes
számú portfóliók kockázata az egyedi és a piaci kockázat között helyezkedik el:
2.5. A tőkepiaci árfolyamok modellje
(CAPM - Capital Asset Pricing Model)
A CAPM modell a tőkepiaci egyensúly jellemzőit vizsgálja. Feltételezései:
Tökéletes tőkepiac.
Sok, egymástól független kis befektető.
Kockázatkerülő magatartás.
A várható hozam és kockázat optimalizálása.
- 8 -
Homogén várakozások, vagyis a befektetők azonosan vélekednek a
befektetések hozamának együttes valószínűség eloszlásáról.
Nyilvános kereskedés
Minden csere szabad
Nincsenek adók és tranzakciós költségek
Korlátozás nélkül elérhető minden információ mindenki számára
A pénzügyi eszközök korlátlanul oszthatóak
Van olyan kockázatmentes kamatláb, amely mellett bárki kölcsönt nyújthat és
kölcsönt vehet fel, és ez minden befektető számára azonos
Egyes pénzügyi eszközök eltérő módon reagálnak a piaci hozamok változására, ezt
a piaci kockázat mérőszáma írja le. Jelölése: β, béta.
𝛽𝑖 =𝐶𝑂𝑉𝑖,𝑀
𝜎𝑀2
Egy befektetés bétája azt jelenti, hogy a piaci hozam egy százalékos változása
esetén az adott befektetés hozama hány százalékkal változik. Egy befektetés elvárt
hozama a következőkép számítható ki:
𝑟𝑖 = 𝑟𝑓 + 𝛽𝑖 ∙ (𝑟𝑚 − 𝑟𝑓)
𝑟𝑖 az i befektetés hozama
𝛽𝑖 az i befektetés bétája
𝑟𝑓 a kockázatmentes hozam, ahol β=0 (pl. állampapírok)
𝑟𝑚 a piaci hozam
A béta ezen felül megmutatja, hogy az egyes befektetések és a piaci hozamok
közötti milyen irányú és nagyságú kapcsolat van. A befektetés hozama és a piaci
hozam azonos irányban változik, ha pozitív, ellentétes irányban, ha negatív. A
befektetés hozamának változása nagyobb, mint a piaci hozam változása, ha a béta
értéke 1-nél nagyobb, kisebb, ha 0 és 1 közötti. A piaci portfólió bétája 1, a
kockázatmentes befektetéseké pedig 0.
- 9 -
3. A Maple bemutatása
3.1. Történeti áttekintés
A Maple első koncepciója 1980 novemberében alakult ki, a Waterlooi egyetemen. A
kezdeti fejlesztés nagyon gyorsan haladt, az első korlátozott kiadása 1980
decemberében jelent meg, és először egy konferencián mutatták be 1982-ben. A
nevét a kanadai nemzeti szimbólum (juharfalevél) angol nevéből kapta. 1983
végére már több mint 50 egyetem számítógéprendszerére fel volt telepítve a
program. Megalapították a Waterloo Maple Inc.-t, mely fő céljai a szoftver
osztályozása, illetve, hogy legyen egy részlege, ahol a folyamatos fejlesztés folyik.
1989-ben fejlesztették ki az első grafikusan használható kezelőfelületet. 1999-ben
jött ki a Maple 6, mely a numerikus NAG csomag beépítése miatt vált ismerté.
2003-ban mutatták be a Maple 9-et, ami a jelenlegi általános interfészt
tartalmazza. Ezt már Java környezetben fejlesztették. 2008-ban jelent meg a Maple
12, és 2009-ben a 13. Hivatalos weboldal: http://www.maplesoft.com/
3.2. Alapfunkciók
3.2.1. Ismerkedés a rendszerrel
- 10 -
Minden parancs egy > jellel kezdődik és kétféleképen végződhet. Lezárásként a ; jel
az eredmény kiírására szolgál, a : jel pedig elvégzi a műveletet, de nem írja ki. Egy
sorban több parancs is szerepelhet. Enter hatására új parancssor kezdődik. Ha
hosszú parancsot akarunk megadni, az áttekinthetőség megkönnyítése érdekében
kezdhetünk új sort a parancson belül a SHIFT+ENTER kombinációval.
Az aritmetikai műveletei jelek:
összeadás: +
kivonás: -
szorzás: *
osztás: /
értékadás: :=
hatványozás: ^ vagy **
faktoriális: !
zárójelezés: ( )
A zárójelezés és a műveleti sorrend a szokásos. A [ ] és a { } alakú zárójeleknek
külön szerepe van, egyszerű zárójeleknek nem használhatóak.
Néhány változó és szimbólum, amit a Maple ismer:
π Jelölése: Pi
e Jelölése: E
−1 Jelölése: I
∞ Jelölése: infinity
Ezen a változókat más értelemben nem érdemes használni, mivel az hibát
eredményezhet.
A % jel az előző eredményt adja vissza. Ahány % jel van egymás mellett, annyival
azelőtti eredményt adja meg. Az értékek addig bennmaradnak a memóriában, amíg
nem töröljük azokat. A restart; paranccsal az összes kiszámított eredményt
töröljük a memóriából, így a munkalapot alaphelyzetbe állíthatjuk. Megjegyzéseket
a # jel után írhatunk. A bevitelt és az eredmény tudjuk manuálisan formázni is.,
amit a Format menüsorral érhetjük el.
3.2.2. Függvények és egyenletek
Definiálhatunk egy- és többváltozós függvényeket, majd megadhatjuk ezek
helyettesítési értéket egy-egy pontban, mint a következő példákban:
> f := x -> 1/x; f(2);
> g := (x,y) -> x^2 + y; g(2,3);
- 11 -
A Maple-be nagyon sok függvény is be van építve, így ezeket nem kell külön
definiálni. Néhány fontosabb:
exponenciális: exp(x)
logaritmus: ln(x)
négyzetgyökvonás: sqrt(x)
abszolút érték: abs(x)
szinusz: sin(x)
koszinusz: cos(x)
tangens: tan(x)
kotangens: cot(x)
arkusz szinusz: arcsin(x)
arkusz koszinusz: arccos(x)
arkusz tangens: arctan(x)
arkusz kotangens: arccot(x)
szinusz hiperbolikusz: sinh(x)
koszinusz hiperbolikusz: cosh(x)
tangens hiperbolikusz: tanh(x)
kotangens hiperbolikusz: coth(x)
A matematikában gyakran találkozunk egyenletekkel, egyenlőtlenségekkel.
Egyenlőtlenségeknél a <, >, <=, >= jeleket használjuk. Ezeket a solve()
paranccsal oldhatjuk meg. A következő utasításokban egy egyenletet és egy
egyenlőtlenséget definiálunk, majd megoldjuk őket:
> a:= x+4 = 0; b:= x+4 > 0;
> solve(a); solve(b);
3.3. Adattípusok
Sok függvény kér különböző típusú változókat bemenetként vagy ad vissza
eredményként. Mint más programozási nyelvekben, a Maple-ben is megtalálhatóak
a megszokott adattípusok. Ezek rögzítik, hogy az adatok milyen értékeket vehetnek
fel, vagy milyen műveleteket lehet végezni velük. Maple-ben egy változó adattípusa
menet közben változhat attól függően, hogy milyen értéket kap. Egy adat típusát a
következő három paranccsal tudhatjuk meg: whattype, type, hastype. Léteznek
egyszerű és összetett adattípusok. Egyszerű adattípusok: egész (integer), tört
(fraction), lebegőpontos (float), komplex (complex), sztring (string), reláció
(relation), logikai (boolean), tartomány (range). Összetett adattípusok:
kifejezés sorozat (exprseq), halmaz (set), lista (list), tömb (array), vektor
(vector), mátrix (matrix). Nézzünk néhány gyakran használt adattípust.
- 12 -
3.3.1. Egészek és törtek
A számjegyek száma rendszerfüggő, de sokkal nagyobb, mint más programozási
nyelvekben, akár 500 ezernél is több számjegy szerepelhet.
> c:=12345;
> whattype(c);
> type(c,integer);
A törteket ugyanúgy ábrázolja a rendszer, ezért ugyan az vonatkozik a
pontosságukra, mint az egészekre.
> d:=1/2;
> whattype(d);
> type(d,integer);
> type(d,fraction);
3.3.2. Tartomány
Tartományoknál egy változó fut végig egy bizonyos intervallumon. A ..-al képezzük.
Például vegyük 1-től 10-ig a számok összegét:
> sum(i,i=1..10);
3.3.3. Sztringek
Bármilyen karaktersorozat ” ” jel közé fogva. Elemei indexelés segítségével érhetők
el, és az egyes sztringeket a cat függvénnyel lehet összekapcsolni.
> s:="ez egy szöveg";
> s[8..13];
> s1:="első rész": s2:="második rész": cat(s1,", ",s2);
- 13 -
3.3.4. Kifejezés sorozat
Kifejezések egymásutánja ,-vel elválasztva. [t] az 1, 2 ,3 elemeket tartalmazó lista,
{t} ugyanezeket tartalmazó halmaz lesz, h(t) pedig alkalmazkodik a sorozatra.
> t:=1,2,3;
> max(t);
Sorozatot a seq függvénnyel is megadhatunk, illetve az ismétlés jele a $.
> seq(h(i),i=1..5);
> x$4;
Elemeit indexeléssel tudjuk kiválasztani t[i], t[i..j]. A sorozat hossza pedig a
nops([t])-vel kapható meg. Az üres sorozatot a NULL jelöli.
3.3.5. Vektorok és mátrixok
A vektorok és mátrixok kétféleképen érhető el a linalg programcsomagból. A
csomag nevét tartalmazó kibővített utasítással, vagy bekapcsoljuk magát a
programcsomagot. Vektornál elég az elemeit felsorolni egy listában. A képernyőre
sorvektorokként írja ki a rendszer, azonban oszlopvektorként számol velük.
Mátrixoknál meg kell adni hány sorból és oszlopból áll, egy listával az elemeit. Az
evalm paranccsal a szokásos műveletek is érvényesek. A mátrix-szorzás jele: &*.
> v1:=linalg[vector]([1,2,3]);
> with(linalg): v2:=vector([3,2,1]);
> M:=matrix(2,3, [v1,v2]);
> v:=evalm(v1+v2);
> evalm(3*v1);
> evalm(M&*v);
- 14 -
3.4. Grafika
A Maple nemcsak számolni tud, hanem a legkülönfélébb 2 dimenziós és 3
dimenzós grafikákat is megjeleníti. Többféle koordináta rendszerben (derékszögű,
polár, henger, gömbi) és ábrázolásmóddal (programozható színezés, választható
nézőpont, szintvonalak) egyetlen paranccsal és megfelelő paraméterezéssel tudja
ábrázolni a differenciálegyenletek megoldásait, statisztikai eredményeket,
geometriai felületeket, és nem utolsósorban mindenféle függvényeket. Azonban
nem csak rajzolni tudunk vele, hanem kisebb animációkat is elkészíthetünk.
A kirajzolási forma módosítható opciókon keresztül. Ezen opciók közül néhány
fontosabb:
scaling: constrained-re a tengelyeken azonos lépteket használ.
thickness: vonalvastagság.
discont: ha true, akkor figyeli a szakadási helyeket.
numpoints: minimum hány helyen számítja ki a függvényértékeket, ezek
között a rendszer lineárisan közelít. Minél nagyobbra állítjuk, annál szebb
lehet a rajz, viszont időben is tovább fog tartani a kirajzolás.
color: szín, megadhatunk előre megadott színeket, ezeket a ?plot,color;
paranccsal kérdezhetjük le, vagy RGB színekből ki is keverhetjük.
axes: tengelyek fajtája. Lehetséges értékei: frame, boxed, normal, none.
alapértelmezés 2 dimenzióban a normal, 3 dimenzióban a none.
title: a rajz címe.
labels: a különböző tengelyek feliratai.
A további opciókat a következő parancsokkal érhetünk el, 2D-ben
?plot[options]; 3D-ben: ?plot3d[options];
3.4.1. Kétdimenziós rajzok
2D-s rajzokat a plot paranccsal készíthetünk. A rajzolás egyik alapmódja pedig:
plot(f(x), x=a..b, opciók); parancs, mikor először megadjuk a függvényt,
az értelmezési tartományt majd a kívánt opciókat vesszővel elválasztva. Az ábrát
az enter lenyomása után is módosíthatjuk még manuálisan.
- 15 -
> plot(sin(x), x=0..2*Pi, scaling=constrained, thickness=2,
color=blue);
3.4.2. Háromdimenziós grafika
3D rajzokat a plot3d nevű paranccsal készíthetünk. Megadásának egyik
alapmódja hasonlít a kétdimenzióshoz: plot3d(f(x,y), x=a..b, y=c..d,
opciók);. A másik gyakran használt módszer a paraméteres. A kirakott felület
egérrel forgatható, és sok minden utólag beállítható kézileg is.
> plot3d(x^2+y^2,x=-2..2,y=-2..2,transparency=0.3);
> plot3d([cos(u)*cos(v), sin(u)*cos(v), sin(v)], u=Pi/4..2*Pi, v=-Pi/2..Pi/2, scaling=constrained, shading=xy);
- 16 -
3.5. Csomagok – Pénzügyi csomag
A Maple alaptudásán kívüli függvények csomagokba vannak rendezve. Ezek a
csomagok with(csomagnév); paranccsal érhetőek el. Ha ;-al zárjuk le, akkor
kiírja az összes benne lévő függvény nevét, amelyek ugyanúgy használhatóak
mintha azok a Maple beépített tudásának a részét képeznék. Abban az esetben, ha
csak egy függvényre van szükségünk egy adott programcsomagból, akkor azt az
egész csomag beolvasása nélkül is elérhetjük a következő módon:
csomagnév[függvény](argumentum);.
Néhány gyakran használt csomag:
codegen: átjárás Maple-ből más nyelvek felé
linalg: lineáris algebra
combinat: kombinatorika
networks: gráfelmélet
plots: grafika
stats: statisztika
finance: gazdasági számítások
Az összes csomag elérhető a ?index,package; paranccsal.
Pénzügyi csomag áttekintése
A pénzügyi csomagban gazdasági számításokkal kapcsolatos parancsok vannak.
Mint minden egyes csomagban itt is egy hosszabb és egy rövidebb formában
érhetőek el a parancsok. Hosszabb változat: finance[függvény](argumentum),
rövidebb változat: függvény(argumentum). Magát a programcsomagot a
with(finance); paranccsal lehet beolvasni.
> with(finance);
Segít különböző pénzügyi számítások kivitelezésében. Például segítségével
pénzáramlásokat figyelhetünk meg, kiszámítható egy fix mennyiség jelen- és
jövőbeli értéke egy adott kamatos kamatra, megadható annuitások, növekvő
annuitások, örökjáradékok, növekvő örökjáradékok értéke, továbbá kötvények
hozamát és értékét számolhatjuk ki és készíthetünk amortizációs táblát is.
- 17 -
3.5.1. Megállapított kamat átalakítása tényleges kamatlábbá
finance[effectiverate]
Függvény parancsa és paraméterei: effectiverate(kamatláb, periódus). A
periódus az adott időszakon belüli kamatozások számát jelöli. Ezt végtelennek
adjuk meg, ha folyamatos a kamatozás.
Példa:
Egy adott hitel 12%-os havi kamatozású. A tényeges kamat így 1%, 12-szer
kamatozva.
Megoldás:
> (1+0.12/12)^12-1;
Ugyanezt az eredményt kapjuk a függvénnyel is:
> effectiverate(0.12, 12);
Folyamatos kamatozás esetén:
> effectiverate(0.12, infinity);
3.5.2. Jelenérték
finance[presentvalue]
Függvény parancsa és paraméterei: presentvalue(összeg, kamat,
időszakok száma). A jelenérték fogalom valószínűleg a legfontosabb elmélet a
pénzügyi csomagban. Lehetővé teszi a pénz időértékének megfelelő elszámolását.
Példa:
3 év múlva 100 $-ra lesz szükségem 12%-ot kapok évente a banktól. Mennyit kell
ma letétbe helyeznem, hogy a megadott idő elteltével a kívánt összeget
megkapjam.
Megoldás:
> 100/(1+0.12)^3;
Ugyanez a függvénnyel:
> presentvalue(100, .12, 3);
- 18 -
Tegyük fel, hogy havonta kamatozik:
> presentvalue(100, effectiverate(0.12, 12), 3);
A rövidebb időközönkénti kamatozás hatása jól látszik.
3.5.3. Jövőérték és jelenérték
finance[futurevalue] és finance[presentvalue]
Függvények parancsa és paraméterei: futurevalue(összeg, kamatláb,
időszakok száma), illetve presentvalue(összeg, kamatláb, időszakok
száma). A futurevalue() függvény az összeget a jövőbe, a presentvalue()
pedig a múltba viszi.
Példa:
Mekkora lesz 1000 $ három év múlva, ha évente fektetem be 6%-os kamattal?
Megoldás:
> futurevalue(1000, 0.06, 3);
3.5.4. Pénzáramlások jelenértéke
finance[cashflows]
Függvény parancsa és paraméterei: cashflows(pénzáramlás, kamat). Ez a
függvény egy pénzáramlás listájának a jelenértékét számolja ki. A forgalomnak az
első fizetési időszakkal kell kezdődnie.
Példa:
Mi a jelenértéke annak a pénzáramlásnak, melynél a következő év végén 1000 $-t,
majd a következő 2 év végén 2000 $-t és 500 $-t fogunk kapni, a kamatláb pedig
10%.
Megoldás:
> cashflows([1000, 2000, 500], 0.1);
Ha ezt a pénzáramlást egy 950 $-ral kezdő befektetéséből nyerjük, akkor a nettó
jelenérték:
> -950+cashflows([1000, 2000, 500], 0.1);
- 19 -
3.5.5. Hiteltörlesztési táblázat
finance[amortization]
Függvény parancsa és paraméterei: amortization(hitelösszeg,
kifizetések nagysága mérték, kamatláb, periódus). A hitelek
visszafizetésének legáltalánosabb módszere, mely általában egyenlő összegű, adott
kamatlábú periodikus befizetéseken keresztül törleszt. A periódus kifizetések
maximális számát jelöli, az alapértelmezett beállítása a végtelen. A parancs akkor
áll csak meg, ha az egyenleg eléri a nullát. Az eredmény két része: egy törlesztési
táblázat és a hitelköltség. A törlesztési táblázat listája öt elemből ál: a periódus
száma, fizetés összege, az adott időszakra vonatkozó kamat, a tőkét csökkentő
összeg (növeli, ha negatív), az új egyenleg. A hitelköltség pedig a harmadik oszlop
összege.
Példa:
Vegyünk egy 1000 $-os hitelt évi 10%-os kamattal, amit 500 $-os év végi
befizetéseken keresztül amortizálunk, amíg az szükséges.
Megoldás:
> amortization(1000.00, 500.00, 0.10);
Ebből láthatjuk, hogy három fizetés szükséges. Az utolsó 176 $. A hitelköltség
pedig, 176 $.
3.5.6. Örökjáradék –
finance[perpetuity]
Függvény parancsa és paraméterei: perpetuity(kifizetés összege, kamat).
Ez a függvény egy adott összeget fizető örökjáradéknak a jelenértékét számolja ki.
Örökjáradékra példa egy részvény, ami évről évre ugyanannyi osztalékot fizet.
Példa:
Egy ABC részvényért 1,5 $ osztalékot fizetnek évente. 11%-os diszkontráta esetén
mi a részvényenkénti jelenértéke ezeknek az osztalékoknak?
Megoldás:
> perpetuity( 1.5, 0.11 );
- 20 -
3.5.7. Egyenletesen növekvő örökjáradék
finance[growingperpetuity]
Függvény parancsa és paraméterei: growingperpetuity(összeg, kamatláb,
növekedési mérték). Annak az örökjáradéknak a jelenértékét számolja ki,
amelynek az első kifizetése a következő időszakban történik, és ez a kifizetései
összeg időszakonként egy adott százalékkal nő.
Példa:
XYZ cégnél lévő részvények után minden évben osztalékot fizetnek. A következő
osztalék 1,5 $ lesz. Az évi osztalékok várhatóan 2%-kal növekednek évente. Mi a
részvényenkénti osztalékok jelenértéke, ha a diszkont ráta 11%?
Megoldás:
> growingperpetuity( 1.5, 0.11, 0.02 );
3.5.8. Annuitás, járadék
finance[annuity]
Függvény parancsa és paraméterei: annuity(pénzáramlás, kamatláb,
periódus). A járadékfüggvény annak az annuitásnak a jelenértékét adja meg,
amelyben egy adott időszakban, periódusonként egy fix pénzáramlás megy végbe,
és az első fizetés az első periódusban esedékes.
Példa:
Mi a 15 évig évente 1000 $-t fizető, következő évben induló annuitás jelenértéke?
A kamatláb évi 10%.
Megoldás:
> annuity(1000, .10, 15);
Példa:
Egy 1000 $ értékű, félévente kamatozó hitelt 2 éven keresztül, évi 10%
kamatlábbal, havi befizetéssel kell törleszteni. Ebben az esetben 2 *12 törlesztés
van, a féléves kamatláb pedig 5% (10% / 2).
Megoldás:
> periodusok:=2*12;
- 21 -
Keressük meg azt a tényleges havi kamatlábat, amivel megkapjuk az 5%-os értéket.
> tenyleges_kamatlab:=fsolve(effectiverate(r,6)=0.05,r, 0..0.5)/6;
Ellenőrzés: 1 $ jövőbeni értékének 6 hónap után 1,05-nek kell lennie.
> futurevalue(1, tenyleges_kamatlab, 6);
1 $ járadék értéke 2 éven keresztül, havonta fizetve, a kiszámított kamatlábbal
tehát:
> A:=annuity(1, tenyleges_kamatlab, periodusok);
Így szükséges havi, és az összes fizetés összege:
> P:=1000/A; Total:=P*periodusok;
3.5.9. Egyenletesen növekvő annuitás
finance[growingannuity]
Függvény parancsa és paraméterei: growingannuity(összeg, kamatláb,
növekedési mérték, fizetések száma). Hasonló, mint az annuitás, csak itt a
kifizetések összege egy adott százalékkal növekszik időszakonként.
Példa:
Van egy befektetés, ami 5 évig fizet évente. Az első kifizetés, 100 $ a következő
évben lesz, és arra számítunk, hogy ez évente 3%-kal növekedni fog. A kamatláb
11%. Mi a befektetés jelenértéke?
Megoldás:
Ezt két féle képen is ki lehet számolni. Az egyik a kifizetések listájával
> cf:=[100, 100*1.03, 100*1.03^2, 100*1.03^3, 100*1.03^4];
> i:='i': cf:=[seq(futurevalue(100,0.03,i), i=0..4)];
> cashflows(cf, 0.11);
A másik megoldás, az adott függvénnyel:
> growingannuity(100, .11, .03, 5);
- 22 -
3.5.10. Kötvények jelenértéke
finance[levelcoupon]
Függvény parancsa és paraméterei: levelcoupon(névérték, kamatláb,
szelvényráta, időszakok száma a lejáratig). Ez a függvény kiszámolja
egy kötvény jelenértékét.
Példa:
Egy 1000 $ névértékű kötvény éves szelvényrátája 12%. A kupon évente kétszer
fizet. A lejárat 3 év. Mi a kötvénynek a jelenértéke, ha a kamatláb jelenleg 10%, ami
félévente kamatozik?
Megoldás:
6 időszak van a lejáratig.
> levelcoupon(1000, 0.10/2, 0.12/2, 6);
Ha a kötvény kamatlába annyi, mint a szelvényrátája, akkor a kötvényt névértéken
számítjuk.
> levelcoupon(1000, 0.12/2, 0.12/2, 6);
Most emeljük 14%-ra kamatlábat:
> levelcoupon(1000, 0.14/2, 0.12/2, 6);
Ezzel azt láthattuk, hogy növekvő kamatláb mellett a kötvény névértéke csökken.
3.5.11. Lejáratig számított hozam egy kötvénynél
finance[yieldtomaturity]
Függvény parancsa és paraméterei: yieldtomaturity(kötvény
jelenértéke, névértéke, szelvényráta, időszakok száma lejáratig).
Ez a függvény megadja egy kötvény kamatlábát, ha ismert a kötvény jelenértéke,
névértéke, szelvényrátája és a lejáratig az időszakok száma. Ez a függvény
szorosan kapcsolódik a levelcoupon() függvényhez.
Példa:
Van egy 1000 $ névértékű kötvény évi 12%-os kamatot fizet. Kupont évente
kétszer fizet. A lejárat 3 év múlva esedékes. Mi a lejáratig számított hozama, ha
évente kétszer kamatozik és a jelenértéke 1050,75 $?
- 23 -
Megoldás:
6 időszak van a lejáratig
> yieldtomaturity( 1050.75, 1000, 0.12/2, 6 );
A hozam félévente 5%, így:
> %*2;
10% évente. Ha a jelenérték egyenlő a névértékkel:
> yieldtomaturity(1000, 1000, 0.12/2, 6) * 2;
Vagyis a hozam megegyezik a szelvényrátával, ha a kötvényt a névértékén
értékeljük. (A kétszeres szorzóval a féléves kamatot évessé alakítjuk.)
Ha a jelenérték a névérték alá csökken:
> yieldtomaturity( 952.33, 1000, 0.12/2, 6) * 2;
Ez a példa azt mutatja meg, hogy a hozam nő, ha a kötvény értéke csökken.
- 24 -
4. Más környezetek
A Maple programon kívül még nagyon sok matematikai szoftver létezik. Azonban
kevés az olyan rendszer, amelyben a numerikus rész és a grafikus rész is
ugyanolyan mértékben szerepelne. Néhány matematikai szoftver:
Szoftver Ingyenes? hivatalos oldal
Matlab nem http://www.mathworks.com/products/matlab/
Octave igen http://www.gnu.org/software/octave/
FreeMat igen http://freemat.sourceforge.net/
Scilab igen http://www.scilab.org/
Weka igen http://www.cs.waikato.ac.nz/ml/weka/
R programnyelv igen http://www.r-project.org/
Mathematica nem http://www.wolfram.com/products/mathematica/
GAUSS nem http://www.aptech.com/
MS Office Excel nem http://office.microsoft.com
4.1. Microsoft Office Excel
A Microsoft Excel táblázatkezelő igen közismert és közkedvelt program. Jelenleg a
legújabb változata a 2007-es, ami a Microsoft Office 2007 programcsomag tagja.
Az Excel létrehoz egy nagyméretű táblázatot, munkalapot, amely az adatok
tárolására, és a velük való műveletekre és analízisek elvégzésére szolgáló
dokumentum. Az adatok sorok és oszlopok által meghatározott, sorszámozott
cellákba kerülnek. A cellák tartalmazhatnak hivatkozásokat más cellák tartalmára,
ezért 1-1 adat módosulásakor nem kell újra mindent kiszámolni. Készíthetünk
velük egyszerű függvényeket, diagramokat, azonban bonyolultabb grafikai
megjelenítésre nem a legalkalmasabb. Ezen kívül még az Excelnek sok
hiányossága, hibája is van. Hiányzó adatok helytelen kezelése, hibás értékek
visszaadása a helytelen kerekítés miatt, a nagy számok nem megfelelő kezelése,
különböző függvények fordításából eredő hibák. Az Excelt számos ágazatokban
használják: matematikai és pénzügyi számítások, szimulációs számítások,
statisztikák, adatelemzések, optimalizálás. Az összes általa használt függvény
megtekinthető a Microsoft Office hivatalos oldalán.
- 25 -
Pénzügyi függvények használatakor érdemes a következőket figyelembe venni:
Ha egy adott pénzügyi függvény nem áll rendelkezésre és a #NÉV? hibát adja
eredményül, akkor telepítsük és töltsük be az Analysis ToolPak bővítményt.
Az általunk kifizetésre kerülő összegek (például a bankbetétre befizetett pénz)
negatív értékkel szerepelnek; a hozzánk befolyó összegeket (például a kapott
osztalék) pozitív számok jelzik.
A dátumok sorszámként vannak tárolva, így műveletek hajthatók végre rajtuk.
Alapértelmezés szerint 1900. január 1. az 1-es sorszám, míg például a 2008.
január 1. dátumhoz 39448 tartozik, mivel 39448 nap a két dátum között. Ezért
a dátumokat a DÁTUM függvénnyel érdemes bevinni, illetve más képletek vagy
függvények eredményeként használni. Szövegként történő beírásuk hibát
okozhat.
Az időszakonkénti kamatláb (ráta) és a periódusok száma (időszakok_száma)
meghatározásakor ügyelni kell arra, hogy a periódusok milyen hosszúságúak.
Ha például egy négy éves, 10%-os éves kamatrátájú kölcsön havi törlesztő
részletét szeretnénk kiszámolni, a ráta: 10%/12, az időszakok_száma: 4*12. Ha
ugyanezt a kölcsönt éves részletekben törlesztjük, a ráta 10%, az
időszakok_száma 4 lesz.
Néhány pénzügyi függvény:
4.1.1. Jelenérték – MÉ
Megadja, hogy egyes jövőbeni törlesztések összesítve mennyit érnek ma. Szintaxis:
MÉ(ráta;időszakok_száma;részlet;jövőbeli_érték;típus). Angol megfelelője: PV( ).
Argumentumok:
ráta: kamatláb
időszakok_száma: hány kifizetés történik
részlet: fizetési időszakokban esedékes kifizetés, ez az összeg állandó.
jövőbeli_érték: az utolsó részlet kifizetése után elérni kívánt összeg. Ha
elhagyjuk, a program 0-nak tekinti, ebben az esetben a részletet mindenképp
meg kell adni.
típus: a részletek fizetés módját adja meg. Ha értéke 0 vagy hiányzik, akkor az
időszak végén, ha 1 akkor az elején kell fizetni
- 26 -
4.1.2. Nettó jelenérték – NMÉ
Egy befektetéshez kapcsolódó pénzáramlás nettó jelenértékét adja meg, vagyis a
jövőbeni kifizetések (negatív értékek) és bevételek (pozitív értékek) összességét.
Szintaxis: NMÉ(ráta;érték1;érték2;...). Angol megfelelője: NPV( ).
Argumentumok:
érték1;érték2;… : legalább 1, legfeljebb 29 értéket tartalmazó pénzáramlás.
Ezek egyenlő időközönként a megfelelő időrendben felsorolva, és az
időszakok végén következnek be.
4.1.3. Jövőérték – JBÉ
Egy befektetés jövőbeli értéke, periodikus, állandó összegű kifizetések és állandó
kamatláb mellett. Szintaxis: JBÉ(ráta;időszakok_száma;részlet;mai_érték;típus).
Angol megfelelője: FV( ).
Argumentumok:
részlet: általában csak a tőke- és kamattörlesztés összegét tartalmazza, nem
tartalmaz egyéb költségeket és adókat
mai_érték: a jövőbeli kifizetések jelenértéke, vagyis az a jelenbéli egyösszegű
kifizetés, ez egyenértékű a jövőbeli kifizetések összegével. Az értéke 0 az
alapértelmezésben.
4.1.4. Törlesztési időszakok – PER.SZÁM
Törlesztési időszakok szám állandó kamatláb és adott nagyságú törlesztő részletek
mellett. Szintaxis: PER.SZÁM(ráta;részlet;mai_érték;jövőbeli_érték;típus). Angol
megfelelője: NPER( ).
Argumentumok:
jövőbeli_érték: az utolsó részlet kifizetése után elérni kívánt összeg. Ha a
elhagyjuk, a program 0-nak tekinti. Például egy kölcsön jövőbeli értéke 0.
4.1.5. Kamatláb – RÁTA
Egy törlesztési időszakban az egy időszakra eső kamatláb nagysága. Szintaxis:
RÁTA(időszakok_száma;részlet;mai_érték;jövőbeli_érték;típus;becslés). Mely angol
megfelelője: RATE ( ). Argumentumok:
becslés: a kamatláb nagyságának becslése. Alapértelmezésben ez 10%.
- 27 -
4.1.6. Tényleges és névleges kamatláb – EFFECT és NOMINAL
Tényleges és névleges kamatláb szoros kapcsolatban vannak. Egymás segítségével
számítjuk ki őket. Szintaxisok: EFFECT(névleges_kamatláb;időszak_per_év), illetve
NOMINAL(tényleges_kamatláb;időszak_per_év). Nincs magyar megfelelőjük.
Argumentumok:
időszak_per_év: az évenkénti tőkésítési időszakok száma. Ennél az
argumentumnál a függvények az egészérték részt veszi figyelembe.
4.1.7. Belső megtérülési ráta – BMR
A megadott pénzáramlás-számsor (cash flow) belső megtérülési rátáját számítja ki.
A pénzáramlás értékeinek nem kell egyenlőknek lenniük, azonban szabályos
időközönként kell megjelenniük. A belső megtérülési ráta egy befektetés
eredményeképp előálló, periodikusan jelentkező bevételeken keresztül elért
kamatláb. Szintaxis: BMR(értékek;becslés). Angol megfelelője: IRR( )
Argumentumok:
értékek: a pénzáramlás értékeit tartalmazó cellákra való hivatkozás.
Legalább egy pozitív és egy negatív számot kell tartalmaznia. A függvény
figyelembe veszi a számok sorrendjét. Ezért a kiadások és a bevételek
sorrendjének megváltoztatása megváltoztathatja a ráta értékét is.
becslés: olyan szám, amely várhatóan közel esik az eredményhez. A legtöbb
esetben nem szükséges megadni. Alapértelmezésben ez az érték 10%.
4.1.8. Törlesztési összeg – RÉSZLET, PRÉSZLET,RRÉSZLET
Különböző törlesztő részletek kiszámítására alkalmas függvények. A törlesztési
időszakra vonatkozó adott kamatláb mellett állandó nagyságú törlesztő összegre
a szintaxis: RÉSZLET(ráta;időszakok_száma;mai_érték;jövőbeli_érték;típus). Egy
adott időszakra szabályos időközönként, állandó törlesztésen és kamatrátán
alapuló tőketörlesztés és kamattörlesztés részének nagysága egy. Szintaxisok: a
PRÉSZLET(ráta;időszak;időszakok_száma;mai_érték;jövőbeli_érték;típus), illetve a
RRÉSZLET(ráta;időszak;időszakok_száma;mai_érték;jövőbeli_érték;típus).
Angol megfelelője ennek a három függvénynek: PMT( ), PPMT( ) és IPMT ( ).
Argumentumok:
időszak: annak a periódusnak a száma, amelyre számolni szeretnénk.
- 28 -
4.1.9. Kötvények hozama – YIELD, YIELDDISC, YIELDMAT
Periodikusan kamatozó értékpapír hozamára a szintaxis: YIELD(kiegyenlítés;
lejárat;ráta;ár;visszaváltás;gyakoriság;alap). Leszámítolt értékpapír és a lejáratkor
kamatozó értékpapír éves hozamát a következő két szintaxis adja eredményül:
YIELDDISC(kiegyenlítés;lejárat;ár;visszaváltás;alap) és YIELDMAT(kiegyenlítés;
lejárat;kibocsátás;ráta;ár;alap). Nincs magyar megfelelőjük.
Argumentumok:
kiegyenlítés: az a kibocsátás utáni dátum, amikor az értékpapírt a vevő
megvásárolta.
lejárat: az értékpapír lejárati napjának dátuma.
kibocsátás: az értékpapír kibocsátási dátuma.
ráta: az értékpapír éves szelvénykamatlába.
ár: az értékpapír ára 100 Ft-os névértékre számolva.
visszaváltás: az értékpapír visszaváltási ára 100 Ft-os névértékre számolva
gyakoriság: a kamatszelvény-fizetések száma egy évben. Értéke évenkénti
fizetésnél = 1; félévenkénti fizetésnél = 2; negyedévenkénti fizetésnél = 4.
alap: a napok kiszámítására használt módszer kódszáma. Ha értéke 0 vagy
hiányzik akkor a napok számításának alapja Amerikai (NASD) 30/360, ha 1
akkor tényleges/tényleges, ha 2 akkor tényleges/360, ha 3 akkor
tényleges/365, ha 4 akkor Európai 30/360.
4.2. R programnyelv
Az R egy statisztikai programozási nyelv és szoftver környezet is egyben. Ingyenes
és nyílt forráskódú, része a GNU (General Public License) projektnek. Mindenki
számára elérhető a www.r-project.org honlapon. Az eredeti változatát a University
of Auckland új-zélandi egyetemen Ross Ihaka és Robert Gentleman készítette
1997-ben az S programnyelv mintájára. Programozási elve az S-hez képest
modernebb és felhasználói szinten kényelmesebb felületet biztosít. Megjelenése
óta széles körben elterjedt. Azóta folyamatosan javítják és fejlesztik. Körübelül
félévente újabb verzió jelenik meg. Jelenleg az alapját az R Development Core Team
fejleszti. Felhasználói között óriáscégek is megtalálhatóak, mint a Google, a Bank of
America vagy a Shell.
- 29 -
Alapjában egy Unix/Linux rendszer, azonban Windows és MacOS alatt is elérhető.
Kétféle módon is futtatható: command-line üzemmódban és GUI kapcsolaton
keresztül. Ez utóbbi igencsak megkönnyíti a fejlesztői munkát. Lényegében egy
mátrix kalkulációs program. Ilyen értelemben hasonlít az Octave-hoz és a Matlab-
hoz. Nagyszámú statisztikai eljárás tartozik hozzá, ezért alapvetően statisztikusok
használják. Emellett kimagasló grafikai lehetőségekkel rendelkezik és az
interneten található közel 1600 kiegészítéssel akár pénzügyi elemzéseket is
végezhetünk. Vannak még számos egyéb ismert numerikus és statisztikai program
interpretációjára kiegészítő csomagok. Mint például: NAG (Numerical Algorithms
Group), WEKA, Microsoft Excel. Az R objektum orientált nyelv. Ez nagyban
egyszerűsíti a nyelvi struktúrát, mint például a következő parancsoknál:
plot: az argumentumától függően készíti el a rajzot.
summary: az adatok tipikus formája a lista. Így a statisztikai eljárások
eredményeit általában egy nagyon összetett listában kapjuk meg. Ez
tartalmazza a földolgozott adatokat, eredményeket és diagnosztikai
statisztikákat. Ez a parancs ebből egy szűkebb összegzést, vagyis egy
áttekinthető kivonatot készít.
predict: a modellt új adatokra alkalmazza, például regresszió vagy idősor
elemzés esetén.
Fentebb már meg lett említve, hogy az R nyílt forráskódú, így kiegészítést bárki
írhat hozzá, ezt a rendszer külön eszközei. Az utóbbi időkben az újabb statisztikai
eljárás publikálásakor, a szerzők általában elkészítik és elérhetővé teszik a
módszer R-beli interpretációját is. Így a kiegészítő csomagok minőségben és
összetettségben jelentősen eltérhetnek. Léteznek olyan csoportok, melyek egy-egy
alkalmazási területet fognak össze, a kiegészítéseket összegyűjtik, rendszerezik és
fejlesztik, majd internetes tárolókra felteszik, megosztva az R-közösségnek. Egy
ilyen „tároló” a CRAN (Comprehensive R Archive Network). Itt elérhető a legutóbbi
stabil és az összes korábbi R verzió, többféle telepíthető formában, dokumentációk
és csomagok. A pénzügyi területeket legátfogóbban az R-metrics csoport
foglalkozik. Néhány általuk fejlesztett csomag: fArma, fAssets, fBasics, fOptions,
fPortfolio, fMultivar fRegression. Rajtuk kívül sokan fejlesztenek kisebb nagyobb
eszközöket. Példa erre a financial csomag, melyben a következő parancsok is
elérhetőek: cf – pénzáramlás modell, ireff/irnom – tényleges/névleges kamatláb.
- 30 -
5. Feladatok
5.1. Feladatok „papíron”
5.1.1. Feladat1
Ön kétfajta befektetést tart. Az állampapírok darabszáma 1000, árfolyamuk 12000
Ft/db, elvárt hozamuk 10%. A részvények darabszáma 5000 árfolyamuk 2000
Ft/db, a hozamuk bizonytalan, amit az alábbi táblázat szemléltet:
Esemény Valószínűség Árfolyam 1 év múlva Szuper 50% 3000 Ft Hiper 30% 5000 Ft Peres 20% 500 Ft
a) Mekkora a részvények várható hozama?
b) Mekkora a portfólió várható hozama?
Megoldás:
a)
𝑃0 = 2000
𝑤𝑆𝑧 = 0,5 𝑃𝑆𝑧 = 3000
𝑤𝐻 = 0,3 𝑃𝐻 = 5000
𝑤𝑃 = 0,2 𝑃𝑃 = 500
𝑃1 = 𝑤𝑆𝑧 ∙ 𝑃𝑆𝑧 + 𝑤𝐻 ∙ 𝑃𝐻 + 𝑤𝑃 ∙ 𝑃𝑃
𝑃1 = 0,5 ∙ 3000 + 0,3 ∙ 5000 + 0,2 ∙ 500 = 3100
𝑟𝑟é𝑠𝑧𝑣é𝑛𝑦 =𝑃1
𝑃0− 1 =
3100
2000− 1 = 0,55 = 55%
A részvények várható hozama: 55%.
b)
𝑟á𝑙𝑙𝑎𝑚𝑝𝑎𝑝 í𝑟 = 10%
𝑃á𝑙𝑙𝑎𝑚𝑝𝑎𝑝 í𝑟 = 12000 𝑑𝑏á𝑙𝑙𝑎𝑚𝑝𝑎𝑝 í𝑟 = 1000
𝑃𝑟é𝑠𝑧𝑣é𝑛𝑦 = 2000 𝑑𝑏𝑟é𝑠𝑧𝑣é𝑛𝑦 = 5000
- 31 -
𝑤á𝑙𝑙𝑎𝑚𝑝𝑎𝑝 í𝑟 =𝑃á𝑙𝑙𝑎𝑚𝑝𝑎𝑝 í𝑟 ∙ 𝑑𝑏á𝑙𝑙𝑎𝑚𝑝𝑎𝑝 í𝑟
𝑃á𝑙𝑙𝑎𝑚𝑝𝑎𝑝 í𝑟 ∙ 𝑑𝑏á𝑙𝑙𝑎𝑚𝑝𝑎𝑝 í𝑟 + 𝑃𝑟é𝑠𝑧𝑣é𝑛𝑦 ∙ 𝑑𝑏𝑟é𝑠𝑧𝑣é𝑛𝑦
𝑤á𝑙𝑙𝑎𝑚𝑝𝑎𝑝 í𝑟 =12000 ∙ 1000
12000 ∙ 1000 + 2000 ∙ 5000=
6
11
𝑤𝑟é𝑠𝑧𝑣é𝑛𝑦 = 1 − 𝑤á𝑙𝑙𝑎𝑚𝑝𝑎𝑝 í𝑟 =5
11
𝑟𝑝𝑜𝑟𝑡𝑓 ó𝑙𝑖ó = 𝑤á𝑙𝑙𝑎𝑚𝑝𝑎𝑝 í𝑟 ∙ 𝑟á𝑙𝑙𝑎𝑚𝑝𝑎𝑝 í𝑟 + 𝑤𝑟é𝑠𝑧𝑣é𝑛𝑦 ∙ 𝑟𝑟é𝑠𝑧𝑣é𝑛𝑦
𝑟𝑝𝑜𝑟𝑡𝑓 ó𝑙𝑖ó =6
11∙ 10% +
5
11∙ 55% = 30,5%
A portfólió várható hozama: 30,5%
5.1.2. Feladat2
A „Hozam” és „Kockázat” részvények, valamint a „Market” piaci portfólió
hozamainak variancia-kovariancia mátrixa a következő:
Hozam Kockázat Market Hozam 144 88 77
Kockázat 99 48 Market 64
A piaci portfólió várható hozama 12%.
Mekkora annak a portfóliónak a kockázata, mely 70%-ban a „Hozam”, 30%-ban a
„Kockázat” részvényből áll?
Megoldás:
𝜎𝐻2=144 𝑤𝐻 = 0,7
𝜎𝐾2=99 𝑤𝐾 = 0,3
𝑐𝑜𝑣 𝐻, 𝐾 = 88
𝜎𝑝2 = 𝑤𝐻
2 ∙ 𝜎𝐻2 + 𝑤𝐾
2 ∙ 𝜎𝐾2 + 2 ∙ 𝑤𝐻 ∙ 𝑤𝐾 ∙ 𝑐𝑜𝑣 𝐻, 𝐾 = 116,43
𝜎𝑝2 = 0,72 ∙ 144 + 0,32 ∙ 99 + 2 ∙ 0,7 ∙ 0,3 ∙ 88 = 116,43
𝜎𝑝 = 10,79%
A portfólió kockázata: 10,79%.
- 32 -
5.1.3. Feladat3
Egy portfólióban 50 A részvény (árfolyama 20 Ft, jövő évi várható osztalék 2 Ft, a
várható osztalék növekedési üteme évi 5%) és 40 B részvény (árfolyama 25 Ft,
jövő évi várható osztalék 5 Ft, a várható osztalék növekedési üteme évi 3%) van. A
piaci portfólió várható hozama évi 15%, a kockázatmentes kamatláb évi 10%.
a) Mekkora a portfólió elvárt hozama?
b) Mekkora a portfólió bétája?
Megoldás:
a)
𝑑𝑏𝐴 = 50 𝑃𝐴 = 20 𝐷𝐼𝑉𝐴,1 = 2 𝑔𝐴 = 5%
𝑑𝑏𝐵 = 40 𝑃𝐵 = 25 𝐷𝐼𝑉𝐵,1 = 5 𝑔𝐵 = 3%
𝑟𝐴 =𝐷𝐼𝑉𝐴,1
𝑃𝐴+ 𝑔𝐴 =
2
20+ 5% = 15%
𝑟𝐵 = 23%
𝑤𝐴 =𝑃𝐴 ∙ 𝑑𝑏𝐴
𝑃𝐴 ∙ 𝑑𝑏𝐴 + 𝑃𝐵 ∙ 𝑑𝑏𝐵=
20 ∙ 50
20 ∙ 50 + 25 ∙ 40=
1
2
𝑤𝐵 = 1 − 𝑤𝐴 =1
2
𝑟𝑝𝑜𝑟𝑡𝑓 ó𝑙𝑖ó = 𝑤𝐴 ∙ 𝑟𝐴 + 𝑤𝐵 ∙ 𝑟𝐵 =1
2∙ 15% +
1
2∙ 23% = 19%
A portfólió várható hozama: 19%.
b)
𝑟𝐹 = 10%
𝑟𝑀 = 15%
𝑟𝐴 = 𝑟𝐹 + 𝛽𝐴 ∙ (𝑟𝑀 − 𝑟𝐹)
15% = 10% + 𝛽𝐴 ∙ 15% − 10% ⟹ 𝛽𝐴 = 1
23% = 10% + 𝛽𝐵 ∙ 15% − 10% ⟹ 𝛽𝐵 = 2,6
𝛽𝑝𝑜𝑟𝑡𝑓 ó𝑙𝑖ó = 𝑤𝐴 ∙ 𝛽𝐴 + 𝑤𝐵 ∙ 𝛽𝐵 =1
2∙ 1 +
1
2∙ 2,6 = 1,8
A portfólió bétája: 1,8
- 33 -
5.2. Megoldások Maple-ben
Mint ahogy a 3. fejezetben láttuk, a Maple-nek vannak beépített pénzügyi
függvényei. Azonban vannak olyan esetek, mikor egy adott képletet szeretnénk
használni és nem találjuk az előre magadottak között. Ilyen esetekben, mi magunk
is definiálhatunk parancsokat, melyeket az adott worksheet-en használhatunk.
Mielőtt bevinnénk a használni kívánt parancsokat, érdemes a memóriából törölni
az addigi adatokat. Majd betöltjük a lineáris algebrai csomagot, mellyel
használhatunk mátrixokat és vektorokat a számítások megkönnyítése végett.
> restart:
> with(linalg):
A feladatokban használt előre definiált parancsok:
Árfolyam az első év után:
> P1 := (v,p) -> multiply(transpose(p),v):
Részvény várható hozama, ha ismert a kezdeti és az első év utáni árfolyam:
> r_reszveny := (P0,P1) -> (P1/P0)-1:
Súlyok kiszámítása, ha ismertek az árfolyamok és a darabszámok n eszköz esetén:
> sulyok := (p,db,n) -> vector([seq(evalf((p[i]*db[i])/(multiply(
transpose(p),db))), i=1..n )]):
Portfólió várható hozama:
> varhato_hozam := (r,w) -> multiply(transpose(r),w):
Portfólió szórásnégyzete:
> szorasnegyzet := (w,C) -> simplify(multiply(multiply(C,w),w)):
Portfólió kockázat:
> kockazat:= (w,C) -> sqrt(szorasnegyzet(w,C)):
Vektorban megadott n darab részvény várható hozama, ha ismert az árfolyamuk,
osztalékuk és az osztalékuk várható növekedése:
> reszveny_hozam := (div1,p,g,n) -> vector([seq(evalf((div1[i]/p[i])+
g[i]), i=1..n )]):
Béta kiszámolása, ha ismert a várható hozam, a kockázatmentes és a piaci hozam:
> B_reszvenyek:= (r,r_f,r_m,n) -> vector([seq( evalf((r[i]-r_f)/(r_m-
r_f)), i=1..n )]):
A portfólió bétája:
> B_p := (B_reszvenyek,w) -> multiply(transpose(B_reszvenyek),w):
- 34 -
5.2.1. Feladat1
a)
Beolvassuk a megadott adatokat: a kezdeti árfolyamot; a valószínűségeket, és a
hozzájuk tartozó árfolyamokat vektorként.
> P0:=2000; v:=vector(3,[0.5,0.3,0.2]); p:=vector(3,[3000,5000,500]);
Ezek után már egyszerűen kiszámítható a részvények várható hozama:
> A_reszvenyek_varhato_hozama := r_reszveny(P0,P1(v,p));
b)
Beolvassuk a további adatokat: a kezdeti árfolyamokat, a darabszámokat és az a)
feladatrészben megkapott eredményt felhasználva a várható hozamokat
vektorként:
> p:=vector([12000,2000]); db:=vector([1000,5000]);
> r:=([0.1,A_reszvenyek_varhato_hozama]);
Az állampapírok és a részvények aránya:
> w:=sulyok(p,db,2);
A portfólió várható hozama az előbb kiszámolt aránnyal:
> A_portfolio_varhato_hozama:=varhato_hozam(r,w);
5.2.2. Feladat2
A variancia-kovariancia mátrix és az arányok beolvasása:
> C:=Matrix([[144,88,77], [88,99,48], [77,48,64]]);
- 35 -
> w:=([0.7,0.3,0]);
A feladat megoldása:
> A_portfolio_kockazata:=kockazat(w,C);
5.2.3. Feladat3
a)
Beolvassuk a két részvény adatait:
> db := vector([50,40]); p := vector([20,25]); div1 := vector([2,5]);
g := vector([0.05,0.03]);
Meghatározzuk a két részvény várható hozamát és arányát vektorokként:
> r:=reszveny_hozam(div1,p,g,2); w:=sulyok(p,db,2);
Ezeket felhasználva a portfólió várható hozama:
> A_portfolio_elvart_hozama:=varhato_hozam(r,w);
b)
Megadjuk a kockázatmentes kamatlábat és a piaci portfólió várható értékét
> r_f:=0.1; r_m:=0.15;
Meghatározzuk a részvények bétájából álló vektort:
> B_reszvenyek:=B_reszvenyek(r,r_f,r_m,2);
Ezzel és a súlyokkal meghatározhatjuk az egész portfólió bétáját:
> A_portfolio_betaja:=B_p(B_reszvenyek,w);
- 36 -
5.3. Feladatok továbbfejlesztése Maple-ben
A következő részben az előbbi példákból kiindulva néhány saját kiegészítést láthatunk,
és azt, hogy ezeket a Maple hogyan képes megoldani.
5.3.1. Feladat1
Függvénnyel szeretnénk szemléltetni az állampapírok és a részvények értékének
alakulását 10 éven keresztül, egyszerű és kamatos kamatozás esetén.
A rajzoláshoz beolvassuk a grafikai csomagot:
> with(plots):
Egyszerű kamatozás:
Definiáljuk a kamatozást az idő függvényeként, a feladatban megadott adatokat.
> allampapir_ertek_1:= n -> (p[1]*db[1])*(1+r[1]*n);
> reszveny_ertek_1:= n -> (p[2]*db[2])*(1+r[2]*n);
A rajzok elkészítésénél érdemes az évenkénti kamatozás miatt a függvények
kirajzolása mellett, az éves értékeket külön, egy lista segítségével ábrázolni.
> allampapir_1:=plot(allampapir_ertek_1(x),x=0..10,color=blue);
> allampapir_pont_lista_1 := [[ n, allampapir_ertek_1(n)] $n=0..10];
> allampapir_pont_1 := plot(allampapir_pont_lista_1, x=0..10, style=
point, symbol=circle,color=blue);
> reszveny_1:=plot(reszveny_ertek_1(x),x=0..10,color=green);
> reszveny_pont_lista_1 := [[ n, reszveny_ertek_1(n)] $n=0..10];
> reszveny_pont_1 := plot(reszveny_pont_lista_1, x=0..10, style=point,
symbol=circle,color=green);
- 37 -
> display([allampapir_1,allampapir_pont_1,reszveny_1,reszveny_pont_1]);
Kamatos kamatozás esetén is ugyan ezt az eljárást végezzük el:
> allampapir_ertek_2:= n -> (p[1]*db[1])*(1+r[1])^n;
> reszveny_ertek_2:= n -> (p[2]*db[2])*(1+r[2])^n;
> allampapir_2:=plot(allampapir_ertek_2(x),x=0..10,color=blue);
> allampapir_pont_lista_2 := [[ n, allampapir_ertek_2(n)] $n=0..10];
> allampapir_pont_2 := plot(allampapir_pont_lista_2, x=0..10,
style=point,symbol=circle,color=blue);
> reszveny_2:=plot(reszveny_ertek_2(x),x=0..10,color=green);
- 38 -
> reszveny_pont_lista_2 := [[ n, reszveny_ertek_2(n)] $n=0..10];
> reszveny_pont_2 := plot(reszveny_pont_lista_2, x=0..10, style=point,
symbol=circle,color=green);
> display([allampapir_2,allampapir_pont_2,reszveny_2,reszveny_pont_2]);
5.3.2. Feladat2
Szeretnénk ábrázolni a portfólió kockázatát, a kétfajta részvény arányának
függvényében, két és három dimenzióban is. Legyen az új súlyvektorban a „Hozam”
és „Kockázat” részvény aránya x és 1-x, 0 ≤ x ≤ 1.
> W:=([x,1-x,0]);
Az kockázat függvény:
> ((W[1])^2)*C[1,1] + ((W[2])^2)*C[2,2] + 2*W[1]*W[2]*C[1,2];
Ennek segítségével elkészítjük a kétdimenziós és a háromdimenziós ábrát:
- 39 -
> plot((W[1]^2)*C[1,1]+(W[2]^2)*C[2,2]+2*W[1]*W[2]*C[1,2], x=0.0..1.0);
> plot3d([x, 1-x, (W[1]^2)*C[1,1]+(W[2]^2)*C[2,2]+2*W[1]*W[2]*C[1,2]],
x=0..1,y=0..1,axes=normal,shading=xy,shading=zgreyscale,thickness=2,
labels=[Hozam, Kockazat, kockazat]);
Most tegyük fel, hogy a kovariancia-variancia mátrix megállapításakor hiba lépett
fel. Mivel ennek a mátrixnak pozitív definitnek kell lennie, szimmetrikusnak kell
lennie, és az elemei nem lehetnek negatívak. Ezért a hibamátrixnak is
- 40 -
szimmetrikusnak kell lennie, illetve az elemei egy minimum és maximum hiba
között mozoghatnak. Minimum és maximum hiba:
> min_h:=-1*(rtable_scanblock( C, [rtable_dims(C)],'Minimum'));
> max_h:=rtable_scanblock( C, [rtable_dims(C)],'Maximum');
A hibamátrixot egy véletlen mátrix segítségével állapítjuk meg:
> with(LinearAlgebra): H := RandomMatrix(3, 3, generator=min_h..max_h,
outputoptions=[shape=symmetric]);
Az új variancia-kovariancia mátrix:
> C2:=C+H;
A portfólió mostani kockázata és a hiba mértéke:
> A_portfolio_kockazata2:=kockazat(w,C2);
> hiba:=abs(A_portfolio_kockazata-A_portfolio_kockazata2);
5.4. Feladatok megoldása Excelben
5.4.1. Feladat1
- 41 -
A cellákban használt számítások:
cella képlet
D2 =($B2*$C2)/(SZORZATÖSSZEG($B$2:$B$3;$C$2:$C$3))
D3 =($B3*$C3)/(SZORZATÖSSZEG($B$2:$B$3;$C$2:$C$3))
G6 =SZORZATÖSSZEG($B$7:$B$9;$C$7:$C$9)/SZUM($B$7:$B$9)
G8 =(G6/C3)-1
G9 =$D$2*$E$2+$D$3*$G$8
5.4.2. Feladat2
A cellákban használt számítások:
cella képlet
D6 =GYÖK((F2^2)*B2+(F3^2)*C3+2*F2*F3*C2)
5.4.3. Feladat3
A cellákban használt számítások:
cella képlet
B6 =(B4/B3)+B5
C6 =(C4/C3)+C5
B7 =(B2*B3)/SZORZATÖSSZEG($B$2:$C$2;$B$3:$C$3)
C7 =(C2*C3)/SZORZATÖSSZEG($B$2:$C$2;$B$3:$C$3)
G4 =$B$7*$B$6+$C$7*$C$6
G5 =(B6-$G$2)/($G$1-$G$2)
G6 =(C6-$G$2)/($G$1-$G$2)
G7 =B7*G5+C7*G6
- 42 -
5.5. Megoldások R-ben
5.5.1. Feladat1
> vg <- c(.5,.3,.2)
> ar <- c(3000,5000,500)
> db <- c(1000,5000)
> p0 <- c(12000, 2000)
> db*p0/sum(db*p0)
[1] 0.5454545 0.4545455
> w <- db*jar/sum(db*jar)
> sum(vg*ar)
[1] 3100
> p1 <- sum(vg*ar)
> vhr <- (p1/p0[2])-1
> vha <- .1
> vhp <- sum (c(vha,vhr)*arany)
> feladat1 <- list(adatok=list(valoszinuseg=vg,arfolyam=ar,darabszam=
db,jelenar=p0,allampapir_varhato_hozama=vha),eredmenyek=list(reszveny_
varhato_hozama=vhr,portfolio_varhato_hozama=vhp))
> str(feladat1)
List of 2
$ adatok :List of 5
..$ valoszinuseg : Named num [1:3] 0.5 0.3 0.2
..$ arfolyam : Named num [1:3] 3000 5000 500
..$ darabszam : Named num [1:2] 1000 5000
..$ jelenar : Named num [1:2] 12000 2000
..$ allampapir_varhato_hozama: num 0.1
$ eredmenyek:List of 2
..$ reszveny_varhato_hozama : num 0.55
..$ portfolio_varhato_hozama: num 0.305
5.5.2. Feladat2
> vk <- matrix(c(144,88,77,88,99,48,77,48,64), nr=3, nc=3)
> w <- c(.7,.3,0)
> kockazat <- sqrt(w[1]^2*vk[1,1]+w[2]^2*vk[2,2]+2*w[1]*w[2]*vk[1,2])
> feladat2 <- list(adatok=list(matrix=vk,arany=w),eredmenyek=list(a_
portfolio_kockazata=kockazat))
> str(feladat2)
List of 2
$ adatok :List of 2
..$ matrix: num [1:3, 1:3] 144 88 77 88 99 48 77 48 64
..$ arany : num [1, 1:3] 0.7 0.3 0
$ eredmenyek:List of 1
..$ a_portfolio_kockazata: num 10.8
- 43 -
5.5.3. Feladat3
> p <- c(20,25)
> db <- c(50,40)
> div <- c(2,5)
> g <- c(.05,.03)
> arany <- db*p/sum(db*p)
> arany
[1] 0.5 0.5
> rh <- div/p+g
> rh
[1] 0.15 0.23
> rp <- sum(rh*arany)
> rF <- .1
> rM <- .15
> B <- (rh-rF)/(rM-rF)
> B
[1] 1.0 2.6
> Bp <- sum(B*arany)
> feladat3 <-
list(adatok=list(arfolyam=p,darab=db,osztalel=div,novekedes=g,kockazat
_mentes_hozam=rF,piaci_hozam=rM),eredmenyek=list(a_portfolio_varhato_
hozama=rp,a_portfolio_betaja=Bp))
> str(feladat3)
List of 2
$ adatok :List of 6
..$ arfolyam : num [1:2] 20 25
..$ darab : num [1:2] 50 40
..$ osztalel : num [1:2] 2 5
..$ novekedes : num [1:2] 0.05 0.03
..$ kockazat_mentes_hozam: num 0.1
..$ piaci_hozam : num 0.15
$ eredmenyek:List of 2
..$ a_portfolio_varhato_hozama: num 0.19
..$ a_portfolio_betaja : num 1.8
- 44 -
6. Összefoglalás
A pénzügy világában gyakran elég nehéz eligazodni. Azonban nem kell pénzügyi
szakembernek lennünk, hogy egy kis odafigyeléssel és néhány számolással felmérjük a
kockázatokat és a lehető legjobb döntést hozzuk. Ezeket a számításokat papíron is
elvégezhetjük, de segítségül hívhatunk különböző erre alkalmas szoftvereket. Manapság
szinte minden felhasználónál megtalálható a Microsoft Office rendszer. Kezelése elég
hamar megtanulható, viszont lehetséges, főként valószínűségi és statisztikai
függvényeknél, hogy nem azt számoljuk ki, amire szükségünk lenne és akármilyen szép
az ábrákat sem készíthetünk. Az R programnyelv is igen széles körben elterjedt.
Pontosan számol, szép rajzokat készít, azonban használatát egy laikus embernek, lehet
nem épp a legegyszerűbb megtanulni a kezelését. A dolgozatban megismerkedtünk a
Maple matematikai programmal, mely átmenetet képez a „komolyabb” programozás
felé, azonban nem szükséges teljes programot írni, hanem egy-egy paranccsal már
megkaphatjuk a kívánt eredményt. Bár a Maple-t nem kifejezetten pénzügyi
számításokra fejlesztették ki, a példákban és a feladatokban segítette a számolásunkat,
szép, és hasznos ábrákat készített.
- 45 -
7. Irodalomjegyzék
[1] Richard A. Brealey - Stewart C. Myers: Modern Vállalati Pénzügyek
Panem Kft., Budapest, 2005.
[2] Fazakas Gergely - Juhász Péter (szerk.): Vállalati pénzügyi példatár
Tanszék Kft., 2008
[3] Dr. Farkas Szilveszter – Vállalati pénzügyek
Elektronikus jegyzet, 2006
[4] Molnárka - Gergó - Wettl - Horváth - Kallós: A Maple V és alkalmazásai
Springer Hungarica Kiadó Kft., 1996
[5] Maple Help, Waterloo Maple Inc. 1981-2009
[6] http://hu.wikipedia.org/wiki/Maple_(szoftver)
[7] http://en.wikipedia.org/wiki/List_of_numerical_analysis_software
[8] http://office.microsoft.com/hu-hu/excel/HP052042111038.aspx
[9] http://office.microsoft.com/hu-hu/excel/CH062528251038.aspx?stt=1
[10] http://en.wikipedia.org/wiki/R_(programming_language)
[11] http://en.wikipedia.org/wiki/Rmetrics
[12] http://cran.r-project.org/web/views/Finance.html
[13] http://cran.r-project.org/doc/contrib/Solymosi-Rjegyzet.pdf
[14] http://www.inf.unideb.hu/~jeszy/download/R/
[15] http://mek.niif.hu/01200/01259/01259.pdf
Megjegyzések:
Az internetes oldalak 2010. 05. 28-án a hivatkozott tartalommal elérhetőek voltak.
A dolgozathoz a felsorolt irodalmakat forrásként használtam fel.
- 46 -
8. Köszönetnyilvánítás
Ezúton szeretnék köszönetet mondani mindazoknak, akik segítették a munkámat. Külön köszönet a témavezetőmnek, Pröhle Tamásnak, aki segített a téma kiválasztásában, és annak kidolgozásában. Családomnak és barátaimnak, akik mindvégig támogattak, megértéssel és türelemmel viselték ezt az időszakot.
NYILATKOZAT
Név: Nádas Katalin
ELTE Természettudományi Kar, szak: Matematika Bsc
ETR azonosító: NAKNACT.ELTE
Szakdolgozat címe: Pénzügyi problémák megoldásai Maple és más környezetekben
A szakdolgozat szerzőjeként fegyelmi felelősségem tudatában kijelentem, hogy a
dolgozatom önálló munkám eredménye, saját szellemi termékem, abban a
hivatkozások és idézések standard szabályait következetesen alkalmaztam, mások
által írt részeket a megfelelő idézés nélkül nem használtam fel.
Budapest, 2010. május 28. _______________________________
a hallgató aláírása