📄 lsm.h
字号:
//最小二乘法类头文件
//Edit by Wang Shimin
//2004.8.1~~2004.8.24
//本文件为最新文件,修改于2006.3.12
// LSM.h: interface for the LSM class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_LSM_H__07ACA719_134D_46C4_86F4_0D5B42CB28B6__INCLUDED_)
#define AFX_LSM_H__07ACA719_134D_46C4_86F4_0D5B42CB28B6__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "bndload.h"
class LSM
{
public:
void Compute();
LSM();
virtual ~LSM();
private:
int m_numbndload; /* 反演涉及的边界荷载个数 */
bndload * p_Bndload; /* 反演涉及的边界荷载信息 */
int * p_BAKindflag; /* 反演种类项标志 */
int * p_iparameter; /* 反演材料种类项标志 */
int * p_jparameter; /* 反演材料性质项标志 */
bool m_errorflag; /* 误差标志变量 */
double m_precision1; /* 收敛精度1,目标值小于此值即可认为满足精度要求 */
double m_precision2; /* 收敛精度2,目标值增量与上一步目标值之比小于此值即可认为满足精度要求 */
double * p_matrix4; /* 存储系数阵的转置矩阵与目标矩阵的乘积矩阵 */
double ** p_matrix3; /* 存储系数阵与其转置矩阵的乘积矩阵的逆阵*/
double ** p_matrix2; /* 存储系数阵与其转置矩阵的乘积矩阵*/
double ** p_matrix1; /* 存储系数阵 */
double * p_objvalue; /* 存储目标值,计算值与观测值之间的差值 ,目标矩阵*/
double m_fitness; /* 存储一组参数的适应值 */
double * p_calculation; /* 存储计算值 */
double * p_observation; /* 存储观测值 */
double * p_variable; /* 存储反演参数 */
double * p_deltavariable; /* 存储反演参数增量 */
double m_stepcoefficient; /* 步长因子 */
double * p_dampcoefficient; /* 阻尼因子 */
int m_numpoint; /* 观测点的个数 */
int m_numvar; /* 待反演参数的个数 */
int m_maxnumlap; /* 反演的最大步数 */
int m_numlap; /* 计算循环步数 */
double m_delta; /* 差分精度 */
int m_precisionnum; /* 连续多少步不进化则终止 */
double m_oldfitness; /* 保留上步优化结果 */
bool m_blErrorExit; //error occur
private:
void WriteResult();
void ReadMEA();
void ReadBAA();
void ReadINP();
void WriteToFem(double * pvariable); /* 向文件中写参数 */
void AdjustVariable(); /* 调节参数 */
void Initialization(); /* 初始化函数 */
bool Criterion(); /* 判别函数 */
void ReverseMatrix(double ** inmatrix,double ** outmatrix,int number); /* 计算矩阵的逆阵 */
void CoefficientMatrix(); /* 计算系数阵 */
void ObjFunction(); /* 求目标函数 */
void ReadFromFem(double * calculatevalue); /* 读取有限元计算结果 */
void Calculate_Delta(); /* 计算反演参数的增量 */
};
#endif // !defined(AFX_LSM_H__07ACA719_134D_46C4_86F4_0D5B42CB28B6__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -