关于MATLAB拟合问题 最小二乘法

来源:百度知道 编辑:UC知道 时间:2024/06/13 16:43:02
用5阶多项式对(0,π/2)上的正弦函数值进行最小二乘法。

我的程序是
x=[0:pi/10:pi/2];
y=[0,0.0055,0.0110,0.0164,0.0220,0.0274];
a=polyfit(x,y,5);
y1=a(6)+a(5)*x1+a(4)*x1^2+a(3)*x1^3+a(2)*x1^4+a(1)*x1^5;
plot(x,y1);

为什么没有图像?错误提示是
??? Error using ==> mpower
Matrix must be square.

Error in ==> Untitled5 at 5
y1=a(6)+a(5)*x1+a(4)*x1^2+a(3)*x1^3+a(2)*x1^4+a(1)*x1^5;
什么意思。。。
写错了,是y1=a(6)+a(5)*x+a(4)*x^2+a(3)*x^3+a(2)*x^4+a(1)*x^5;

用点乘

clc;clear
x=[0:pi/10:pi/2];
y=sin(x);
%y=[0,0.0055,0.0110,0.0164,0.0220,0.0274];
x1=0:pi/100:pi/2;
a=polyfit(x,y,5);
y1=a(6)+a(5)*x1+a(4)*x1.^2+a(3)*x1.^3+a(2)*x1.^4+a(1)*x1.^5;
%或者用这个,更简单
%y1=polyval(a,x1);
plot(x,y,'o',x1,y1);