Crv_fit.h
//多项式曲线拟合 f(x)=a0+a1x+a2x^2+a3x^3+...anx^n
class Crv_fit {
public :
Crv_fit(void);
void clear(void);
//~Crv_fit(void);
public :
void init_ary(int m); //m为样本点个数; 初始化数组ary_x, ary_y; 初始化ary_x_cp,之后和ary_x共同为计算ary_A提供数据
void cal_ary (int n); //n+1矩阵A的阶数; 计算矩阵中元素,分别存放在ary_A, ary_b中
void init_matA(void); //初始化系数矩阵(对称方阵)mat_A
void cal_mat (); //求解非齐次线性方程组Ax=b
private :
int M, N; //M为样本个数,N+1为方阵(对角阵)的阶
double *ary_x, *ary_x_cp, *ary_y; //ary_x存放样本x, ary_y存放样本y
double *ary_A, *ary_b; //ary_A存放方阵A中元素,ary_b存放矩阵b元素
double **mat_A; //系数矩阵(对称方阵)
double *result; //结果数组
};
crv_fit_file.h
#include <iostream>
#include <math.h>
#include <malloc.h>
#include "crv_fit.h"
Crv_fit::Crv_fit() {
M=0; N=0;
ary_x=NULL; ary_x_cp=NULL; ary_y&