用matlab线性代数的基本运算

上传人:F****n 文档编号:99450628 上传时间:2019-09-19 格式:DOCX 页数:27 大小:219.90KB
返回 下载 相关 举报
用matlab线性代数的基本运算_第1页
第1页 / 共27页
用matlab线性代数的基本运算_第2页
第2页 / 共27页
用matlab线性代数的基本运算_第3页
第3页 / 共27页
用matlab线性代数的基本运算_第4页
第4页 / 共27页
用matlab线性代数的基本运算_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《用matlab线性代数的基本运算》由会员分享,可在线阅读,更多相关《用matlab线性代数的基本运算(27页珍藏版)》请在金锄头文库上搜索。

1、第五章 线性代数的基本运算本章学习的主要目的:1 复习线性代数中有关行列式、矩阵、矩阵初等变换、向量的线性相关性、线性方程组的求解、相似矩阵及二次型的相关知识.2学会用MatLab软件进行行列式的计算、矩阵的基本运算、矩阵初等变换、向量的线性相关性的判别、线性方程组的求解、二次型化标准形的运算.5.1 行列式5.1.1 n阶行列式定义由个元素组成的记号D= 称为n阶行列式.其值是所有取自不同行不同列的n个元素的乘积的代数和,各项的符号由n级排列决定,即D=,其中表示对所有n级排列求和, 是排列的逆序数.5.1.2 行列式的性质(1) 行列式与它的转置行列式相等.(2) 互换行列式的两行(列),

2、行列式变号.(3) 若行列式有两行(列)完全相同,则此行列式为零.(4) 行列式的某一行(列)中所有的元素都乘以同一数k,等于用数k乘此行列式.(5) 若行列式有两行(列)元素成比例,则此行列式为零.(6) 若行列式的某一列(行)的元素是两数的和,则此行列式等于对应两个行列式之和.即(7) 若行列式的某一行(列)的各元素乘以同一数加到另一行(列)对应的元素上去,行列式不变.(8) 行列式等于它的任一行(列)的各元素与其对应的代数余子式乘积之和,即,或 (9) 设A,B是n阶方阵,则 ,(10)若A是n阶可逆矩阵,则,(11) 设是n阶方阵A的特征值,则,(12) 设是n阶方阵A的伴随矩阵,则(

3、13) 几种特殊行列式的计算: , ,5.1.3 MatLab计算行列式的命令det(var) %计算方阵var的行列式例1 计算行列式的值在MatLab命令窗口输入:A=1,-3,2,2;-3,4,0,9;2,-2,6,2;3,-3,8,3 det(A)执行结果:A = 1 -3 2 2 -3 4 0 9 2 -2 6 2 3 -3 8 3ans = -50例2 计算行列式的值,其中a,b,c,d是参数.在MatLab命令窗口输入:syms a b c dA=a,1,0,0;-1,b,1,0;0,-1,c,1;0,0,-1,ddet(A)执行结果:A = a, 1, 0, 0 -1, b,

4、1, 0 0, -1, c, 1 0, 0, -1, dans =a*b*c*d+a*b+a*d+c*d+1例3 求方程的根.(1) 先求行列式的值在MatLab命令窗口输入:syms xA=1,1,1,1;1,-2,2,x;1,4,4,x*x;1,-8,8,x3y=det(A)执行结果:A = 1, 1, 1, 1 1, -2, 2, x 1, 4, 4, x2 1, -8, 8, x3y =-12*x3+48*x+12*x2-48(2) 求3次方程的根.首先通过函数的图形确定根的大致范围,在MatLab命令窗口输入:grid onezplot(y)图 1观察图1,可知3个根大致在-2,0,

5、4附近,下面求精确值,在MatLab命令窗口输入:yf=char(y);g1=fzero(yf,-2)g2=fzero(yf,0)g3=fzero(yf,4)执行结果:g1 = -2g2 = 1.0000g3 = 2.0000可知方程的3个根分别为-2,1,2.5.1.4用MatLab实现克拉默法则(1)克拉默法则非齐次线性方程组方程组 当其系数行列式时,此方程组有唯一解,且可表示为其中是把系数行列式中第j列的元素用方程组右端的常数项代替后所得到的n阶行列式,即对于齐次线性方程组当其系数行列式时,此方程组有唯一零解;当D=0时,方程组有非零解.(2) 编写函数klm.m实现用克拉默法则求解非齐

6、次线性方程组.function x=klm(a,b) %参数a代表方程组的系数矩阵,列矩阵b代表方程组的常数列,%返回方程组的解m,n=size(a);if (m=n) disp(克拉默法则不适用此方程组的求解!)else d=det(a); if (d=0) disp(该方程组没有唯一解!) else disp(该方程组有唯一解!) for i=1:m e=a; e(:,i)=b; f=det(e); x(i)=f/d; end endend例4 用克拉默法则解下列方程组:操作步骤:在MatLab命令窗口输入:D=1,1,1,1;1,2,-1,4;2,-3,-1,-5;3,1,2,11;A=

7、5;-2;-2;0;klm(D,A)执行结果:该方程组有唯一解!ans = 1 2 3 -1方程组的解为例5 问a取何值时,齐次方程组有非零解?根据齐次方程组有非零解,系数行列式为零,用MatLab操作步骤如下:图2在MatLab命令窗口输入:syms x A=5-x,2,2;2,6-x,0;2,0,4-x;yy=det(A) ezplot(yy,0,10) grid on执行结果:行列式的值为:yy = 80-66*x+15*x2-x3作函数yy的图形,如图2观察图2,可知根大致在2,5,8附近,再输入命令:yf=char(yy);x1=fzero(yf,2)x2=fzero(yf,5)x3

8、=fzero(yf,8)执行结果:x1 = 2x2 = 5x3 = 8即a取2,5,或8时,齐次方程组有非零解。5.2 矩阵及其运算5.2.1 矩阵的定义由个数排成的m行n列的数表称为m行n列矩阵,简称矩阵.记作5.2.2矩阵的运算设有两个矩阵和,则(1)加法 MatLab对应求矩阵加法的操作符为”+”(2)数乘 MatLab对应求矩阵数乘的操作符为”*”(3) 矩阵与矩阵相乘设矩阵是矩阵, 是矩阵,则矩阵A与矩阵B的乘积是一个矩阵,其中把此乘积记作C=ABMatLab对应求矩阵乘积的操作符为”*”(4)矩阵的转置 设矩阵是矩阵,把矩阵A的行换成同序数的列得到一个矩阵,叫A的转置矩阵,记作.在

9、MatLab对应求矩阵转置的操作符为 “ “(5)方阵的行列式 设矩阵是矩阵,由A的元素构成的行列式(各元素的位置不变),称为方阵A的行列式,记作或detA.MatLab对应求方阵行列式的命令为:det(var) %var代表待求行列式的方阵(6)方阵的逆矩阵 设矩阵是矩阵,若有一个n阶矩阵B,使AB=BA=E,则说矩阵A可逆,矩阵B称为A的逆矩阵.记为逆矩阵的判别定理: 若,则矩阵A可逆,且,其中是矩阵A的伴随矩阵,由行列式的各个元素的代数余子式所构成的,.MatLab对应求方阵逆的命令为:inv(var) %var代表待求逆矩阵的方阵下面按公式,用MatLab编写程序求矩阵的逆:funct

10、ion y=aij(A,i,j) %求方阵A元素aij的代数余子式Aij,C=A;C(i,:)=;C(:,j)=;y=(-1)(i+j)*det(C);function y=axing(A) %求方阵A伴随矩阵m n=size(A);for i=1:n for j=1:n y(i,j)=aij(A,j,i); endend则方阵A的逆等于axing(A)/det(A)例6 设,问3AB-2ATB是否可逆?若该矩阵可逆求它的逆.在MatLab创建m文件knf.m完成该问题的操作:A=1,1,1;1,1,-1;1,-1,1;B=1,2,3;-1,-2,4;0,5,1;C=3*A*B-2*A*B;d

11、c=det(C);if dc=0 disp(此矩阵不可逆!)else disp(此矩阵可逆!其逆矩阵为:) inv(C)end在MatLab命令窗口输入knf执行结果:此矩阵可逆!其逆矩阵为:ans = -0.3857 0.5143 0.5000 0.0857 -0.1143 00.0714 0.0714 05.3 矩阵的初等变换5.3.1下面三种变换称为矩阵A的初等行(列)变换:(1) 对调i,j两行(列);(2) 以数乘矩阵A的第i行(列)中所有元素;(3) 把第i行(列)所有元素的k倍加到第j行(列)的元素上去;用MatLab实现以上初等行变换:(1) A(i,j,:)=A(j,i,:)

12、(2) A(i,:)=k*A(i,:)(3) A(j,:)=k*A(i,:)+ A(j,:)5.3.2 用矩阵初等变换化矩阵为行最简形. 行最简形的特点是:可画出一条阶梯线,线的下方全为0,每个台阶只有一行,台阶数即为非零行的行数,阶梯线的竖线后面的第一个元素为非零元,非零行的第一个非零元为1,且这些非零元所在的列的其他元素都为0.MatLab对应化矩阵为行最简形的命令为:rref(var) %var代表待化为行最简形的矩阵例7 把矩阵化为行最简形矩阵。在MatLab命令窗口输入:A=1,2,2,1;2,1,-2,-2;1,-1,-4,-3;format rat 以分数的形式显示结果rref(

13、A)执行结果: ans = 1 0 -2 -5/3 0 1 2 4/3 0 0 0 0 5.3.3 初等变换的应用(1 ) 求矩阵A的逆矩阵:把分块矩阵(A,E)经过初等行变换化成(E,B),矩阵B就是所求矩阵A的逆矩阵.例8 用初等变换求矩阵的逆矩阵.在MatLab创建ni.m函数文件,完成用初等变换求矩阵的逆。function y=ni(a)da=det(a);if da=0 disp(此矩阵不可逆!)else disp(此矩阵可逆!其逆矩阵为:) m n=size(a); e=eye(n); d=rref(a e); y=d(:,(n+1):2*n); end在MatLab命令窗口输入:A=1,-3,2,2;-3,4,0,9;2,-2,6,2;3,-3,8,3;ni(A)执行结果: 此矩阵可逆!其逆矩阵为:ans = -0.5200 -0.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号