import platform
platform.platform()
platform.python_version()
import matplotlib
matplotlib.__version__
%pylab inline
from scipy.optimize import newton
from mpl_toolkits.mplot3d import Axes3D
Investitoru su prezentirana dva projekta A i B s dobicima krajem godina danima u tablici. Pomoću NPV metode odaberite isplativiji projekt ako znamo da je cijena kapitala 8%.
projekt | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
A | -600 000 | 180 000 | 160 000 | 170 000 | 210 000 |
B | -600 000 | 100 000 | 140 000 | 215 000 | 300 000 |
projektA=[-600000,180000,160000,170000,210000]
projektB=[-600000,100000,140000,215000,300000]
npv(0.08,projektA)
npv(0.08,projektB)
figure(figsize=(10,8))
p=arange(0,17,0.01)
fpA=list(map(lambda x: npv(x/100.0,projektA), p))
fpB=list(map(lambda x: npv(x/100.0,projektB), p))
plot(p,fpA,c='r',lw=3,label='projekt A')
plot(p,fpB,lw=3,label='projekt B')
xlabel('p',fontsize=16)
ylabel('NPV',fontsize=16)
legend()
xlim(0,18)
grid(True)
Investitoru je ponuđen projekt u koji bi trebao uložiti 1800 kn odmah i 10 500 kn za dvije godine. Očekivani dobici na kraju prve tri godine dani su u tablici.
godina | 1 | 2 | 3 |
---|---|---|---|
očekivani dobici | 6050 kn | 3750 kn | 2500 kn |
projekt=[-1800,6050,3750-10500,2500]
npv(0.08,projekt)
npv(0.12,projekt)
figure(figsize(10,6))
p=arange(0,27.5,0.01)
fp=list(map(lambda x: npv(x/100.0,projekt), p))
plot(p,fp,lw=3)
xlabel('p',fontsize=16)
ylabel('NPV',fontsize=16)
xticks(arange(0,30,2))
yticks(arange(-1,1,0.25))
xlim(0,30)
grid(True)
U projekt treba uložiti 9000 €. Očekivani dobici na kraju prve tri godine su dani u tablici.
godina | 1 | 2 | 3 |
---|---|---|---|
očekivani dobici | 3000 € | 3500 € | 4000 € |
projekt=[-9000,3000,3500,4000]
p1=4.5445/100
p2=7.7285/100
npv(p1,projekt)
npv(p2,projekt)
f=lambda x: -x+3000.0/1.05+3500.0/1.05**2+4000.0/1.05**3
newton(f,5000)
figure(figsize=(10,8))
p=arange(0,30,0.01)
fp=list(map(lambda x: npv(x/100.0,projekt), p))
plot(p,fp,lw=3)
xlabel('p',fontsize=16)
ylabel('NPV',fontsize=16)
xticks(arange(0,33,2))
yticks(arange(-3000,1510,500))
xlim(0,32)
grid(True)
figure(figsize=(10,8))
F0=arange(0,15000,1)
fp=list(map(lambda x: npv(0.05,[-x,3000,3500,4000]), F0))
plot(F0,fp,lw=3,c='red')
xlabel('F0',fontsize=16)
ylabel('NPV',fontsize=16)
xlim(0,16000)
grid(True)
#ploha
y = arange(0, 30, 1)
x = arange(0, 15500, 400)
X, Y = meshgrid(x,y)
Z = -X+3000/(1+Y/100)+3500/(1+Y/100)**2+4000/(1+Y/100)**3
#plava krivulja
y1 = linspace(0, 29, 60)
x1 = 0*y1 + 9000
z1 = -9000 + 3000/(1+y1/100)+3500/(1+y1/100)**2+4000/(1+y1/100)**3
#krivulja NPV=0
z2 = 0*y1
x2 = z1 + 9000
#slika
figsize(13,10)
ax = axes(projection='3d')
ax.plot_surface(X, Y, Z, cmap=cm.Spectral,rstride=2,cstride=2, linewidth=0.6,alpha=0.4,edgecolors='k')
ax.plot(x1, y1, z1, c='b',lw=4,alpha=0.5,zorder=10)
ax.plot(x2, y1, z2, c='k',lw=4,alpha=0.5,zorder=10)
ax.plot([0,15000],[5,5],[9487.1,-5512.9],c='r',lw=4,alpha=0.5,zorder=10)
ax.plot([9487.1], [5], [0], markerfacecolor='w', markeredgecolor='r',
marker='o', markersize=7, alpha=0.9,zorder=10)
ax.plot([9000], [7.7285], [0], markerfacecolor='w', markeredgecolor='b',
marker='o', markersize=7, alpha=0.9,zorder=10)
ax.text(4500,1.5,-3000, "F0=9000", color='blue',
bbox=dict(facecolor='#FCF3CF', edgecolor='blue', boxstyle='round,pad=0.6'))
ax.text(15000,5,-8000, "p=5", color='red',
bbox=dict(facecolor='#FCF3CF', edgecolor='red', boxstyle='round,pad=0.6'))
ax.text(8000,0,-3500, "NPV=0", color='black',
bbox=dict(facecolor='#FCF3CF', edgecolor='black', boxstyle='round,pad=0.6'))
ax.set_xlabel('\nF0', linespacing=3.2,fontsize=16)
ax.set_ylabel('\np', linespacing=3.2,fontsize=16)
ax.set_zlabel('\nNPV', linespacing=3.2,fontsize=16)
ax.view_init(elev=30,azim=-45)
ax.dist = 10
Koliki prihod je na kraju druge godine ostvarila investicija visine 200 000 kn uz cijenu kapitala 7% ako je NPV jednak 14 559.82 kn, a prihodi na kraju prve i treće godine su redom 50 000 kn i 120 000 kn?
Na kraju druge godine ostvaren je prihod od 80 000.01 kn.
f=lambda x: 14559.82 + 200000 - 50000.0/1.07 - x/1.07**2 - 120000.0/1.07**3
newton(f,5000)
NPV i IRR metodom ocijenite je li isplativ projekt u koji treba uložiti 200 000 kn, a koji na kraju prve godine donosi 50 000 kn, a na kraju druge godine 180 000 kn dobiti. Investitor sredstva za ulaganje u projekt posuđuje po godišnjoj kamatnoj stopi od 7%.
projekt=[-200000,50000,180000]
npv(0.07,projekt)
irr(projekt)
Možemo unaprijed zaokružiti vrijednosti na željeni broj decimala.
round(irr(projekt),5)
round(npv(0.07,projekt),2)
figure(figsize=(10,8))
p=arange(0,20,0.01)
fp=list(map(lambda x: npv(x/100.0,projekt), p))
plot(p,fp,lw=3)
plot([8.188], [0], markerfacecolor='w', markeredgecolor='b',
marker='o', ms=8, mew=1.5)
annotate('NPV=0', xy=(8,0), xycoords='data',
xytext=(4,0), textcoords='data', size=15, ha="center", va="center",
arrowprops=dict(arrowstyle="->", connectionstyle="arc3"),
bbox=dict(facecolor='#FCF3CF', edgecolor='black', boxstyle='sawtooth,pad=0.6')
)
annotate('IRR', xy=(8.188, -40000), xycoords='data',
xytext=(8.188, -33000), textcoords='data', size=15, ha="center",
arrowprops=dict(arrowstyle="->", connectionstyle="arc3"),
bbox=dict(facecolor='#FCF3CF', edgecolor='black', boxstyle='sawtooth,pad=0.6')
)
xlabel('p',fontsize=16)
ylabel('NPV',fontsize=16)
xlim(0,20)
ylim(-40000,30000)
xticks(arange(0,21,2))
grid(True)
Banka mora odlučiti između dviju investicija u iznosu od 200 000 € čiji novčani tokovi su procijenjeni u sljedećoj tablici.
projekt | 0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|---|
A | -200 000 | 80 000 | 60 000 | 70 000 | 100 000 | 100 000 |
B | -200 000 | 30 000 | 85 000 | 95 000 | 90 000 | 85 000 |
projektA=[-200000,80000,60000,70000,100000,100000]
projektB=[-200000,30000,85000,95000,90000,85000]
npv(0.07,projektA)
npv(0.07,projektB)
irr(projektA)
irr(projektB)
figure(figsize=(10,8))
p=arange(0,55,0.01)
fpA=list(map(lambda x: npv(x/100.0,projektA), p))
fpB=list(map(lambda x: npv(x/100.0,projektB), p))
plot(p,fpA,c='r',lw=3,label='projekt A')
plot(p,fpB,lw=3,label='projekt B')
plot([7,7],[-100000,250000],lw=1,ls='--',c='g')
plot([23.235,7], [0,109092.37], markerfacecolor='w', markeredgecolor='b',
marker='o', ms=8, mew=1.5,ls='')
plot([27.725,7], [0,131901.67], markerfacecolor='w', markeredgecolor='r',
marker='o', ms=8, mew=1.5,ls='')
annotate('IRR(A)', xy=(27.725, -100000), xycoords='data',
xytext=(27.725, -65000), textcoords='data', size=15,
arrowprops=dict(arrowstyle="->,head_length=0.3,head_width=0.35",
connectionstyle="arc3,rad=0.3",relpos=(0.5,0)),
bbox=dict(facecolor='#FCF3CF', edgecolor='red',boxstyle='roundtooth,pad=0.6')
)
annotate('IRR(B)', xy=(23.235, -100000), xycoords='data',ha="right",
xytext=(23.235, -65000), textcoords='data', size=15,
arrowprops=dict(arrowstyle="->,head_length=0.3,head_width=0.35",
connectionstyle="arc3,rad=-0.3",relpos=(0.5,0)),
bbox=dict(facecolor='#FCF3CF', edgecolor='blue', boxstyle='roundtooth,pad=0.6')
)
annotate('NPV(B)=0', xy=(23,0), xycoords='data',
xytext=(10,-15000), textcoords='data', size=15, ha="center", va="center",
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=0.2",relpos=(1,0.5)),
bbox=dict(facecolor='#FCF3CF', edgecolor='blue', boxstyle='roundtooth,pad=0.6')
)
annotate('NPV(A)=0', xy=(28.2,0), xycoords='data',
xytext=(35,30000), textcoords='data', size=15, ha="center", va="center",
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=-0.2",relpos=(0.5,0)),
bbox=dict(facecolor='#FCF3CF', edgecolor='red', boxstyle='roundtooth,pad=0.6')
)
annotate('p=7%', xy=(7.2,175000), xycoords='data',
xytext=(12,175000), textcoords='data', size=15, ha="left", va="center",
arrowprops=dict(arrowstyle="->", connectionstyle="arc3",relpos=(0,0.5)),
bbox=dict(facecolor='#FCF3CF', edgecolor='black', boxstyle='roundtooth,pad=0.6')
)
xlabel('p',fontsize=16)
ylabel('NPV',fontsize=16)
xlim(0,57)
ylim(-100000,250000)
xticks(arange(0,56,5))
legend()
grid(True)