您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Matlab在线性代数中的应用
Matlab在线性代数中的应用目标要求•会给矩阵赋值•会进行矩阵的基本运算,包括:加、减、数乘,乘法,转置,幂等运算•会用命令inv计算矩阵的逆•会用命令det计算行列式;•会用命令rank计算矩阵的秩;•会用命令rref把矩阵变为行最简型;•会用命令rref计算矩阵的逆•会用命令rref解方程组的解•会用命令rref找出向量组的最大无关组•会用命令null计算齐次线性方程组的基础解系•会用左除运算计算非齐次方程组的特解•会用命令orth把向量组正交规范化•会用命令eig计算矩阵的特征值和特征向量•会用命令eig把二次型标准化•会用命令eig判断二次型的正定性1矩阵赋值•赋值语句一般形式变量=表达式(或数)如:输入a=[123;456;789]显示a=123456789输入x=[-1.2sqrt(3)(1+2+3)/5*4]显示x=-1.20001.73214.8000规则:矩阵元素放在方括号中,元素之间以空格或逗号分隔,不同行以分号分隔,语句结尾用回车或逗号将显示结果•基本赋值矩阵ones(m,n),zero(m,n),magic(n),eye(n),rand(m,n),round(A)如:输入f1=ones(3,2)显示f1=111111输入f2=zero(2,3)显示f2=0000001矩阵赋值输入f3=magic(3)显示f3=816357492输入f4=eye(2)显示f4=10012矩阵的基本运算•矩阵算术运算书写格式与普通算术相同,包括加、减、乘、除。可用括号规定运算的优先级。•Matlab将矩阵加、减、乘的程序编为内部函数,只要用+,-*做运算符号就包含阶数检查和执行运算的全过程–两相加矩阵有一个是标量时,Matlab承认算式有效,自动把标量扩展为同阶等元素矩阵如:键入X=[-101];Y=X-1得Y=-2-10•矩阵除法–矩阵求逆inv(A),如果det(A)等于或很接近零,Matlab会提示出错–“左除”与“右除”,左乘或右乘矩阵的逆,A\或/A2矩阵的基本运算•幂运算^A*A*A=A^5•转置´理论学习中,A的转置表示为AT,在Matlab中用“´”表示3行列式与方程组求解•相关命令U=rref(A),对矩阵A进行初等行变换,矩阵U为A的最简梯矩阵det(A),计算矩阵A的行列式rank(A),计算矩阵A的秩B(:,i)=b,把向量b赋给矩阵B的第i行A(i,j),引用矩阵A中第i行j列的元素[A,eye(5)],创建5×10矩阵,前5列为A,后5列为单位矩阵symsx,定义x为符号变量3行列式与方程组求解•逆矩阵各种求法:clearA=[-7,-2,-6,4,6;1,3,-6,3,11;3,-11,9,5,-2;-3,0,-2,9,-3;7,30,-18,11,4];%1.命令法:An1=inv(A)%2.幂运算法:An2=A^-1%3.右除法:An3=eye(5)/A%eye(5)为5阶单位矩阵%4.左除法:An4=A\eye(5)%5.初等行变换法:B=rref([A,eye(5)]);%对矩阵[A,I]进行初等行变换%B为矩阵A的最简行阶梯矩阵if(rank(B(:,1:5))==5)%判断最简行阶梯矩阵B的前5列是否为单位阵An5=B(:,6:10)%取出矩阵的后5列,并显示elsedisp('A不可逆');end思考:如何用求逆阵或初等变换法解方程组?3行列式与方程组求解%求解符号行列式方程clear%清除各种变量symsx%定义x为符号变量A=[3,2,1,1;3,2,2-x^2,1;5,1,3,2;7-x^2,1,3,2]D=det(A)%计算含符号变量矩阵A的行列式Df=factor(D)%对行列式D进行因式分解%从因式分解的结果,可以看出方程的解X=solve(D)%求方程“D=0”的解2232113221051327132xx解方程:4向量组的线性相关性及方程组的通解•相关命令[R,s]=rref(A),把矩阵A的最简梯矩阵赋值给R;s是一个行向量,它的元素由R的首非零元所在列号构成null(A,‘r’),齐次线性方程组Ax=0的基础解系x0=A\b,非齐次线性方程组Ax=b的一个特解x0length(s),计算s向量的维数end,矩阵的最大下标,最后一行或最后一列find(s),向量s中非零元素的下标sub(A,k,n),将A中所有符号变量k用数值n代替4向量组的线性相关性及方程组的通解123451234512345123452441623626237364619232521943xxxxxxxxxxxxxxxxxxxx求非齐次线性方程组的通解4向量组的线性相关性及方程组的通解%求齐次线性方程组的通解clearA=[2,4,-1,4,16;-3,-6,2,-6,-23;3,6,-4,6,19;1,2,5,2,19];%输入系数矩阵Ab=[-2;7;-23;43];%输入常数列向量b[R,s]=rref([A,b]);%把增广矩阵的最简行阶梯矩阵赋给R%而R的所有基准元素在矩阵中的列号构成了行向量s[m,n]=size(A);%矩阵A的行数、列数赋给了变量m、nx0=zeros(n,1);%将特解x0初始化为N维零向量r=length(s);%矩阵A的秩赋给变量rx0(s,:)=R(1:r,end);%将矩阵R的最后一列按基准元素的位置给特解x0赋值disp('非齐次线性方程组的特解为:')x0%显示特解x0disp('对应齐次线性方程组的基础解系为:')x=null(A,'r')%得到齐次线性方程组Ax=0的基础解系x4向量组的线性相关性及方程组的通解当k取何值时方程组有非零解?在有非零解的情况下,求出其基础解系1234123412341234(12)33303(2)33033(2)30333(11)0kxxxxxkxxxxxkxxxxxkx已知齐次线性方程组:4向量组的线性相关性及方程组的通解clearsymsk%定义符号变量kA=[1-2*k,3,3,3;3,2-k,3,3;3,3,2-k,3;3,3,3,11-k];%给系数矩阵赋值D=det(A);%算出系数矩阵的行列式Dkk=solve(D);%解方程“D=0”,得到解kk,即k值fori=1:4AA=subs(A,k,kk(i));%分别把k值代入系数矩阵A中fprintf('当k=');disp(kk(i));%显示k的取值fprintf('基础解系为:\n');disp(null(AA))%计算齐次线性方程组“Ax=0”的基础解系end平板稳态温度的计算(1020)/4(2040)/4(1030)/4(4030)/4abcbadcaddbcxxxxxxxxxxxx10.250.2507.50.25100.25150.25010.251000.250.25117.5abcdxxxx整理为化学方程的配平•确定x1,x2,x3,x4,使两边原子数相等称为配平,方程为•写成矩阵方程138223242()()()()xCHxOxCOxHO1234301080020221xxxx12343010080020002210xxAxxx-电阻电路的计算•设定三个回路电流ia,ib,ic,回路压降的方程为:scbauiiiRRRRRRRRRRRRR001007655554333321信号流图模型•信号流图是用来表示和分析复杂系统内的信号变换关系的工具。右图方程如下。•写成矩阵方程•或x=QxPu•移项整理,可以得到求信号向量x的公式。ux1G1x2G2122211xuGxxGx,1212120100xGxuxGx信号流图的矩阵解法(I–Q)x=Pu,x=inv(I–Q)*Pu•定义系统的传递函数W为输出信号与输入信号之比x/u,则W可按下式求得:W=x/u=inv(I–Q)*P因为得到221110010101GGGGI-Q2111211()11GGGGI-Q121121/1/1xuxuGGG-1x/uI-QP复杂点的信号流图•按右面的信号流图,照上述方法列出它的方程如下:•x1=-G4x3+u•x2=G1x1-G5x4•x3=G2x2•x4=G3x3信号流图的矩阵方程1412152323434000100000000000xGxxGGxxuxGxxGx•列出的矩阵方程为:•矩阵中的参数是符号而不是数,MATLAB的许多函数(特别是求逆)都可以处理符号,带来了极大的方便。只要在程序第一行注明哪些是符号变量:symsG1G2…用符号运算工具箱求解•矩阵代数方法的最大好处是可用于任意高的阶次的信号流图,实现传递函数推导的自动化•如下题的MATLAB程序ag863symsG1G2G3G4G5Q=[0,0,G4,0;G1,0,0,G5;0,G2,0,0;0,0,G3,0],P=[1;0;0;0]W=inv(eye(4)Q)*Ppretty(W(4))运行结果为(4)G1*G2*G3(4)1+G2*G5*G3+G1*G2*G4xWu5特征向量与二次型•orth(A),求出矩阵A的列向量组构成空间的一个正交规范基•P=poly(A),计算A的特征多项式,P是行向量,元素为多项式系数•roots(P),求多项式P的零点•r=eig(A),r为列向量,元素为A的特征值•[V,D]=eig(A),矩阵D为A的特征值所构成的对角阵,V的列向量为A的特征向量,与D中特征值一一对应•[V,D]=schur(A),矩阵D为对称阵A的特征值所构成的对角阵,V的列为A的单位特征向量,与D中特征值一一对应5特征向量与二次型•已知矩阵求其特征值。A=[2,-2,-20,-19;-2,16,-9,11;-8,4,-6,1;0,-8,-4,-7];%1.符号变量法symsk%定义符号变量kB=A-k*eye(length(A));%构造矩阵B=(A-kI)D=det(B);%计算行列式:|A-kI|lamda1=solve(D)%求|A-kI|=0的符号形式的解%2.特征多项式法P=poly(A);%计算矩阵A的特征多项式,向量P的元素为该多项式的系数lamda2=roots(P)%求该多项式的零点,即特征值%3.命令法lamda3=eig(A)%直接求出矩阵A的特征值22201921691184610847A5特征向量与二次型•求矩阵的特征值和特征向量,判断是否可对角化,如可以则找出可逆矩阵V,使V-1AV=DA=[1,2,3;2,1,3;1,1,2];[V,D]=eig(A)123213112A5特征向量与二次型•用正交变换法将二次型化为标准型clearA=[1,0,0;0,2,2;0,2,2];%输入二次型的矩阵A[V,D]=eig(A);%其中矩阵V即为所求正交矩阵%矩阵D为矩阵A的特征值构成的对角阵%或:[V,D]=schur(A)%结果和eig()函数相同disp('正交矩阵为:');Vdisp('对角矩阵为:');Ddisp('标准化的二次型为:');symsy1y2y3f=[y1,y2,y3]
本文标题:Matlab在线性代数中的应用
链接地址:https://www.777doc.com/doc-2881999 .html