Simultaneous minimization of 3 equations to estimate 4 parameters
조회 수: 2 (최근 30일)
이전 댓글 표시
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
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
채택된 답변
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
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
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!