ga算法的通过修改调用函数的赋值方式增速
遗传算法(genetic algorithm)
是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程计算模型,是一种通过模拟自然进化过程搜索最优解的方法。下面我将分享自己在做GA模型的心得与困惑。
ga迭代代码
LB = [1,0,0]; UB = [5,T(1),1]; % Input the ranges of parameters b, v, c
[x,fval,exitflag,output] = ga(@(x)fun_text(x),length(LB),[],[],[],[],LB,UB);
ga 迭代加速的方法
将原来使用subs的替换方方法变成字符串替换
ga的迭代函数
global Mat2
在执行ga之前已经计算好的符号表达式
函数部分
function s = fun_test(P)
global Mat2;
b=P(:,1);
v=P(:,2);
c = P(:,3);
newStr = strrep(Mat2,'b',num2str(b));
newStr = strrep(newStr,'v',num2str(v));
newStr = strrep(newStr,'c',num2str(c));
a=vectorize(newStr);
s =eval(a);
end
速度对比
原先运行需要几个小时,现在仅需分钟级别