1线性代数案例Cayler-Hamilton定理【实验目的】1.理解特征多项式的概念2.掌握Cayler-Hamilton定理【实验要求】掌握生成Vandermonde矩阵的vander命令、求矩阵特征多项式系数的poly()命令、求矩阵范数的norm命令及矩阵多项式运算的polyvalm命令【实验内容】Cayler-Hamilton定理是矩阵理论中的一个比较重要的定理,其内容为:若矩阵A的特征多项式为1121)det()(nnnnnasasasaAsIsf则有()0,fA亦即11210nnnnaAaAaAaE假设矩阵A为Vandermonde矩阵,试验证其满足Cayler-Hamilton定理。【实验方案】Matlab提供了求取矩阵特征多项式系数的函数poly(),但是poly()函数会产生一定的误差,而该误差在矩阵多项式求解中可能导致了巨大的误差,从而得出错误的结论。在实际应用中还有其他简单的数值方法可以精确地求出矩阵的特征多项式系数。例如,下面给出的Fadeev-Fadeeva递推算法也可以求出矩阵的特征多项式。1111,1,2,...,,,2,...,kkkkkctrARknkRIRARcIkn该算法首先给出一个单位矩阵I,并将之赋给1R,然后对每个k的值分别求出特征多项式参数,并更新kR矩阵,最终得出矩阵的特征多项式的系数kc。该算法可以直接由下面的Matlab语句编写一个1poly函数实现:Functionc=poly1(A)[nr,nc]=size(A);ifnc==nr%给出若为方阵,则用Fadeev-Fadeeva算法求特征多项式I=eye(nc);R=I;c=[1zeros(1,nc)];fork=1:nc,c(k+1)=-1/k*trace(A*R);r=A*R+c(k+1)*I;end2elseif(nr==1\nc==1)%给出为向量时,构造矩阵A=A(isfinite(A));n=length(A);%出去非数或无界的特征根c=[1zeros(1,n)];forj=1:nc(2:(j+1))=c(2:(j+1))-A(j).*c(1:j);endelse%参数有误则给出错误信息error(’Argumentmustbeavectororasquarematrix.’)end.【实验过程】A=vander([1234567]);运行结果:A=111111164321684217292438127931409610242566416411562531256251252551466567776129621636611176491680724013434971A运行结果:aa1=1.0e+009*0.0000-0.0000-0.00020.02871.1589-6.2505-2.42230.0249如调用新的poly1()函数,则可以得出如下的精确结果。aa1=poly1(A);b1=polyvalm(aa1,A);norm(B1)运行结果:ans=0可见,由此得出的B矩阵就会完全等于0,故该矩阵满足Cayley-Hamilton定理。3小行星轨道问题【实验目的】1.掌握线性方程组求解2.加深对正交变换的理解3.掌握Matlab软件中的ezplot、zplot命令的区别和适用范围【实验要求】掌握绘制隐函数曲线ezplot命令和彗星状轨迹图comet命令【实验内容】天文学家要确定一颗小行星绕太阳运行的轨道,在轨道平面内建立以太阳为原点的直角坐标系,在两坐标轴上取天文测量单位(一天文单位为地球到太阳的平均距离:9300万里)。在五个不同的时间点对小行星作了观察,测得轨道上五个点的坐标数据如下:表2-1小行星观测数据x4.55965.08165.55465.96366.2756y0.81451.36851.98952.69253.5265由开普勒第一定律知,小行星轨道为一椭圆。设方程为221234522210axaxyayaxay试确定椭圆的方程并在轨道的平面内以太阳为原点绘出椭圆曲线。并应用坐标平移变换和正交变换将上例题中的二次曲线方程化为标准方程,绘椭圆轨道图,完成小行星运行的动态模拟。【实验方案】(1)二次曲线方程中有五个待定系数:1a,2a,3a,4a,5a。将观察所得的五个点坐标数据(,)jjxy,(1,2,,5)j代入二次曲线方程得到关于1a,2a,3a,4a,5a的线性方程组2211211314151221222232425222132333343532214244344454221525535455522212221222122212221axaxyayaxayaxaxyayaxayaxaxyayaxayaxaxyayaxayaxaxyayaxay4求解该方程组得椭圆方程的系数:[1a,2a,3a,4a,5a]。(2)将椭圆的一般方程写成矩阵形式412345210aaaxxyxyaaay通过变量变换(平移变换和旋转变换)化为椭圆标准方程。首先化去一次项,然后将二次型化为标准型。为了用平移变换消去一次项,令0xx,0yy(0x,0y待定),代入方程整理,得041212343450220xaaaaaFaaaaay其中,22102003040502221Faxaxyayaxay。要化简消去一次项,只须选择0x,0y使满足二阶线性方程组041234500xaaaaaay将0x,0y代入椭圆的一般方程,得12340aaFaa令1234aaCaa求出特征值12,极其对应的特征向量12,。可以取与12,等价的正交单位向量12,。构造正交矩阵12,Q,利用正交变换uQv得椭圆的标准方程:22120uvF。椭圆长半轴和短半轴分别为1/aF,2/bF。【实验过程】(1)MATLAB程序如下:5x=[4.5596;5.0816;5.5546;5.9636;6.2756];y=[0.8145;1.3685;1.9895;2.6925;3.5265];A=[x.^2,2*x.*y,y.^2,2*x,2*y];b=-[1;1;1;1;1];a=A\b;symsxya1a2a3a4a5fun=a1*x^2+2*a2*x*y+a3*y^2+2*a4*x+2*a5*y+1;fun=subs(fun,a1,a(1));fun=subs(fun,a2,a(2));fun=subs(fun,a3,a(3));fun=subs(fun,a4,a(4));fun=subs(fun,a5,a(5));ezplot(fun,[-1.4,7,-1.5,6.5])运行结果:a=-0.33780.1892-0.38180.46090.4104结果表明:二次曲线方程中的各项系数为1a=-0.3378,2a=0.1892,3a=-0.3818,4a=0.4609,5a=0.4104。-101234567-10123456xy-6085444263974395/18014398509481984x2+...+1=0图2-2小行星绕太阳运行的轨道(2)MATLAB程序如下:6x=[4.5596;5.0816;5.5546;5.9636;6.2756];y=[0.8145;1.3685;1.9895;2.6925;3.5265];A=[x.^2,2*x.*y,y.^2,2*x,2*y];b=-[1;1;1;1;1];ak=A\b;C=[ak(1),ak(2);ak(2),ak(3)];X=-C\[ak(4);ak(5)];x0=X(1);y0=X(2);X=[X;1];D=[ak(1),ak(2),ak(4);ak(2),ak(3),ak(5);ak(4),ak(5),1];F=X'*D*X;[Ud]=eig(C);a=sqrt(-F/d(1,1));b=sqrt(-F/d(2,2));t=2*pi*(0:5000)/5000;u=a*cos(t);v=b*sin(t);V=U*[u;v];x1=V(1,:)+x0;y1=V(2,:)+y0;plot(x1,y1,x,y,'*',x0,y0,'rO'),holdonx2=[x1,x1,x1];y2=[y1,y1,y1];comet(x2,y2)disp([x0,y0])disp([a,b])-101234567-2-10123456图2-3椭圆轨道图运行结果:2.72132.42342.42994.3799。结果表明:7椭圆标准方程为:222214.37992.4299xy。矩阵相似变换在控制理论中的应用【实验目的】1.掌握矩阵的相似变换2.利用矩阵相似变换方法,将控制理论中一般的状态方程变换成某种特殊的形式,以便于更好地进行系统的性质分析3.掌握控制系统的可控标准型、可观察标准型和Jordan标准型【实验要求】掌握Matlab软件中有关相似变换的命令【实验内容】给出系统的相似变换的概念,介绍基于矩阵相似变换的各种标准及变换方法,并用MATLAB编程实现。试求出下面系统的可控标准型:430137130113113110xx+014716u,00120yx并求该状态方程模型的可观测标准型以及Jordan标准型。【实验方案】1.线性系统的相似变换假设存在一个非奇异矩阵T,且定义了一个新的状态变量z使得1zTx,这样关于新状态变量z的状态方程模型可以写成()()()()()()ttttztAztButytCztDut,且1(0)(0)ZTx式中1tATAT,1tBTB,1tCCT,tDD。在矩阵T下的状态变换称为相似变换,T称为相似变换矩阵。2.单变量控制系统的可控、可观测标准型转换对单变量系统(1)来说,若系统的特征多项式可以写成112det()nnsIAsss+1nns则可以够造出变换矩阵cT81121211,,,,1nncnnTABABABB这样就可以将原来系统变换成可控制标准型。可以用MATLAB容易地写出变换矩阵1()vpolyA;%求特征多项式系数,建议用1()poly取代()poly((,))(((1:cTfliplrctrbABflipudhankelvend1:1)))3.控制系统的Jordan标准型转换系统的Jordan标准型可以由,(,'mod')jjGTcanonGal函数直接求出。值得指出的是,若系统的A矩阵含有复数特征值,则用()canon函数不能得出正确结果,应该结合前面Jordan变换的方法手工构造变换矩阵,得出合适的变换系统。【实验过程】(1)得出可控标准型的MATLAB程序A=[-4,-3,0,-1;-3,-7,-1,-3;0,-1,-13,-1;-1,-3,-1,-10];B=[0;-14;7;16];C=[0,0,12,0];v=poly1(A);Tc=fliplr(ctrb(A,B))*flipud(hankel(v(end-1:-1:1)))Gc=ss(inv(Tc)*A*Tc,inv(Tc)*B,C*Tc,0)变换矩阵和标准型分别为55457762609060390943314141585914575400317841916cT,0100000100z=z+u00010-2105-1693-