Simultaneous minimization of 3 equations to estimate 4 parameters
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
ANGELOS GIANNIS
am 16 Jul. 2020
Kommentiert: ANGELOS GIANNIS
am 21 Jul. 2020
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 Kommentare
Walter Roberson
am 21 Jul. 2020
All three please. I am trying to figure out whether there is an sense under which all three can be minimized simultaneously
Akzeptierte Antwort
Alan Weiss
am 20 Jul. 2020
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 Kommentare
Alan Weiss
am 21 Jul. 2020
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
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!