用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
因篇幅问题不能全部显示,请点此查看更多更全内容