⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simplex.h

📁 改进的单纯形算法
💻 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 + -