#pragma once #include // 定义用于积分的动力学函数名的类型 typedef void (*dynIntegFunc)(double*, double*, double*, double*, double*, void*); // 生成线性间距向量 void linSpace(double x1, double x2, int n, double* y); // 升序线性插值 void ascLinearInterp(double* X, double* Y, int N, int M, double* x, int n, double* y); // 数值积分函数 void computeInteg(double* newState, // 新状态 dynIntegFunc pfun, // 动力学方程 double* oldState, double* control, double* parameter, void* auxdata, // 动力学方程输入 int numState, int numControl, int numParameter, int numPath, // 变量维数 double* tempWork, // 临时空间,避免重复申请和释放空间 double stepSize, int integMode); // 积分步长和积分模式 // 向量复制 void copyIntVec(int* x, int* y, int n, int sign); // 整数 void copyFloatVec(double* x, double* y, int n, int isNegtive); // 浮点数 // 将向量的每个元素为a; void floatVecFillin(double* x, int n, double a); void intVecFillin(int* x, int n, int a);