![3741176ebd328f0c2d7c489ed1dae9ee.png](https://i-blog.csdnimg.cn/blog_migrate/39194bdea825a1ca137aadfb8243ba23.png)
差分演化算法是一种基于全局最优的算法,它可以应用到我们的多目标、粒子滤波器、工程等问题。对于刚基础差分演化算法来说,自己要首先根据算法原理写出解决一元函数的最优化问题,再次写出解决多元函数的代码,只要能把这两部分的代码弄清楚了,那么对于改进差分演化算法和差分演化算法的应用问题将会轻松许多。
对于算法的学习推荐下面几本书!
差分演化算法的代码最重要的是对于最优值保存这里,设置最优值让其等于一个初始值的第一个位置,之后不断从其中选取最优值,依此下去就可以得到最优值。下面是采用matlab写的差分演化算法应用在多元函数上的最优化代码。
程序:
function f=fun_DE1(x)
for i=1:2 %这里的i是1:Np.
f=0;
f=f+x(:,i).*2.^(i-1);
end
clc
clear
% DE算法应用---多元函数
%需求:DE算法求解多维函数--以超椭球题函数f(x)=sum(x(i)*2^(i-1)),i=1,2,...
%求解超椭球体函数的最优值---最大值/最小值