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 + -
显示快捷键?