当前位置:
文档之家› Matlab 第9讲专题最小二乘方法
Matlab 第9讲专题最小二乘方法
9.3 算例分析
p=[0,10.0,20.5,30.4,39.8,49.6,60.1,70.0,79.2,90.4,100.0] d=[0,0.11,0.20,0.31,0.39,0.49,0.70,0.89,1.10,1.31,1.50] (1) A=[d.^3;d.^2;d;ones(1,length(d))]’; x=A\p; a1=x(1); a2=x(2); a3=x(3); a4=x(4);
b=[1;0;1;0] x=A\b (左除法) x2=inv(A’*A)*A’*b (最小二乘法)
9.3 算例分析
例题2:
%生成系数矩阵 t=[0,20,40,60,80,100,120,140,160,183.5]; n=[0,1153,2045,2800,3466,4068,4621,5135,5619,6152]; A=[n.^2;n]’; x=A\t; a=x(1); b=x(2);
Matlab 程序设计第9讲 最小二乘数值解法
主讲人:王佐才 博士 研究员/博导
合肥工业大学土木与水利工程学院
提纲
最小二乘解法及其理论基础 最小二乘解法要使用到的命令 最小二乘解法的应用和程序实现
9.1 最小二乘解法及其理论
9.1 最小二乘解法及其理论
引例:
求解方程: x+y=1; 求解方程: x=1 x=1.2 x=0.88
利用Matlab编程时需要用的主要命令: [A]{x}={b} {x}=([A]T[A])-1{b} {x}=[A] \{b}
9.3 算例分析
例题1:求解
x1-2x2 3x3 1 4x1 x2 0
7x1 x2 6x3 1
9x1 5x2 8x3 0
A=[1,-2,3;4,1,0;7,1,6;9,5,8]
当向量b不在矩阵A列向量构成的空间中,线性方程组Ax=b没有准确解,存 在最小二乘解。换句话说,当方程组的个数多于未知数的个数时(准确的说 应该是方程组系数的秩大于方程未知数的个数),方程组没有精确解,只有 最小二乘解。
最小二乘法是一种数学优化技术,它通过最小化误差的平方和寻找数据的 最佳数据匹配。对于求解线性方程组,最小二乘法采用的手段是尽可能使方 分析
例题3:一简支梁的荷载曲线试验,如图所示。其中p为加在跨中的荷载,
d为跨中的变形。 在一系列的加载试验中,测得的p值与相应的变形d为: p=[0,10.0,20.5,30.4,39.8,49.6,60.1,70.0,79.2,90.4,100.0] d=[0,0.11,0.20,0.31,0.39,0.49,0.70,0.89,1.10,1.31,1.50] (1)若拟合p-d曲线,且假设p是d的三次函数,即 p=a1*d^3+a2*d^2+a3*d+a4 根据上面所测的数据,求三次曲线的系数a1~a4. (2)若拟合p-d曲线,且假设p是d的双线性关系,即当p<=50时, p=a1*d+a2; 当p>50时,p=a3*d+a4. 根据上面所测的数据,求双直线拟合的各系数a1~a4.
本章主要讲解了最小二乘解法的理论基础和应用及计算机实现。
作业:一悬臂梁的荷载曲线试验,如图所示。其中p为加在端部的荷载,d为自由端 部的变形。在一系列的加载试验中,测得的p值与相应的变形d为: p=[0,10.2,20.0,30.2,39.8,49.6,60.0,70.4,79.2,90.4,100.0] d=[0,0.11,0.20,0.31,0.39,0.49,0.70,0.79,1.00,1.21,1.40] (1)若拟合p-d曲线,且假设p是d的二次函数,即p=a1*d^2+a2*d+a3。 根据上面所测的数据,求二次曲线的系数a1~a3。 (2)若拟合p-d曲线,且假设p是d的双线性关系,即当p<=60时,p=a1*d+a2; 当p>60时,p=a3*d+a4。 根据上面所测的数据,求双直线拟合的各系数a1~a4。
9.2 最小二乘解法使用命令
1、直接法: 前面介绍了矩阵的除法,分为左除“\”和右除“/”。在 求解线性方程组Ax=b时,一般采用左除符号,即x=A\b, 这是由于方程组的形式决定的。假如方程的形式为xC=D, 那么就应该使用右除,即x=D/C。 2、矩阵求逆法 x=inv(A’*A)*A’*b
(2) A=zeros(length(d),4); A(1:6,1)=d(1:6)’; A(1:6,2)=ones(6,1); A(7:11,3)=d(7:11)’; A(7:11,4)=ones(5,1); x=A\p; a1=x(1); a2=x(2); a3=x(3); a4=x(4);
9.4 小结