最简单的拟合:
直接上代码
MainWindow.c中:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QtCharts/QChart"
#include "QLineSeries"
#include "QValueAxis"
#include "QTimer"
#include "QTime"
#include "QList"
#include "qmath.h"
#include "QPointF"
#include "QDebug"
//#include <QtCharts/QChartGlobal>
#include "QChartView"
QT_CHARTS_USE_NAMESPACE
QChart *m_chart;
QLineSeries *m_series;
#define LEN_MAX 4
//[0]=x,[1]=y
float buff[LEN_MAX][2] = {
{6.3,12.36},{3.3,22.84},{5.3,15.48},{4.3,18.72}};
void calculate(float *slop,float *Intercept)
{
float fXY = 0, fXX = 0, fXA = 0, fYA = 0, fYY = 0;
//得到平均值
for(int i = 0;i < LEN_MAX;i++)
{
fXA += buff[i][0]/LEN_MAX;
fYA += buff[i][1]/LEN_MAX;
}
//得到拟合所必需的数据
for(int i = 0;i < LEN_MAX;i++)
{
fXY += (buff[i][0] - fXA)*(buff[i][1] - fYA);
fXX += (buff[i][0] - fXA)*(buff[i][0] - fXA);
fYY += (buff[i][1] - fYA)*(buff[i][1] - f