Page 254 - 6197
P. 254

Функція fun приймає вектор і повертає скалярну величину
                            f.  Функції,  які  обчислюють  нелінійні  обмеження  у  вигляді
                            нерівностей     c    0x     і   нелінійні   обмеження-рівності

                             c    0x  , повинні  бути оформлені як вектор-функції,  тобто
                              eq
                            величина  с  є  вектором  змінної  x ,  який  містить  нелінійні
                            нерівності,  відповідно  Ceq  є  вектор,  який  містить  нелінійні
                            рівності,  що  залежать  від  x .  Nonlcon  приймає  вектор  x   і
                            повертає  два  вектора  с  і  Ceq.  Функції  fun  і  nonlcon
                            повинні  бути  оформлені  у  вигляді  окремого  М-файлу  і
                            записані  як  функції  аргументу  x .  Аргумент  x0  визначає
                            стартову точку, з якої починається ітераційний процес.
                                Матриці A Aeq та вектори b,beq формуються так же, як
                            і для функції linprog.
                                Приклад 4.23. На прикладі задачі, яка наведена у розділі 3
                            (приклад  3.4),  покажемо  техніку  застосування  вбудованої
                            функції  fmincon  для  розв’язування  задачі  нелінійного
                            програмування. Отже, розв’язуємо задачу
                                                                2
                                                  min : R   x   x   2x
                                                                1     2
                            за умови, що
                                                            2
                                                 g    x   x   x   2 0 ,
                                                  1        1    2
                                                 g    x   x   2x   4 0 .
                                                  2       1     2
                                Перше  із  двох  обмежень,  які  утворюють  допустиму
                            область, нелінійне, а друге – лінійне. Цю обставину врахуємо,
                            подаючи  задачу  у  такому  вигляді,  як  це  прийнято  у  системі
                                                       2
                            MatLab:        f   R   x   x   2x ,   A    1 2  ,   b   4 ,
                                                             2
                                                       1
                                     2
                                                     []
                             c    x   x   x   2,  c  .
                                     1
                                                 eq
                                         2
                                Тепер    створимо      файл-програму      для    розв’язання
                            сформованої задачі у системі MatLab.

                            %=====================================
                                                           254
   249   250   251   252   253   254   255   256   257   258   259