12345678910111213141516171819202122232425 |
- #pragma once
- #include <stdlib.h>
- // 定义用于积分的动力学函数名的类型
- 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);
|