版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 本篇包含五个线性代数的基础实验,从矩阵运算到方程组的求解;从向量组线性相关性分析到矩阵的对角化;从矩阵特征值和特征向量求解到二次型的标准化及正定性的分析,都给出了 MATLAB勺解决方法。实验5利用MATLAB勺绘图功能,对线性代数若干概念的几何意 义进行了分析讨论。实验1矩阵的基本运算1.1实验目的.掌握Matlab软件的矩阵赋值方法;.掌握Matlab软件的矩阵加法、数乘、转置和乘法运算;.掌握Matlab软件的矩阵哥运算及逆运算;.掌握Matlab软件的矩阵元素群运算;.通过Matlab软件进一步理解和认识矩阵的运算规则。实验指导MATLAB是一种功能强大的科学及工程计算软件,它的名字
2、由“矩阵实验室” (Matrix Laboratoy)组成,它具有以矩阵为基础的数学计算和分析功能,并且具有丰富的可视化图 形表现功能及方便的程序设计能力。它的应用领域极为广泛。本实验学习用MATLAB软件进行矩阵基本运算。启动MATLAB后,将显示 MATLAB操作界面,它包含多个窗口,其中命令窗口是最 常用的窗口,如图1.1所示。图1.1 MA TLAB的操作桌面本实验所有例题的 MATLAB命令都是在命令窗口中键入的。在本实验中用到 MATLAB的运算符号及命令或函数列举如下:1、运算符号表1.1给出了本实验用到的 MATLAB基本运算符号。表1.1 MATLAB的基本运算符号运算符号=
3、十一*/A.说明赋值加减乘左除右除嘉运算转置群运算2、命令或函数表1.2给出了与本实验相关的MATLAB命令或函数。若要进一步了解和学习某个命令或函数的详细功能和用法时,MATLAB提供了一个help命令。表1.2与本实验相关的 MATLAB命令或函数命令说明位置help inv在命令窗口中显示函数inv的帮助信息创建矩阵例1.1矩阵行元素分割符号例1.1矩阵列元素分割符号例1.1%注释行例1.1eye(n)创建n阶单位矩阵例1.1zeros(m,n)创建mxn阶零矩阵例1.1zeros(n)创建n阶零方阵例1.1ones(m,n)创建nix n阶元素全为1的矩阵例1.1rand(m,n)创建
4、mxn阶元素为从0到1的均匀分布的随机数矩阵例1.2round(A)对矩阵A中所有元素进行四舍五入运算例1.2inv(A)求矩阵A的逆例1.3AA-1用嘉运算求矩阵A的逆例1.3实验内容 例1.1用MATLAB软件生成以下矩阵:9 3(1) A 6 56 6 HYPERLINK l bookmark151 o Current Document 216(2) B0000 01 0(3) C0 11111111111111111解:(1)在MATLAB命令窗口输入:A=9,3,2;6,5,6;6,6,0%或:A=9 3 2;6 5 6;6 6 0%或:A=9 3 26 5 66 6 0结果都为:A
5、 = TOC o 1-5 h z 932656660矩阵同行元素以逗号或空格分割 行与行之间必须用分号或回车分隔( 2 )输入:B=eye(3)结果为:B = TOC o 1-5 h z 100010001( 3 )输入:C = zeros(2)结果为:C =0000( 4 )输入:D = ones(4)结果为:D = TOC o 1-5 h z HYPERLINK l bookmark181 o Current Document 1111 HYPERLINK l bookmark78 o Current Document 1111 HYPERLINK l bookmark80 o Curre
6、nt Document 11111111Matlab 对矩阵赋值有直接输入和命令生成两种方法,本例中矩阵 A 就是键盘直接输入的;而矩阵B 、 C 和 D 都是用 Matlab 命令而生成。例 1.2 随机生成两个3 阶方阵 A 和 B ,分别计算:(1) A B ; (2) A B ; (3) 5A; (4) AB ; (5) AT解:输入:A=round(rand(3)*10) % rand(3) :生成 3 阶元素为 0 1 的随机实数方阵% round () :对矩阵元素进行四舍五入运算B=round(rand(3)*10)结果为:A = TOC o 1-5 h z 10235 109
7、937B =123 HYPERLINK l bookmark327 o Current Document 035971( 1 )输入:A B结果为:ans =11465 13 1418 108其中“ ans”表示这次运算的结果。( 2 )输入:A B 结果为: ans = TOC o 1-5 h z 9005740-46( 3 )输入:5*A结果为:ans =50 10 1525 50 4545 15 35( 4 )输入:A*B结果为:ans =37 47 4386 103 7472 76 49( 5 )输入A结果为ans = TOC o 1-5 h z 1059 HYPERLINK l bo
8、okmark105 o Current Document 1031230 1 0 ,分别计算:2171 ) A5 ; ( 2 ) A97例 1.3 已知矩阵 A解:输入:A=1,2,3;0,1,0;2,1,7 结果为:A = TOC o 1-5 h z 2301017( 1 )输入:AA5结果为:ans = TOC o 1-5 h z 34092698117150107810617726839( 2 )输入:inv(A)或输入 AA-1结果都为:ans =7 -11 -3010-231695例 1.4 已知矩阵 A0 5 2,B2916621 0 4 ,且满足 PA B , AQ B ,281
9、计算矩阵P和Q。解:方法一:利用求逆矩阵的方法,输入:A=6,9,5;0,5,2;2,9,1B=6,6,2;1,0,4;2,8,1P=B*inv(A)Q=inv(A)*B方法二:利用 MATLAB 软件特有的矩阵“左除”和“右除”运算,输入:A=6,9,5;0,5,2;2,9,1矩阵右除矩阵左除B=6,6,2;1,0,4;2,8,1P=B/A%Q=AB%两种方法的运算结果都为:A = TOC o 1-5 h z 695052291B =6620481P =0.8043 -1.3043 0.58700.5761 1.1739 -1.22830.0435 -0.0435 0.8696Q =0.60
10、87 1.4565 -1.20650.0435 0.7826 0.21740.3913 -1.9565 1.4565503213例 1.5 已知矩阵A620,B306 ,分别按以下要求进行矩阵元素的群701452运算:( 1 ) 把矩阵 A 和矩阵 B 所有对应元素相乘, 得到 9 个乘积, 计算由这 9 个数所构成的同形 矩阵 C 。2)对矩阵A 中的所有元素进行平方运算,得到矩阵D ,求该矩阵。解: Matlab 软件提供了矩阵元素群运算的功能,输入:A=5,0,3;6,2,0;7,0,1B=2,1,3;3,0,6;4,5,-2结果为:A = TOC o 1-5 h z 032001=13
11、065-2( 1 )输入:C=A.*B%在运算符号前加 “ . ”,其含义即为矩阵元素的群运算结果为:C =10091800280-22)输入:输入:D=AA2%在运算符号前加“.”,其含义即为矩阵元素的群运算结果为:D = TOC o 1-5 h z 25 0936 4049011.4 实验习题1.利用函数rand和函数round构造一个5X5的随机正整数矩阵 A和B,验证以下等式是 否成立:(1) AB BA; (2) A B A BA2 B2 ; (3) AB TBTAT2已知向量12347 0 1 0 ,请计算它们的内积。要求:( 1 )用矩阵相乘命令计算;5313 已知X132521
12、4、已知BA B A ,其中123423455、已知 A 3 4 5 1451251232)用矩阵元素群运算的方法计算。830590 ,用求逆矩阵和矩阵右除两种方法求矩阵2150120B 210 ,用求逆矩阵和矩阵左除两种方法求矩阵0025,求A5 , A 1 。X。A。实验2行列式与方程组的求解2.1实验目的1,掌握Matlab软件求行列式的命令;2.掌握Matlab软件求矩阵秩的命令;3,掌握Matlab软件对矩阵进行初等行变换的命令;4,掌握Matlab软件求解满秩线性方程组的各种方法;5,掌握Matlab软件符号变量的应用;过Matlab软件验证与行列式相关的各种公式和定理,从而加深对
13、相关概念的理解。实验指导本实验利用MATLAB软件来计算与行列式相关的各种运算问题,其中包括:行列式的 求解、矩阵秩的求解、矩阵逆的求解、利用克莱姆法则解方程组、验证行列式按行(列)展 开定理及符号变量在行列式中的应用等。MATLAB软件不仅拥有简单明了的命令窗口,而且也提供了程序编辑器。在实验 1图 1,1所示的MATLAB操作界面中,点击左上方的小按钮,即可打开 MATLAB的M文件编 辑器窗口,如图2,1所示,在这个窗口中可以编写扩展名为 M的文件。图2.1 MATLAB的M文件编辑器表2,1给出了与本实验相关的MATLAB命令或函数。表2.1与本实验相关的 MATLAB命令或函数命令功
14、能说明位置A=.;在赋值语句后,若有一个分号 “;”,它的含义是不在窗口中显示矩阵 Ao例2.1U=rref(A)对矩阵A进行初等行变换,矩阵 U为矩阵A的最简行阶梯矩阵。例2.1clear清除工作空间中的各种变量,往往写在一个程序最前。例2.1n=input()数据输入函数,单引号内的字符串起说明作用。例2.1if elseif end条件语句,控制程序流程,和 C语言功能类似。例2.1m,n=size(A)计算结果为一个二维行向量,m,n分别存放矩阵A的行数和列数。例2.1=关系运算符号:等于例2.1=关系运算符号:不等于例2.1|逻辑运算符号:逻辑或例2.1disp(. )显示单引号中的
15、字符串例2.1det(A)计算矩阵A的行列式例2.1B(:,i)=b把向量b赋给矩阵B的第i歹U,要求矩阵B的列向量和向量b同形。例2.1A,eye(5)创建一个5X 10的矩阵,前5列为矩阵A,后5列为单位矩阵I例2.2B(:,1:5)取矩阵B的第1列至第5列例2.2rank(A)计算矩阵A的秩例2.2for endfor循环语句,控制程序流程,和C语言功能类似。例2.2T(1,:)=把一个空行口赋给矩阵T的第1行,即:删除矩阵 T的第一行。例2.2A(i,j)引用矩阵A中第i行第j列的元素例2.2format short以短格式显示例2.2format long以长格式显示例2.2syms
16、 x定义x为符号变量例2.3factor(D)对符号变量多项式D进行因式分解例2.3solve(D)求符号变量多项式方程D= 0的解例2.3randn(m,n)创建mxn阶均值为0,方差为1的标准正态分布的随机矩阵例2.4实验内容6x12x23x34x45x5802x13x27x310 x413x559例2.1已知非齐次线性方程组:3x15x211x316x421x590,要求用卜列方法2x17x27x37x42x5227x13x25x33x410 x585求解该方程组。(1)求逆矩阵法;(2)矩阵左除法; (3)初等行变换; (4)克莱姆法则。解:(1)把齐次线性方程组写为矩阵形式:Ax b
17、,则xA 1b,直接在MATLAB的命令窗口输入:A=6,2,3,4,5;2,-3,7,10,13;3,5,11,-16,21;2,-7,7,7,2;7,3,-5,3,10;%赋值语句最后的分号“,表示不在窗口中显示矩阵Ab=80;59;90;22;85;x=inv(A)*b%: x=AA-1*b计算结果为:x =9.00003.00002.00001.00002.0000(2)矩阵的乘法不遵守乘法交换律,Matlab软件定义了矩阵左除和矩阵右除运算,针对方程组的矩阵形式 Ax b,等式两端同时左除A,得到:“x A b”。在MATLAB命令窗口中输入:A=6,2,3,4,5;2,-3,7,1
18、0,13;3,5,11,-16,21;2,-7,7,7,2;7,3,-5,3,10;b=80;59;90;22;85;x=Ab%符号即为左除运算,注意它的方向。结果为:x =9.00003.00002.00001.00002.0000(3)用初等行变换,把方程组的增广矩阵变换为最简行阶梯形式,从而得到方程组的解。 在MATLAB 命令窗口中输入:A=6,2,3,4,5;2,-3,7,10,13;3,5,11,-16,21;2,-7,7,7,2;7,3,-5,3,10;对增广矩阵A,b进行行初等变换%矩阵U为矩阵A的最简行阶梯形矩阵b=80;59;90;22;85;U=rref(A,b)%运算结
19、果为:U = TOC o 1-5 h z 100009010003001002000101000012矩阵U即为方程组增广矩阵的最简行阶梯形矩阵,矩阵的最后一列即为方程组的解。D;(4)根据克莱姆法则,有:xi D,其中DD是方程组的系数行列式,Di是用常数列向量b代替系数行列式的第i列所得到的行列式。用 Matlab的M文件编辑器,编写la01.m文 件如下:%用克莱姆法则求解方程组 clear%n=input( 方程个数 n =)%A=input( 系数矩阵 A=)%b=input(常数列向量b=)%if (size(A)=n,n) | (size(b)=n,1)disp(elseif d
20、et(A)=0 disp(输入不正确,要求A是n阶方阵,% disp%系数行列式为零,不能用克莱姆法则解此方程。清除变量请用户输入方程个数请用户输入方程组的系数矩阵请用户输入常数列向量%判断矩阵A和向量b输入格式是否正确 b是n维列向量):显示字符串判断系数行列式是否为零)elsefor i=1:nB=A;B(:,i)=b;x(i)=det(B)/det(A);end计算x1,x2,.xn构造与 A 相等的矩阵用列向量 b 替代矩阵根据克莱姆法则计算BB 中的第 i 列 x1,x2,.xnx=xend-35-73711-510-16731321210以列向量形式显示方程组的解在 MATLAB
21、命令窗口中输入: la01得到以下人机对话结果:方程个数n = 55系数矩阵 A=6,2,3,4,5;2,-3,7,10,13;3,5,11,-16,21;2,-7,7,7,2;7,3,-5,3,10常数列向量b=80;59;90;22;85b =8059902285 x =93212显然, 当方程组的系数矩阵不是方阵, 或系数行列式等于零时, 逆矩阵法和克莱姆法都不能实现方程组的求解, 而初等行变换的方法适合各种线性方程组的求解, 在下一个实验中将继续讨论rref 命令的详细应用。 关于矩阵的左除运算, 有着多种的含义, 在实验 3 和实验5 中将逐步讨论它的其它功能。726136例2.2求
22、矩阵A 311930273018 HYPERLINK l bookmark272 o Current Document 463 1152的逆,要求用以下方法: HYPERLINK l bookmark149 o Current Document 93 HYPERLINK l bookmark121 o Current Document 114(1)矩阵左除和右除运算;(2)初等行变换;*A(3)利用伴随矩阵 A求逆的公式A 1- oA解:在实验1中,已经介绍了两种求矩阵逆的方法:一种是命令法:inv (A), 一种是哥运算法:AA-1。下面分别给出求逆矩阵的其它方法。(1) Matlab软件定
23、义了矩阵的左除运算和右除运算,给矩阵运算带来了很大的方便。从公式A1A I出发,等式两边同时右除矩阵 A,得“A1 I/A”,从而求得矩阵A的逆阵;若从公式AA 1 I出发,等式两边同时左除矩阵A,得“ A 1 A I ”,同样可以求得矩阵A的逆阵。需要注意的是,左除和右除不仅是矩阵的左右位置不同,其运算符号也是不 同的。(2)用笔来计算一个具体 n阶方阵A的逆阵时,往往采用初等行变换法,即:是把 n阶矩阵A和n阶单位矩阵I并排放在一起,然后对 nx 2n矩阵A| I做初等行变换,当其变为最简行阶梯矩阵时,如果该矩阵的前n列为单位矩阵I ,则该矩阵的后 n列就是矩阵 A的1逆矩阵A ;如果该矩
24、阵的前 n列不是单位矩阵I ,则矩阵A不可逆。,其中A为矩阵A的(3)根据AA* A*A A I ,可以得到求逆矩阵公式:伴随矩阵。在MATLAB的M文件编辑器中,编写程序la02.m :%逆矩阵各种求法: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=AA-1% 3.右除法:An3=eye(5)/A% eye(5)为 5 阶单位矩阵% 4.左除法:An4=Aeye(5)% 5.初等行变换法:B=rref(A,eye(5);%if(ran
25、k(B(:,1:5)=5)%An5=B(:,6:10)%elsedisp(A 不可逆 );end% 6. 伴随矩阵求逆法:for i=1:5%for j=1:5T=A;%T(i,:)=;%T(:,j)=;%AA0,i)=(-1F(i+j)*det(T);对矩阵 A , I 进行初等行变换% B 为矩阵 A 的最简行阶梯矩阵判断最简行阶梯矩阵B 的前 5 列是否为单位阵取出矩阵的后5 列,并显示构造伴随矩阵的5X5个元素把矩阵 A 赋给矩阵 T删去矩阵T 的第i 行删去矩阵T 的第j 列此时, |T| 为矩阵 A 元素 aij 的余子式% 算出 aij 的代数余子式% 并放入矩阵AA 的第 j
26、行、第 i 列% 当循环结束,矩阵AA 即为 A 的伴随矩阵endendif det(A)=0An6=AA/det(A) elsedisp(A 不可逆 ); end运算程序 la02 ,前四个方法计算结果相同:1.0e+004 *-1.5895 1.3448-1.0646 1.6206-0.63081.6298 -1.37891.0916 -1.66170.64682.5392 -2.14831.7007 -2.58891.00770.3631 -0.30720.2432 -0.37020.14410.9860 -0.83420.6604 -1.00530.3913后两个方法计算结果相同:-1
27、589513448-1064616206-630816298-1378910916-16617646825392-2148317007-25889100773631-30722432-370214419860-83426604-100533913从计算结果可以发现, 前四个方法得到的是实数矩阵, 而后两个方法得到的是整数矩阵。如果在 Matlab 环境下,键入: format long (以上结果是在format short 格式下得到的) ,然后再重新运行该程序, 会发现前四个方法的运算结果存在误差, 这是计算机做数值运算时, 存在舍入误差的原因。 为了进一步观察计算机做数值运算所产生的误差
28、, 现在用上述六种方法来计算矩阵A10 10 10的逆,前四种方法得到以下类似结果:11 12 13Warning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 2.135044e-018.ans =1.0e+015 *-4.5036 -4.5036 4.50369.0072 9.0072 -9.0072-4.5036 -4.5036 4.5036显然此结果是不正确的,因为 A不可逆。例2.3解方程:3357 x211220。解:Matlab软件定义了 “符号变量”的概念。在 号变
29、量”编写程序la03.m:%求解符号行列式方程MATLAB的M文件编辑器中,应用“符clear all%syms x%A=3,2,1,1;3,2,2-xA2,1;5,1,3,2;7-xA2,1,3,2D=det(A)%f=factor(D)%X=solve(D)%在MATLAB的命令窗口输入:清除各种变量定义x为符号变量%给矩阵A赋值计算含符号变量矩阵 A的行列式D 对行列式D进行因式分解从因式分解的结果,可以看出方程的解求方程“D= 0”的解la03运行结果为:A =3,2,1,13,2,2-xA2,15,1,3,27-xA2,1,3,2-6+9*xA2-3*xA4f =-3*(x-1)*(
30、x+1)*(xA2-2)X =1-12A(1/2)-2A(1/2)向量x即为方程的解,MATLAB1对符号变量可以得出解析解。例2.4请用Matlab软件验证行列式按行(列)展开公式:aikAjk A ,k i0 ,解:用Matlab程序构造了一个5阶随机数方阵A。首先,按第一彳s an Ana12Ai2a15A化,验证s是否与A的行列式相等;其次,计算 A元素与第三行元素对应的代数余子式乘积之和:sa11A31a12 A32a15 A35当i j 当i j亍展开:的第一行,验算s是否为0。在MATLAB的M文件编辑器中,编写程序la04.m :%验证行列式按行(列)展开公式 clearA=r
31、ound(10*randn(5); % D=det(A);%矩阵A按第一行元素展开: s=0;构造5阶随机数方阵 计算矩阵A的行列式s=a11*A11+a12*A12+ -+a15*A15T=A;T(1,:)=;T(:,i)=;删去阵矩第 删去矩阵第 此时,|T|1行i列为矩阵A元素a1i的余子式s=s+A(1,i)*(-1)A(1+i)*det(T);ende=D-s在 MATLABla04计算结果为:%的命令窗口中输入:验算D与s是否相等e =0在 MATLAB的M文件编辑器中,编写程序la05.m :%计算5阶方阵A的第一行元素与第三行元素对应的代数余子式乘积之和:% s=a11*A31
32、+a12*A32+ +a15*A35clearA=round(10*randn(5); % s=0; for i=1:5T=A;T(3,:)二口;%T(:,i)电%s=s+A(1,i)*(-1)A(3+i)*det(T); ends%构造5阶随机数方阵删去矩阵第3行删去矩阵第i列此时,|T|为矩阵A元素a3i的余子式验算s是否为0for i=1:5在MATLAB命令窗口中输入:la05计算结果为:2.4实验习题1.利用函数randn和函数round构造一个6X6的随机整数矩阵 A,验证矩阵A的行列式满 足下列性质:(1)AT ,验证B A ;(2)(3)把矩阵A的第三列加到第一列后的矩阵为B,
33、验证B2.构造5阶方阵A,验证公式:AA A A A I ,其中A为矩阵A的伴随矩阵,同阶单位阵。3.求解非齐次线性方程组23xi13x214X314x47X51042x12x2X36x414X51144x15x29X32x49X5212。4x17x2X30X40X5569x1X2X39x410X5120把矩阵A的第二行和第五行进行对调后的矩阵为B,验证B4.求下列矩阵的逆:(1)a2 a4 abb2b4c2 c4 cdd2d41016205553171061712126218531511513711(2)6032112220146117000451139121010110(1)5.求下列含符
34、号变量的行列式,并要求把结果因式分解。实验3向量组的相关性及方程组的通解3.1实验目的.掌握Matlab软件分析向量组线性相关性的方法;.掌握Matlab软件求解线性方程组通解的各种方法;.通过Matlab软件进一步理解和认识齐次线性方程组解空间的概念。实验指导本实验利用MATLAB软件来分析向量组的线性相关性;向量的线性表示;齐次线性方 程组的通解及非齐次线性方程组的通解。表3.1给出了与本实验相关的 MATLAB命令或函数。表3.1与本实验相关的MATLAB命令或函数命令功能说明位置R,s=rref(A)把矩阵A的最简行阶梯矩阵赋给 R; s是一个行向量,它的元素由 R的基 准元素所在的列
35、号构成。例3.1length(s)计算向量s的长度,即向量s的维数。例3.1end矩阵的最大下标,即:最后一行或最后一列。例3.1null(A,r)计算齐次线性方程组 Ax = 0的基础解系例3.1x0=Ab求非齐次线性方程组 Ax = b的一个特解x0例3.1fprintf按指定格式写文件,和 C语言功能类似。例3.2find(s)计算向量s中非零元素的下标例3.2subs(A,k,n)将A中的所有符号变量k用数值n来替代例3.3实验内容例3.1求非齐次线性方程组2x14x2x34x416x523x16x22x36x423x57的通解。3x16x24x36x419x523x12x25x32x
36、419x543解:在MATLAB命令窗口,输入以下命令:A=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;%输入常数列向量bR,s=rref(A,b)%把增广矩阵的最简行阶梯矩阵赋给R%而R的所有基准兀素在矩阵中的列号构成了行向量s计算结果为:R = TOC o 1-5 h z 120293001028000000000000在得出该方程组增广矩阵的最简行阶梯矩阵R 后,根据线性代数知识可以得到该齐次线性方程组的通解。 下面,在 MATLAB 的 M 文件编辑器中, 编写程序 la06.m ,可以
37、给出该 方程组的一个具体特解和对应齐次方程组的通解。 % 求齐次线性方程组的通解 clearA=2,4,-1,4,16;-3,-6,2,-6,-23;3,6,-4,6,19;1,2,5,2,19;%b=-2;7;-23;43;%R,s=rref(A,b);%m,n=size(A); % x0=zeros(n,1);%r=length(s);%x0(s,:)=R(1:r,end);%disp( 非齐次线性方程组的特解为: x0%输入系数矩阵A输入常数列向量b把增广矩阵的最简行阶梯矩阵赋给R而 R 的所有基准元素在矩阵中的列号构成了行向量s矩阵 A 的行数、列数赋给了变量m、 n将特解 x0 初始
38、化为 N 维零列向量矩阵 A 的秩赋给变量r将矩阵 R 的最后一列按基准元素的位置给特解x0 赋值)显示特解 x0disp( 对应齐次线性方程组的基础解系为: )x=null(A,r) %得到齐次线性方程组在 MATLAB 命令窗口中输入:la06Ax = 0的基础解系x运算结果为:非齐次线性方程组的特解为:x0 =30800对应齐次线性方程组的基础解系为:x =-2-2-90000-20100012210则方程组的通解为:k10k2001009300k3280010此计算方法和与传统的笔算方法一致,所以其结果也是一致的。 齐次线性方程组的特解还可以用Matlab的矩阵左除运算来求得,直接在
39、MATLAB命令窗口输入以下命令:b=-2;7;-23;43;x0=Ab%x=null(A,r)%运算结果为:A=2,4,-1,4,16;-3,-6,2,-6,-23;3,6,-4,6,19;1,2,5,2,19;用矩阵左除运算求得方程组特解x0得到齐次线性方程组 Ax = 0的基础解系xWarning: Rank deficient, rank = 2 tol = 4.3099e-014.x0 =007.333300.3333 x =-2 -2 -9 TOC o 1-5 h z中特解x0与前一方法的特解不同。(注:如果欠定方程组有解,则它有无穷个特解,通解 中只需
40、要任何一个特解即可)22901000方程组的通解为:k10k2 0k3222 301000011 31329614332例3.2已知向量组 10,20 ,30 ,42 ,52 ,求出它的2861923122最大无关组,并用该最大无关组来线性表示其它向量。 解:用笔计算的过程为:1, 2, 3, 4, 52 ,对矩阵A进行初等行变换,最后变为最简92 3 122行阶梯矩阵:10100110000100000000321 ,该矩阵基准元素所在的列号为001 , 2, 4 ,则原向量组的一个最大无关组为: 1, 2, 4 。根据该矩阵的第3 列,可以得到: 31 11 20 4 ;同理,可以得到:
41、53 12 2 1 4 。根据以上思路,编写 Matlab 程序 la07.m :% 找向量组的最大无关组,并用它线性表示其它向量 cleara1=1;1;0;2;2;%输入 5 个列向量a2=3;4;0;8;3;a3=2;3;0;6;1;a4=9;3;2;1;2;a5=6;-2;2;-9;2;A=a1,a2,a3,a4,a5;%R,s=rref(A); % % % r=length(s);%fprintf( 最大线性无关组为: for i=1:r fprintf(a%d ,s(i) % end for i=1:r%A0(:,i)=A(:,s(i); endA0 s0=1,2,3,4,5; f
42、or i=1:rs0(s(i)=0; ends0=find(s0);for i=1:5-r% s(i)%由 5 个列向量构造矩阵A把矩阵 A 的最简行阶梯矩阵赋给了 R而 R 的所有基准元素在矩阵中的列号构成了行向量s向量 s 中的元素即为最大无关组向量的下标最大无关组所含向量个数赋给r) % 输出字符串分别输出最大无关组的向量al ,从矩阵 A 中取出最大无关组赋给A0显示最大无关组矩阵A0构造行向量s0是最大无关组的列号若 s0 的某元素不为 0,表示该元素为矩阵A 中% 除最大无关组以外其它列向量的列号删除 s0 中的零元素此时 s0 中元素为其它向量的列号用最大无关组来线性表示其它向量
43、fprintf(a%d=,s0(i)for j=1:rfprintf(%3d*a%d+ ,R(j,s0(i),s(j);endfprintf(bb n);%去掉最后一个” +”end在 MATLAB 命令窗口中输入: la07运行结果为:最大线性无关组为: a1 a2 a4A0 = TOC o 1-5 h z 39430028132a3= -1*a1+ 1*a2+ 0*a4a5= 3*a1+ -2*a2+ 1*a4例 3.3 已知齐次线性方程组:1 2k x1 3x23x33x43x13x13x12 k x2 3x33x22 k x33x2 3x3113x43x4k x40 , 当 k 取何值
44、时方程组有非0la08.m定义符号变量k给系数矩阵赋值算出系数矩阵的行列式D解方程“d= 0,得到解kk ,即k值分别把 k 值代入系数矩阵A 中显示 k 的取值计算齐次线性方程组 “ Ax=0” 的基础解系零解?在有非零解的情况下,求出其基础解系。解:在 MATLAB 的 M 文件编辑器中,编写程序% 计算带符号变量的齐次线性方程组的解clearsyms k%A=1-2*k,3,3,3;3,2-k,3,3;3,3,2-k,3;3,3,3,11-k; %D=det(A);%kk=solve(D);%for i=1:4AA=subs(A,k,kk(i); %fprintf(当 k=);disp(
45、kk(i);%fprintf(基础解系为: n);disp(null(AA)%end在 MATLAB 命令窗口中输入:la08运算结果为:当 k=7/2基础解系为: 1 2 2 -2当 k=14基础解系为:当 k=-1 基础解系为: -1, -1 1, 0 0, 1 0, 0 当 k=-1 基础解系为: -1, -1 1, 0 0, 1 0, 03.4 实验习题1.求下列向量组的一个最大无关组,并把其余向量用此最大无关组线性表示。2. 求非齐次线性方程组6x13x22x33x44x554x12x2x32x43x54 的通解。4x12x23x32x4x502x1x27x33x42x513已知齐次
46、线性方程组:2k x12x24x3 4x402x13k x2x3 0 x40,当 k 取何值时方程组有非3x12x25k x3 4x400 x1x27x38 2k x40零解?在有非零解的情况下,求出其基础解系。2604201331816,218 ,32,414 ,510 ,68。51513362561801260实验4特征向量与二次型4.1实验目的.掌握Matlab软件对向量组正交化的方法;.掌握Matlab软件求方阵特征值和特征向量的方法;.掌握Matlab软件分析方阵是否可对角化的方法;.掌握Matlab软件化二次型为标准型的方法;.掌握Matlab软件分析对称阵是否正定的方法;. 了解
47、MATLAB软件关于矩阵分解的命令。4.2实验指导本实验利用MATLAB软件来求解矩阵的特征值和特征向量;分析矩阵的对角化问题; 给出二次型标准化的方法;分析二次型的正定性;了解矩阵的分解命令。表 4.1给出了与本 实验相关的MATLAB命令或函数。表4.1与本实验相关的MATLAB命令或函数命令功能说明位置orth(A)求出矩阵A的列向量组构成空间的一个正交规范基例4.1P=poly(A)计算矩阵A的特征多项式,P是一个行向量,其元素是多项式系数。例4.2roots(P)求该多项式P的零点例4.2r=eig(A)r为一列向量,其元素为矩阵 A的特征值。例4.2V,D=eig(A)矩阵D为矩阵
48、A特征值所构成的对角阵,矩阵 V的列为矩阵A的单位特 征向量,它与 D中的特征值一一对应。例4.2eval(lamda)把符号形式转换为数值形式例4.2V,D=schur(A)同上例4.4U,S,V=svd(A)U、V都是正交矩阵,S是矩阵A的奇异值构成的对角矩阵, 满足:A= USVT例4.6L,U=lu(A)L为准下三角矩阵,U为上三角矩阵,满足:A=LU例4.6Q,R=qr(A)Q为正交矩阵,R为上三角矩阵,满足: A=QR例4.6L=chol(A)L为上三角矩阵,满足:A=LtL (要求矩阵A为对称正定阵)例4.64.3实验内容115例4.1设向量组:12,21 ,31 ,求由这三个向
49、量生成的子空间V的320一个标准正交基。解:在MATLAB命令窗口输入:a1=1;2;3;a2=-1;1;2;a3=5;1;0;将矩阵A的列向量组正交规范化,% P的列构成了空间 V的一个标准正交基% P的列数反应了空间 V的维数A=a1,a2,a3P=orth(A)%运算结果为:P =-0.9266 0.3359-0.3116 -0.4343-0.2105 -0.8358从矩阵 P 的列数可以看出,原向量组是线性相关的,它生成的空间是二维的。2220192 16911例 4.2 求矩阵 A84610847解:在 MATLAB 的 M 文件编辑器中,编写法:% 矩阵特征值的求解方法clear的
50、特征值。la09.m 文件,它给出了三种求矩阵特征值的方A=2,-2,-20,-19;-2,16,-9,11;-8,4,-6,1;0,-8,-4,-7;%方法一:syms k%B=A-k*eye(length(A);%D=det(B);%lamda1=solve(D)%方法二: P=poly(A);%lamda2=roots(P)%方法三: lamda3=eig(A)%定义符号变量k构造矩阵B=(A-kI)计算行列式:|A-kI|求 |A-kI|=0的符号形式的解计算矩阵A 的特征多项式向量 P 的元素为该多项式的系数求该多项式的零点,即特征值直接求出矩阵A 的特征值在 MATLAB 命令窗口
51、中输入:la09运算结果为:lamda1 =-1/3*(19585+120*22674A(1/2)人(1/3)-385/3/(19585+120*22674A(1/2)人(1/3)-7/31/6*(19585+120*22674A(1/2)F(1/3)+385/6/(19585+120*22674A(1/2)4(1/3)-7/3+1/2*i*3A(1/2)*(-1/3*(19585+120*22674A(1/2)F(1/3)+385/3/(19585+120*22674A(1/2)人(1/3)1/6*(19585+120*22674A(1/2)A(1/3)+385/6/(19585+120*2
52、2674A(1/2)A(1/3)-7/3-1/2*i*3A(1/2)*(-1/3*(19585+120*22674A(1/2)A(1/3)+385/3/(19585+120*22674A(1/2)A(1/3)lamda2 =-17.334712.00005.1673 + 6.3598i5.1673 - 6.3598ilamda3 =-17.33475.1673 + 6.3598i125.1673 - 6.3598i12.0000其中,方法一是根据笔算矩阵特征值的算法编写而成, MATLAB 给出了一个符号形式的解,可以进一步把符号解转化为数值解,输入以下命令:lamda1=eval(lamda
53、1)结果为:lamda1 =12.0000-17.33475.1673 - 6.3598i5.1673 + 6.3598i例 4.3 求下列矩阵A 的特征值和特征向量,并判断矩阵是否可以对角化,若能对角化,请找出可逆矩阵V ,使 V 1AVD 。 HYPERLINK l bookmark17 o Current Document 1234(1) A2 13; (2)A21122解: ( 1 )在 MA TLAB 命令窗口输入:A=1,2,3;2,1,3;1,1,2;V,D=eig(A)%运行结果为:V =-0.6396 -0.7071 -0.5774-0.6396 0.7071 -0.5774
54、-0.4264 0.0000 0.5774D =5.0000000 -1.000001211012 ; ( 3) A 43 010101矩阵 D 为矩阵 A 的特征值构成的对角阵矩阵 V 的列向量为矩阵A 与特征值 D 对应的特征向量00 0.0000从矩阵 D 可以看出,矩阵A 有三个不同的特征值 5 , -1 , 0 ,则矩阵 V 的 3 个列向量线性无关,所以矩阵A 可以对角化。可以在MATLAB 窗口中,验算结果V 1 AV D 的正确性。( 2 )在 MATLAB 命令窗口输入:A=4,-1,-2;2,1,-2;2,-1,0;V,D=eig(A)运行结果为:V =0.7276 -0.
55、5774 0.74370.4851 -0.5774 0.23730.4851 -0.5774 0.62502.0000000 1.0000000 2.0000属于这个特征根的特征向量从矩阵 D 可以看出, 132 是矩阵 A 的二重特征根, 是否存在两个线性无关的特征向量,需要分析齐次线性方程组 A 2I x 0解空间的维数是否等于 2,即分析3 rank A 2I 是否等于2。在MATLAB 命令窗口继续输入:if 3-rank(A-2*eye(3)=2% 判断齐次线性方程组 (A2 2 I)x=0 解空间的维数是否为2disp( 能对角化 );% 如果解空间维数为 2 ,则存在 2 个线性
56、无关特征向量elsedisp( 不能对角化 );end运行结果为:能对角化从对角矩阵D 和特征向量构成的矩阵V 中也可以看出,矩阵V 的第一列和第三列是属于特征值 2 的特征向量,它们是线性无关的,则矩阵V 的 3 个列向量线性无关,故矩阵A可以对角化。在MATLAB 命令窗口中,可以验证结果V 1AV D 的正确性。( 3 )在MATLAB 命令窗口输入:A=1,-1,0;4,-3,0;1,0,1;V,D=eig(A)运行结果为:V =0 0.4364 -0.43640 0.8729 -0.87291.0000 -0.2182 0.2182D =1.0000000 -1.0000000 -1
57、.0000从矩阵 D 可以看出, 231 是矩阵 A 的二重特征根,在MATLAB 命令窗口继续输入:if 3-rank(A+eye(3)=2% 判断齐次线性方程组 (A2 2 I)x=0 解空间的维数是否为2disp( 能对角化 );% 如果解空间维数为 2 ,则存在 2 个线性无关特征向量elsedisp( 不能对角化 );end运行结果为:不能对角化其实,从对角阵D 和特征向量构成的矩阵V 中也可以看出,矩阵V 的第二列和第三列是属于特征值-1 的特征向量,它们是线性相关的,即属于特征值 -1 的线性无关的特征向量只有一个。故矩阵A 不能对角化。例4.4用正交变换法将二次型 f X1,x
58、2,x3x12 2 x2 2 2x32 4x2 x 3化为标准形。解:在 MATLAB 的 M 文件编辑器中,编写 % 用正交变换法将二次型化为标准型 clearA=1,0,0;0,2,2;0,2,2;%V,D=eig(A);% 或: V,D=schur(A) % disp(正交矩阵为:);Vdisp(对角矩阵为:);Ddisp( 标准化的二次型为: ); syms y1 y2 y3f=y1,y2,y3*D*y1;y2;y3 在 MATLAB 命令窗口中输入: la10 运行结果为: 正交矩阵为: V =0 1.00000-0.70710 0.70710.70710 0.7071对角矩阵为为:
59、 D =000010004标准化的二次型为: f =y2A2+4*y3A2矩阵 V 为所求正交矩阵,把la10.m 文件:输入二次型的矩阵A其中矩阵 V 即为所求正交矩阵矩阵 D 为矩阵 A 的特征值构成的对角阵结果和eig( )函数相同x Vy 代入二次型fxT Ax ,得:f xTAx yT VT AV y yT y y22 4y32 。例 4.5 判断下列矩阵的正定性:1111231 ) A 121 ; ( 2) B 221153153) C121254 ; ( 4) D145321230103解:在 MATLAB 命令窗口输入:A=1,1,-1;1,2,-1;-1,-1,5; B=1,
60、2,3;2,2,-1;3,-1,5; C=-3,2,1;2,-3,0;1,0,-3; D=1,2,-1;2,5,-4;-1,-4,5; lamda_A=eig(A) lamda_B=eig(B) lamda_C=eig(C) lamda_D=eig(D) 运行结果为:lamda_A = 0.3542 2.0000 5.6458lamda_B = -1.8900 3.2835 6.6065lamda_C = -5.2361 -3.0000 -0.7639lamda_D = -0.00001.46899.5311从矩阵特征值的正负,可以看出矩阵A 正定,矩阵B 不定,矩阵C 负定,而矩阵D 的第一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《GBT 33525-2017输送带 覆盖层性能 类别》
- 深度解析(2026)《GBT 33434-2016船舶电弧焊烟尘排放率测定方法》
- 任务2.2 通知首选项设置
- 医疗数据安全治理:区块链应用模式
- (南开中学)重庆市高2026届高三第五次质量检测语文试卷(含答案详解)
- 医疗数据安全成熟度:区块链灾备方案
- 医疗数据安全应急演练中的技术融合路径
- 医疗数据安全培训的区块链技术应用流程优化
- 医疗数据安全合规性风险应对措施
- 医疗数据安全共享绩效评价
- 2025年杭州余杭水务有限公司招聘36人笔试参考题库及答案解析
- led屏安装施工步骤方案
- 钢筋桁架楼承板专项施工方案
- 非开挖顶管合同范本
- 急性膀胱炎课件
- 专家讲座的协议书
- 雨课堂学堂在线学堂云民族学导论专题中央民族大学单元测试考核答案
- 【语文】小学一年级上册期末质量试卷
- 2026元旦班级联欢晚会活动主题班会:星光闪耀迎新夜 课件
- 2025年内蒙古行政执法人员资格认证考试题库真题库及答案
- 急性胰腺炎重症患者白蛋白输注方案
评论
0/150
提交评论