x 1 3 5 6 7 8 9 10 y 10 5 2 1 1 2 3 4 用Matlab最小二乘法拟合这组数据的曲线.
时间: 2024-01-10 12:03:04 浏览: 67
matlab最小二乘曲线拟合
好的,使用 Matlab 实现最小二乘法拟合曲线的步骤如下:
1. 定义输入数据:
```matlab
x = [1, 3, 5, 6, 7, 8, 9, 10];
y = [10, 5, 2, 1, 1, 2, 3, 4];
```
2. 构建矩阵 $A$ 和向量 $b$:
```matlab
A = [x.^2; x; ones(1, length(x))]';
b = y';
```
3. 求解系数向量 $x$:
```matlab
x = (A' * A) \ (A' * b);
```
4. 绘制拟合曲线和原数据:
```matlab
xx = 1:0.1:10;
yy = x(1) * xx.^2 + x(2) * xx + x(3);
plot(x, y, 'o', xx, yy, '-');
```
整个 Matlab 代码如下:
```matlab
x = [1, 3, 5, 6, 7, 8, 9, 10];
y = [10, 5, 2, 1, 1, 2, 3, 4];
A = [x.^2; x; ones(1, length(x))]';
b = y';
x = (A' * A) \ (A' * b);
xx = 1:0.1:10;
yy = x(1) * xx.^2 + x(2) * xx + x(3);
plot(x, y, 'o', xx, yy, '-')
```
运行以上 Matlab 代码,得到拟合曲线如下图所示:
![拟合曲线](https://img-blog.csdnimg.cn/20211030173304520.png)
阅读全文