ПредишенСледващото

Matlab. Оптимизация, линейното програмиране.

Търсене екстремни функции на една променлива. Локално търсене (в определени граници) минимум изпълнява функция [X, Y] = fminbnd (имеНаФункцията, granitsyIntervala). Ако е необходимо да намерите местен минимум на функцията, която да вземе различно знак и да я търсят най-малкото, което е в действителност своя максимум. Когато тази функция е стойността на максималната стойност намерен с друга марка.

9 лекция Matlab (оптимизиране, линейно програмиране)
9 лекция Matlab (оптимизиране, линейно програмиране)
9 лекция Matlab (оптимизиране, линейно програмиране)
9 лекция Matlab (оптимизиране, линейно програмиране)

Търсене крайности на функция на няколко променливи. Ако функцията се изчислява на няколко променливи, а след това да се намери се използва минималната (след първоначалната приблизителна оценка приближения променливи в приема минимум) команда [X, Y] = fminsearch (имеНаФункцията, vektorNachalnyhPriblizheniyPeremennyh).

9 лекция Matlab (оптимизиране, линейно програмиране)
9 лекция Matlab (оптимизиране, линейно програмиране)

Решаването на задачи на линейното програмиране. Проблемите на линейното програмиране се изисква, за да намерите максималната или минималната на линейна функция на няколко променливи с линейни ограничения под формата на равенства и неравенства. Помислете например следния проблем.

Нека функцията L (x1, x2, x3, x4) = x1 + x2 + x3 + х4, и трябва да намери своя максимум и неговите съответните максимални стойности на променливите.

Да предположим, че неравенството ограничения. x1 ≥0, x2 ≥0, x3 ≥0, x4 ≥0.

Да предположим също, че все още са ограничения под формата на неравенството.

За решаване на проблема линейното програмиране (намиране на минимум) се използва функцията [X, L, F] = linprog (с, А, В, А1, В1, Ьх, Rx) където

х векторни стойности на променливите, получени като отговор; L стойност на функцията на минимум;

е параметър, характеризиращ изчислителния процес (ако е нула тогава решението е спряно след достигане на максимален брой повторения, ако е положителен тогава всичко е наред реши дали решението е отрицателно не е намерен);

С цел функция е представена като вектор на коефициенти (в този случай [1 1 1 -1], но тъй като трябва максимално и функцията [X, L, F] = linprog (с, А, В, А1, В1, Ьх, Rx) търсено най-малко по отношение на функцията промени знак, така вектор коефициент е [-1 -1 -1 1]);

9 лекция Matlab (оптимизиране, линейно програмиране)

А, ограничения б система, определени в матрица форма Ax≤b на (в нашия проблем е ограничение 3x1 -X2 ≤7, x2 -2x3 ≤-1, 4x3 -x4 ≤3, 5x1 + 2x4 ≥14, но тъй като 5x1 + 2x4 ≥14 не е подходящ, е необходимо да се променя знака на неравенство в този случай ще -5x1 -2x4 ≤-14, в този случай, матрицата се състои от коефициенти (с променливи) в тези неравенства, и колона б се състои от прав (не съдържащ променливи ) страни на неравенството;

9 лекция Matlab (оптимизиране, линейно програмиране)

А1, В1 система от уравнения на форма A1x = В (в нашия проблем на такава система няма ограничение, но може да бъде);

Lx, Rx отнасят до ограничения под формата на Lx≤x≤Rx, Lx≤x, x≤Rx (в нашия проблем е ограничен тип Lx≤x, така Lx вектор е 0 0 0 0).

Когато linprog функция се използва в списъка с аргумент на мястото на тези, които не са в списъка, поставете празни квадратни скоби.

Нека разгледаме един пример за една тренировка. При един функция W = x1 + х2 + 3x3 -x4 и трябва да се намери своя максимум. Да предположим, че неравенството ограничения.

9 лекция Matlab (оптимизиране, линейно програмиране)
9 лекция Matlab (оптимизиране, линейно програмиране)

Ние реши проблема с функцията [X, L, F] = linprog (с, А, В, А1, В1, Ьх, Rx). За неговото прилагане, ние трябва да се подготви аргументите на функцията. Векторът с коефициентите на функцията е равна на (1, 1 3-1), но като функция на поне linprog търси и трябва максимум, след което променя знака на коефициентите на функцията и след това векторът е (-1 -1 -3 1). матрицата се състои от коефициентите на променливите в системата на неравенство x1 -5x2 + 4x3 ≤5, x1 -2x2 -3x3 ≤4, x1 + 6x2 + 5x3 ≤4, х2 + x3 ≤1. Тъй като всички те са запознати с ≤ че не е необходимо да се промени нищо. Векторът В се състои от страните на дясната страна на същите неравенства. A1 матрица A1h = b1 система не е от значение за нас (не съществуват такива условия). Lx, Rx се отнасят до ограничения под формата на Lx≤x≤Rx, Lx≤x, x≤Rx. Ние имаме неравенство ограничения. x1 ≥0, x2 ≥0, x3 ≥0, x4 ≥0. Тогава векторът Lx = [0; 0; 0; 0]. Що се отнася до други видове ограничения, а след това, тъй като ние нямаме такива ограничения, те не са важни за нас.

нелинейно програмиране проблем. В нелинейна проблемът се различава от линейна. Това е система от линейни неравенства Ax≤b, системата линейни уравнения A1x = b1, система lx≤x≤rx видове ограничения, lx≤x, x≤rx. Въпреки това, освен тези запознати (от линейното програмиране) условия, съществува система на нелинеен тип G1 (х) ≤0 ограничения и нелинейни уравнения g2 (х) = 0. За решаване на нелинейни програмиране проблема (след вектор избор x0 първоначалното приближение) се използва функцията [х, у, е] = fmincon (F, x0, А, В, А1, В1, Ьх, Rx, G), където G е М-функция който изчислява лявата част на нелинейна ограничения G1 на (х) ≤0, g2 (х) = 0. Ако някой от аргументите не са определени, а след това да ги замени параметър на функцията са поставени квадратни скоби.

9 лекция Matlab (оптимизиране, линейно програмиране)
9 лекция Matlab (оптимизиране, линейно програмиране)

Да вземем например следния проблем. Нека функция x1 2 + 2 х2 = 1 при условие, че x1 х2 = 4, x1 ≥0, x2 ≥0. Vector първоначалните приближения да равно x0 = (0.1, 0.1).

Подкрепете проекта - споделете линка, благодаря!