需要用matlab绘制一个图,先根据原始数据绘制散点图,程序如下,现在问题是要将拟合函数绘制进散点图做对x=[4.5,5.9,7.6,8.1,11.2,15.2,17.5,18.5,19.3,20.5,23.4,28.2];y=[1.59,2.8,3.21,3.34,3.21,3.6,5.23,6.23,7.86,9.21,9

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/26 18:52:25

需要用matlab绘制一个图,先根据原始数据绘制散点图,程序如下,现在问题是要将拟合函数绘制进散点图做对
x=[4.5,5.9,7.6,8.1,11.2,15.2,17.5,18.5,19.3,20.5,23.4,28.2];
y=[1.59,2.8,3.21,3.34,3.21,3.6,5.23,6.23,7.86,9.21,9.35,9.42];
plot(x,y,'-*')
hold on
plot(x,ybest,'b')
拟合函数为:
ybest=-22.1581+10.19286*x-1.49901*x.^2+0.09879*x.^3-0.0029*x.^4;
需要讲散点图和此函数图绘制入同一个图表对对比,
x=[4.5,5.9,7.6,8.1,11.2,15.2,17.5,18.5,19.3,20.5,23.4,28.2];
y=[1.59,2.8,3.21,3.34,3.21,3.6,5.23,6.23,7.86,9.21,9.35,9.42];
plot(x,y,'*')
hold on
我不是用matlab拟合的,效果不太好,那如果我不需要加入这个曲线函数图,而就用matlab 拟合一下这些散点,使之成为一条平滑曲线呢?可否有这样的程序?万谢.

你这个拟合函数有严重的错误根据你所提供的函数我做了拟合 及其不接近
程序如下 自己去看下吧
函数程序:
function ybest=ybest(x)
ybest=-22.1581+10.19286*x-1.49901*x.^2+0.09879*x.^3-0.0029*x.^4
主运行程序
clc
clear
x=[4.5,5.9,7.6,8.1,11.2,15.2,17.5,18.5,19.3,20.5,23.4,28.2];
y=[1.59,2.8,3.21,3.34,3.21,3.6,5.23,6.23,7.86,9.21,9.35,9.42];
plot(x,y,'-*');hold on
y1=ybest(x)
plot(x,y1,'-o')
现在就是用matlab函数进行拟合
clc
clear
x=[4.5,5.9,7.6,8.1,11.2,15.2,17.5,18.5,19.3,20.5,23.4,28.2];
y=[1.59,2.8,3.21,3.34,3.21,3.6,5.23,6.23,7.86,9.21,9.35,9.42];
subplot(2,2,1),
plot(x,y,'o');hold on
p=polyfit(x,y,1)
y1=polyval(p,x);
plot(x,y1,'-*')
subplot(2,2,2),
plot(x,y,'o');hold on
p=polyfit(x,y,2)
y1=polyval(p,x);
plot(x,y1,'-*')
subplot(2,2,3),
plot(x,y,'o');hold on
p=polyfit(x,y,3)
y1=polyval(p,x);
plot(x,y1,'-*')
subplot(2,2,4),
plot(x,y,'o');hold on
p=polyfit(x,y,4)
y1=polyval(p,x);
plot(x,y1,'-*')
通过比较发现四次拟合最合适
p =
-0.0004 0.0226 -0.4441 3.6236 -7.4335
多项式的系数