利用matlab作数据分析(最小二乘法拟合)

296 阅读1分钟

拟合以下数据

[0.00016 0.00031 0.00049 0.00067 0.00082];
[0.03025 0.0605 0.09075 0.125 0.15625];
代码: X=[0.00016 0.00031 0.00049 0.00067 0.00082];
Y=[0.03025 0.0605 0.09075 0.125 0.15625];

n=5;

x2=sum(X.^2); % 求Σ(xi^2)
x1=sum(X); % 求Σ(xi)
x1y1=sum(X.Y); % 求Σ(xiyi)
y1=sum(Y); % 求Σ(yi)

a=(nx1y1-x1y1)/(nx2-x1x1); %解出直线斜率b=(y1-ax1)/n
b=(y1-a
x1)/n; %解出直线截距
%作图
% 先把原始数据点用蓝色十字描出来
figure
plot(X,Y,'+');
hold on
grid on % 用红色绘制拟合出的直线
px=linspace(0,0.001,45); py=a*px+b;
plot(px,py,'r');
运行结果