线性代数实践(教师班第9讲).ppt
第9章 线性变换及其特征9.1 平面上线性变换的几何意义 例9.1 设x为二维平面上第一象限中的一个单位方块,其四个顶点的数据可写成把不同的A 矩阵作用于此组数据,可以得到多种多样的结果yi=Ai*x。用程序ag911 进行变换计算,并画出x及yi图形:x0,1,1,0;0,0,1,1;subplot(2,3,1),fill(x(1,:),0,x(2,:),0,r)A1 1,0;0,1,y1 A1*xsubplot(2,3,2),fill(y1(1,:),0,y1(2,:),0,g)几种变换的行列式与特征值看出的基本关系 可以看出,矩阵A1使原图对纵轴生成镜像,矩阵A2使原图在横轴方向膨胀,矩阵A3使原图在纵轴方向压缩,矩阵A4使原图向右方剪切变形,矩阵A5使原图沿反时针方向旋转t pi/6。分别计算出这五个矩阵的行列式和特征值,对二维空间(平面),行列式的几何意义实际上是两个向量所构成的平行四边形的面积。一个变换所造成的图形的面积变化,取决于该变换的行列式。A1,A4和A5的行列式绝对值都是1,所以它们不会使变换后图形的面积发生改变。而A2和A3的行列式分别为1.5和0.2,9.2 二维矩阵特征值的几何意义 二维矩阵的特征值表示该变换在原图形的特征向量的方向上的放大量。例如矩阵A1在第一特征向 量 方向的特征值为,即横轴 正方向的增益为1,其结果是把原图中横轴正方向的部分变换到新图的负方向去了;A1在第二特 征向量 的方向的特征值为1(2)=1,即纵轴正方向的增益为1,因而保持了新图和原图在纵轴方向尺度不变。用eigshow 函数看特征值 对于比较复杂的情况,完全凭简单的几何关系去想像是困难的,应当用eigshow 函数,联系x 和Ax 的向量图来思考。键入eigshow(A4)。绿色的x 表示原坐标系中的单位向量,可以用鼠标左键点住x 并拖动它围绕原点转动。图中同时出现以蓝色表示的Ax 向量,它表示变换后的新向量。当两个向量处在同一条直线上时(包括同向和反向),表示两者相位相同,只存在一个(可正可负的)实数乘子,Ax x Eigshow(A4)产生的图形eigshow(1,2;2,2)的图形将eigshow(1,2;2,2)粘贴到命令窗A 是对称实矩阵的情况 特别要注意A 是对称实矩阵的情况,所谓对称矩阵是满足ATA 的矩阵。,对22矩阵,只要求A(1,2)A(2,1)。例如令A=1,2;2,2 再键入eigshow(A),这时的特点是:Ax x出现在Ax 椭圆轨迹的主轴上,所以两个特征值分别对应于单位圆映射的椭圆轨迹的长轴和短轴。此时A 的特征值为-0.5616和 3.5616,可以和图形对照起来看。例9.2 斜体字的生成 数据矩阵表示英文大写空心字母N 的各个节点(1)用plot 语句在子图1中画出其形状;(2)取 作为变换矩阵对x进行变换,并在子图2中画出其图形;画图的要点是要在给定的数据右方,补上第一点的坐标,使画出的图形封闭。程序与图形结果x00,0.5,0.5,6,6,5.5,5.5,0;0,0,6.42,0,8,8,1.58,8;xx0,x0(:,1);%把首顶点坐标补到末顶点后A 1,0.25;0,1;y A*x;subplot(1,2,1),plot(x(1,:),x(2,:)subplot(1,2,2),plot(y(1,:),y(2,:)画出的两个图形如右:平移运动不能用二维变换实现 刚体在平面上的运动要用两个平移和一个转动来描述,转动可以从上面的线性变换A5得到,但平移y xc 却不是一个线性变换。因为:(1)设ya xa c;ybxbc;则它们的和为yya ybxa xb2cx c,可见,它对加法不封闭;(2)设ya xa c;将它乘以常数k,ykya k(xa c)kxa kckxa c xc,可见,它对乘法也不封闭;就是说,这不符合线性变换的规则,x和y 不属于同一个向量空间,无法用矩阵乘法来实现平移变换y xc。平面运动模型的齐次坐标系 把平面问题映射到高维的空间来建立方程,有可能把x和y 由扩展了的向量空间来覆盖。把原来通过原点的平面沿垂直方向提高一个单位,与原平面保持平行,于是原来的x就用三维向量来表示为:这样的坐标系称为齐次坐标系。刚体平面运动用线性变换描述 此时可以把平移矩阵写成:因而平移运动y就可用x经线性变换实现了。这个方法在研究刚体平面运动时非常有用。同时有旋转和平移的情况 对象若同时有旋转和平移,则可以分别列出旋转矩阵和平移矩阵。不过此时的旋转矩阵也要改为33维,这可以把上述A5中增加第三行和第三列,置A(3,3)1,其余新增元素为零。这就是既包括平移,又包括转动的平面齐次坐标系内的变换矩阵。例9.3 刚体平面运动描述 设三角形的三个顶点坐标为(1,1),(1,1),(0,2),今要使它旋转30度,右移2,上移3,以试设计变换矩阵A,并画出变换前后的图形。解:程序的要点是:1。列出三角形的数据矩阵2。扩展为齐次坐标(第三行加1)3。平移和转动变换矩阵也要用三维的变换矩阵4。按变换次序左乘5。绘图9.3 空间线性变换的几何意义 三维空间线性变换最直接的几何意义和应用价值可以从飞行器的三维转动坐标中得到解释。飞行器在空中可以围绕三个轴旋转。假如它在向北飞行,机头正对北方,则它围绕铅垂轴的旋转角称为偏航角(Yaw),它描述了飞机左右的偏转,用u表示;围绕翼展轴的旋转角称为倾斜角(Pitch),它描述了飞机俯仰姿态,用v表示;围绕机身轴的旋转角称为滚动角(Roll),用w 表示;u,v和w 三个变量统称为欧拉角,它们完全地描述了飞机的姿态。演示程序quatdemo 演示画面的说明 画面中。左方为飞行器在三维空间中的模型,其中红色的是飞行器。右上方为三个姿态角u,v,w 的设定标尺和显示窗,右下方为在地面坐标系中的另外的三个姿态角:方位角、俯仰角和倾侧角。左下方还有【静态】和【动态】两个复选钮,我们只介绍【静态】,读者可自行试用【动态】进行演示。用键入参数或移动标尺的方法分别给u,v,w 赋值并回车后,就可以得出相应的飞行器姿态,同时出现一根蓝色的线表示合成旋转的转轴。例9.4 程序的实现方法。把飞行器的三维图像用N 个顶点描述,写成一个3N 的数据矩阵G。用plot3 命令时按顶点连线能绘制出飞行器的外观。例如以下的程序ag904a 即可画出一个最简单的飞行器立体图。Gw=4,3,0;4,3,0;0,7,0;4,3,0;%主翼的顶点坐标 Gt=0,3,0;0,3,3;0,2,0;0,3,0;%尾翼的顶点坐标 G=Gw,Gt%整个飞行器外形的数据集 plot3(Gw(1,:),Gw(2,:),Gw(3,:),r),hold on plot3(Gt(1,:),Gt(2,:),Gt(3,:),g),axis equal 围绕各个轴的旋转变换矩阵 飞行器围绕各个轴的旋转的结果,表现为各个顶点坐标发生变化,也就是G 的变化。只要把三种姿态的变换矩阵Y,P 和R 乘以图形数据矩阵G 即可。其中综合旋转的变换矩阵 单独变化某个姿态角所生成的图形由G1 Y*G,G2 P*G,G3 R*G 算出,如果同时变化三个姿态角,则最后的图像数据成为Gf Y*P*R*G Q*G。这里假定转动的次序为:先滚动R,再倾斜P,最后偏航Y,由于矩阵乘法不服从交换律,转动次序不同时结果也不同。用MATLAB 实现的程序ag904b 如下:syms u w vY=cos(u),sin(u),0;sin(u cos(u),0;0,0,1)R=1,0,0;0,cos(w),sin(w);0,sin(w),cos(w)P=cos(v),0,sin(v);0,1,0;sin(v),0,cos(v)Q=Y*P*R 空间的齐次坐标系 三维空间考虑了平移运动后,如同二维情况那样,也必须扩展一维,成为4N 数据集G4,成为空间的齐次坐标系:在四维空间的44变换矩阵为:其中c1,c2,c3 为在三个轴x1,x2,x3方向上的平移距离。这种方法在机器人运动学研究中很有用处。9.4 基变换与坐标变换 在线性空间中常常需要进行坐标变换。用下图可以形象地说明这点。按照左图的笛卡儿坐标,x向量应该表为(1,6),这是x按标准基e1,e2 度量的结果,在斜坐标纸上的x点坐标就成为沿b1方向为2个单位而沿b2方向3个单位,即(-2,3)了。这反映了不同的基对坐标值的影响。基坐标变换的公式 设线性空间Rn中的两组基向量u 和v 都是n维列向量,它们在基准坐标系中的n个分量都是已知的,因此u 和v 都可表示为nn矩阵。如果Rn中的一个向量w 在以u 为基的坐标系内的坐标为wu(n1数组),在以v 为基的坐标系内的坐标为wv(n1数组),它们在基准坐标系内的坐标应分别为u*wu和v*wv,这两者应该相等。u*wu v*wv(9.18)所谓基坐标的变换就是已知wu,求出wv。将上式左右均左乘以inv(v),得到(9.19)可见,坐标变换矩阵P 可由u 和v 求得:P(uv)v u(9.20)基变换的算例9.5 已知R4空间的两组基向量u,v如下:试求把u 变换为v 的坐标变换矩阵P(uv)。解的方法为:输入u 和v 矩阵后 键入uv,得到给出某点w 的u 坐标wu,即可求其v 坐标wv=P*wu9.5 特征值的MATLAB 求法 MATLAB 提供了计算方阵的特征值和特征向量各步骤的函数。这三个步骤是:(1)用f=poly(A)可以计算方阵A 的特征多项式系数向量f;(2)用lamda=roots(f)可以求特征多项式f 的全部根lamda(表示为列向量);(3)用函数p=null(lamda*I-A)直接给出基础解p,将n个特征列向量p排在一起,就是的特征向量矩阵。【例9.6】求矩阵 的特征值和特征向量。解题的程序ag906按上面所说的步骤,解题的程序ag906 为A=3,2,4;2,0,2;4,2,3;%输入系数矩阵f=poly(A),%求特征多项式(步骤1)r=roots(f),r=real(r),%求特征根(步骤2),并去掉的虚部B1=r(1)*eye(3)-A;%后面可能需要插入一条语句%B1=rref(B1,1e-12),%为保证矩阵B1 奇异性而设的语句p1=null(B1,r)%求第一个特征值,的基础解系B2=r(2)*eye(3)-A;p2=null(B2,r)%求第二个个特征值的基础解系B3=r(3)*eye(3)-A;p3=null(B3,r)%求第三个个特征值的基础解系 程序运行的结果程序运行的结果为:f=1-6-15-8(特征多项式系数向量)r=8.0000(三个特征根即特征值,后两个是重根)-1.0000+0.0000i(微小虚数可用r=real(r)去除)-1.0000-0.0000i对第一个特征值8的特征向量为空矩阵 p1=Empty matrix:3-by-0,即无特征向量对第二、三个特征值(重根)-1 的特征向量为 p2=-0.5000-1.0000 1.0000 0 0 1.0000 对第一个特征值所以找不到特征向量是由计算误差引起的,计算误差使得本应为零的det(B1)成了一个很小的数(-8.7130e-013),B1*x=0 就没有非零解了。结果的讨论解 决 的 方 法 是 将B1化 为 行 阶 梯 形 式,因 为 在rref 函 数 中 可 以人 为 地 设 定 容 差,例 如 把 容 差 设 为 110-12,令B1=rref(B1,1e-12),这 样 变 换 出 的 行 阶 梯 形 式 与 原 矩 阵B1是等 价 的,但 它 将 会 把 一 些 小 的 数 看 作 零,从 而 保 证 系 数 矩阵 的 奇 异 性。在 上 述 程 序 中 求B1和 求p1的 两 条 语 句 之 间,插 入 这 条 语 句 后 执 行,就 可 求 出 对 应 的 特 征 向 量 为 p1=1,0.5,1T。把 上 述 三 个 特 征 向 量 并 列,可 以 得 到 特 征向量矩阵(元素取整后)和特征值矩阵为:用eig 函数计算结果实 际 上MATLAB 已 经 把 求 特 征 根 和 特 征 向 量 的 步 骤 集 成 化,其 中 也 包 括 了 处 理 计 算 误 差 的 功 能,所 以 一 条 命 令 就 解 决问 题 了。这 个 功 能 强 大 的 子 程 序 名 为eig(特 征 值 英 文 是 p,lamda=eig(A)输 出 变 元 中 的lamda 是 特 征 值,p是 特 征 向 量。把 例9.6的 系数矩阵A 代入,即可得到:解 出 的 特 征 向 量 怎 么 与 前 面 计 算 的 不 同?其 实 特 征 向 量 本来 不 是 唯 一 的,这 两 个 特 征 向 量 只 是 相 当 于 基 础 解 系 的 一组 基。只 要 检 查 由 两 种 方 法 算 出 的 两 组 特 征 向 量 是 否 相 关,如果相关,说明解都是正确的。例9.7设矩阵,求以下矩阵的特征值;a)A;b)本 题 只 要 求 出 特 征 方 程 和 特 征 根,它 的 计 算 程 序ag907 是比较简单的:A=1,-1,2;0,2,1;0,0,-1;B=2*A3+A-5*eye(3);C=inv(A)+eye(3)fa=poly(A),ra=roots(fa)fb=poly(B),rb=roots(fb)fc=poly(C),rc=roots(fc)程序ag907 的运行结果程序运行结果:这意味着三个特征多项式分别为:相应的各组特征根为:9.6 对称矩阵与二次型主轴 对称矩阵的特点是所有元素关于主对角线对称,即A A。所以对称矩阵一定是方阵。前面曾要求读者特别注意A 是对称矩阵时x与Ax 的对应关系,其特点就是Ax 呈椭圆形状,在椭圆的两个主轴方向,Ax 与x在一条直线上长度差 倍,即Ax x。当Ax 与x方向相同时,为正数;当Ax 与x方向相反时,为负数;22变换有两个特征值,在相互正交的两个主轴方向,各有一个。作为22正交变换的一个应用,我们来看看它对二次型图形的影响。二次型本身已经不是线性范围,不属于线性代数的范畴。现在要研究的是基坐标的线性变换对二次型图形发生何种影响。例9.8 二次型例 设A=5,-2;-2,5,则令A 的二次型xT*A*x 等于常数得到的是一个椭圆方程,其图形如下图(a)所示。如果做一个基坐标的旋转变换,让坐标轴转过45度,此椭圆的主轴就与新的坐标方向y1,y2相同,如图(b)所示,即令y1x1cos x2siny2x1sin x2cos用矩阵乘法表为 线性变换后的二次型 其逆变换R 为,因此 用此变换式代入二次型的表达式,有本题中,=45,代入P 和R,可得于是得到二次型主轴等价于矩阵对角化 所以从几何图形上寻找二次型主轴的问题,在线性代数中就等价于使矩阵经过正交变换或相似变换R(注意这又是一个几何名词,说明被变换的图形的形状和尺寸保持不变),使矩阵A 对角化。图中的(c)和(d)表示了对另一种双曲线二次型(它的两个特征值一正一负)的坐标变换,求主轴的方法就是把矩阵A 对角化。找其主轴的大小和方向,也就是找它的特征值lamda 和特征向量e。双曲线二次型的算例 根据 列出程序A=1,-4;-4,-5lamda,e=eig(A)或R=orth(A)得到把两个特征向量e 并列起来,即正交矩阵。lamda 就是对角化的矩阵D,故标准化的二次型方程为