Bir yoki ko’p o’zgaruvchili funksiyalar uchun optimallashtirish. Optimallashtirish masalalarini yechish uchun Matlab funksiyalari OPTIMIZATION kutubxonasi
Bir yoki ko’p o’zgaruvchili funksiyalar uchun optimallashtirish. Optimallashtirish masalalarini yechish uchun Matlab funksiyalari OPTIMIZATION kutubxonasi Reja: 1. Funksiyalar uchun optimallashtirish masalasining qo’yilishi; 2. Funksiyalar uchun optimallashtirish masalasini yechish usullari; 3. Optimallashtirish masalasini yechish Matlab funksiyalari; 4. Optimization kutubxonasining imkoniyatlari. Misollar.
1.Funksiyalar uchun optimallashtirish masalasining qo’yilishi. Juda ko’p nazariy va amaliy masalalarni xal qilishda bir nechta o’zgaruvchiga bog’liq bo’lgan funksiyalarning ekstremumini (maksimum yoki minimum) topish masalasiga duch kelinadi (masalan, parametrik identifikatsiya masalasida). Bunday funksiyani umumiy holda f(x 1 , x 2 , …, x n ,) ko’rinishida yozib, x=( x 1 , x 2 ,…, x n ,) vektorni kiritsak, u holda f(x) funksiya uchun ekstremumni (ma’lum bir A to’plamda) topish quyidagicha qo’yiladi: x vektorning berilgan (aniqlangan) to’plamga tegishli shunday x* qiymatini topingki, u uchun (maksimum) max xєA f(x)= f¿ tenglik o’rinli bo’lsin. Albatta, bu nuqtada f(x), xєA, funksiya uchun f(x)≤f(x*), xєA tengsizlik o’rinli bo’ladi. Umuman x* nuqta funksiyaning maksimum nuqtasi deyiladi. Xuddi shunga o’xshash minimum nuqta haqida ham gapirish mumkin. Umuman olganda, maksimum va minimum masalalarda birinchisidan ikkinchisini keltirish mumkin. Masalan, f(x), xєA funksiyani maksimumini topish masalasi g(x)=-f(x), xєA funksiyaning maksimumini topishga ekvivalentdir. Funksiyaning minimumini yoki maksimumini topishni optimallashtirish masalasi deb ataymiz. 2. Funksiyalar uchun optimallashtirish masalasini yechish usullari. Matematikada har xil tipdagi funksiyalarni optimallashtirish usullari juda ham ko’p, lekin ularni masalani yechishga talqin qilish bo’yicha ikkita guruhga ajratish mumkin. Birinchi guruhga masalani hal qilish uchun qo’llaniladigan bilvosita usullarni kiritish mumkin. Bu holda ko’p o’zgaruvchili
funksiyalar uchun x* nuqtada ekstremum shartining natijasi bo’lgan chiziqli yoki chiziqsiz tenglamalar sistemasini yechimini topishga keltiriladi. Bizga ma’lumki, ekstremum nuqtada funksiyaning barcha birinchi tartibli xususiy xosilalari nolga teng bo’ladi: ∂ f ∂ x i ¿ x = x ¿ = 0 , i=1,2,…,n. Shu tenglamalar sistemasini yechib ekstremum bo’lish mumkin bo’lgan nuqta aniqlanadi. Undan tashqari birinchi guruh usullarga urinmalar usulini, vatarlar usulini, Nyuton usulini va boshqalarni kiritish mumkin. Bu usullarning asosiy kamchiliklariga chiziqsiz tenglamalar sistemasini yechishdagi murakkabliklar kiradi. Shuning uchun, ko’pincha optimallashtirish masalasini amalda yechish uchun usullar qo’llaniladi. Bu holda optimallashtirish masalasini yechish uchun shunday x 0 , x 1 ,…, x n ,…vektorlar ketma-ketligi tuziladiki, ular uchun f(x 0 )< f(x 1 )<…< f(x n )<… tengsizlik o’rinli bo’lsin. Natijada, ma’lum qadamdan keyin ekstremum nuqtaning taqribiy qiymati topiladi. Umuman olganda, boshlang’ich nuqta x 0 ixtiyoriy bo’lishi mumkin, lekin uni tanlashda funksiya va uni ekstremumi haqida barcha ma’lumotlarni ishlatib x 0 ni ekstremum nuqtaga iloji boricha yaqin qilib tanlash maqsadga muvofiqdir. 3.Optimallashtirish masalasini yechish Matlab funksiyalari. Optimallashtirish masalasini yechish uchun Matlab paketi yadrosidagi va maxsus Optimization kutubxonasidagi (vositalar to’plami) funksiyalardan foydalanish mumkin. Bu funksiyalarni ko’rishdan avval Matlabda ishtirok etuvchi qo’shimcha element –foptions1 massividir. Bu massivda <standart parametrlar> (< параметр ы по умолчанию >) deb
nomlanuvchi va optimizatsiya protiduralarda foydalaniladigan parametrlar saqlanadi. Shu massivning har bir elementini ko’rib chiqamiz. options(1)-akslantirish parametric standart qiymati( по умолчанию ) 0 ga teng, 1 qo’yilganda ba’zi natijalarni akslantiradi; options(2)-x uchun hisoblashlar to’xtatilishining aniqligi; по умолчанию 1е-4; options(3)-F uchun hisoblashlar to’xtalishining aniqligi; по умолчанию 1е-4; options(4)-chegara buzilishida uzish kriteriysi; по умолчанию 1е-6; options(5)-algoritm: strategiya:har doim ham ishlatilavermaydi; options(6)-algoritm:Optimizator: Har doim ham ishlatilavermaydi; options(7)-algoritm: Chiziqli qidiruv algoritmi; по умолчанию 0; options(8)-Lyambda funksiyaning qiymati; options(9)-Agar foydalanuvchi taklif qilgan gradiyentlarni tekshirish kerak bo’lsa, bu parametrga 0 qo’yiladi; options(10)-funksiya va chegaralarni baholashlar soni; options(11)-funksiya gradiyentini baholashlar soni; options(12)-chegaralarni baholashlar soni; options(13)-tenglikka qo’yilgan chegaralar soni; options(14)-funksiyaning maksimal baholashlar soni; options(15)-maqsadli funksiyani maxsus maqsadlar uchun ishlatish; options(16)-chekli ayirmali gradiyentlar uchun o’zgaruvchilarni minimal o’zgarishi; options(17)-chekli ayirmali gradiyentlar uchun o’zgaruvchilarni maksimal o’zgarishi;
options(18)-qadam uzunligi( по умолчанию ≤1); Har xil optimizatsiya jarayonlar uchun bu parametrlardan har xillari ishlatiladi. Shuning uchun konkret optimizatsiya jarayon uchun qanday parametr berilgan bo’lishi va qanday param е tr ma’lum natijani qaytarishi alohida aytib o’tishi kerak bo’ladi. Parametrlar avvaldan aniqlab olingandan so’ng, funksiyani optimallashtirish jarayoniga o’tsa bo’ladi. Matlab yadrosida optimallashtirish masalasini yechish uchun 2 ta funksiya : fmin-bir o’zgaruvchili funksiyalar uchun ; fmins-ko’p o‘zgaruvchili funksiyalar uchun mavjuddir. Birinchi funksiya fmin bir nechta formulalarda yoziladi: x=fmin(‘fun’,x1,x2); x=fmin(‘fun’,x1,x2,options); x=fmin(‘fun’,x1,x2,options,p1,p2); x=fmin(‘fun’,x1,x2,options,p1,p2,…); [x,options]=fmin(…) Birinchi ko’rinishdagi x=fmin(‘fun’,x1,x2) Matlab funksiyasi fun(x) funksiyaning x1<x<x2 oraliqdagi minimumga erishtiruvchi x ning qiymatini aniqlaydi; x=fmin(‘fun’,x1,x2,options)-funksiyasi esa xuddi yuqoridagidek vazifani bajarib, unda qo’shimcha boshqarish parametrlarini ishlatadi; x=fmin(‘fun’,x1,x2,options,p1,p2,…)-funksiya ham yuqoridagidek vazfani bajaradi, lekin bunda fun(x) funksiyaga parametrlar sifatida p1,p2,…, larning qiymatlarini kiritadi, natijada fun(x,p1,p2,…) funksiya olinadi.