作业帮 > 综合 > 作业

给定一组数据,如何用软件,比如Matlab将其拟合成一条曲线?并且将其尽量小误差的进行折线化?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/11 03:39:55
给定一组数据,如何用软件,比如Matlab将其拟合成一条曲线?并且将其尽量小误差的进行折线化?
多项式曲线拟合
p o l y f i t ( x ,y ,n ) 找到次数为n的多项式系数,对于数据集合{ (xi,yi) },
满足差的平方和最小.
[ p ,E ] = p o l y f i t ( x ,y ,n ) 返回同上的多项式P和矩阵E.多项式系数在向量p
中,矩阵E用在p o l y v a l函数中来计算误差.
再问: 没有学过这个软件,能不能给个简单的程序?
再答: 就是把数据打进x、y向量里,先画散点图看看是什么形状,再决定次数n。 x=[数据]; y=[]; plot(x,y,'.'); %决定n的值; [p,E]=plyfit(x,y,n); p %显示出的p即为降次排列的n次多项式的系数。 给你看几道例题吧 例5 某乡镇企业1990-1996 年的生产利润如表5。 表5 年份 1990 1991 1992 1993 1994 1995 1996 利润(万元) 70 122 144 152 174 196 202 试预测1997 年和1998 年的利润。 解 作已知数据的的散点图, x0=[1990 1991 1992 1993 1994 1995 1996]; y0=[70 122 144 152 174 196 202]; plot(x0,y0,'*') 发现该乡镇企业的年生产利润几乎直线上升。因此,我们可以用1 0 y = a x + a 作为 拟合函数来预测该乡镇企业未来的年利润。编写程序如下: x0=[1990 1991 1992 1993 1994 1995 1996]; y0=[70 122 144 152 174 196 202]; a=polyfit(x0,y0,1) y97=polyval(a,1997) y98=polyval(a,1998) 求得20 1 a = , 4 0 a = −4.0705×10 ,1997 年的生产利润y97=233.4286,1998 年的 生产利润y98=253.9286。 例1 0 . 6 下面给出了对向量x和y拟合不同阶的多项式图形,阶分别为3,4,5。 p3=polyfit(x, y, 3); % 用向量x和y中元素拟合不同 p4=polyfit(x, y, 4); % 次数的多项式 p5=polyfit(x, y, 5);