您的当前位置:首页正文

最小二乘法应用实例

来源:个人技术集锦
系统辨识作业:

用LS解决一个实际问题

根据实测数据判断模型结构并辨识参数。

已知在不同的温度T下,测定铜棒的长度l如下表所示: 1 2 3 4 5 i 6 35 2001.25 7 40 2001.48 8 45 2001.60 Ti/℃ li/cm 10 2000.36 15 2000.50 20 2000.72 25 2000.80 30 2001.07 % Matlab 利用原始数据画折线图

clc,clear;

T=[10 15 20 25 30 35 40 45];

L=[2000.36 2000.50 2000.72 2000.80 2001.07 2001.25 2001.48 2001.60]; plot(T,L,'m'); grid on;

xlabel('T/℃'); ylabel('L /cm');

title('T-L Line chart'); legend('T-L');

图 1 T-L Line Chart

由折线图可知,铜棒的长度l随温度T呈线性变化,设l=aT+b,用最小二乘法给出参数a和b的最小二乘估计值。

% Matlab 实现最小二乘参数估计

LN=[2000.36 2000.50 2000.72 2000.80 2001.07 2001.25 2001.48 2001.60]'; TN=[10,1;15,1;20,1;25,1;30,1;35,1;40,1;45,1]; ab=inv(TN'*TN)*TN'*LN;%最小二乘计算 x=10:1:45;

plot(x,y,'b',T,L,'m'); grid on;

xlabel('T/℃'); ylabel('L /cm');

title('T-L Line chart'); legend('L=aT+b','T-L');

a=ab(1)% a的最小二乘估计值aˆ a = 0.0368

ˆ b=ab(2) % b的最小二乘估计值bb =

2.0000e+003

%原始数据折线图与l=aT+b函数图形对比:

图 2 折线图与直线图对比

所以铜棒的长度l与温度T的线性关系式为:l=0.0368T+2000

因篇幅问题不能全部显示,请点此查看更多更全内容