资源描述
线性代数应用实例取自线性代数机算与应用指导(MATLAB)版例例 1 平板稳态温度的计算平板稳态温度的计算为了计算平板形导热体的温度分布,将平板划分为许多方格,每一个节点上的稳态温度将等于其周围四个节点温度的平均值。由此可得出阶数与节点数相同的线性方程组,方程的解将取决于平板的边界条件。这个方法可以用来计算飞行器的蒙皮温度等。T1T2T3T44/50304/50104/30204/2010324413412321TTTTTTTTTTTT8060503041101401104101144321TTTT平板温度计算的模型整理为A=4,-1,-1,0;-1,4,0,-1;-1,0,4,-1;0,-1,-1,4;b=30;50;60;80;U=rref(A,b)MATLAB 程序(ma1)运行结果为:U=向高阶系统扩展则要解 25 阶的线性方程组。运行书上的程序得温度分布如下 将平板分割得愈细,求出的解就愈精确。如果把上述区域分成 25 个点如右MATLAB 程序程序ma212233414=100 =72=37=9xxxxxxxx例例 2 交通流的建模交通流的建模对于一个有双向车流的十字路口,根据流出流入车数相等的规则,可以列出下列方程组:节点A:x1360 x2260节点B:x2220 x3292节点C:x3320 x4357节点D:x4260 x1251相应的矩阵方程为:A=1,-1,0,0;0,1,-1,0;0,0,1,-1;-1,0,0,1;b=-100;72;37;-9;U=rref(A,b)142434910937xxxxxxMATLAB 程序(ma3)运行结果为:U=1 0 0 -1 9 0 1 0 -1 109 0 0 1 -1 37 0 0 0 0 0 由于 U 的最后一行为全零,也就是说,四个方程中实际上只有三个独立。x4 可以任设,因为如果有一些车沿此路口环行,对方程无影响,故方程组的解可如上表示.把上述模型扩展到多个十字路,乃至整个城市,就构成高阶的线性代数方程组。例如下面的 6 节点交通流图,它就要由 6 个方程和 7 个变量来描述。用行最简型方法可以知道,它的解将包括两个自由变量。其物理意义类推。向高阶系统扩展左图描述了四个城市之间的航空航线图,其中1、2、3、4 表示四个城市;带箭头线段表示两个城市之间的航线。设行号表示起点城市,列号为到达城市,则定义邻接矩阵 A 为:0111001100001100A例例 3 飞机航线问题飞机航线问题转机航线的数学模型不难证明:矩阵 A2=A*A 表示一个人连续坐两次航班可以到达的城市,矩阵 A3=A*A*A 表示连续坐三次航班可以到达的城市:其中,第 i 行描述从城市 i 出发,可以到达各个城市的情况,若能到达第 j 个城市,记 A(i,j)=1,否则 A(i,j)=0,规定 A(i,i)=0(其中 i=1,2,3,4)。如第 2 行表示:从城市 2出发可以到达城市 3 和城市 4 而不能到达城市 1 和 2。31222012200002211A2444123300003433At2多次转机到达的城市分析矩阵 A3 的第二行,可以得出:某人从城市 2 出发,连续坐三次航班可以到达城市 2、3 和城市4,不能到达城市 1,而到达城市 3 和城市 4 的方法各有两种。不难看出,转机两次以下的航线的航路矩阵为At2=A+A2+A3程序为(ma4)A=0,1,1,1;0,0,1,1;0,0,0,0;1,1,0,0;At2=A+A2+A3例例 4 行列式的几何应用行列式的几何应用二阶行列式的几何意义是两个二维向量构成的平行四边形的面积,三阶行列式的几何意义是三个 3 维向量构成的平行六面体的体积。如下图所示,用 MATLAB 软件来实现面积和体积的运算。实例实例(I I)已知三角形ABC三个顶点的坐标分别为:(1,2),(3,3),(4,1),计算该三角形的面积;(IIII)已知凸九边形九个顶点的坐标分别为:(0,8.5),(3,7),(6,0),(3,-4),(1,-5),(-5,-3),(-7,0),(-5,6),(-3,8),计算该九边形的面积。(IIIIII)在平面坐标系中画出以上三角形和九边形。平行四边形面积计算平行四边形面积计算解解:(I)如图所示,三角形 ABC 的面积就等于向量AB和向量AC所构成平行四边形面积的一半。其中:ABOBOAACOCOA 由向量 和 所构成的平行四 边形的面积为行列式 的绝对值。计算的MATLAB语句为:S=abs(a1*b2-a2*b1)实例实例给出的是三角形三个顶点坐标a1,b1,a2,b2,a3,b3,求该三角形面积,则有:MATLAB写成S=abs(det(a2-a1,b2-b1;a3-a1,b3-b1)11,a bAB22,a bAB1122abab212131310.5aa bbSabsaa bb 多边形可以划分为多个三角形来计算。先对三角形面积计算构成一个函数程序;这个子程序名为:cal_area3(A,B,C)A,B,C为三个顶点的二维坐标向量 凸多边形面积只需多次调用这个函数程序;例如五边形ABCDE,可由S5=cal_area3(A,B,C)+cal_area3(A,C,D)+cal_area3(A,D,E)求得。(MATLAB程序ma4)也可由多边形面积子程序cal_arean(A)计算。扩展至多边形面积计算解:(II)如图所示,凸九边形面积是由9-2=7个三角形面积组成。在在MATLABMATLAB命令窗口运行程序,即可以算出三角命令窗口运行程序,即可以算出三角形和九边形面积,同时可以得到图形:形和九边形面积,同时可以得到图形:MATLAB 程序程序function s=cal_area3(a,b,c)%a,b,c 应为同形的 2 维行向量或列向量,%格式检验语句略去 ab=b-a;%计算向量ABac=c-a;%计算向量ACif size(ab)=1,2%判读向量AB是否为行向量 A=ab;ac;%构造矩阵Aelse A=ab,ac;ends=abs(det(A)/2;%根据公式计算三角形面积成药1号成药2号成药3号成药4号成药5号成药6号成药7号成药A10214122038100B1201225356055C531105140D79255154735E012255336F255355355550G94172523925H651610103510I821200620例例 5 药方配置问题药方配置问题(1)某医院要购买这 7 种特效药,但药厂的第 3号和第 6 号特效药已经卖完,请问能否用其它特效药配制出这两种脱销的药品。分析:即 3,6 向量与其他向量是否线性相关(2)现在该医院想用这 7 种中草药配制三种新的特效药,下表为新药所需的成分质量(单位:克)。请问如何配制。分析:这是新药向量与原来药向量是否线性相关的问 题。问题及分析思路1号新药2号新药3号新药A4016288B6214167C14278D4410251E53607F5015580G7111838H416821I145230新药的成分要求新药的成分要求 u1=10;12;5;7;0;25;9;6;8;u2=2;0;3;9;1;5;4;5;2;u3=14;12;11;25;2;35;17;16;12;u4=12;25;0;5;25;5;25;10;0;u5=20;35;5;15;5;35;2;10;0;u6=38;60;14;47;33;55;39;35;6;u7=100;55;0;35;6;50;25;10;20;U1=u1,u2,u3,u4,u5,u6,u7 V1,r=rref(U1)问题(1)的 MATLAB 程序(ma6)运行结果运行结果V1=1 0 1 0 0 0 0 0 1 2 0 0 3 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0r=1 2 4 5 7可见这七种特效药是“相关的”,3、6 两种药可用其它 5种药线性配制出来,但第1、2、4、5、7 种药“无关”。因此,8,9 两种药可以配出,第 10 种药则不能配出。V2=1 0 1 0 0 0 0 1 3 0 0 1 2 0 0 3 0 3 4 0 0 0 0 1 0 1 0 2 2 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s=1 2 4 5 7 10为求第二个问题,把 3 种新药与 7 种原药组成矩阵 U2,求 rref,得:s1=40 62 14 44 53 50 71 41 14 s2=162 141 27 102 60 155 118 68 52 s3=88 67 8 51 7 80 38 21 30 U2=U1,s1,s2,s3 V2 r=rref(U2)问题(2)的 MATLAB 程序假设一个城市的总人口数是固定不变,但人口的分布情况变化如下:每年都有 5 的市区居民搬到郊区;而有 15 的郊区居民搬到市区。若开始有 700000 人口居住在市区,300000 人口居住在郊区。请分析:(1)10 年后市区和郊区的人口各是多少?(2)30 年后、50 年后市区和郊区的人口各是多少?(3)分析(2)中数据相似的原因。例例 6 人口迁徙问题人口迁徙问题,nnnxyX110.950.150.050.85nnnnnnxxyyxy1110.950.150.050.85nnnnnnxxyyXAX解 这个问题可以用矩阵乘法来描述。令人口变量其中 xn 为市区人口所占比例,yn 为郊区人口所占比例。在 n+1年的人口分布状态为:用矩阵乘法可写成:000700000,300000 xyX2nnn-1n-20X=AX=A X=A XA=0.95,0.15;0.05,0.85;X0=700000;300000;X10=A10*X0 开始市区和郊区的人口数为 可以得到 n 年后市区和郊区的人口分布:因此(1)10 年后的人口可用程序计算如下:1010107.44637446301.0005,2.5537255370 xeyX运行结果为:故市区和郊区人口数约为:744630和255370。kkk-1-1-1-1A=pp ppppp p 00kk-1kx=A x=p p x1122kkk k 无限增加时间 n,市区和郊区人口之比将趋向常数。为了弄清为什么它趋向于一个稳态值,需要求Ak,为此可先将 A 对角化,再求其 k 次幂。对角矩阵的幂次可以化为元素的幂次 余下很容易计算。-1A=pp令其中为对角矩阵,则有%分析 n 年后城市人口分布(ma7)clearA=0.95,0.15;X0=700000;300000;P,lambda=eig(A);syms n%定义符号变量 nXn=P*lamda.n*inv(P)*X0 MATLAB 程序显然,随 n 增大(4/5)n 趋近于零,而 Xn 趋于75000050000*4/525000050000*4/5nnXn运行结果为:750000250000 x01234y-270210-75例例 7 多项式插值与拟合多项式插值与拟合234401234()pxaa xa xa xa x求:(1)过这五个点作一个四次多项式函数22012()pxaa xa x(2)请根据这五个点,拟合一个二次多项式函数下表给出了平面坐标系中五个点的坐标。并求 x=5 时的函数值 p4(5)。用 MATLAB 绘制多项式函数 p4(x)的曲线、已知点及插值点(5,p4(5)。并用 MATLAB 绘制 p2(x)的曲线及已知的五个点。23401234234012342340123423401234234012340000271111022222133330444475aaaaaaaaaaaaaaaaaaaaaaaaa Aa=y234023412342234323442710000011111,21122220133337514444aaaaaAay其中矩阵:解:(1)根据已知条件,把五个点的坐标值分别代入四次多项式函数,可以得到如下线性方程组:系数矩阵 A 的行列式为范德蒙(Vandermonde)行列式,且五个坐标点的横坐标各不相同,则该行列式不等于零,所以方程组有唯一解。MATLAB 程序:(ma8)x=0;1;2;3;4;%输入已知点坐标y=-27;0;21;0;-75;A=x.0,x.1,x.2,x.3,x.4;%构造 vandermonde 矩阵a=Ay;%得到适定方程组的唯一解 a运行程序,得到a(1)=-27,a(2)=12,a(3)=26,a(4)=-12,a(5)=1.20122012201220122012002711022213304475aaaaaaaaaaaaaaa Aa=y 把五个点的坐标值分别代入二次多项式函数,可以得到如下线性方程组:22021222271000111,21122013375144aAaaya其中,(2)多项式拟合要解一个超定方程该方程组有三个未知数,但有五个方程,进一步分析可以得到该方程组无解,即不存在一个二次多项式曲线刚好能过已知的五个点。MATLAB 软件提供了一个利用最小二乘法解决超定方程组解的方法。求系数的公式也是 a=Ay,以找到一条二次曲线来近似地描述已知 5 个点的变化情况。对比插值和拟合的曲线如下图用平面坐标系中的一个闭合图形来描述刚体,用一个矩阵 X 来表示它。X 的一列表示刚体一个顶点的坐标。为了使图形闭合,X 的最后一列和第一列相同;为了实现刚体的平移运算,给矩阵 X 添加元素值都为 1 的一行,使 X 为 3n 矩阵。1210cossin001,sincos0,001001cttctt12MRY=MXY=RX且,若有矩阵:则可以证明,矩阵 Y1 是刚体 X 沿 x 轴正方向平移 c1,沿 y 轴正方向平移 c2 后的结果;矩阵 Y2 是刚体 X 以坐标原点为中心逆时针转动 t 弧度的结果。例例 8 刚体的平面运动刚体的平面运动x04610853.56.1 6.53.220y014140011664.54.500实 例用下列数据表示字母 A:对 A 进行以下平面运动,并绘制移动前后的图形。(1)向上移动 15,向左移动 30;(2)逆时针转动/3;(3)先逆时针转动3/4,然后向上平移 30,向右平移 20。04610853.56.16.53.220014140011664.54.500111111111111X解 构造刚体矩阵 X,平移矩阵及转动矩阵。M1=100010-30201M2=10001020301R1=3cos3sin-3sin001003cosR2=43cos43sin-43sin0010043cosMATLAB 程序(ma9)X=0,4,6,10,8,5,3.5,6.1,6.5,3.2,2,0;0,14,14,0,0,11,6,6,4.5,4.5,0,0;ones(1,12);%构造刚体矩阵 X M1=1,0,-30;0,1,15;0,0,1;%构造平移矩阵 M1 Y1=M1*X;%计算平移结果 fill(Y1(1,:),Y1(2,:),red);%绘制平移后刚体 Y1 plot(X(1,:),X(2,:);%绘制原来刚体 X hold on axis equal R1=cos(pi/3),-sin(pi/3),0;sin(pi/3),cos(pi/3),0;0,0,1;%构造转动矩阵 R1 Y2=R1*X;%计算旋转结果 fill(Y2(1,:),Y2(2,:),blue);%绘制转动后刚体 Y2 fill(Y3(1,:),Y3(2,:),black);%绘制转动及平移后刚体 grid on hold off M2=1,0,20;0,1,30;0,0,1;%构造转动矩阵 M2 R2=cos(3*pi/4),-sin(3*pi/4),0;%构造转动矩阵 R2 sin(3*pi/4),cos(3*pi/4),0;0,0,1;Y3=M2*R2*X;%旋转平移后的结果 Y3运行的结果如下线性变换的线性变换的几何含义几何含义实例实例1 1已知向量已知向量 。请分析经过线性变换。请分析经过线性变换21xiiyA x 后,向量后,向量 与向量与向量 的几何关系。其中的几何关系。其中 分别为:分别为:iyxiA12310100.50,010102AAA4cossin,sincos2A 在在MATLABMATLAB命令窗口运行程序,可以得到图形:命令窗口运行程序,可以得到图形:线性变换的线性变换的几何含义几何含义实例实例2 2 已知矩阵已知矩阵MATLABMATLAB分析特征向量的几何含义。分析特征向量的几何含义。123131212,251524AAA42132A,求它们的特征值和特征向量,并用,求它们的特征值和特征向量,并用解:用解:用MATLABMATLAB求矩阵特征值和特征向量的方法为:求矩阵特征值和特征向量的方法为:用用MATLABMATLAB演示矩阵演示矩阵A A的特征向量几何含义的命令为:的特征向量几何含义的命令为:(1 1)r=eig(A),r=eig(A),列向量列向量r r为矩阵为矩阵A A的特征值的特征值(2 2)V,D=eig(A)V,D=eig(A),对角矩阵,对角矩阵D D的对角线元素为矩阵的对角线元素为矩阵A A的特的特征值,矩阵征值,矩阵V V的列向量为矩阵的列向量为矩阵A A的特征向量。的特征向量。eigshow(A)eigshow(A)在在MATLABMATLAB命令窗口运行程序,可以分别得到图形:命令窗口运行程序,可以分别得到图形:二次型的二次型的几何含义几何含义1 1、利用正交变换化二次型为标准形的几何含义。、利用正交变换化二次型为标准形的几何含义。例例1 1 用正交变换,把下列二次型化为标准形,并讨论变换用正交变换,把下列二次型化为标准形,并讨论变换前后所对应的二次曲线前后所对应的二次曲线 及及 。12,f x xc12,fy yc 221211221,625fx xxx xx 221211222,342fx xxx xx解:用解:用MATLABMATLAB命令命令eigeig可以算出二次型矩阵的特征值分别可以算出二次型矩阵的特征值分别为:,为:,6.6180 6.6180 和,和,-2.7016-2.7016。在在MATLABMATLAB命令窗口运行程序,可以得到图形:命令窗口运行程序,可以得到图形:二次型的二次型的几何含义几何含义2 2、二次型正定、负定的几何含义。、二次型正定、负定的几何含义。例例2 2 分析下列二次型的正定性,并画出对应的二次曲分析下列二次型的正定性,并画出对应的二次曲面面 。12,ff x x 221211221,625fx xxx xx 221211222,342fx xxx xx 221211223,23fx xxx xx 21214,3fx xx 在在MATLABMATLAB命令窗口运行程序,可以得到图形:命令窗口运行程序,可以得到图形:谢谢!谢谢!
展开阅读全文