Fmincon and multistart results
1 次查看(过去 30 天)
显示 更早的评论
I'm using the following code to calculacte the three coefficient 'x' ti minimise my function f which is need to run a for loop before we can get the final results of the objective function
% function f=FunMINCON(c)
% clear all
% clc
load('C:\Users\aissam.meddour\Desktop\Optimization algo\DATA\temp_HE.mat')
% load('C:\Users\aissam.meddour\Desktop\Optimization algo\DATA\temp_HP.mat')
load('C:\Users\aissam.meddour\Desktop\Optimization algo\DATA\temps_temperature.mat')
load('C:\Users\aissam.meddour\Desktop\Optimization algo\DATA\V_HE_opt.mat')
% load('C:\Users\aissam.meddour\Desktop\Optimization algo\DATA\V_HP_opt.mat')
load('C:\Users\aissam.meddour\Desktop\Optimization algo\DATA\C_HED.mat')
% load('C:\Users\aissam.meddour\Desktop\Optimization algo\DATA\C_HP.mat')
load('C:\Users\aissam.meddour\Desktop\Optimization algo\DATA\Ncycle.mat')
% c=[-1.3475221222842815E-7 11.308641442925296 0.9054638310592784]
c=[0.000001 4 1]
% c=[-1.3475221222842815E-7 12.655809411675296 1.1459423466842784];
T0=25;
V0=3.7;
DELTAT=10;
DELTAV=0.1;
Capa=100;
lb=[-10 -10 -10];
ub=[20 13 20];
C=[];
TT=[];
j=1:1:7301;
for Cycle=1:1:Ncycle(end)
TT=Capa*(1+c(1).*sqrt((temps_temperature(j))).*c(2).^((temp_HE(j)-T0)./DELTAT).*c(3).^(V_HE_opt(j)-V0)./DELTAV);
Capa=TT(Cycle);
C(Cycle)=TT(Cycle);
end
Ncycle(1)=[];
Capacite=[];
Capac=[];
Capac=C(Ncycle);
Capac2=[100,Capac];
Capacite=Capac2';
I1=sum((Capacite-C_HED).^2);
I2=sum(abs(Capacite-C_HED));
f=@(c)(I1+I2);
opts = optimoptions(@fmincon,'Algorithm','sqp');
problem = createOptimProblem('fmincon','objective',...
f,'x0',c,'lb',lb,'ub',ub,'options',opts);
ms = MultiStart('PlotFcns',@gsplotbestf);
[x,fval,exitflag,outpt,solutions] = run(ms,problem,1000);
% end
i'm getting a constant value of the objective function for all the ittiration, i know it's a code error but since it's my first time using this function i'm hoping to get some help here
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Global or Multiple Starting Point Search 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!