Optimization function with a summation

Good afternoon,
I have the following code:
C_H = [C_H1 C_H2 C_H3 C_H4 C_H5];
PV = reshape(PV_SAM,[52560,1]);
j = 144;
fun =zeros(144,5);
b = zeros(144,5);
for i=1:j
fun(i,:) = (C_H(i,:) - b(i).*PV(i));
end
f_sum = sum(fun,'all');
Does anyone know how to optimize the variable b so the value of f_sum is minimum?
Thank you

4 Comments

With what constraints on b(i)? Without any constraints, the minimum of f_sum is -infinity.
b is a vector of [ix5] and its values have to be between 0 and 1.
And the sum of all of them should be 1
C_H does not affect the optimization at all and PV only has one column, so giving b 5 columns is only creating extra redundant variables.

Sign in to comment.

Answers (1)

The solution is simply,
b = zeros(144,5);
b(PV(1:j)>0,:)=1;

2 Comments

The sum of all of them should be one and the solution that this is giving is just 1 for all 5 columns.
[~,i]=max( PV(1:j));
b = zeros(144,5);
b(i,1)=1;

Sign in to comment.

Asked:

on 10 Jan 2021

Commented:

on 10 Jan 2021

Community Treasure Hunt

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

Start Hunting!