
- •Курсовая работа
- •Введение
- •I. Задачи линейного программирования
- •1.1.Графическое решение задач линейного программирования
- •1.2. Решение задач линейного программирования симплекс-методом
- •1.3. Транспортная задача
- •Пример решения задачи по закреплению группы потребителей за несколькими поставщиками.
- •1.4. Задача о назначениях
- •Пример решения задачи о назначениях венгерским методом.
- •1.5. Задача о ранце
- •Пример решения задачи о ранце методом ветвей и границ.
- •II. Модели нелинейного программирования.
- •1 Подраздел метод «золотого сечения»
- •Пример решения задачи нелинейного программирования методом «золотого сечения».
- •2 Подраздел методы спуска
- •Метод покоординатного спуска
- •Градиентные методы
- •Пример решения задачи нелинейного программирования методами спуска: методом покоординатного спуска и градиентным методом.
- •Заключение.
Пример решения задачи нелинейного программирования методом «золотого сечения».
Постановка задачи.
У предприятия имеются свободные средства для инвестирования. Предприятие вложило эти средства в облигации со сроком погашения 6 месяцев. Курсовая стоимость облигации возрастает по мере приближения срока погашения этой облигации. Действия предприятия могут быть различными:
дожидаться срока погашения облигации, после чего получить проценты по ней и ее нарицательную стоимость;
продать облигацию по возросшей курсовой стоимости до окончания срока погашения и купить облигации нового выпуска по более низкой курсовой стоимости (такая операция называется реинвестированием).
Предполагая, что темп роста стоимости облигаций всех выпусков от аукциона к погашению равномерен и одинаков, найти оптимальный период для реинвестирования средств, дающий максимальную доходность их использования за шесть месяцев.
Обозначим:
К - величина расходов на операцию реинвестирования в процентах;
П - потенциал роста стоимости облигаций до погашения в процентах в день;
Т - период оптимального реинвестирования, подлежащий определению.
Целевая функция, определяемая как полный доход за шесть месяцев, приходящийся на единицу первоначально вложенных средств, имеет вид:
Запишем задачу, как задачу минимизации
и решим ее методом «золотого сечения», задав точность вычислений до 7 дней. При этом величина расходов на операцию реинвестирования в процентах: К=0,4%; потенциал роста стоимости облигаций до погашения в процентах в день: П=0,25%.
Решение.
Данная задача НЛП будет решена методом «золотого сечения».
Алгоритм решения:
ШАГ 0. Задаём значения интервала нашей функции:
a0=0;
b0=180;
Вычисляем координаты точек, осуществляющих золотое сечение исходного отрезка по формулам (2.1):
у0=0+0,382(180-0)=68,76;
z0=0+180-68,76=111,24.
Вычисляем значения целевой функции в этих точках, то есть :
f(y0)=1-(1+(0,25%/100)× 68,76-0,4%/100)180/ 68,76 =
= 1-(1+0,0025× 68,76-0,004) 180/ 68,76 = -0,5012554;
f(z0)=1-(1+0,0025×111,24-0,004) 180/ 111,24 = -0,4799.
Шаг будем определять следующим образом:
∆0= b0 - y0= z0 - a0 =111,24.
ШАГ 1 . Cравниваем значения f(y0) и f(z0):
-0,5012554< -0,4799 ;
f(y0) < f(z0).
Значит, по формулам (2.2) полагаем:
а1=а0= 0;
b1= z0=111,24;
z1= y0=68,76;
далее по формуле (2.3) определяем:
y1= а1+ b1–z1=0+111,24-68,76= 42,48.
Вычисляем значения целевой функции в этих точках, то есть:
f(y1)= 1-(1+0,0025×42,48 -0,004) 180/ 42,48 = -0,510322;
f(z1)= 1-(1+0,0025×68,76-0,004) 180/ 68,76 = -0,5012554.
Определяем шаг этой итерации:
∆1= b1 – y1= z1 – a1=111,24 –42,48=68,76.
2 итерация. Cравниваем значения f(y1) и f(z1):
-0,510322 <-0,5012554 ;
f(y1) < f(z1).
Значит, по формулам (2.2) полагаем:
а2=а1= 0;
b2= z1=68,76;
z2= y1=42,48;
далее по формуле (2.3) определяем:
y2= а2+ b2–z2=0+68,76 –42,48 =26,28.
Вычисляем значения целевой функции в этих точках, то есть:
f(y2)= 1-(1+0,0025×26,28–0,004) 180/ 26,28 = -0,506935;
f(z2)= 1-(1+0,0025×42,48-0,004) 180/ 42,48 = -0,510322.
Определяем шаг этой итерации:
∆2= b2 – y2= z2 – a2=68,76–26,28= 42,48.
3 итерация. Cравниваем значения f(y2) и f(z2):
-0,506935> -0,510322;
f(y2) > f(z2).
Значит, по формулам (2.4) полагаем:
а3= y2=26,28;
b3= b2 =68,76;
y3= z2=42,48;
далее по формуле (2.5) определяем:
z3= а3+ b3– y3=26,28+68,76–42,48= 52,56.
Вычисляем значения целевой функции в этих точках, то есть:
f(y3)= 1-(1+0,0025×42,48-0,004) 180/ 42,48 = -0,510322;
f(z3)= 1-(1+0,0025×52,56–0,004) 180/ 52,56 =-0,50782.
Определяем шаг этой итерации по формуле (2.6):
∆3= b3 – y3= z3 – a3=68,76–42,48=26,28.
4 итерация. Cравниваем значения f(y3) и f(z3):
-0,510322<-0,50782;
f(y3) < f(z3).
Значит, по формулам (2.2) полагаем:
а4=а3=26,28;
b4=z3=52,56;
z4=y3=42,48;
далее по формуле (2.3) определяем:
y4= а4+ b4–z4=26,28+52,56–42,48 =36,36.
Вычисляем значения целевой функции в этих точках, то есть:
f(y4)= 1-(1+0,0025×36,36–0,004) 180/ 36,36= -0,510624;
f(z4)= 1-(1+0,0025×42,48-0,004) 180/ 42,48 = -0,510322.
Определяем шаг этой итерации по формуле (2.6):
∆4= b4 – y4= z4 – a4=52,56–36,36=42,48–26,28=16,2.
5 итерация. Cравниваем значения f(y4) и f(z4):
-0,510624< -0,510322;
f(y4) < f(z4).
Значит, по формулам (2.2) полагаем:
а5=а4=26,28;
b5=z4=42,48;
z5= y4=36,36;
далее по формуле (2.3) определяем:
y5= а5+ b5–z5=26,28+42,48–36,36=32,4.
Вычисляем значения целевой функции в этих точках, то есть:
f(y5)= 1-(1+0,0025×32,4–0,004) 180/ 32,4 = -0,509997;
f(z5)= 1-(1+0,0025×36,36-0,004) 180/ 36,36= -0,510624.
Определяем шаг этой итерации по формуле (2.6):
∆5= b5 – y5= z5 – a5=42,48–32,4=36,36–26,28=10,08.
6 итерация. Cравниваем значения f(y5) и f(z5):
-0,509997> -0,510624;
f(y5) > f(z5).
Значит, по формулам (2.4) полагаем:
а6= y5=32,4;
b6=b5 =42,48;
y6=z5=36,36;
далее по формуле (2.5) определяем:
z6= а6+ b6– y6=32,4+42,48–36,36=38,52.
Вычисляем значения целевой функции в этих точках, то есть:
f(y6)= 1-(1+0,0025×36,36-0,004) 180/ 36,36= -0,510624;
f(z6)= 1-(1+0,0025×38,52–0,004) 180/ 38,52= -0,510664.
Определяем шаг этой итерации по формуле (2.6):
∆6= b6 – y6= z6 – a6=42,48–36,36=38,52–32,4=6,12.
Данные расчётов по всем итерациям сведены в таблицу 1.
Таблица 1.
|
П=0,25 % К=0,4 % |
||||||
|
ak |
bk |
yk |
zk |
f(yk) |
f(zk) |
шаг |
0 итерация |
0 |
180 |
68,76 |
111,24 |
-0,501255 |
-0,4799 |
111,24 |
1 итерация |
0 |
111,24 |
42,48 |
68,76 |
-0,510322 |
-0,501255 |
68,76 |
2 итерация |
0 |
68,76 |
26,28 |
42,48 |
-0,506935 |
-0,510322 |
42,48 |
3 итерация |
26,28 |
68,76 |
42,48 |
52,56 |
-0,510322 |
-0,50782 |
26,28 |
4 итерация |
26,28 |
52,56 |
36,36 |
42,48 |
-0,510624 |
-0,510322 |
16,2 |
5 итерация |
26,28 |
42,48 |
32,4 |
36,36 |
-0,509997 |
-0,510624 |
10,08 |
6 итерация |
32,4 |
42,48 |
36,36 |
38,52 |
-0,510624 |
-0,510664 |
6,12 |
Так как заданная точность вычислений (Е=7) превышает шаг, полученный в 6 итерации (∆6 =6,12), то вычисления прекращаются.
Таким образом, весь алгоритм сходится за 7 итераций, считая и нулевую. Оптимальное значение дохода получается при реинвестировании в течение с 36 до 38 дней.