📄 最小二乘法.m
字号:
x=[1 2 3 4 5];
y=[4 4.5 6 8 8.5];
w=[2 1 3 1 1];
plot(x,y,'+r')
hold on
for i=1:5
A0(i)=x(i)^0;
A1(i)=x(i)^1;
A2(i)=x(i)^2;
A3(i)=x(i)^3;
A0A0(i)=w(i)*A0(i)^2;
A0A1(i)=w(i)*A0(i)*A1(i);
A0A2(i)=w(i)*A0(i)*A2(i);
A0A3(i)=w(i)*A0(i)*A3(i);
A1A1(i)=w(i)*A1(i)^2;
A1A2(i)=w(i)*A1(i)*A2(i);
A1A3(i)=w(i)*A1(i)*A3(i);
A2A2(i)=w(i)*A2(i)^2;
A2A3(i)=w(i)*A2(i)*A3(i);
A3A3(i)=w(i)*A3(i)^2;
yA0(i)=w(i)*y(i)*A0(i);
yA1(i)=w(i)*y(i)*A1(i);
yA2(i)=w(i)*y(i)*A2(i);
yA3(i)=w(i)*y(i)*A3(i);
end
A0A0=sum(A0A0);A0A1=sum(A0A1);A0A2=sum(A0A2);A0A3=sum(A0A3);
A1A1=sum(A1A1);A1A2=sum(A1A2);A1A3=sum(A1A3);A2A2=sum(A2A2);
A2A3=sum(A2A3);A3A3=sum(A3A3);
yA0=sum(yA0);yA1=sum(yA1);yA2=sum(yA2);yA3=sum(yA3);
G=[A0A0 A0A1 A0A2 A0A3
A0A1 A1A1 A1A2 A1A3
A0A2 A1A2 A2A2 A2A3
A0A3 A1A3 A2A3 A3A3];
d=[yA0;yA1;yA2;yA3];
a=inv(G)*d;
xp=[1:0.001:5];
A=a(1)+a(2)*xp+a(3)*xp.^2+a(4)*xp.^3;
plot(xp,A,'-b')
title('拟合曲线图','FontSize',16)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -