Matlab 最小二乘法拟合二次曲线的代码实现
时间: 2023-07-03 18:25:12 浏览: 96
最小二乘法曲线拟合的matlab实现.docx
假设有一组数据 $(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)$,要用二次曲线 $y=a_0+a_1x+a_2x^2$ 对其进行拟合,可以使用 Matlab 的 polyfit 函数。
代码如下:
```
% 定义数据
x = [x1, x2, ..., xn];
y = [y1, y2, ..., yn];
% 用 polyfit 函数拟合二次曲线
p = polyfit(x, y, 2); % 2 表示拟合的多项式次数为 2
% 输出拟合结果
a0 = p(3);
a1 = p(2);
a2 = p(1);
```
其中,p(1)、p(2)、p(3) 分别表示二次项系数 $a_2$、一次项系数 $a_1$、常数项 $a_0$。
拟合结果可以用以下代码进行绘图:
```
% 绘制原始数据点
plot(x, y, 'o');
% 绘制拟合曲线
xx = linspace(min(x), max(x), 1000); % 生成一组等间距的 x 值
yy = polyval(p, xx); % 用 polyval 函数计算对应的 y 值
hold on;
plot(xx, yy);
```
阅读全文