• 大小: 5KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-01-02
  • 语言: C/C++
  • 标签:

资源简介

差分进化算法的C语言实现,有大量的注释,简单易懂!

资源截图

代码片段和文件信息

/*DE_test
 *对相应的Matlab程序进行测试
 */

#include 
#include 
#include 
using namespace std;

//产生随机数,随机数为(0.0,1.0)
double Rand_Double(void)
{
return static_cast(rand()) / static_cast(RAND_MAX);
}

//测试函数Hansen
//参数个数为2
double Hansen(double *p_pars)
{
return ( cos(1.0) + 2.0*cos(p_pars[0]+2.0) + 3.0*cos(2.0*p_pars[0]+3.0) 
+ 4.0*cos(3.0*p_pars[0]+4.0) + 5.0*cos(4.0*p_pars[0]+5.0) )
* ( cos(2.0*p_pars[1]+1.0) + 2.0*cos(3.0*p_pars[1]+2.0) + 
3.0*cos(4.0*p_pars[1]+3.0) + 4.0*cos(5.0*p_pars[1]+4.0) + 5.0*cos(6.0*p_pars[1]+5.0) );
}

class CFunction
{
public:
void *m_p_fun;//指向测试函数的指针
int m_pars_num;//参数个数
double m_min;//下限
double m_max;//上限
bool m_pos;//求解最小值还是最大值,如果是最小值则m_pos为false,如果是最大值则m_pos为true
public:
CFunct

评论

共有 条评论

相关资源