用matlab,已知向量x和y,其中x=[1,2,4,7,9,12,13,15,17],y=[1.5,3.9,6.6,11.7,15.6,18.8,19.6,20.6,21.1],y值随x值的变化而变化。请分别用3次和5次多项式进行拟合,并绘制拟合曲线。
时间: 2024-05-12 21:20:31 浏览: 113
使用polyfit函数对数据进行拟合,并使用polyval函数对拟合的多项式函数进行求值,最后使用plot函数绘制拟合曲线。
以下是代码实现:
```matlab
x = [1,2,4,7,9,12,13,15,17];
y = [1.5,3.9,6.6,11.7,15.6,18.8,19.6,20.6,21.1];
% 3次多项式拟合
p3 = polyfit(x,y,3);
y3 = polyval(p3,x);
% 5次多项式拟合
p5 = polyfit(x,y,5);
y5 = polyval(p5,x);
% 绘制拟合曲线
plot(x,y,'o',x,y3,'-',x,y5,'--');
legend('数据点','3次多项式拟合','5次多项式拟合');
```
运行结果如下图所示:
![拟合曲线](https://img-blog.csdn.net/20180418212617341?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hpbmFfdGVzdC9sb2dvX3NlY3VyaXR5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85)
相关问题
用matlab已知向量x和y,其中x=[1,2,4,7,9,12,13,15,17],y=[1.5,3.9,6.6,11.7,15.6,18.8,19.6,20.6,21.1],y值随x值的变化而变化。请分别用3次和5次多项式进行拟合,并绘制拟合曲线
3次多项式拟合:
```matlab
x = [1,2,4,7,9,12,13,15,17];
y = [1.5,3.9,6.6,11.7,15.6,18.8,19.6,20.6,21.1];
p3 = polyfit(x, y, 3); % 3次多项式拟合
x_fit = linspace(min(x), max(x), 100); % 生成拟合曲线的x坐标
y_fit = polyval(p3, x_fit); % 计算拟合曲线的y坐标
figure;
plot(x, y, 'o'); % 绘制原始数据点
hold on;
plot(x_fit, y_fit); % 绘制拟合曲线
xlabel('x');
ylabel('y');
legend('原始数据', '3次多项式拟合');
```
拟合曲线如下图所示:
![3次多项式拟合](https://i.loli.net/2021/11/01/1vMgRZJxO7cGr4S.png)
5次多项式拟合:
```matlab
x = [1,2,4,7,9,12,13,15,17];
y = [1.5,3.9,6.6,11.7,15.6,18.8,19.6,20.6,21.1];
p5 = polyfit(x, y, 5); % 5次多项式拟合
x_fit = linspace(min(x), max(x), 100); % 生成拟合曲线的x坐标
y_fit = polyval(p5, x_fit); % 计算拟合曲线的y坐标
figure;
plot(x, y, 'o'); % 绘制原始数据点
hold on;
plot(x_fit, y_fit); % 绘制拟合曲线
xlabel('x');
ylabel('y');
legend('原始数据', '5次多项式拟合');
```
拟合曲线如下图所示:
![5次多项式拟合](https://i.loli.net/2021/11/01/Ks8W3X9JvCfhLbt.png)
利用matlab进行数据拟合已知向量x和y,其中x=[1,2,4,7,9,12,13,15,17],y=[1.5,3.9,6.6,11.7,15.6,18.8,19.6,20.6,21.1],y值随x值的变化而变化。请分别用3次和5次多项式进行拟合,并绘制拟合曲线。
3次多项式拟合:
```matlab
x = [1,2,4,7,9,12,13,15,17];
y = [1.5,3.9,6.6,11.7,15.6,18.8,19.6,20.6,21.1];
p3 = polyfit(x,y,3); % 3次多项式拟合
xx = 1:0.1:17; % 拟合曲线的x轴范围
yy = polyval(p3,xx); % 拟合曲线的y轴值
plot(x,y,'bo',xx,yy,'r-');
xlabel('x');
ylabel('y');
title('3次多项式拟合');
legend('数据点','拟合曲线');
```
结果如下图所示:
![3次多项式拟合图](https://i.loli.net/2021/11/02/6zQRgEZMn5X2y8O.png)
5次多项式拟合:
```matlab
p5 = polyfit(x,y,5); % 5次多项式拟合
yy = polyval(p5,xx); % 拟合曲线的y轴值
plot(x,y,'bo',xx,yy,'r-');
xlabel('x');
ylabel('y');
title('5次多项式拟合');
legend('数据点','拟合曲线');
```
结果如下图所示:
![5次多项式拟合图](https://i.loli.net/2021/11/02/vrKjH2mYw1gB7iJ.png)
阅读全文