- •Факультет информационных технологий и управления
- •1 Математическое описание линейных систем
- •1.1 Дифференциальное уравнение системы.Характеристическое уравнение и его корни
- •1.2 Разложение передаточной функции на сумму простых слагаемых. Вычисление импульсной переходной характеристики ω(t) спомощью обратного преобразования Лапласа и переходной характеристикиh(t)
- •1.3 Построение лачх и лфчх
- •1.4 Уравнение состояния в нормальной форме,схема моделирования
- •1.5 Уравнение состояния в канонической форме,
- •1.6 Решение уравнения состояния в нормальной и канонической формах
- •1.7 Проверка: одинаково ли значение коэффициента усиления по передаточной функции, переходной характеристике,моделям в пространстве состояний, аналитической записи импульсной переходной характеристики
- •2 Линейное программирование
- •2.1 Математическая модель задачи. Нахождение оптимального плана х* и экстремального значения функции
- •2.2 Построение и решение задачи, двойственной к исходной. Сравнение решения прямой и двойственной задач
- •2.3 Получение целочисленного решения путем введения дополнительных ограничений по методу Гомори
- •3.2.2 Метод Ньютона-Рафсона
- •3.3 Нахождение экстремального значения функцииF(X) с учетом системы ограничений задачи
- •3.3.1 Метод допустимых направлений Зойтендейка
- •3.3.2 Метод линейных комбинаций
- •3.3.3 Условия теоремы Куна-Таккера
- •4 Тексты программ в среде matlab
- •4.1 Математическое описание линейных систем
- •4.2 Линейное программирование
- •4.3 Нелинейное программирование
4.3 Нелинейное программирование
Изображение фигуры
[x1,x2]=meshgrid([-5:0.1:5]);
F=6*x1.^2+6*x2.^2-3*x1.*x2+8*x2;
figure(1)
plot3(x1,x2,F)
grid on
figure(2)
contour(x1,x2,F)
grid on
figure(3)
meshc (x1,x2,F)
grid on
Рисунок 4.1 – Изображения функции цели
Построение линий уровня:
[x1,x2]=meshgrid([-2:0.1:9]);
F=6*x1.^2+6*x2.^2-3*x1.*x2+8*x2;
figure;
cl=[-1 15.5 130 300 500 ];
[c,h]=contour3(x1,x2,F,cl,'r');
clabel(c,h);
view(0,90);
Рисунок 4.2 - Линии уровня
Решение задачи нелинейного программирования без ограничений в Matlab:
F=inline('6*x(1)^2+6*x(2)^2-3*x(1)*x(2)+8*x(2)');
x0=[1 3];
options=optimset('LargeScale','off');
[x,fval,exitflag,output]=fminunc(F,x0,options);
x
fval
Local minimum found.
Optimization completed because the size of the gradient is less than
the default value of the function tolerance.
<stopping criteria details>
x =
-0.1778 -0.7111
fval =
-2.8444
Решение задачи нелинейного программирования с ограничениями в Matlab:
F=6*x1.^2+6*x2.^2-3*x1.*x2+8*x2;
A=[7 -4;1 4];
B=[-4 36];
x0=[1 3];
H=[12 -3;-3 15];
f=[0 8];
vlb=zeros(2,1);
vub=[];
x=quadprog(H,f,A,B,[],[],vlb,vub);
z=f*x+0.5*x'*H*x;
x
z
Warning: Large-scale algorithm does not currently solve this
problem formulation,
using medium-scale algorithm instead.
> In quadprog at 293
Optimization terminated.
x =
0
1.0000
z =
14.0000