《Matlab在线性代数中的应用》由会员分享,可在线阅读,更多相关《Matlab在线性代数中的应用(58页珍藏版)》请在金锄头文库上搜索。
1、7/21/20241Matlab 软件在线性代数的应用一、概述一、概述第一章第一章 Matlab介绍介绍 MATLAB是一套功能十分强大的工程计是一套功能十分强大的工程计算机及数据分析软件,它的应用范围覆盖了算机及数据分析软件,它的应用范围覆盖了当今所有的工业、电力、电子、医疗、建筑当今所有的工业、电力、电子、医疗、建筑等各领域。等各领域。7/21/20242Matlab 软件在线性代数的应用 1980年前后,年前后,MATLAB的首创者的首创者CleveMoler博博士在士在NewMexico大学讲授线性代数课程时,看到了大学讲授线性代数课程时,看到了用高级语言编程解决工程计算问题的诸多不便
2、,因用高级语言编程解决工程计算问题的诸多不便,因而构思开发了而构思开发了MATLAB软件软件(MATrixLABoratory,矩矩阵实验室阵实验室),该软件利用了,该软件利用了Moler博士在此前开发的博士在此前开发的LINPACK(线性代数软件包线性代数软件包)和和EOSPACK(基于特征基于特征值计算的软件包值计算的软件包)中可靠的子程序,用中可靠的子程序,用Fortran语言编语言编写而成,集命令翻译、工程计算功能于一身。写而成,集命令翻译、工程计算功能于一身。7/21/20243Matlab 软件在线性代数的应用 80年代初期,年代初期,CleveMoler和和JohnLittle采
3、采用用C语言改写了语言改写了MATLAB的内核。不久,他们的内核。不久,他们成立了成立了Mathworks软件开发公司并将软件开发公司并将MATLAB正式推向市场。正式推向市场。 7/21/20244Matlab 软件在线性代数的应用现在的现在的MATLAB新版本早已不只停留在工程计新版本早已不只停留在工程计算的功能上了,它由主包、算的功能上了,它由主包、Simulink以及功能各异的以及功能各异的工具箱组成,以矩阵运算为基础,把计算、可视化、工具箱组成,以矩阵运算为基础,把计算、可视化、程序设计融合到了一个简单易用的交互式工作环境程序设计融合到了一个简单易用的交互式工作环境中。在这里可以实现
4、工程计算、算法研究、符号运中。在这里可以实现工程计算、算法研究、符号运算、建模和仿真、原型开发、数据分析及可视化、算、建模和仿真、原型开发、数据分析及可视化、科学和工程绘图、应用程序设计科学和工程绘图、应用程序设计(包括图形用户界面包括图形用户界面设计设计)等等功能。等等功能。7/21/20245Matlab 软件在线性代数的应用正式凭借正式凭借MATLAB的这些突出的优势,它现在已的这些突出的优势,它现在已成为世界上应用最广泛的工程计算软件。在美国等发成为世界上应用最广泛的工程计算软件。在美国等发达国家的大学里达国家的大学里MATLAB是一种必须掌握的基本工具,是一种必须掌握的基本工具,而在
5、国外的研究设计单位和工业部门,更是研究和解而在国外的研究设计单位和工业部门,更是研究和解决工程计算问题的一种标准软件。在国内也有越来越决工程计算问题的一种标准软件。在国内也有越来越多的科学技术工作者参加到学习和倡导这门语言的行多的科学技术工作者参加到学习和倡导这门语言的行列中来。在大家的共同努力下,列中来。在大家的共同努力下,MATLAB正在成为计正在成为计算机应用软件中的一个热点。算机应用软件中的一个热点。 7/21/20246Matlab 软件在线性代数的应用值运算是值运算是Matlab最基本、最重要的功能,最基本、最重要的功能,Matlab能够成为世界上最优秀的数学软件之一,和能够成为世
6、界上最优秀的数学软件之一,和它出色的数值运算能力是分不开的。它出色的数值运算能力是分不开的。Matlab以矩阵运算为基础,把计算、可视化、以矩阵运算为基础,把计算、可视化、程序设计融合到一个简单易用的交互式工作环境中,程序设计融合到一个简单易用的交互式工作环境中,可实现工程计算、算法研究、符号运算、建模和仿可实现工程计算、算法研究、符号运算、建模和仿真、原型开发、数据分析及可视化、科学和工程绘真、原型开发、数据分析及可视化、科学和工程绘图、应用程序设计等功能图、应用程序设计等功能二、二、Matlab 的主要功能的主要功能7/21/20247Matlab 软件在线性代数的应用一、基本知识一、基本
7、知识第二章第二章 Matlab的的基本操作基本操作 1进入和退出进入和退出Matlab 安装好安装好 Matlab后,从后,从 Matlab的程序组中执行的程序组中执行MatlabMatlab即即可进入可进入MatlabMatlab命令窗口,或者双击命令窗口,或者双击MatlabMatlab图标,也可进入图标,也可进入。单击单击FileFile菜单中菜单中ExitExit,或使用,或使用MatlabMatlab的的ExitExit命令退出命令退出。7/21/20248Matlab 软件在线性代数的应用2基本算术运算符基本算术运算符加号:加号:+减号:减号: 乘号:乘号:* *除号:除号:/ 指
8、数:指数:可用括号规定运算的优先级可用括号规定运算的优先级7/21/20249Matlab 软件在线性代数的应用3基本运算基本运算(1)Matlab(1)Matlab将矩阵加、减、乘的程序编为内部函数,将矩阵加、减、乘的程序编为内部函数,只要用只要用+,-+,-,* *做运算符号就包含阶数检查和执行运算的做运算符号就包含阶数检查和执行运算的全过程。全过程。两相加矩阵有一个是标量时,两相加矩阵有一个是标量时,MatlabMatlab承认算式有效,承认算式有效,自动把标量扩展为同阶等元素矩阵。自动把标量扩展为同阶等元素矩阵。如:键入如:键入 X=-1 0 1; Y=X-1 X=-1 0 1; Y=
9、X-1得得 Y= -2 -1 0 Y= -2 -1 0 (2)(2)矩阵除法矩阵除法矩阵求逆矩阵求逆 inv(A) inv(A),如果,如果det(A)det(A)等于或很接近零,等于或很接近零,MatlabMatlab会提示出错。会提示出错。“左除左除”与与“右除右除”,左乘或右乘矩阵的逆,左乘或右乘矩阵的逆,AA或或/A/A(3)(3)幂运算幂运算 A*A*A=A57/21/202410Matlab 软件在线性代数的应用 1数、数组、矩阵的输入数、数组、矩阵的输入 (1)数的输入)数的输入a=5b=2-5i注意:在行尾加注意:在行尾加“;”,该行结果不显示;标点符号一,该行结果不显示;标点
10、符号一定要在英文状态下输入定要在英文状态下输入!(2)数组的输入)数组的输入b=1,3,5,7,9,11c=1:2:11d=linspace(1,11,6)问题:问题:若若b为在为在02(用用pi表示)之间均匀分布的表示)之间均匀分布的22个数据,个数据,c=(1.3,2.5,7.6,2,3),d=(23,20,17,14,11,8,5,2),各,各用何种方法输入较简单?用何种方法输入较简单? 二、基本操作二、基本操作7/21/202411Matlab 软件在线性代数的应用 (3)矩阵的输入)矩阵的输入A=2,3,5;1,3,5;6,9,4%行之间要用分号隔开行之间要用分号隔开A=235135
11、694m=input(请输入初始量,请输入初始量,m=);请输入初始量,请输入初始量,m=问题:输入问题:输入A(2,3),结果如何?输入,结果如何?输入A(7)又如何?又如何?注意:变量名开头必须是英文字母,变量名对字母注意:变量名开头必须是英文字母,变量名对字母大小写是区分的大小写是区分的. 7/21/202412Matlab 软件在线性代数的应用2矩阵的块操作矩阵的块操作A(2,:)%取出取出A的第的第2行的所有元素行的所有元素A(1,3,:)%取出取出A的第的第1,3行的所有元素行的所有元素A(2:3,1:2)%取出取出A的的2,3行与行与1,2列交叉的元素列交叉的元素A(1,3,:)
12、=A(3,1,:)%将将A的的1行和行和3行互换行互换问题:如何将问题:如何将A的的2,3列互换?列互换?A(2,:)=4%将将A的第的第2行的所有元素用行的所有元素用4取代取代A(find(A=3)=-3%将将A中等于中等于3所有元素换为所有元素换为-3A(2,:)=%删除删除A的第的第2行行reshape(A,2,3)%返回以返回以A的元素重新构造的的元素重新构造的26维矩阵维矩阵A(1:3,2:3),A(2:4,1:2);A,A(:,2)%由小矩阵构造大矩阵。由小矩阵构造大矩阵。 7/21/202413Matlab 软件在线性代数的应用3矩阵的翻转操作矩阵的翻转操作flip(抛、弹、翻转
13、抛、弹、翻转),rotation(旋转)(旋转)flipud(A)%A进行上下翻转进行上下翻转fliplr(A)%A进行左右翻转进行左右翻转rot90(A)%A逆时针旋转逆时针旋转90 7/21/202414Matlab 软件在线性代数的应用4.特殊矩阵的产生特殊矩阵的产生random(随意(随意,任意),任意),randn(Normallydistributedrandomnumbers.)randperm(Randompermutation.(排列)(排列)A=eye(n)%产生产生n维单位矩阵维单位矩阵A=ones(n,m)%产生产生nm维维1矩阵矩阵A=zeros(n,m)%产生产生n
14、m维维0矩阵矩阵A=rand(n,m)%产生产生nm维随机矩阵(元素在维随机矩阵(元素在01之间)之间)randn(m,n)%产生产生mn正态分布随机矩阵正态分布随机矩阵randperm(n)%产生产生1n之间整数的随机排列之间整数的随机排列 7/21/202415Matlab 软件在线性代数的应用问题:问题:生成一个在区间生成一个在区间10,20内均匀分布的内均匀分布的4阶随机矩阵阶随机矩阵. 例例randperm(6)ans=321546 7/21/202416Matlab 软件在线性代数的应用sqrt(squareroot),exp(exponent),log(logarithm)4+2
15、4*24/2%4右除右除2,等于,等于243%4的的3次方次方exp(3)%e的的3次方,不能输成次方,不能输成e3log(4)%4的自然对数,的自然对数,log10(4)是以是以10为为底,底,log2(4)是以是以2为底为底7/21/202417Matlab 软件在线性代数的应用det(determinant,行列式行列式,决定性的,有决定作用的决定性的,有决定作用的),rank(秩秩,等级等级),inv(inverse,倒转的倒转的,反转的反转的),eig(eigenvalues,eigenvectors,本征的,本征的,固有的固有的)A %A的转置的转置det(A)%A的行列式,的行列
16、式,A必须是方阵必须是方阵rank(A)%A的秩的秩inv(A)%A的逆的逆eig(A)%A的特征值的特征值X,D=eig(A)%A的特征向量的特征向量X及特征值及特征值D3*A%常数与矩阵相乘常数与矩阵相乘A+B%A,B必须是同维矩阵,和必须是同维矩阵,和3+A进行比较进行比较AB%A,B必须是同维矩阵,和必须是同维矩阵,和3-A进行比较进行比较7/21/202418Matlab 软件在线性代数的应用A*B%和和A.*B进行比较进行比较A/B%(和和A./B进行比较进行比较)AB%(和和A.B进行比较进行比较)A2%A2相当于相当于A*A(和和A.2进行比较进行比较)注意:注意:“.*”,“
17、./”,“.”,“.”称为点称为点运算(或称数组运算,又称元素群运算),点运算是前后运算(或称数组运算,又称元素群运算),点运算是前后矩阵对应元素之间的运算矩阵对应元素之间的运算. 7/21/202419Matlab 软件在线性代数的应用例:例:helpsqrt%将显示出平方根将显示出平方根sqrt命令的功能和使用方式命令的功能和使用方式 7/21/202420Matlab 软件在线性代数的应用8.数据格式命令说明数据格式命令说明 formatshort1.4142短格式,显示短格式,显示5位位formatshorte1.4142e+000最优化短格式,最优化短格式,5位加指数位加指数form
18、athex3ff6a09e667f3bed十六进制十六进制,货币银行格式,货币银行格式,小数点后小数点后2位位formatbank1.41货币银行格式,小数点后货币银行格式,小数点后2位位formatrat1395/985有理格式有理格式format+紧密格式,显示数据紧密格式,显示数据+,7/21/202421Matlab 软件在线性代数的应用三、函数三、函数 函数名函数名含含义义sin/cos正弦正弦/余弦函数余弦函数tan/cot正切正切/余切函数余切函数sec/csc正割正割/余割函数余割函数sinh/cosh双曲正弦双曲正弦/双曲余弦函数双曲余弦函数tanh/coth双曲正切双曲正切
19、/双曲余切函数双曲余切函数1.基本的数学函数基本的数学函数 7/21/202422Matlab 软件在线性代数的应用函数名函数名含含义义asin/acos反正弦反正弦/反余弦函数反余弦函数atan/acot反正切反正切/反余切函数反余切函数asec/acsc反正割反正割/反余割函数反余割函数asinh/acosh反双曲正弦反双曲正弦/反双曲余弦函数反双曲余弦函数atanh/acoth反双曲正切反双曲正切/反双曲余切函数反双曲余切函数7/21/202423Matlab 软件在线性代数的应用函数名函数名含含义义sech/csch双曲正割双曲正割/双曲余割函数双曲余割函数exp指数函数指数函数log
20、对数函数对数函数abs绝对值函数绝对值函数imag复数虚部函数复数虚部函数conj共轭复数函数共轭复数函数fix朝零方向取整朝零方向取整round四舍五入取整四舍五入取整rem求余函数求余函数gcd最大公约数最大公约数perms排列排列7/21/202424Matlab 软件在线性代数的应用函数名函数名含含义义asech/acsch反双曲正割反双曲正割/反双曲余割函数反双曲余割函数sqrt平方根函数平方根函数log10常用对数函数常用对数函数angle角相位函数角相位函数real复数实部函数复数实部函数sign正负符号函数正负符号函数ceil朝正无穷方向取整朝正无穷方向取整floor朝负无穷方
21、向取整朝负无穷方向取整mod求余函数求余函数(带符号带符号)lcm最小公倍数最小公倍数nchoosek组合组合7/21/202425Matlab 软件在线性代数的应用2 2特殊变量与函数特殊变量与函数函数名函数名含含义义ans默认返回变量默认返回变量nargin函数输入变量个数函数输入变量个数varargin函数中输入的可选参数函数中输入的可选参数i虚数单位虚数单位inf无穷值无穷值flops浮点运算次数浮点运算次数7/21/202426Matlab 软件在线性代数的应用函数名函数名含含义义eps默认相对浮点精度默认相对浮点精度nargout函数输出变量个数函数输出变量个数varargout函
22、数中输出的可选参数函数中输出的可选参数pi圆周率圆周率nan不定值不定值inputname输入参数名输入参数名7/21/202427Matlab 软件在线性代数的应用3 3矩阵变换和矩阵函数矩阵变换和矩阵函数函数名函数名含含义义flipud矩阵上下翻转矩阵上下翻转rot90矩阵旋转矩阵旋转90tril产生或提取下三角阵产生或提取下三角阵eye产生单位矩阵产生单位矩阵ones产生产生1矩阵矩阵linespace构造线性分布向量构造线性分布向量det行列式的值行列式的值trice矩阵的迹矩阵的迹rref化行最简形化行最简形7/21/202428Matlab 软件在线性代数的应用函数名函数名含含义义
23、fliplr矩阵左右翻转矩阵左右翻转diag产生或提取对角阵产生或提取对角阵triu产生或提取上三角阵产生或提取上三角阵rand产生随机矩阵产生随机矩阵zeros产生零矩阵产生零矩阵logspace构造对数分布向量构造对数分布向量eig矩阵的特征值矩阵的特征值inv矩阵的逆矩阵的逆null零空间零空间7/21/202429Matlab 软件在线性代数的应用(1)用降幂排列的多项式的系数向量表示用降幂排列的多项式的系数向量表示例例4.1对多项式对多项式p=x4+2x35x+6和和s=x2+2x+3,用多项,用多项式的系数表示为式的系数表示为p=1,2,0,-5,6;s=1,2,3;四、多项式和线
24、性方程组的求解四、多项式和线性方程组的求解 1 1、多项式的表达方式、多项式的表达方式7/21/202430Matlab 软件在线性代数的应用(2)由根创建多项式)由根创建多项式r=1,4,8;%已知多项式的根为(已知多项式的根为(1,4,8)p=poly(r)p=1-1344-32poly2sym(p) %将多项式的向量表示转变为符号形式将多项式的向量表示转变为符号形式ans=x3-13*x2+44*x-327/21/202431Matlab 软件在线性代数的应用2.多项式的加减乘除多项式的加减乘除 例例4.2 4.2 求例求例4.14.1中多项式中多项式p p,s s的和、差、积、商的和、
25、差、积、商. . conv(Convolution,conv(Convolution,卷积卷积),deconv(deconvolution,),deconv(deconvolution,去卷去卷积积, ,反褶积反褶积) )p=1,2,0,-5,6;p=1,2,0,-5,6;s=0,0,1,2,3; s=0,0,1,2,3; % %多项式加法,向量多项式加法,向量p p,s s必须同维,必须同维,s s扩维成扩维成s=0,0,1,2,3s=0,0,1,2,3p+s p+s p-s %p-s %多项式减法,向量多项式减法,向量p p,s s必须同维必须同维7/21/202432Matlab 软件在
26、线性代数的应用conv(p,s) %conv(p,s) %求多项式求多项式p p和和s s的乘积,也是向量的乘积,也是向量, ,的卷积的卷积ans =ans = 0 0 1 4 7 1 -4 -3 18 0 0 1 4 7 1 -4 -3 18p=1,2,0,-5,6;s=1,2,3; p=1,2,0,-5,6;s=1,2,3; deconv(p,s) %deconv(p,s) %求多项式求多项式p p除以除以s s的商和余项,也是的商和余项,也是向量解卷积运算向量解卷积运算q =q = 1 0 1 0 3 3r =r = 0 0 0 1 15 0 0 0 1 15即两多项式相除商为即两多项式
27、相除商为x2x23 3,余项为,余项为x+15.x+15. 7/21/202433Matlab 软件在线性代数的应用compan(companion,同伴同伴,共事者共事者)格式:格式:r=roots(p)%求多项式求多项式p的根,即的根,即p(x)=0方程方程的解的解.pc=compan(p)%求多项式求多项式p的伴随矩阵的伴随矩阵.r=eig(pc)%多项式多项式p的伴随矩阵的特征值等于多项的伴随矩阵的特征值等于多项式式p的根的根. 3. 3. 求多项式的根求多项式的根7/21/202434Matlab 软件在线性代数的应用例例4.3 4.3 求多项式求多项式p=x2p=x22x+62x+
28、6的根的根. . 解一:解一:p=1,2,6;p=1,2,6;r=roots(p)r=roots(p)结果为:结果为:r =r =解二:解二:pc=compan(p);pc=compan(p);r1=eig(pc) r1=eig(pc) r1 =r1 =即多项式即多项式p=x2+2x+6p=x2+2x+6的根为一对共轭虚数的根为一对共轭虚数. . 7/21/202435Matlab 软件在线性代数的应用例例4.4求线性方程组求线性方程组AX=b的解,其中,的解,其中,A=2,3,5;3,6,8;6,5,4,b=12;34;43.解一:用矩阵左除法求解解一:用矩阵左除法求解.A=2,3,5;3,
29、6,8;6,5,4;b=12;34;43;R=rank(A)X=Ab结果为:结果为:R=3X=注意:注意:b是列向量,求解前先检验是列向量,求解前先检验A是否是满秩方阵是否是满秩方阵. 4、非齐次线性方程组求解、非齐次线性方程组求解 7/21/202436Matlab 软件在线性代数的应用解二:用函数解二:用函数rrefrref求解求解. . C=A,b C=A,b D=rref(C) D=rref(C) 结果为:结果为:C =C = 2 3 5 12 2 3 5 12 3 6 8 34 3 6 8 34 6 5 4 43 6 5 4 43D =D =则则D D的最后一列元素就是所求的解,同解
30、一结果相同的最后一列元素就是所求的解,同解一结果相同. . 7/21/202437Matlab 软件在线性代数的应用五、集合和向量的基本运算五、集合和向量的基本运算 1.两个集合的交集两个集合的交集 格式:格式:c=intersect(a,b)%返回返回a,b的公共部分,即的公共部分,即c =ab.c,ia,ib=intersect(a,b) %c为为a,b的公共元素,的公共元素,ia表示公共元素在表示公共元素在a中的位置,中的位置,ib表示公共元素在表示公共元素在b中位置中位置. 7/21/202438Matlab 软件在线性代数的应用例例5.1A=1,9,6,20;B=1,2,3,4,6,
31、10,20;c,ia,ib=intersect(A,B)c=1620ia=134ib=1577/21/202439Matlab 软件在线性代数的应用 2.两个集合的差集两个集合的差集 例例5.2A=1,7,9,6,20;B=1,2,3,4,6,10,20;c=setdiff(A,B)c=79 7/21/202440Matlab 软件在线性代数的应用3.两个集合的并集两个集合的并集 格式:格式:c=union(a,b)%返回返回a,b的并集,即的并集,即c=ab.c=union(A,B,rows)%返回矩阵返回矩阵A,B不同行向量构不同行向量构成的大矩阵,其中相同行向量只取其一成的大矩阵,其中相
32、同行向量只取其一.c,ia,ib=union() %ia,ib分别表示分别表示c中行向量在中行向量在原矩阵原矩阵(向量向量)中的位置中的位置. A=1,2,3,4;B=2,4,5,8;c=union(A,B)则结果为:则结果为:c=1234587/21/202441Matlab 软件在线性代数的应用4.向量的点积向量的点积格式:格式:C=dot(A,B)%若若A,B为向量,为向量,A与与B长度必须相同,长度必须相同,则返回向量则返回向量A与与B的点积;若的点积;若A,B为矩阵,则为矩阵,则A与与B必须必须有相同的维数有相同的维数.C=dot(A,B,dim)%在在dim维数中给出维数中给出A与
33、与B的点积的点积. A=1,2,3;B=3,4,5;dot(A,B);%计算向量计算向量A,B的标积,结果为的标积,结果为26还可用另一种算法:还可用另一种算法:sum(A.*B). 7/21/202442Matlab 软件在线性代数的应用5.向量的叉积向量的叉积 例例5.5A=1,2,3,;B=3,4,5,;cross(A,B);%计算计算A,B的叉积,的叉积,结果为:结果为:-24-2.7/21/202443Matlab 软件在线性代数的应用6.向量的长度向量的长度 由定义,向量由定义,向量A的长度为,的长度为,所以命令:所以命令:sqrt(dot(A,A)%或或sqrt(sum(A.*A
34、)可求出可求出向量向量A的长度的长度. 7/21/202444Matlab 软件在线性代数的应用7.向量的方向角向量的方向角L=sqrt(dot(A,A);%计算向量计算向量A的长度的长度alpha=acos(A(1)/L);%计算向量计算向量A与与x轴的夹角轴的夹角beta=acos(A(2)/L);%计算向量计算向量A与与y轴的夹角轴的夹角gamma=acos(A(3)/L);%计算向量计算向量A与与z轴的夹角轴的夹角 7/21/202445Matlab 软件在线性代数的应用8.向量的夹角向量的夹角 L1=sqrt(dot(A,A);%计算向量计算向量A的长度的长度L2=sqrt(dot(
35、B,B); %计算向量计算向量B的长度的长度c=dot(A,B)/L1/L2; %计算向量计算向量A,B的点积的点积alpha=acos(c)%计算向量计算向量A,B间夹角间夹角7/21/202446Matlab 软件在线性代数的应用六、六、向量组的线性相关性及方程组的通解向量组的线性相关性及方程组的通解相关命令相关命令R,s=rref(A),把矩阵把矩阵A的最简梯矩阵赋值给的最简梯矩阵赋值给R;s是一个是一个行向量,它的元素由行向量,它的元素由R的首非零元所在列号构成的首非零元所在列号构成null(A,r),齐次线性方程组齐次线性方程组Ax=0的基础解系的基础解系x0=Ab,非齐次线性方程组
36、非齐次线性方程组Ax=b的一个特解的一个特解x0length(s),计算计算s向量的维数向量的维数end,矩阵的最大下标,最后一行或最后一列矩阵的最大下标,最后一行或最后一列find(s),向量向量s中非零元素的下标中非零元素的下标sub(A,k,n),将将A中所有符号变量中所有符号变量k用数值用数值n代替代替7/21/202447Matlab 软件在线性代数的应用已知齐次线性方程组:已知齐次线性方程组:当当k取何值时方程组有非零解?在有非零解的情况下,取何值时方程组有非零解?在有非零解的情况下,求出其基础解系。求出其基础解系。7/21/202448Matlab 软件在线性代数的应用clear
37、symsk%定义符号变量定义符号变量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);%解方程解方程“D0”,得到解,得到解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”的
38、基础解系的基础解系end7/21/202449Matlab 软件在线性代数的应用七、七、特征向量与二次型特征向量与二次型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中特征值
39、一一对应中特征值一一对应V,D=schur(A),矩阵矩阵D为对称阵为对称阵A的特征值所构成的对角阵的特征值所构成的对角阵,V的列为的列为A的单位特征向量,与的单位特征向量,与D中特征值一一对应中特征值一一对应7/21/202450Matlab 软件在线性代数的应用例:已知矩阵例:已知矩阵,求其特征值。,求其特征值。7/21/202451Matlab 软件在线性代数的应用A=2,-2,-20,-19;-2,16,-9,11;-8,4,-6,1;0,-8,-4,-7;syms k % 定义符号变量kB=A-k*eye(length(A); % 构造矩阵B=(A-kI)D=det(B); % 计算
40、行列式:|A-kI|lamda1=solve(D) % 求|A-kI|=0的符号形式的解P=poly(A); % 计算矩阵A的特征多项式, 向量P的元素为该多项式的系数lamda2=roots(P) % 求该多项式的零点,即特征值lamda3=eig(A) % 直接求出矩阵A的特征值7/21/202452Matlab 软件在线性代数的应用八、实验八、实验1、A=123;456;B=789;468; 求:求:C=A+B,C=C-2 2、A=123;456;B=ones(3)求:求: C=A*B3、A=123;457;479;B=137;357;851;求:求:AB,A/B 7/21/202453
41、Matlab 软件在线性代数的应用4、A=123;457;479; 求:求:A2,A-2,det(A) 5、A=-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;求求A的逆。(提示见下一页)的逆。(提示见下一页)7/21/202454Matlab 软件在线性代数的应用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.右除法:右除法:An
42、3=eye(5)/A%eye(5)为为5阶单位矩阵阶单位矩阵%4.左除法:左除法:An4=Aeye(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不可逆不可逆);end7/21/202455Matlab 软件在线性代数的应用6 6、解方程:解方程:提示提示:% 求解符
43、号行列式方程clear % 清除各种变量syms x % 定义x为符号变量A=3,2,1,1;3,2,2-x2,1;5,1,3,2;7-x2,1,3,2 D=det(A) % 计算含符号变量矩阵A的行列式Df=factor(D) % 对行列式D进行因式分解 % 从因式分解的结果,可以看出方程的解X=solve(D) % 求方程“D0”的解7/21/202456Matlab 软件在线性代数的应用用正交变换法将二次型用正交变换法将二次型化为标准型化为标准型clearA=1,0,0;0,2,2;0,2,2;%输入二次型的矩阵输入二次型的矩阵AV,D=eig(A);%其中矩阵其中矩阵V即为所求正交矩阵即为所求正交矩阵%矩阵矩阵D为矩阵为矩阵A的特征值构成的对角阵的特征值构成的对角阵%或:或:V,D=schur(A)%结果和结果和eig()函数相同函数相同disp(正交矩阵为:正交矩阵为:);Vdisp(对角矩阵为:对角矩阵为:);Ddisp(标准化的二次型为:标准化的二次型为:);symsy1y2y3f=y1,y2,y3*D*y1;y2;y37/21/202457Matlab 软件在线性代数的应用7/21/202458