1、MMa at tl la ab b软软件件在在线线性性代代数数中中的的应应用用 MatlabMatlab 软件在线性代数的应用 一、概述一、概述 第一章第一章 Matlab介绍介绍 MATLAB是一套功能十分强大的工程计是一套功能十分强大的工程计算机及数据分析软件,它的应用范围覆盖了算机及数据分析软件,它的应用范围覆盖了当今所有的工业、电力、电子、医疗、建筑当今所有的工业、电力、电子、医疗、建筑等各领域。等各领域。2023年2月19日星期日 2 MatlabMatlab 软件在线性代数的应用 1980年前后,年前后,MATLAB的首创者的首创者Cleve Moler博博士在士在New Mexi
2、co大学讲授线性代数课程时,看到了大学讲授线性代数课程时,看到了用高级语言编程解决工程计算问题的诸多不便,因用高级语言编程解决工程计算问题的诸多不便,因而构思开发了而构思开发了MATLAB软件软件(MATrix LABoratory,矩矩阵实验室阵实验室),该软件利用了,该软件利用了Moler博士在此前开发的博士在此前开发的LINPACK(线性代数软件包线性代数软件包)和和EOSPACK(基于特征基于特征值计算的软件包值计算的软件包)中可靠的子程序,用中可靠的子程序,用Fortran语言编语言编写而成,集命令翻译、工程计算功能于一身。写而成,集命令翻译、工程计算功能于一身。2023年2月19日
3、星期日 3 MatlabMatlab 软件在线性代数的应用 80年代初期,年代初期,Cleve Moler和和John Little采采用用C语言改写了语言改写了MATLAB的内核。不久,他们的内核。不久,他们成立了成立了Mathworks软件开发公司并将软件开发公司并将MATLAB正式推向市场。正式推向市场。2023年2月19日星期日 4 MatlabMatlab 软件在线性代数的应用 现在的现在的MATLAB新版本早已不只停留在工程计新版本早已不只停留在工程计算的功能上了,它由主包、算的功能上了,它由主包、Simulink以及功能各异以及功能各异的工具箱组成,以矩阵运算为基础,把计算、可视
4、的工具箱组成,以矩阵运算为基础,把计算、可视化、程序设计融合到了一个简单易用的交互式工作化、程序设计融合到了一个简单易用的交互式工作环境中。在这里可以实现工程计算、算法研究、符环境中。在这里可以实现工程计算、算法研究、符号运算、建模和仿真、原型开发、数据分析及可视号运算、建模和仿真、原型开发、数据分析及可视化、科学和工程绘图、应用程序设计化、科学和工程绘图、应用程序设计(包括图形用户包括图形用户界面设计界面设计)等等功能。等等功能。2023年2月19日星期日 5 MatlabMatlab 软件在线性代数的应用 正式凭借正式凭借MATLAB的这些突出的优势,它现在已的这些突出的优势,它现在已成为
5、世界上应用最广泛的工程计算软件。在美国等发成为世界上应用最广泛的工程计算软件。在美国等发达国家的大学里达国家的大学里MATLAB是一种必须掌握的基本工具,是一种必须掌握的基本工具,而在国外的研究设计单位和工业部门,更是研究和解而在国外的研究设计单位和工业部门,更是研究和解决工程计算问题的一种标准软件。在国内也有越来越决工程计算问题的一种标准软件。在国内也有越来越多的科学技术工作者参加到学习和倡导这门语言的行多的科学技术工作者参加到学习和倡导这门语言的行列中来。在大家的共同努力下,列中来。在大家的共同努力下,MATLAB正在成为计正在成为计算机应用软件中的一个热点。算机应用软件中的一个热点。20
6、23年2月19日星期日 6 MatlabMatlab 软件在线性代数的应用 值运算是值运算是Matlab最基本、最重要的功能,最基本、最重要的功能,Matlab能够成为世界上最优秀的数学软件之一,和能够成为世界上最优秀的数学软件之一,和它出色的数值运算能力是分不开的。它出色的数值运算能力是分不开的。Matlab以矩阵运算为基础,把计算、可视化、以矩阵运算为基础,把计算、可视化、程序设计融合到一个简单易用的交互式工作环境中,程序设计融合到一个简单易用的交互式工作环境中,可实现工程计算、算法研究、符号运算、建模和仿可实现工程计算、算法研究、符号运算、建模和仿真、原型开发、数据分析及可视化、科学和工
7、程绘真、原型开发、数据分析及可视化、科学和工程绘图、应用程序设计等功能图、应用程序设计等功能 二、二、Matlab 的主要功能的主要功能 2023年2月19日星期日 7 MatlabMatlab 软件在线性代数的应用 一、基本知识一、基本知识 第二章第二章 Matlab的的基本操作基本操作 1进入和退出进入和退出 Matlab 安装好安装好 Matlab后,从后,从 Matlab的程序组中执行的程序组中执行 MatlabMatlab即可进入即可进入MatlabMatlab命令窗口,或者双击命令窗口,或者双击MatlabMatlab图标,也可进入图标,也可进入。单击单击FileFile菜单中菜单
8、中ExitExit,或使用,或使用MatlabMatlab的的ExitExit命令退出命令退出。2023年2月19日星期日 8 MatlabMatlab 软件在线性代数的应用 2基本算术运算符基本算术运算符 加号:加号:+减号:减号:乘号:乘号:*除号:除号:/指数:指数:可用括号规定运算的优先级可用括号规定运算的优先级 2023年2月19日星期日 9 MatlabMatlab 软件在线性代数的应用 3基本运算基本运算 (1)Matlab(1)Matlab将矩阵加、减、乘的程序编为内部函数,将矩阵加、减、乘的程序编为内部函数,只要用只要用+,+,-,*做运算符号就包含阶数检查和执行运算的做运算
9、符号就包含阶数检查和执行运算的全过程。全过程。两相加矩阵有一个是标量时,两相加矩阵有一个是标量时,MatlabMatlab承认算式有效,承认算式有效,自动把标量扩展为同阶等元素矩阵。自动把标量扩展为同阶等元素矩阵。如:键入如:键入 X=X=-1 0 1;Y=X1 0 1;Y=X-1 1 得得 Y=Y=-2 2-1 0 1 0 (2)(2)矩阵除法矩阵除法 矩阵求逆矩阵求逆 inv(A)inv(A),如果,如果det(A)det(A)等于或很接近零,等于或很接近零,MatlabMatlab会提示出错。会提示出错。“左除”与“右除”,左乘或右乘矩阵的逆,“左除”与“右除”,左乘或右乘矩阵的逆,A
10、A 或或/A/A (3)(3)幂运算幂运算 A*A*A=A5 2023年2月19日星期日 10 MatlabMatlab 软件在线性代数的应用 1数、数组、矩阵的输入数、数组、矩阵的输入 (1)数的输入)数的输入 a=5 b=2-5i 注意:在行尾加“;”,该行结果不显示;标点符号一注意:在行尾加“;”,该行结果不显示;标点符号一定要在英文状态下输入定要在英文状态下输入!(2)数组的输入)数组的输入 b=1,3,5,7,9,11 c=1:2:11 d=linspace(1,11,6)问题:问题:若若b为在为在02(用用pi表示)之间均匀分布的表示)之间均匀分布的22个数据,个数据,c=(1.3
11、,2.5,7.6,2,3),d=(23,20,17,14,11,8,5,2),各,各用何种方法输入较简单?用何种方法输入较简单?二、基本操作二、基本操作 2023年2月19日星期日 11 MatlabMatlab 软件在线性代数的应用 (3)矩阵的输入)矩阵的输入 A=2,3,5;1,3,5;6,9,4%行之间要用分号隔开行之间要用分号隔开 A=2 3 5 1 3 5 6 9 4 m=input(请输入初始量,请输入初始量,m=);请输入初始量,请输入初始量,m=问题:输入问题:输入A(2,3),结果如何?输入,结果如何?输入A(7)又如何?又如何?注意:变量名开头必须是英文字母,变量名对字母
12、注意:变量名开头必须是英文字母,变量名对字母大小写是区分的大小写是区分的.2023年2月19日星期日 12 MatlabMatlab 软件在线性代数的应用 2矩阵的块操作矩阵的块操作 A(2,:)%取出取出A的第的第2行的所有元素行的所有元素 A(1,3,:)%取出取出A的第的第1,3行的所有元素行的所有元素 A(2:3,1:2)%取出取出A的的2,3行与行与1,2列交叉的元素列交叉的元素 A(1,3,:)=A(3,1,:)%将将A的的1行和行和3行互换行互换 问题:如何将问题:如何将A的的2,3列互换?列互换?A(2,:)=4%将将A的第的第2行的所有元素用行的所有元素用4取代取代 A(fi
13、nd(A=3)=-3%将将A中等于中等于3所有元素换为所有元素换为-3 A(2,:)=%删除删除A的第的第2行行 reshape(A,2,3)%返回以返回以A的元素重新构造的的元素重新构造的26维矩阵维矩阵 A(1:3,2:3),A(2:4,1:2);A,A(:,2)%由小矩阵构造大矩阵。由小矩阵构造大矩阵。2023年2月19日星期日 13 MatlabMatlab 软件在线性代数的应用 3矩阵的翻转操作矩阵的翻转操作 flip(抛、弹、翻转抛、弹、翻转),rotation(旋转)(旋转)flipud(A)%A进行上下翻转进行上下翻转 fliplr(A)%A进行左右翻转进行左右翻转 rot90
14、(A)%A逆时针旋转逆时针旋转90 2023年2月19日星期日 14 MatlabMatlab 软件在线性代数的应用 4.特殊矩阵的产生特殊矩阵的产生 random(随意(随意,任意),任意),randn(Normally distributed random numbers.)randperm(Random permutation.(排列)(排列)A=eye(n)%产生产生n维单位矩阵维单位矩阵 A=ones(n,m)%产生产生nm维维1矩阵矩阵 A=zeros(n,m)%产生产生nm维维0矩阵矩阵 A=rand(n,m)%产生产生nm维随机矩阵(元素在维随机矩阵(元素在 01之间)之间)r
15、andn(m,n)%产生产生mn正态分布随机矩阵正态分布随机矩阵 randperm(n)%产生产生1n之间整数的随机排列之间整数的随机排列 2023年2月19日星期日 15 MatlabMatlab 软件在线性代数的应用 问题:问题:生成一个在区间生成一个在区间10,20内均匀分布的内均匀分布的4阶随机矩阵阶随机矩阵.例例 randperm(6)ans=3 2 1 5 4 6 2023年2月19日星期日 16 MatlabMatlab 软件在线性代数的应用 5.数的运算数的运算 sqrt(square root),exp(exponent),log(logarithm)4+2 4*2 4/2%
16、4右除右除2,等于,等于2 42%4左除左除2,等于,等于0.5 43%4的的3次方次方 sqrt(4)%4的算术平方根的算术平方根,和,和40.5比较比较 exp(3)%e的的3次方,不能输成次方,不能输成e3 log(4)%4的自然对数,的自然对数,log10(4)是以是以10为为 底,底,log2(4)是以是以2为底为底 2023年2月19日星期日 17 MatlabMatlab 软件在线性代数的应用 6.矩阵的运算矩阵的运算 det(determinant,行列式行列式,决定性的,有决定作用的决定性的,有决定作用的),rank(秩秩,等级等级),inv(inverse,倒转的倒转的,反转反转的的),eig(eigenvalues,eigenvectors,本征的,本征的,固有的固有的)A%A的转置的转置 det(A)%A的行列式,的行列式,A必须是方阵必须是方阵 rank(A)%A的秩的秩 inv(A)%A的逆的逆 eig(A)%A的特征值的特征值 X,D=eig(A)%A的特征向量的特征向量X及特征值及特征值D 3*A%常数与矩阵相乘常数与矩阵相乘 A+B%A,B必须是同维矩