You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "Defines.h"
|
|
|
|
|
|
#include "mAlgPseudo_global.h"
|
|
|
|
|
|
#include "mAlgDefines.h"
|
|
|
|
|
|
#include "mAlgMatrix.h"
|
|
|
|
|
|
|
|
|
|
|
|
// 拟压力相关的通用函数类
|
|
|
|
|
|
class M_ALGPSEUDO_EXPORT iAlgPseuBase
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
iAlgPseuBase();
|
|
|
|
|
|
|
|
|
|
|
|
// 当前是否采用三区模式计算拟压力
|
|
|
|
|
|
static void setPseuMode(int n);
|
|
|
|
|
|
static int getPseuMode();
|
|
|
|
|
|
|
|
|
|
|
|
// 主调用函数,内部自动区分压力还是拟压力
|
|
|
|
|
|
static bool calP(double ps, double &p, int which = -1);
|
|
|
|
|
|
static bool calPS(double p, double &ps, int which = -1);
|
|
|
|
|
|
|
|
|
|
|
|
// 计算“x--->y”的回归曲线方程系数
|
|
|
|
|
|
static bool _fitXtoY(VecDouble vecXs, VecDouble vecYs, VecDouble &vecCoefs, bool isZero = true);
|
|
|
|
|
|
// 计算“y--->x”的回归曲线方程系数(反推)
|
|
|
|
|
|
static bool _fitYtoX(VecDouble vecXs, VecDouble vecYs, VecDouble &vecCoefs, bool isZero = false);
|
|
|
|
|
|
// 计算相关性系数
|
|
|
|
|
|
// vecXs是横坐标,vecYs为纵坐标,vecCoefs为系数
|
|
|
|
|
|
static bool _calR2(VecDouble vecXs, VecDouble vecYs, VecDouble vecCoefs, double &R2);
|
|
|
|
|
|
|
|
|
|
|
|
// 多项式转换
|
|
|
|
|
|
static bool _calMultiPolyX(double x, double &y, VecDouble vecCoefs);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
// 当前是否采用三区模式计算拟压力
|
|
|
|
|
|
// 0:常规、1:三区拟压力(白)、2:组分三区拟压力(徐)
|
|
|
|
|
|
static int m_nPseuMode;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|