基于matlab软件遗传算法的目标函数优化问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于matlab 软件遗传算法的目标函数优化问题
问题:基于试验结果,对理论方程进行优化调整,先假定两个未知量1η和2η,对理论公式e V 进行修正。修正后的公式模型为:
()()()211231cot cot 1cot tan 2e sv sv e sw sw e c sv sv sw sw V f bj f bj vf f f bh ρϕηρϕρηρϕθηη⎧⎫⎡⎤=++-++⋅⎨⎬⎣⎦⎩⎭
利用matlab 软件中遗传算法(ga )进行优化分析 ,得出未知量1η和2η的最优解。
Fitness :
function y = fitness(x)
global test_v para_v
idx=[1;2;3;4;5;6;7;8;9;10;11;12;13;14;15];
n = length(idx);
fv=zeros(n,1);
for i=1:n
p=para_v(idx(i),:);
fv(i) = ((p(1)*p(2)+p(6)*p(7))*prod(p(3:5))+ 0.5*(p(8)*p(9) - (p(1)*p(2)+p(6)*p(7))*(1+p(5)^2)) *p(3)*p(10)*p(11))*0.91*x(1); fv(i) =fv(i)/1000;
end
y=norm(test_v(idx)-fv);
% y = sum((test_v(idx) -fv).^2);
其中:idx=[1;2;3;4;5;6;7;8;9;10;11;12;13;14;15]; 为:公式模型e V 的各项因子具体数值,在para_v 中,而test_v 为试验值。 main_ga :
clear
clc
global test_v para_v
load para_value1
load V
test_v=V;
para_v=para_value;
ObjectiveFunction = @fitness;
options =
gaoptimset('Display','iter','PlotFcns',{@gaplotbestf,@gaplotstopping} ,'PlotInterval', 1, 'Generations', 100,'PopulationSize', 100,...
'PopInitRange',[0.5 0.5;1 1],
'CrossoverFraction',0.8, 'StallGenLimit', 100, 'TolFun', 1e-100); nvars = 1;
LB = [0.1 0.1];
UB = [2 2];
[x,fval] = ga(ObjectiveFunction,nvars,[],[],[],[],LB,UB,[], options)