![](https://csdnimg.cn/release/download_crawler_static/86888986/bg1.jpg)
一个用 matlab 实现的基于最小二乘法的曲线拟合函数
1. function [ ] = fit( X, Y, fi )
2. % 这是一个利用最小二乘法做曲线拟合的函数
3. % x 是特征值的样本集,每一行是一个样本,每一列是一个特征,约定第一个特征都是
1,也就是说第一列必然都是 1.
4. % y 是结果的样本集,每一行只有一个结果,是连续的一个数值
5. % fi 是拟合的次数,比如 fi=1 表示线性拟合,fi=2 表示二次函数拟合
6. % 一个能接受的输入如下 X=[1 2;1 3; 1 5]; Y=[2;4;5]; fi=2
7. %FIT Summary of this function goes here
8. % Detailed explanation goes here
9. for i=2:1:fi+1
a) X(:,i)=X(:,2).^(i-1);
10. end;
11. X=X(:,1:fi+1);
12. theta=(X'*X)\(X'*Y);
13. dx=min(X(:,2)):0.01:max(X(:,2));
14. dy=theta(1);
15. for i=2:1:fi+1
a) dy=theta(i)*dx.^(i-1)+dy;
16. end;
17. plot(dx,dy); hold on; scatter(X(:,2),Y);
18. end