#include<iostream>
#include<vector>
typedef std::vector<std::vector<double>> Matrix;
typedef std::vector<double> Line;
Matrix getLsf(Matrix A, Matrix B);
Matrix T(Matrix matrix);
Matrix operator*(const Matrix A, const Matrix B);
Matrix Inverse(Matrix matrix);
void PrinfM(Matrix matrix);
void PrinfM(Matrix matrix) {
for (int i = 0; i < matrix.size(); i++) {
for (int j = 0; j < matrix[i].size(); j++) {
std::cout << matrix[i][j] << '\t';
}
std::cout << std::endl;
std::cout << std::endl;
}
}
Matrix getLsf(Matrix A, Matrix B) {
Matrix TA = T(A) * A;
Matrix ATB = T(A) * B;
Matrix X = Inverse(TA) * ATB;//A-1
return X;
}
Matrix T(Matrix matrix) {
Matrix matrixT;
for (int i = 0; i < matrix[0].size(); ++i) {
std::vector<double> value;
for (int j = 0; j < matrix.size(); ++j) {
value.push_back(matrix[j][i]);
}
matrixT.push_back(value);
}
return matrixT;
}
Matrix opera
y=ax+b最小二乘c++实现
最新推荐文章于 2023-05-24 22:49:48 发布

最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



