main.m
来自「最小二乘估计」· M 代码 · 共 36 行
M
36 行
clear;
clc;
comp=nchoosek(1:1:20,6);%求排列数
[row,col]=size(comp);
ST=importdata('ST.txt');
STN=[ones(20,1)';ST(:,2)';ST(:,3)';ST(:,4)']';
YN=ST(:,1);
for i=1:1:row
STF=[ST(comp(i,1),:);ST(comp(i,2),:);ST(comp(i,3),:);ST(comp(i,4),:);ST(comp(i,5),:);ST(comp(i,6),:);];
A=[ones(6,1)';STF(:,2)';STF(:,3)';STF(:,4)']';
L=STF(:,1);
X=inv(A'*A)*A'*L;
r=STN*X-YN;
r2=r.^2;
medrn(i,1)=median(r2);
end
d=min(medrn);
for i=1:1:row
if medrn(i,1)==d
j=i
end
end
STFO=[ST(comp(j,1),:);ST(comp(j,2),:);ST(comp(j,3),:);ST(comp(j,4),:);ST(comp(j,5),:);ST(comp(j,6),:);];
AO=[ones(6,1)';STFO(:,2)';STFO(:,3)';STFO(:,4)']';
LO=STFO(:,1);
XO=inv(AO'*AO)*AO'*LO;
%M估计
rO=STN*XO-YN;
det=sqrt(rO'*rO/16)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?