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

Matt J
Matt J 2021년 1월 10일
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
Matt J
Matt J 2021년 1월 10일
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.

댓글을 달려면 로그인하십시오.

답변 (1개)

Matt J
Matt J 2021년 1월 10일

0 개 추천

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

댓글 수: 2

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

댓글을 달려면 로그인하십시오.

카테고리

질문:

2021년 1월 10일

댓글:

2021년 1월 10일

Community Treasure Hunt

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

Start Hunting!

Translated by