在Matlab中使用polyfit(x,y,2)命令对一组数据x和y进行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,虽然这样可能会导致误差大一点吧,但是我只需要这样的拟合,求各位大神给指点一下吧!谢谢啦

用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));
温馨提示:答案为网友推荐,仅供参考
相似回答