使用marlab,5. 有一组测量数据如下表所示,分别用2次,5次多项式拟合该数据,用不同颜色曲线绘制数据及拟合结果,并给出图注。(15分) x 1 1.5 2 2.5 3 3.5 4 4.5 5 y -2 2.6 2.3 5.8 7.8 11.5 15.1 18.1 30
时间: 2024-02-06 10:10:22 浏览: 73
首先,在 MATLAB 中创建一个向量 `x` 和一个向量 `y`,分别表示输入和输出数据:
```matlab
x = [1 1.5 2 2.5 3 3.5 4 4.5 5];
y = [-2 2.6 2.3 5.8 7.8 11.5 15.1 18.1 30];
```
然后,使用 `polyfit()` 函数进行多项式拟合:
```matlab
p2 = polyfit(x, y, 2); % 2次多项式拟合
p5 = polyfit(x, y, 5); % 5次多项式拟合
```
接下来,生成一组新的输入数据 `xx`,并使用 `polyval()` 函数计算对应的输出数据 `yy`:
```matlab
xx = linspace(0, 6, 100); % 生成一组新的输入数据
yy2 = polyval(p2, xx); % 用2次多项式计算输出数据
yy5 = polyval(p5, xx); % 用5次多项式计算输出数据
```
最后,使用 `plot()` 函数绘制数据和拟合曲线,并添加图注:
```matlab
plot(x, y, 'o', xx, yy2, 'r-', xx, yy5, 'b-');
legend('data', '2nd-order fit', '5th-order fit');
xlabel('x');
ylabel('y');
title('Polynomial fitting of data');
```
完整的 MATLAB 代码如下:
```matlab
x = [1 1.5 2 2.5 3 3.5 4 4.5 5];
y = [-2 2.6 2.3 5.8 7.8 11.5 15.1 18.1 30];
p2 = polyfit(x, y, 2);
p5 = polyfit(x, y, 5);
xx = linspace(0, 6, 100);
yy2 = polyval(p2, xx);
yy5 = polyval(p5, xx);
plot(x, y, 'o', xx, yy2, 'r-', xx, yy5, 'b-');
legend('data', '2nd-order fit', '5th-order fit');
xlabel('x');
ylabel('y');
title('Polynomial fitting of data');
```
阅读全文