Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-03-14, 11:19   #1
jianke
初级会员
 
注册日期: 2009-03-11
年龄: 40
帖子: 11
声望力: 17
jianke 正向着好的方向发展
默认 [求助]关于多项式拟合的问题,谢谢!

你好!我想用多项式拟合2560个点的方程,请问我一定要按照“x轴”从小到大来排这些数据再拟合方程吗?如果不排序拟合方程,得到的方程会一样吗?我用的拟合函数是,
coef=polyfit(x,y,n);

如果你知道,请赐教。谢谢!!!
jianke 当前离线   回复时引用此帖
旧 2009-03-24, 10:30   #2
云龙九现
初级会员
 
注册日期: 2009-03-20
年龄: 42
帖子: 26
声望力: 17
云龙九现 正向着好的方向发展
默认 回复: [求助]关于多项式拟合的问题,谢谢!

应该不用排序的
因为polyfit这个命令的原理其实是最小二乘拟合,最小二乘的特点是它拟合的直线或者曲线会尽量经过有相同趋势的点。
n=1的时候,拟合出来的是条直线,因为被拟合的曲线模型是y=a*x+b。通过该命令能够确定系数a,b的值,这时候你会发现,直线会从大多数的点或者尽量靠近大多数点。
n=2的时候,拟合出来的是条抛物线,因为被拟合的曲线模型是y=a*x*x+b*x+c。通过该命令能够确定系数a,b,c的值。
n=3的时候,拟合出来的是条三阶曲线,因为被拟合的曲线模型是y=a*x*x*x+b*x*x+c*x+d。通过该命令能够确定系数a,b,c,d的值。
与此同理,你可以得到n=9时候的拟合曲线,但根据我的经验,n=9的时候,不一定是最准确的。因为polyfit本身还返回一个曲线与各个点之间的方差与期望值,从这两个值你可以看到曲线拟合的准确度。
补充说明的是,如果你需要n=9的拟合曲线,那么你至少需要10组值,也就是(x1,y1),直到(x10,y10)。将这些值代入曲线模型,最后解一个有十个未知数的方程(十个系数)。这就是polyfit的原理。
云龙九现 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 22:23


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.