2015-06-02 3 views
0

Я написал функцию «Максимизация валовой маржи», которая используется в сельском хозяйстве. Формула такова:Запись функции в синтаксисе matlab

макс сигма (я = 1 п) сигмы (к = 1 пс) (Рц * Yij - SDij ... (и так далее)) ...

полный формула в этой ссылке: http://i.stack.imgur.com/fMSiU.jpg

Я думаю, что у него нет синтаксиса реального словаря Matlab, и он на самом деле не вычисляет максимум. И есть две другие формулы, которые я хочу смешать с этим и связать их с эволюционным алгоритмом (NSGA-II), и я действительно не знаю, как, хотя я смутил себя, ища его.

Это моя функция в MATLAB:

function gx = costfunction(p,y,sd,fer,lb,oc,a,wp,Q,ma) 
SigmaQNC = zeros(5,3); 
SigmaNC = zeros(5,3); 
for i=1:5 
for j=1:3 
    SigmaQNC(i,j) = SigmaQNC(i,j) + Q(i,1); 
    SigmaNC(i,j) = (p(i,j).*y(i,j))-(sd(i,j)-fer(i,j)-lb(i,j)-oc(i,j)-ma(i,j)).*a(i,j)-wp(i,j).*SigmaQNC(i,j); 
    sort(SigmaNC); 
end 
end 
gx=SigmaNC; 
end 

Вопрос заключается в том, как на самом деле писать в синтаксисе MatLab и как связать эти три формулы для NSGA-II с ограничениями (например, мин Aij < = процент Aij < = max Aij)

Любая помощь будет оценена по достоинству.

+0

Что такое 'Aij'? Фиксированное значение, переменная? Является ли min Aij и max Aij обозначением наименьшего и наибольшего значения в матрице? – patrik

+0

Ваша формула не имеет смысла. Результатом вложенных сумм является одно число (поскольку вы суммируете все доступные индексы, 'i' и' j'). Зачем брать максимум одного номера? Поэтому должно быть что-то еще, что вы должны рассказать о сроках вашей суммы; сообщите пожалуйста. :-) –

+0

@patrik: «А» обозначает площадь. это означает, что они хотят получить максимальную прибыль в соответствии с расходами (например, труд, машина и т. д.), и вопрос в том, какое количество «A» (площадь под землей) подходит для максимальной прибыли, и мы должны учитывать, что у нас есть ограничение здесь: precentage of A должен быть между минимальным и максимальным количеством A. –

ответ

-1

Да, ваша формула отсутствует в синтаксисе MATLAB. Если я правильно понял, вы хотите максимизировать эту целевую функцию, которую выполняет NSGA-II с другими объективными функциями. Для оптимизации max f = -min f.

+0

Дорогой Flexo, вы правы, это не в синтаксисе MATLAB, вы правильно поняли, и я хочу, чтобы вы сказали, что вы сказали. Но я не знаю, как это сделать. Буду признателен, если вы научили меня. TNX. –

Смежные вопросы