MATLAB Answers

Optimization function with a summation

조회 수: 31(최근 30일)
Ricardo López
Ricardo López 10 Jan 2021
댓글: Matt J 10 Jan 2021
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

표시 이전 댓글 수: 1
Ricardo López
Ricardo López 10 Jan 2021
b is a vector of [ix5] and its values have to be between 0 and 1.
Ricardo López
Ricardo López 10 Jan 2021
And the sum of all of them should be 1
Matt J
Matt J 10 Jan 2021
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 10 Jan 2021
The solution is simply,
b = zeros(144,5);
b(PV(1:j)>0,:)=1;

  댓글 수: 2

Ricardo López
Ricardo López 10 Jan 2021
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 10 Jan 2021
[~,i]=max( PV(1:j));
b = zeros(144,5);
b(i,1)=1;

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

Community Treasure Hunt

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

Start Hunting!

Translated by