MATLAB 数据拟合问题如何用matlab求出这些点的二次多项式拟合方程的系数呢呢?请帮我写出M文件的内容吧,数据:x
1个回答

可以用的,而且冗余值越多对于最小二乘拟合越精确(前提是没有坏值)

比方说我一个x=1 有5个y 2,3,4,5,6

则把x写为x = [1 1 1 1 1]

y = [2 3 4 5 6]

就可以了.

程序楼上两位已经给了,借用下.

p = polyfit(x,y,2);

如果不想用polyfit,可以自己写一个,原理和polyfit其实是一样的

x=[5.50,6.75,7.25,5.50,7.00,6.50,6.75,5.25,5.25,6.00,6.50,6.25,7.00,6.90,6.80,6.80,7.10,7.00,6.80,6.50,6.25,6.00,6.50,7.00,6.80,6.80,6.50,5.75,5.80,6.80];

y=[7.38,8.51,9.52,7.50,9.33,8.28,8.75,7.30,7.20,8.00,7.89,8.15,9.10,8.86,8.90,8.87,9.26,9.00,8.75,7.95,7.65,7.27,8.00,8.50,8.75,9.21,8.27,7.67,7.93,9.26];

m = (x.*x)'

A = [m ,x' ,1]

para = inv(A'*A)*A'*y'

para里面为[a b c]

a为2次项系数,b为一次,c为常数.