Escolar Documentos
Profissional Documentos
Cultura Documentos
function fa_ndim
% parametros [n N_iteration alpha betamin gamma]
para=[20 100 0.5 0.2 1];
help fa_ndim.m
% limites de procura e dimenses
d=1;
Lb=zeros(1,d);
Ub=2*ones(1,d);
% Aleatoriedade Inicial
u0=Lb+(Ub-Lb).*rand(1,d);
[u,fval,NumEval]=ffa_mincon(@cost,u0,Lb,Ub,para);
% Resultados a ser mostrados
melhorsolucao=u
%numero_total_de_avaliacoes_da_funcao=NumEval
%% Funo Objetivo
function resultado = cost(k,dado)
dado = load ('dado_experimental.csv');
% define as equacoes do modelo
Tamb = 26.5;
f = @(t,T)(-k*(T - Tamb));
% define os parametros da simulacao
ti = 0;
% tempo inicial
tf = 240;
% tempo final
Ti = 90;
% temperatura inicial
% define os parametros do metodo numerico
dt = 0.5;
% passo de integracao
n = (tf-ti)/dt; % numero de passos de integracao
t = zeros(n+1,1); % valores de x
T = zeros(n+1,1); % valores de y
t(1) = ti;
% valor inicial de x
T(1) = Ti;
% valor inicial da funcao
% obter as solucoes numericas
for i = 1:n
t(i+1) = t(i) + dt;
k1 = dt * f(t(i),T(i));
k2 = dt * f(t(i) + dt/2, T(i) + k1/2);
k3 = dt * f(t(i) + dt/2, T(i) + k2/2);
k4 = dt * f(t(i) + dt,T(i) + k3);
T(i+1) = T(i) + (k1 + 2*k2 + 2*k3 + k4)/6;
end
resultado = mean(abs(T-dado(:,2)));
% Inicio do Algoritmo
function [nbest,fbest,NumEval]...
=ffa_mincon(fhandle,u0, Lb, Ub, para)
% Parametros de checagem
if nargin<5, para=[20 100 0.25 0.20 1]; end
delta=1-(10^(-4)/0.9)^(1/NGen);
alpha=(1-delta)*alpha;
% garante que os vaga-lumes esto dentro dos limites
function [ns]=findlimits(n,ns,Lb,Ub)
for i=1:n,
% aplica o limite inferior
ns_tmp=ns(i,:);
I=ns_tmp<Lb;
ns_tmp(I)=Lb(I);
% aplica o limite superior
J=ns_tmp>Ub;
ns_tmp(J)=Ub(J);
% Atualiza este novo movimento
ns(i,:)=ns_tmp;
end