[PYTHON] Introduction à l'ingénierie financière [Science de l'investissement] Chapitre 2 Exercices d'auto-réponse

introduction

Cet article est une réponse autonome aux exercices à la fin de chaque chapitre de «Introduction à l'ingénierie financière», une traduction japonaise de «Investment science (Second edition)» de David G. Luenberger.

C'est ma propre réponse, alors j'espère que vous pourrez l'utiliser comme référence. Aussi, si la réponse donnée est incorrecte ou s'il existe une meilleure méthode, veuillez me le faire savoir.

La dérivation etc. sera décrite autant que possible, et si un calcul numérique etc. est nécessaire, elle sera implémentée en utilisant Python ou R selon le cas.

De plus, en raison de problèmes de droits d'auteur, nous ne décrirons pas l'énoncé du problème, veuillez donc vérifier l'énoncé du problème vous-même. </ b> </ font>

Plage de réponse

Cet article est la réponse aux exercices du chapitre 2 «Théorie de base des taux d’intérêt» </ b>.

répondre

2.1 La période de fin de l'investissement était 2020 au moment de la rédaction.

Le prix souhaité $ P $ a été calculé comme suit: $ P = x \ left (1 + r \ right) ^ {n} \ tag {1} $. Ici, $ x $: montant de l'investissement initial, $ r $: taux d'intérêt, $ n : période d'investissement. (a) $r=0.033\\n=2020-1776=244$$ Est connu.

Cette fois $ \ gauche (i \ droite) x = 1 000 $ $

À partir de $ (1) $ $ P = 1000 (1 + 0,033) ^ {244} \ environ 2,76 millions de dollars

De même ci-dessous $ \ gauche (ii \ droite) x = 10 000 $ $ $ P = 100000 (1 + 0,033) ^ {244} \ environ 27,6 millions $

$ \ gauche (iii \ droite) x = 100 000 $ $ $ P = 1000000 (1 + 0,033) ^ {244} \ environ 276 millions de dollars

$ \ gauche (iv \ droite) x = 1 000 000 dollars $ $ P = 10000 (1 + 0,033) ^ {244} \ environ 2,76 milliards $

(b) Comme $ r = 0,066 $, il peut être résolu en utilisant $ (1) $ exactement comme dans (a), donc si vous ne cochez que $ \ left (i \ right) x = $ 1,000 $

$ P = 1000 (1 + 0,066) ^ {244} \ environ 5,9 milliards $

(Le pouvoir de l'intérêt composé est effrayant ...)

2.2

\begin{align}
\left(1+r\right)^{n}&=2\\
\Leftrightarrow n\ln\left(1+r\right)&=\ln2\tag{2}
\end{align}

ici $\ln2=0.69\\\ \ln(1+r)\approx r$ En utilisant $ (2) $ $n=\frac{0.69}{r}$ Si vous définissez $ r = i / 100 $ pour l'affichage du pourcentage $n=\frac{69}{i}$ Par conséquent, le sujet est satisfait.

L'autre $n=\frac{72}{i}$ Je ne sais pas comment convaincre ceux qui sont proches, alors faites-le moi savoir si quelqu'un le sait.

2.3 Le taux d'intérêt d'exécution que vous voulez trouver est $ 1 + r_0 = \ left (1 + \ frac {r} {m} \ right) ^ {m} \ quad (m: intervalle d'implémentation des intérêts composés) $ Et.

(a)

1+r_0=\left(1+\frac{0.03}{12}\right)^{12}\\
r_0=0.0304

(b)

1+r_0=\left(1+\frac{0.18}{12}\right)^{12}\\
r_0=0.1956

(c)

1+r_0=\left(1+\frac{0.18}{4}\right)^{4}\\
r_0=0.1925

2.4 Dans le texte, seule la définition de la méthode Newton est écrite, mais je l'ai dérivée pour le moment, donc je vais la décrire.

\begin{align}
f(\lambda)&=-a_0+a_1\lambda+\cdots+a_n\lambda^n\\
f'(\lambda)&=a_1+2a_2\lambda+\cdots+na_n\lambda^{n-1}
\end{align}

A ce moment, une solution appropriée $ \ lambda_0 $ est déterminée sous la condition $ \ lambda> 0 $, et une droite avec une pente de $ f '(\ lambda_0) $ passant par $ (\ lambda_0, f (\ lambda_0)) $. Mettez à jour l'intersection de et de l'axe $ x $ comme $ \ lambda_1 $. Si cette droite est $ g (\ lambda) $, alors $ g (\ lambda) $ est

g(\lambda)=f'(\lambda_0)(\lambda-\lambda_0)+f(\lambda_0)

Et l'intersection $ \ lambda_1 $ est

f'(\lambda_0)(\lambda_1-\lambda_0)+f(\lambda_0)=0\\
\therefore \lambda_1=\lambda_0-\frac{f(\lambda_0)}{f'(\lambda_0)}

En faisant ce travail plusieurs fois, vous obtenez la formule générale $ \ lambda_ {k + 1} = \ lambda_k- \ frac {f (\ lambda_k)} {f '(\ lambda_k)} \ tag {3} $ ..

Eh bien, le sujet principal,

f(\lambda)=-1+\lambda+\lambda^2\\
f'(\lambda)=1+2\lambda\\
\lambda_0=1

Recherchez $ \ lambda_1, \ lambda_2, \ lambda_3 $ as. Le calcul est omis car il n'est affecté qu'à $ (3) $.

\begin{align}
\lambda_1&=\frac{2}{3} \\
\lambda_2&=\frac{13}{21} \\
\lambda_3&=0.62
\end{align}

Exécutons-le facilement en Python.

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

def f(x):
    y=-1+x+x**2
    return y
def df(x):
    y=1+2*x
    return y

lam=1
num=10
plt.figure(figsize=(4,3))
y = [lam,]

for i in range(num):
    lam = lam - (f(lam)/df(lam))
    print(lam)
    y.append(lam)
    
plt.plot(np.arange(num+1),y)

Résultat d'exécution newton.jpg

Valeur pour chaque mise à jour de $ \ lambda $

0.6666666666666667 0.6190476190476191 0.6180344478216818 0.618033988749989 0.6180339887498948 0.6180339887498948 0.6180339887498948 0.6180339887498948 0.6180339887498948 0.6180339887498948

Après avoir mis à jour la valeur de $ \ lambda $ quatre ou cinq fois, l'erreur peut être considérée comme 0. (Pour une raison quelconque, l'étiquette de l'axe X dépasse ...)

2.5 Cette question est reprise dans les exercices du chapitre 2 et énumère deux méthodes, l'une consiste à évaluer par valeur actuelle et l'autre à évaluer par rentabilité interne. De même, je vais essayer de résoudre ce problème de deux manières, mais il vise probablement à évaluer la valeur actuelle. (Je ne pense pas que la marge bénéficiaire interne puisse être calculée.)

1. Évalué par la valeur actuelle

La valeur actuelle de $ PV_n $ après avoir attendu $ n $ ans est $PV_n=-1+\frac{n+1}{(1+0.1)^n}$ Sera. Cette fois

\begin{align}
PV_{n+1}-PV_{n}&=\left(-1+\frac{n+2}{1.1^{n+1}}\right)-\left(-1+\frac{n+1}{1.1^{n}}\right) \\
&=\frac{1}{1.1^n}\left(\frac{n+2}{1.1}-(n+1)\right)
\end{align}

Cette fois, je m'intéresse au signe, donc je n'ai qu'à y penser entre parenthèses de la dernière expression. $\frac{n+2}{1.1}-(n+1)=\frac{-0.1n+0.9}{1.1}$ Cette

PV_{n+1}-PV_{n}Est\begin{cases}n<9\rightarrow +\\ n=9\rightarrow 0\\ n >9\rightarrow -\end{cases}

Par conséquent, la valeur actuelle augmente de manière monotone jusqu'à $ PV_9 $, mais elle devient égale à $ PV_9 $ et $ PV_ {10} $ et continue de diminuer de manière monotone par la suite, donc $ n = 9,10 $ est considéré comme le meilleur. Être terminé.

2. Évalué par la rentabilité interne

Si ce projet ne se termine pas une fois mais se répète plusieurs fois, il est souhaitable de l'envisager en termes de rentabilité interne. La marge bénéficiaire interne $ r_n $ du projet qui a attendu $ n $ ans à ce moment est

-1+c^n(n+1)=0\quad\left(c=\frac{1}{1+r_n}\right) 

Rencontrer.

c^n=\frac{1}{n+1} \\\ c=\left(\frac{1}{n+1}\right)^{\frac{1}{n}}

Lorsque $ r $ est grand, $ c $ prend une petite valeur, vous pouvez donc trouver $ c $ qui prend la valeur minimale. J'ai l'impression que cela ressemble à $ \ log $, mais après l'avoir confirmé, j'ai essayé d'implémenter Python. Je pense que ce calcul peut être résolu si je fais de mon mieux, mais je ne me souviens pas comment le faire, alors faites-moi savoir si vous pouvez le comprendre.

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

y = []
num = 1100
def IRR(n):
    y=(1/(n+1))**(1/n)
    return y

for i in range(num):
    i+=1
    y.append(IRR(i))

x = np.arange(num)
x+=1

plt.figure(figsize=(4,3))
plt.plot(x,y)
plt.xlabel("num")
plt.ylabel("c")
plt.savefig('IRR.png')

IRR.png

De plus, je suis désolé que l'étiquette de l'axe X soit coupée, mais c'est un graphique montrant la relation entre $ n $ et $ c $. En regardant cela, il est sorti avec un sentiment comme $ \ log $. Par conséquent, comme vous pouvez le voir sur le graphique, le point avec le meilleur taux de profit interne semble être $ n = 1 $.

2.6

Puisqu'il s'agit d'un problème de calcul simple, seule la formule est décrite.

(a) \left(1+\frac{0.1}{12}\right)^{12}=1.104713\cdots \\
(b) e^{0.1}=1.105170\cdots

Par conséquent, le taux d'intérêt $ r $ est $(a)r=10.471\%\\\ (b)r=10.517\%$

Est.

Peut être ...

(a) \left(1+\frac{r}{12}\right)^{12}=1.10 \\
(b) e^{r}=1.10

Cela peut être un problème dans le sens de trouver $ r $ qui satisfait. Je ne pouvais pas juger non plus en lisant simplement le texte.

Au fait, cette réponse est $(a)r=9.5670\% \\\ (b)r=9.5310\%$ Ce sera.

2.7 Ce problème est simplement $PV=\sum ^{19}_{k=0}\frac {50}{\left( 1.1\right) ^{k}}$ Cependant, je posterai également la dérivation de la méthode de résolution en utilisant des séries infinies.

\begin{align}
\sum^{n}_{0}\frac{a}{(1+r)^k}&=\sum^{\infty}_{0}\frac{a}{(1+r)^k}-\sum^{\infty}_{n+1}\frac{a}{(1+r)^k} \\
&=\frac{a(1+r)}{r}-\frac{1}{(1+r)^{n+1}}\frac{a(1+r)}{r} \\
&=\left(1-\frac{1}{(1+r)^{n+1}}\right)\frac{a(1+r)}{r}
\end{align}

Par conséquent, en remplaçant $ r = 0,1 \\\ n = 19 \\\ a = 50 $ pour obtenir $ PV = 46,824 millions de dollars $.

Recommended Posts