#pragma once #include "zxAlgRegress.h" #include "zxAlgRegressLinear.h" //指数拟合 class I_ALGREGRESS_EXPORT zxAlgRegressExponential : public zxAlgRegress { public: zxAlgRegressExponential(); virtual ~zxAlgRegressExponential(); virtual double getValue(VecDouble& vMatrixX); bool setFiltering(); bool cal(); bool setTransformation(); bool setReciprocalTransformation(); // 组织表达式 virtual QString getExpStr(); private: double m_dPlusCoeff; //乘积项系数 double m_dPowerCoeff; //指数项系数 double m_dPlusAssistCoeff; //乘积项辅助系数。用于处理系数为负数的情况。 bool m_bAcceptNonLinearRestrain; //是否接受非线性约束。 //如果外部指定指数回归的某一项系数,则为线性约束。 //约束矩阵为 (3 , 0 , 1) 表示 m_dPlusCoeff = 3; // 在转换成线性回归时,约束方式可能发生改变,在当前条件为指定参数约束, // 转换时可能变成约束矩阵约束。因此不采用当前计算类由CLinearRegressAlgo派生, // 而记录CLinearRegressAlgo作为成员的方式。以免其它成员变量受到影响。 zxAlgRegressLinear* m_pLinearRegress; };