如何不使用polyfit,在matlab中实现最小二乘法拟合
时间: 2024-05-16 20:15:15 浏览: 123
polyfit.rar_数值拟合_数值离散_最小二乘 拟合_最小二乘逼近_离散逼近matlab
可以使用Matlab自带的函数lsqcurvefit来实现最小二乘法拟合。该函数可以用来拟合任意类型的函数,而不仅仅是多项式函数。
下面是一个示例代码:
```matlab
x = [1 2 3 4 5];
y = [1.2 2.1 3.1 4.2 5.2];
% 定义拟合函数
fun = @(p,x) p(1)*x + p(2);
% 初始参数值
p0 = [1 0];
% 最小二乘拟合
p = lsqcurvefit(fun,p0,x,y);
% 打印拟合参数
disp(p)
% 画出原始数据和拟合曲线
plot(x,y,'o')
hold on
plot(x,fun(p,x),'-')
```
在这个例子中,我们拟合了一个一次函数y = ax + b。首先定义了拟合函数fun,然后使用lsqcurvefit函数进行拟合,其中p0是初始参数值。最后,使用plot函数画出原始数据和拟合曲线。
阅读全文