?? simplex.h
字號:
//單純形法類頭文件
//Edit by Wang Shimin
//2004.8.25~2004.9.10
//本文件為最新文件,修改于2006.3.12
// Simplex.h: interface for the Simplex class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_SIMPLEX_H__B5428322_D25D_4B7E_902D_081CDF61C14C__INCLUDED_)
#define AFX_SIMPLEX_H__B5428322_D25D_4B7E_902D_081CDF61C14C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "bndload.h"
class Simplex
{
public:
void Compute();
Simplex();
virtual ~Simplex();
private:
void WriteResult();
void ReadMEA();
int m_numbndload; /* 反演涉及的邊界荷載個數 */
bndload * p_Bndload; /* 反演涉及的邊界荷載信息 */
int * p_BAKindflag; /* 反演種類項標志 */
int * p_iparameter; /* 反演材料種類項標志 */
int * p_jparameter; /* 反演材料性質項標志 */
double m_centervalue; /* 存放中心點目標值 */
double m_constrictionvalue; /* 存放收縮點目標值 */
double m_prolongationvalue; /* 存放延伸點目標值 */
double m_echovalue; /* 存放反射點目標值 */
int m_lownumber; /* 最小目標值所對應的變量的編號 */
int m_highnumber; /* 最大目標值所對應的變量的編號 */
double m_lowvalue; /* 最小目標值 */
double m_highvalue; /* 最大目標值 */
int m_maxnumlap; /* 最大循環次數 */
int m_numlap; /* 循環次數 */
int m_numpoint; /* 觀測點的個數 */
int m_numvar; /* 待反演參數的個數 */
double m_parametereq; /* 參數Q */
double m_parameterep; /* 參數P */
double m_gamma; /* 延伸系數,大于0 */
double m_beta; /* 收縮系數,大于0,小于1 */
double m_alfa; /* 反射系數,大于0 */
double m_precision; /* 收斂精度 */
int m_precisionnum; /* 連續多少步不進化則終止 */
double m_oldfitness; /* 保留上步優化結果 */
// double m_sidelength; /* 單純形邊長 */
double * m_constriction; /* 收縮點變量 */
double * p_prolongation; /* 延伸點變量 */
double * p_center; /* 除去目標值最大點以外其它頂點的中心點變量 */
double * p_echo; /* 反射點變量 */
double ** p_variable; /* 存儲單純形變量 */
double * p_bestobjvalue; /* 計算值與觀測值之間的差值的最小值 */
double * p_fitness; /* 存儲目標值,即觀測值與計算值之差的平方和,即一組參數的目標值 */
double * p_observation; /* 存儲觀測值 */
double * p_calculation; /* 存儲計算值 */
bool m_blErrorExit; //error occur
void ReadBAA();
bool Criterion(); /* 判別函數 */
void Constriction();/* 收縮 */
void Echo();/* 反射 */
void Prolongation();/* 延伸 */
void Initialization();/* 初始化函數 */
void ReadFromFem(double * calculatevalue);/* 寫變量到文件 */
void WriteToFem(double * pvariable);/* 從文件讀計算值 */
void ObjFunction();/* 有限元計算 */
};
#endif // !defined(AFX_SIMPLEX_H__B5428322_D25D_4B7E_902D_081CDF61C14C__INCLUDED_)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -