Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
полный диплом в.1.doc
Скачиваний:
23
Добавлен:
20.05.2015
Размер:
1.18 Mб
Скачать

2. Динамічна точка беззибтковості:

Припустимо, що фірма збирається придбати нову виробничу лінію, яка потребує первинних додаткових інвестицій F в сумі 2млн. дол., прогнозна ціна за одиницю продукції – 8 дол, змінні витрати на одиницю – 6 дол, термін життя проекту -10 років. Класична точка беззбитковості, розрахована для цих даних, показує обсяг виробництва N=1 млн. од., проте це статична картина, "малюнок" процесу, яка не відображає тимчасових аспектів виробництва, що триває 10 років, і не враховує цінність продукту відносно часу, щоб окупити початкові інвестиції.

У таких випадках використаємо формулу динамічної точки беззбитковості:

Перетворимо цю формулу:

,

де

В інвестиційних розрахунках залишкову вартість S частіше приймають рівною нулю. Тоді отримаємо:

3. Запас безпеки інвестиційних проектів:

Нехай нам відомо значення NPV (Qt) - цільове (те, яке відповідає заданому обсягу виробництва Qt). Будемо вважати, що проект прибутковий , тобто NPV (Qt) > 0.

Розв’яжемо рівняння NPV (Q0) = 0 відносно невідомого Q0. Та знайдемо Q0.

Отже, Q0мінімально допустиме значення обсягу виробництва, нижче якого проект буде приносити збитки.

Важливою характеристикою успішних капіталовкладень є запас безпеки проекту. Абсолютний динамічний запас безпеки проекту визначається як:

.

Тобто, як різниця між цільовим значення обсягу виробництва та мінімально допустимим. Очевидно, що > 0.

Відносний динамічний запас безпеки проекту :

4. Динамічний аналіз беззбитковості виробництва багатономенклатурної продукції:

Якщо локалізувати постійні витрати по видам продукції та розглянути прибутковість та запас безпеки для кожної окремої продукції можно найти динамічну точку беззбитковості для кожного виду за формулою :

де i-го виду продукції,

m – число видів продукції.

Але, як правило, локалізувати постійні витрати достатьно важко (так якздебільшого майже неможливо визначити всі вхідні дані проекту). Тому доцільніше використовувати точку беззбитковості – як обсяг сукупної виручки від продажу всіх видів продукції, при яких сумарний NPV = 0. Тобто , таким чином :

, звідки отримаємо :

Виразимо через сукупну виручку:

Тобто, точка беззбитковості буде мати вигляд :

Приклад 4.

Візьмемо умову задачі з приклада 1:

I0 = 2000.

F= 500.

P – V = 20.

A=100 .

T= 23%.

Ставка дисконтування r= 12%.Знайдемо запас безпеки для проекту при теміну:

n= 6, 9, 12 ,15.

Нехай :

n, p.

6

9

12

15

NPVt

2432

3744

4678

5342

, цільове

93.5

, мінім.допустиме

55.09

47.88

44.47

42.57

38.41

45.62

49.03

50.93

41 %

48.79 %

52.44 %

54.47 %

:

n, p.

6

9

12

15

NPVt

1507

2819

3752

4417

, цільове

95.8

, мінім.допустиме

67.52

55.81

50.66

47.9

28.28

39.99

45.14

47.9

29.52 %

41.74 %

47.12 %

50 %

Як бачимо , проект першого типу більш надійніший в декілька перших років. Потім запас безпеки проектів вирівнюється.

Додаток 1.

Програма обчислення IRR (внутрішньої норми прибутковості) проекту за допомогою методу половинного ділення.

using System;

using System.Collections.Generic;

using System.Text;

namespace IRR_bisek

{

class Program

{

public static int j, n, z;

public static double a, b, c, d, t, f1, f2, f3, e;

public static double[] p = new double[100];

public static double[] v = new double[3];

public static double[] q = new double[100];

public static bool flag;

public static double f(double d)

{

double s = d / 100 + 1;

t = 0;

for (int i = 0; i < n + 1; i++)

{

t = t + p[i] / (Math.Exp((i - 1) * Math.Log(s)));

}

t = t + v[0] / (Math.Log(s)) * (1 / (Math.Exp(v[1] * Math.Log(s))) - 1 / (Math.Exp(v[2] * Math.Log(s))));

return t;

}

public static void root()

{

j = 1;

for (int k = 0; k < 100; k++)

{

q[k] = f(j);

j = j + 5;

}

z = 0;

for (int k = 0; k < 99; k++)

{

if (((q[k] < 0) && (q[k + 1] > 0)) || ((q[k] > 0) && (q[k + 1] < 0)))

{ z = z + 1; }

}

}

public static void bisek()

{

while (!flag)

{

c = (a + b) / 2;

f1 = f(a);

f2 = f(b);

f3 = f(c);

if (b-a<e)

{

flag = true;

Console.WriteLine(String.Format("IRR = {0} \n", b));

break;

}

else

{

if (f1 * f3 < 0)

{ b = c; }

else

{ a = c; }

}

}

}

static void Main()

{

Console.WriteLine("VVedi srok proekta");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Vvedi investicii");

for (int k = 0; k < n + 1; k++)

{

p[k] = Convert.ToDouble(Console.ReadLine());

}

Console.WriteLine("Esli kus.nepr. potok platejey - vvedi summu,na4alo i konec");

for (int k = 0; k < 3; k++)

{

v[k] = Convert.ToDouble(Console.ReadLine());

}

e = 0.001;

a = 1;

b = 5;

bisek();

root();

if (z > 2)

{

a = 300;

b = 310;

bisek();

}

Console.ReadLine();

}

}

}

Додаток 2.

Програма обчислення IRR (внутрішньої норми прибутковості) проекту за допомогою методу січних.

using System;

using System.Collections.Generic;

using System.Text;

namespace IRR_sek

{

class Program

{

public static int j, n, z;

public static double a, b, x1, x2, x3, t, e;

public static double[] p = new double[100];

public static double[] v = new double[3];

public static double[] q = new double[100];

public static bool flag;

public static double f(double d)

{

double s = d / 100 + 1;

t = 0;

for (int i = 0; i < n+1 ; i++)

{

t = t + p[i] / (Math.Exp((i - 1) * Math.Log(s)));

}

t = t + v[0] / (Math.Log(s)) * (1 / (Math.Exp(v[1] * Math.Log(s))) - 1 / (Math.Exp(v[2] * Math.Log(s))));

return t;

}

public static void root()

{

j = 1;

for (int k = 0; k < 100; k++)

{

q[k] = f(j);

j = j + 5;

}

z = 0;

for (int k = 0; k < 99; k++)

{

if (((q[k] < 0) && (q[k + 1] > 0)) || ((q[k] > 0) && (q[k + 1] < 0)))

{ z = z + 1; }

}

}

public static void sek()

{

x1 = a;

x2 = b;

while (!flag)

{

x3 = x1 - (f(x1) * (x2 - x1)) / (f(x2) - f(x1));

if (Math.Abs(x2 - x3) < e)

{

flag = true;

Console.WriteLine(String.Format("IRR = {0} \n", x3));

break;

}

else

{

x1 = x2;

x2 = x3;

}

}

}

static void Main()

{

Console.WriteLine("VVedi srok proekta");

n = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Vvedi investicii");

for (int k = 0; k < n+1 ; k++)

{

p[k] = Convert.ToDouble(Console.ReadLine());

}

Console.WriteLine("Esli kus.nepr. potok platejey - vvedi summu,na4alo i konec");

for (int k = 0; k < 3; k++)

{

v[k] = Convert.ToDouble(Console.ReadLine());

}

e = 0.001;

a = 1;

b = 5;

sek();

root();

if (z > 2)

{

a = 300;

b = 310;

sek();

}

Console.ReadLine();

}

}

}

Результати обчислень IRR за допомогою программи з методом січних:

1) VVedit' termin proekta

5

Vvedit' investicii

-20

0

-8

0

0

40

kuso4no.neper. potik platejiv - vvedit' summu,na4alo i kinec'

0

0

0

IRR = 8,3247954935484

2) VVedit' termin proekta

4

Vvedit' investicii

-15

3

4

8

7

kuso4no.neper. potik platejiv - vvedit' summu,na4alo i kinec'

0

0

0

IRR = 14,704942330788.

3) VVedit' termin proekta

4

Vvedit' investicii

-4

-2

4

-1

5

kuso4no.neper. potik platejiv - vvedit' summu,na4alo i kinec'

0

0

0

IRR = 11,0507041582152

4) VVedit' termin proekta

10

Vvedit' investicii

-30

0

0

-10

0

20

0

-4

0

0

40

kuso4no.neper. potik platejiv - vvedit' summu,na4alo i kinec'

2

2

10

IRR = 8,54258754906807

Додаток 3.

i

j

Проект А

Проект В

Вибір

NPV

PI

DPP

IRR

NPV

PI

DPP

IRR

1

1

14396,30

0,2360

3,8

20,006

15108,89

0,2477

4,3

17,763

B

2

14874,66

0,2399

3,7

20,150

15444,13

0,249

4,3

17,799

B

3

15353,02

0,2437

3,7

20,289

15779,38

0,2505

4,3

17,834

B

4

15831,38

0,2464

3,6

20,423

16114,62

0,2518

4,2

17,868

B

5

16309,73

0,2509

3,5

20,554

16449,86

0,2530

4,2

17,901

B

6

16788,09

0,2544

3,4

20,6797

16785,11

0,2543

4,1

17,932

A

7

17266,45

0,2577

3,2

20,802

17120,35

0,2555

4,1

17,963

A

8

17744,81

0,2610

3,2

20,921

17455,59

0,2567

4,1

17,992

A

2

1

9746,987

0,1373

4,5

17,407

10314,21

0,1453

4,7

16,130

B

2

10188,90

0,1415

4,4

17,570

10604,91

0,1473

4,7

16,185

B

3

10630,81

0,1456

4,4

17,728

10895,62

0,1493

4,7

16,239

B

4

11072,72

0,1496

4,3

17,881

11186,32

0,1512

4,6

16,291

B

5

11414,63

0,1535

4,3

18,031

11477,02

0,1530

4,6

16,3412

B

6

11956,54

0,1573

4,2

18,176

11767,72

0,1548

4,5

16,3904

A

7

12398,45

0,161

4,2

18,317

12058,42

0,1566

4,5

16,4383

A

8

12840,36

0,1646

4,1

18,455

12349,12

0,1583

4,5

16,4849

A

3

1

4820,443

0,0595

4,9

15,4125

5124,645

0,0595

4,9

14,8650

B

2

5227,335

0,0637

4,8

15,5823

5372,829

0,0655

4,9

14,9302

B

3

5634,2278

0,0679

4,8

15,7479

5642,135

0,0676

4,9

14,9937

B

4

6041,1203

0,0719

4,8

15,9091

5869,195

0,0699

4,9

15,0557

A

5

6448,013

0,0759

4,7

16,0664

6117,378

0,07197

4,9

15,1611

A

6

6854,905

0,0797

4,7

16,2198

6365,562

0,07402

4,8

15,1751

A

7

7261,798

0,0835

4,7

16,3695

6613,745

0,07602

4,8

15,2326

A

8

7668,69

0,0871

4,6

16,5156

7000,538

0,07955

4,8

15,3346

A

ЗАВДАННЯ :

Підприємство повинно зробити вибір між двома інвестиційними проектами А та В :

  • початкові інвестиції – (50+10і+j)*1000 грн. і ідентичні для обох проектів;

  • доходи за проектом А : (180+20і+4j)*100 кожний рік протягом 5 років, за В : 1-й рік – W, 2-й рік - 2W , третій - 3W, четвертий - 5W, п’ятий - 9W,

W = (50+6і+j)*100 грн.

- ставка приведення - (10 + і) % .

Обчислити :

  1. NPV, IRR, PI, DPP обох проектів;

  2. Оцінити проект на основі критерію NPV та IRR.

і = 1, …, 8; j= 1, 2, 3.

Як бачимо, при тому, що у всіх випадках IRRпроекту А вище. Але, враховуючи те, що при одинакових початкових інвестиціях в деяких випадках NPV проекту В вище, слід скоріше прийняти його.

Додаток 4. Программа для обчислення прибутковостідо погашення методомсічних.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Anal_oblig

{

class Program

{

public static int N = 100, P = 5;

public static int j, n, z;

public static double a, b, x1, x2, x3, t, e;

public static double[] p = new double[100];

public static double[] v = new double[3];

public static double[] q = new double[100];

public static bool flag;

public static double f(double d)

{

double s = d / 100 + 1;

t = 0;

for (int i = 1; i < n + 1; i++)

{

t = t + p[i] / (Math.Exp((i ) * Math.Log(s)));

}

t = t + N / (Math.Exp((n ) * Math.Log(s))) - P;

return t;

}

public static void root()

{

j = 1;

for (int k = 0; k < 100; k++)

{

q[k] = f(j);

j = j + 5;

}

z = 0;

for (int k = 0; k < 99; k++)

{

if (((q[k] < 0) && (q[k + 1] > 0)) || ((q[k] > 0) && (q[k + 1] < 0)))

{ z = z + 1; }

}

}

public static void sek()

{

x1 = a;

x2 = b;

while (!flag)

{

x3 = x1 - (f(x1) * (x2 - x1)) / (f(x2) - f(x1));

if (Math.Abs(x2 - x3) < e)

{

flag = true;

Console.WriteLine(String.Format("IRR = {0} \n", x3));

break;

}

else

{

x1 = x2;

x2 = x3;

}

}

}

static void Main()

{

n = 25;

for (int k = 0; k < n + 1; k++)

{ p[k] = 6; }

e = 0.001;

a = 1; b = 5;

sek();

root();

if (z > 2)

{

a = 300;

b = 310;

sek();

}

Console.ReadLine();

} } }

Додаток 5 .

Программа в Matlab знаходження IRR проекту.

1) function analiz_IRR

clc;

Q = 100;

P_V = 15;

T = 0.23;

F = 500;

Am = 200;

I = 1000;

eps = 0.000001;

z = fsolve(@VND, 0.5, 0.00001 )

end

function res = VND (IRR)

Q = 60;

P_V = 15;

T = 0.23;

F = 500;

Am = 100;

I = 2000;

NPV = -I;

NPV = NPV + ((0.5* Q * P_V - F - Am) * (1 - T) + Am) / ((1 + IRR)) ;

NPV = NPV + ((0.7* Q * P_V - F - Am) * (1 - T) + Am) / ((1 + IRR)^2);

NPV = NPV + ((0.9* Q * P_V - F - Am) * (1 - T) + Am) / ((1 + IRR)^3);

for i = 4 : 6

NPV = NPV + (( Q * P_V - F - Am ) * (1 - T)+Am) / ((1 + IRR)^i);

end

res = NPV;

end

2) function analiz_IRR

clc;

Q = 100;

P_V = 15;

T = 0.23;

F = 500;

Am = 200;

I = 1000;

eps = 0.000001;

z = fsolve(@VND, 0.5, 0.00001 )

end

function res = VND (IRR)

Q = 60;

P_V = 15;

T = 0.23;

F = 500;

Am = 100;

I = 2000;

NPV = -I;

for i = 1 : 6

NPV = NPV + (( Q * P_V - F - Am ) * (1 - T)+Am) / ((1 + IRR)^i);

end

res = NPV;

end

Додаток 6.

Програма Matlab знаходження NPV проекту:

1) function analiz_NPV

clc;

Q = 100;

P_V = 20;

T = 0.23;

F = 500;

Am = 100;

I = 2000;

IRR = 0.12;

NPV = -I;

NPV = NPV + ((0.5*Q * P_V - F - Am) * (1 - T) + Am) / ((1 + IRR)) ;

NPV = NPV + ((0.7*Q * P_V - F - Am) * (1 - T) + Am) / ((1 + IRR)^2) ;

NPV = NPV + ((0.9*Q * P_V - F - Am) * (1 - T) + Am) / ((1 + IRR)^3);

for i = 4 : 15

NPV = NPV + (( Q * P_V - F - Am ) * (1 - T)) / ((1 + IRR)^i);

end

NPV

end

2) function analiz_NPV

clc;

Q = 100;

P_V = 20;

T = 0.23;

F = 500;

Am = 100;

I = 2000;

IRR = 0.12;

NPV = -I;

for i = 1 : 15

NPV = NPV + (( Q * P_V - F - Am ) * (1 - T)) / ((1 + IRR)^i);

end

NPV

end

Додаток 7.

Программа для розвязання рівняння NPV (Q) = 0.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication3

{

class Program

{

public static int j, n, z;

public static double a, b, x1, x2, x3, t, e;

public static double[] p = new double[100];

public static double[] v = new double[3];

public static double[] q = new double[100];

public static bool flag;

public static double f(double d)

{

double Am = 100, T = 0.23, P_V = 20, F = 500, I0 = 2000;

double IRR = 0.12;

t = 0;

t = t - I0;

t = t + ((0.5*d * P_V - F - Am) * (1 - T) + Am) / (Math.Pow(1 + IRR, 1)); ;

t = t + ((0.7*d * P_V - F - Am) * (1 - T) + Am) / (Math.Pow(1 + IRR, 2)); ;

t = t + ((0.9*d * P_V - F - Am) * (1 - T) + Am) / (Math.Pow(1 + IRR, 3)); ;

for (int i = 4; i < n + 1; i++)

{

t = t + ((d * P_V - F - Am) * (1 - T) + Am) / (Math.Pow(1 + IRR, i)); ;

}

return t;

}

public static void root()

{. . . }

public static void sek()

{. . . }

static void Main()

{

Console.WriteLine("VVedi srok proekta");

n = Convert.ToInt32(Console.ReadLine());

e = 0.001;

a = 1;

b = 5;

sek();

root();

if (z > 2)

{

a = 300;

b = 310;

sek();

}

Console.ReadLine();

}

}

}

Перелік використаної літератури:

1. Жуленев С. В. «Фінансова математика : Введення в класичну теорію» - М., Вид-во МГУ, 2001. - 480 с.

2. Малихін В. І. «Фінансова математика: Навч. посібник для вузів» - 2-е вид., – М.: ЮНИТИ-ДАНА, 2003. - 237 с.

3. С.С. Кліменко, В.М. Мацкул, Н.Л. Воропай «Методичні вказівки та завдання до самостійної роботи з курсу «Фінансова математика». – Одеса: ОДЕУ, 2005. – 343 с.

4. І. Я. Лукасевич. «Аналіз фінансових операцій.» М., ФиС, 1998г. – 402 с.

5. Я. С. Мелкунов. Теоретичний і практичний посібник по фінансовим обчисленням., М., ІНФРА-М, 1996 р.

6. Інтернет-ресурси : http://fin-admin.com;http://ru.wikipedia.org та ін.

59