Least Square Method
Least Square Method
#include <iostream>
#include <vector>
using namespace std;
// Function to calculate Least Squares Method for a straight line y = ax + b
void leastSquares(const vector<double>& x, const vector<double>& y, int n, double& a,
double& b) {
double sumX = 0, sumY = 0, sumXY = 0, sumX2 = 0;
for (int i = 0; i < n; i++) {
sumX += x[i];
sumY += y[i];
sumXY += x[i] * y[i];
sumX2 += x[i] * x[i];
}
// Calculating slope (a) and intercept (b)
a = (n * sumXY - sumX * sumY) / (n * sumX2 - sumX * sumX);
b = (sumY - a * sumX) / n;
}
int main() {
int n;
cout << "Enter number of data points: ";
cin >> n;
vector<double> x(n), y(n);
cout << "Enter x and y values:\n";
for (int i = 0; i < n; i++) {
cout << "x[" << i + 1 << "]: ";
cin >> x[i];
cout << "y[" << i + 1 << "]: ";
cin >> y[i];
}
double a, b;
leastSquares(x, y, n, a, b);
cout << "\nThe best fit line equation is: y = " << a << "x + " << b << endl;
return 0;
}