在Matlab中使用polyfit(x,y,2)命令对一组数据x和y进行2阶多项式拟合,会得到三个数,即分别为2次项的系

问题描述:

在Matlab中使用polyfit(x,y,2)命令对一组数据x和y进行2阶多项式拟合,会得到三个数,即分别为2次项的系数,1次项的系数和常数项.现在问题来了:能不能让x和y的关系仅仅在2次项方面,即仅仅是y=k*x*x(k为系数),而不是y=k*x*x+m*x+n,虽然这样可能会导致误差大一点吧,但是我只需要这样的拟合,
1个回答 分类:综合 2014-12-11

问题解答:

我来补答
用nlinfit函数实现非线性的最小二乘拟合
将x,y的关系拟合为y=a*x.^2
可以用polyfit首先拟合得到多项式
将p(1)也就是二次项系数作为拟合的初值,那样更快收敛
p=polyfit(x,y,2);
a = nlinfit(x,y,@(a,x) a*x.^2,p(1));
 
 
展开全文阅读
剩余:2000