📄 mathyw.h
字号:
//mathyw.h : 最优化计算模块的头文件,应用时需将mathyw.cpp文件加到工程中去.
#ifndef mathyw_h_
#define mathyw_h_
///////////////////////////////////////////////////////////////////////////////////
#include "iostream.h"
#include "stdlib.h"
#include "math.h"
#include "string.h"
// 计算多元函数在某一点的梯度值.
void compute_grad( double ( * pf)(double * x ), int n , double * point, double * grad );
// 计算函数在某一点的二阶导数距阵
void hessian( double ( * pf)( double * x ), int n, double * point, double * H );
// 进行Cholesky分解的函数
bool cholesky( double * old_matrix, int n, double * triangle_low, double * diagonal );
// 进行强迫正定Cholesky分解的函数
void force_cholesky( double * matrix, int n, double * triangle_low, double * diagnoal );
// 直接法的一维收索模块。
double line_search1( double (*pf)( double * x ), int n, double * start, double * direction );
// 解析法的一维收索模块。
double line_search2( double (*pf)( double * x ), int n, double * start, double * direction );
// 共轭梯度法求极小点的函数。
void conjugate_search( double (* pf)( double * x ), int n, double * start, double * point );
// Gill-Murray改进牛顿法求极小点的函数。
void newton_gill_search( double (* pf)( double * x ), int n, double * start, double * point );
// 信赖域法求极小点的函数。
void newton_region_search( double (* pf)( double * x ), int n, double * start, double * point );
// 变尺度DFP算法求极小点的函数。
void DFP_search( double (* pf)( double * x ), int n, double * start, double * point );
// 步长加速的直接法求极小点。
void length_accelerate( double (* pf)( double * x ), int n, double * start, double * point );
// 方向加速的直接法球技小点
void Powell_search( double (* pf)( double * x ), int n, double * start, double * point );
// 一般约束的乘子法求极小点
typedef double ( * FUN )( double * ); //自定义函数指针类型为 FUN
void Commen_condition( FUN Obj, FUN * pG_group, FUN * pH_group, int var_num, int g_num,
int h_num, double * start, double * point );
///////////////////////////////////////////////////////////////////////////////////////////
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -