Simultaneous minimization of 3 equations to estimate 4 parameters

2 ビュー (過去 30 日間)
ANGELOS GIANNIS
ANGELOS GIANNIS 2020 年 7 月 16 日
コメント済み: ANGELOS GIANNIS 2020 年 7 月 21 日
I want to find the values of 4 parameters for which three equations reach their minimum value simultaneous.
Aqtually what I want to do is : min F(q) for q where q=[a aplha c k] and F=[F1(q) F2(q) F3(q)].
Then only way that I found online to do it is with gamultiobj. The problem is that every time that I run the code with the same initial conditions without changing anything I get different 'optimal values ' for q.
Is there something that I need to define extra?
Also is there another solver that I could use for the simultaneous minimization of three functions.
I attach my code.
Thank you
Ps=0.49;
% a=q(1);
% alpha=q(2);
% c=q(3);
% k=q(4);
%parameters from the differential susceptibilities on the P-E graph
Ec=1.2e6;
xc=7.3e-7;
Pr=0.38;
xr=4.4e-8;
Em=6.2e6;
Pm=0.46;
xmp=2.8e-8;
xmm=5e-9;
%call the functions that are included in the functions
% dPPr=dPanPr(Ps,a,alpha,xr,Pr);
% dPEc=dPanEc(Ps,a,alpha,xc,Ec);
% Pan_Em= PanEm(Ps,a,alpha,Em,Pm);
% Pan_Pr= PanPr(Ps,a,alpha,Pr);
% Pan_Ec= PanEc(Ps,a,Ec);
F1=@(q) xr-(1-q(3))*((PanPr(Ps,q(1),q(2),Pr)-Pr)/(-q(4)*(1-q(3))-q(2)*(PanPr(Ps,q(1),q(2),Pr)-Pr)))-q(3)*dPanPr(Ps,q(1),q(2),xr,Pr);
F2 =@(q) q(4) - PanEc(Ps,q(1),Ec)*( (q(1)/(1-q(3))) + (1/(xc-q(3)*dPanEc(Ps,q(1),q(2),xc,Ec))) );
F3= @(q) xmm - ((PanEm(Ps,q(1),q(2),Em,Pm)-Pm)/(q(4)*(1-q(3))-q(2)*(PanEm(Ps,q(1),q(2),Em,Pm)-Pm)));
Ftot=@(q) [F1(q) F2(q) F3(q)];
lb=[4.1e5 3.7e6 0.35 1.8e6];
ub=[5e5 4e6 0.5 2e6];
options = optimoptions('gamultiobj','InitialPopulationRange',[lb;ub]);
[q,fval,exitflag,output] = gamultiobj(Ftot,4,[],[],[],[],lb,ub,options)
  6 件のコメント
Walter Roberson
Walter Roberson 2020 年 7 月 21 日
All three please. I am trying to figure out whether there is an sense under which all three can be minimized simultaneously
ANGELOS GIANNIS
ANGELOS GIANNIS 2020 年 7 月 21 日
function Pan_Pr= PanPr(Ps,a,alpha,Pr)
Pan_Pr=Ps*(coth(alpha*Pr/a)-a/(alpha*Pr));
end
function Pan_Em= PanEm(Ps,a,alpha,Em,Pm)
Pan_Em=Ps*(coth((Em+alpha*Pm)/a)-(a/(Em+alpha*Pm)));
end
function dPPr= dPanPr(Ps,a,alpha,xr,Pr)
dPPr= (Ps/a)*(1+alpha*xr)*(-(csch(alpha*Pr)/a)^2 + (a/(alpha*Pr)));
end
function dPEc=dPanEc(Ps,a,alpha,xc,Ec)
dPEc= (Ps/a)*(1+alpha*xc)*(-(csch(Ec)/a)^2 + (a/(Ec)));
end

サインインしてコメントする。

採用された回答

Alan Weiss
Alan Weiss 2020 年 7 月 20 日
Did you understand that in general there is no such thing as the minimum of a vector-valued function? gamultiobj finds a Pareto optimal set, meaning a surface where you can lower one of the objective function values only by raising another. See What Is Multiobjective Optimization? and x output of gamultiobj.
Alan Weiss
MATLAB mathematical toolbox documentation
  3 件のコメント
Alan Weiss
Alan Weiss 2020 年 7 月 21 日
Sorry, I have no more advice, because I do not know really what you are trying to do. If you use paretosearch instead of gamultiobj you can use the psplotparetof plot function to visualize the tradeoffs.
options = optimoptions('paretosearch','PlotFcn','psplotparetof');
[x,fval] = paretosearch(fun,nvar,A,b,Aeq,beq,lb,ub,nonlcon,options);
Alan Weiss
MATLAB mathematical toolbox documentation
ANGELOS GIANNIS
ANGELOS GIANNIS 2020 年 7 月 21 日
Thank you.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSolver Outputs and Iterative Display についてさらに検索

タグ

製品


リリース

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by