Hello sir;
i am trying to find minimum of a function by putting more than one vectors in a single step to get a constant cost value.
bk=magic(4)=[16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1]
function=bk1'*H1'*H1*bk1-2*yr'*H1*bk1;
where yr is a column vector, H1 is a square matrix and bk1 is a column of bk.
i want to put each vector of bk in above function and select the minimum value in a single command.
i tried this one but it doesn't works.
[cost_value, indx]=min(abs(bk(:,[1:end])'*H1'*H1*bk(:,[1:end])-2*yr'*H1*bk(:,[1:end])));
please help

3 个评论

As you wrote it, that is not a function. It is an expression. Also, you cannot use the name "function" for a variable name.
If you are trying to find a minimum of a function, use an optimizer. Min is not an optimizer. Tools like fminsearch, fminunc, fmincon are optimzers.
thnx for reply how but can i implement this to get the minimum value as well the index of the vector which gives the minimun value
actually i want to find the column of bk which gives minimum value for the expression

请先登录,再进行评论。

 采纳的回答

What is bk1 and H?
Anyway, why not just assign it to a numerical array and use min:
f =bk1'*H1'*H1*bk1-2*yr'*H1*bk1
[minFValue, linearIndexAtMinFValue] = min(f(:));
or
[rowAtMin, colAtMin] = find(f == min(f(:)))

2 个评论

bk1 is each column of bk matrix while H1 is a square matrix actually i want to find the column of bk which gives minimum value for the expression
Yep, my code will do it.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Linear Programming and Mixed-Integer Linear Programming 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by