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为常数.