MATLAB Answers

0

How to execute multiple optimized values for x according to n, using fmincon

Maheen Fazal さんによって質問されました 2019 年 5 月 17 日
最新アクティビティ Maheen Fazal さんによって コメントされました 2019 年 5 月 17 日
Hello, kindly help me in finding n optimal values for x (x is a vector not single valued).
e.g. i have the main code
function Rsum Simple(x)
global n
R=20*1000;
Rn =x*R;
Rsum=sum(Rn);
end
by using fmincon i am optimizing x
clear all
clc
global n
n_vec=2:2:6;
throughput=[];
for n=n_vec
initial_guess=0.00002;
x0=initial_guess;
lb=0;
ub=0.7;
A = [];
b = [];
Aeq=[];
Beq=[];
[x,fval]= fmincon(@(x) Simple(x),x0,A,b,[],[],lb,ub);
max=-(fval);
throughput=[throughput max];
end
after executing first attempt i want to get 2 optimized values of x,in 2nd i need 4 optimized values and in 3rd time x=6, but i dont know how to execute it. can any body help me out to find multiple values of x(with respect to n).??
thank you in advance

  0 件のコメント

サインイン to comment.

3 件の回答

回答者: Titus Edelhofer
2019 年 5 月 17 日
編集済み: Titus Edelhofer
2019 年 5 月 17 日
 採用された回答

Hi,
there are a couple of things I don't understand: you say "x is a vector"? But you always start with x0=initial_guess, which is a scalar. Perhaps this is the first change you would need to do:
x0 = repmat(initial_val, n, 1);
to make x0 a vector.
Second, your objective function is strange. Variable S is not used? x = [0...0] is the solution for the function you wrote.
Titus

  1 件のコメント

Maheen Fazal 2019 年 5 月 17 日
Sorry it was by mistakenly wrriten, okay Sir will changes in initial guess.

サインイン to comment.


回答者: Maheen Fazal 2019 年 5 月 17 日
編集済み: Maheen Fazal 2019 年 5 月 17 日

just let me know if i have to find n optimal values for x then how could i find?

  0 件のコメント

サインイン to comment.


回答者: Maheen Fazal 2019 年 5 月 17 日

can i also change uper and lower bounds accordingly?

  2 件のコメント

Titus Edelhofer
2019 年 5 月 17 日
Yes,
ub = repmat(ub, n, 1);
Maheen Fazal 2019 年 5 月 17 日
for i=1:n
[x(i),fval(i)]= fmincon(@(x) Simple(x),x0(i,:),A,b,[],[],lb(i,:),ub(i,:),@constraint);
end
is this a right way to execute?

サインイン to comment.



Translated by