-
大小: 5KB文件類型: .cpp金幣: 1下載: 0 次發(fā)布日期: 2021-01-02
- 語言: C/C++
- 標(biāo)簽:
資源簡介
差分進(jìn)化算法的C語言實(shí)現(xiàn),有大量的注釋,簡單易懂!
代碼片段和文件信息
/*DE_test
?*對(duì)相應(yīng)的Matlab程序進(jìn)行測試
?*/
#include?
#include?
#include?
using?namespace?std;
//產(chǎn)生隨機(jī)數(shù),隨機(jī)數(shù)為(0.0,1.0)
double?Rand_Double(void)
{
return?static_cast(rand())?/?static_cast(RAND_MAX);
}
//測試函數(shù)Hansen
//參數(shù)個(gè)數(shù)為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;//指向測試函數(shù)的指針
int?m_pars_num;//參數(shù)個(gè)數(shù)
double?m_min;//下限
double?m_max;//上限
bool?m_pos;//求解最小值還是最大值,如果是最小值則m_pos為false,如果是最大值則m_pos為true
public:
CFunct
評(píng)論
共有 條評(píng)論