Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/68: Рейтинг темы: голосов - 68, средняя оценка - 4.71
4 / 4 / 0
Регистрация: 28.12.2012
Сообщений: 23
1

Найти максимум функции с ограничениями

30.05.2013, 21:33. Показов 13452. Ответов 6
Метки faq+ (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста решить задачку:
Необходимо найти максимум функции f(x)=2x(1)^2+4x(1)+1+x(2)^2+4*x(2)
При : -2<x(1)<10
0<x(2)<5
Заранее спасибо))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2013, 21:33
Ответы с готовыми решениями:

Найти минимум целевой функции с двумя переменными с ограничениями
Всем добрый день. Нужно методом линейного программирования минимизировать функцию. Вот задание:...

Минимум/максимум функции с ограничениями и их график
Почему оно ругается на Х1 ? И как (если тогда после исправления всё заработает остальное)...

Найти максимум с ограничениями
Найти максимум функции с ограничениями: f \left(x \right)= 2\sqrt{x1}+\sqrt{x2}+3\sqrt{x3} ...

Найти максимум функции
. Найти максимум функции F=- 8x1 +5x2 при ограничениях: x1 + 3x2 ≥ 5 x1+2x2 ≤ 7...

6
461 / 451 / 56
Регистрация: 28.05.2013
Сообщений: 699
30.05.2013, 23:10 2
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function x=Zadachka
x1min=-2;
x1max=10;
x2min=0;
x2max=5;
x1=linspace(x1min,x1max,100);
x2=linspace(x2min,x2max,100);
[X1,X2]=meshgrid(x1,x2);
f=2*X1.^2+4*X1+1+X2.^2+4*X2;
surf(X1,X2,f)
axis tight
xlabel('x(1)')
ylabel('x(2)')
zlabel('f')
% Из графика видно, что оптимум один. Значит достаточно применить алгоритм
% локальной оптимизации. Например fmincon
 
options = optimoptions('fmincon','Algorithm','active-set');
x = fmincon(@myfun,[0,0],[],[],[],[],[x1min,x2min],[x1max,x2max],[],options);
  function f = myfun(x)
  f=-(2*x(1).^2+4*x(1)+1+x(2).^2+4*x(2));
  end
end
Простая ведь задача. В чём проблема решить её самому?
2
Зосима
03.06.2013, 16:18
  #3

Не по теме:

tvoretsmira, спасибо! :senor: У нас тут мало человеков, разбирающихся в нахождении максимума с ограничениями :pardon:

0
4 / 4 / 0
Регистрация: 28.12.2012
Сообщений: 23
11.06.2013, 00:40  [ТС] 4
Простая но чет для меня в новь..я копирнул код но у меня кроме построения графика ничего не идет...нет конкретных значений максимума ф-ии...можно же и без графика...я почитал про функцию Fmincon...но простых примеров типа моего не встретил....да про нее как то непросто написано везде..помогите разобраться пожалуйста ну или комменты к коду напишите если не сложно..
0
461 / 451 / 56
Регистрация: 28.05.2013
Сообщений: 699
13.06.2013, 11:56 5
Сохраняете функцию в *.m файл:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function [x,FuncVal]=Zadachka
x1min=-2;
x1max=10;
x2min=0;
x2max=5;
x1=linspace(x1min,x1max,100);
x2=linspace(x2min,x2max,100);
[X1,X2]=meshgrid(x1,x2);
f=2*X1.^2+4*X1+1+X2.^2+4*X2;
surf(X1,X2,f)
axis tight
xlabel('x(1)')
ylabel('x(2)')
zlabel('f')
% Из графика видно, что оптимум один. Значит достаточно применить алгоритм
% локальной оптимизации. Например fmincon
 
options = optimoptions('fmincon','Algorithm','active-set');
[x,fval] = fmincon(@myfun,[0,0],[],[],[],[],[x1min,x2min],[x1max,x2max],[],options);
FuncVal=-fval;
  function f = myfun(x)
  f=-(2*x(1).^2+4*x(1)+1+x(2).^2+4*x(2));
  end
end
Затем запускаете в коммандном окне
Matlab M
1
[x,FuncVal]=Zadachka
Значение в переменной (аргумента), при которой достигнут максимум функции в результате будет находится в переменной x, а значение функции в переменной FuncVal
Обратите внимание на то, что fmincon ищет минимум функции, а нам нужен максимум. Поэтому функция, по которой находим минимум, и функция, для которой надо найти максимум, имеют противоположные знаки.

Цитата Сообщение от Махалов Посмотреть сообщение
я копирнул код но у меня кроме построения графика ничего не идет
Пишите конкретные ошибки, которые показывает вам Матлаб. Мне тяжело понять что может не идти в функции, которая у меня работает.
1
4 / 4 / 0
Регистрация: 28.12.2012
Сообщений: 23
14.06.2013, 13:42  [ТС] 6
Все ок) спасибо)) один вопрос: не появляются переменные в workspace почему?не могу получить конкретные данные
0
461 / 451 / 56
Регистрация: 28.05.2013
Сообщений: 699
14.06.2013, 14:21 7
Базовое рабочее пространство (Workspace) и пространство функции, это 2 разных пространства. Вы можете:
1. передать переменные в качестве выходных из функции при её вызове;
2. Записать данные из функции в базовое рабочее пространство (функции evalin или assignin);
3. сохранить в данные из функции в файл и загрузить в файл в рабочее пространство (функции save и load).
0
14.06.2013, 14:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.06.2013, 14:21
Помогаю со студенческими работами здесь

Найти максимум функции
Здравствуйте, Найти максимум функции f(x,y)=(x^2)*(y^2)/(1+x^2+y^2)^a, где а&gt;0 Пробовал решать...

Найти максимум функции
Найти максимум функции : Y = x² + 6*√(z+x) + 7 , где x = ln|sina+b|, при 1≤a≤5, h=0,9;...

Найти максимум функции
дана задача количество точек любое, есть функция у=(х*х)-(х/2), найти максимум этой функции!...

Найти минимум и максимум функции
помогите решить 31. Найти минимум и максимум функции Y = X3 – 7X +8, х принимает целые значения на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru