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

📄 mathyw.h

📁 C++最优化方法源程序
💻 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 + -