




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB的线性代数运算 MATLAB语言概述 vMATLAB(Matrix Laboratory)是MathWorks公司开 发的科学与工程计算软件; v广泛应用于自动控制、数学运算、信号分析、计 算机技术、图像信号处理、财务分析、航天工业 、汽车工业、生物医学工程、语音处理和雷达工 程等行业; v国内外高校和研究部门科学研究的重要工具; vMATLAB已成为数学计算工具方面事实上的标准 。 1.1 MATLAB简介 1.1.1 MATLAB工具箱 vMATLAB由基本部分和功能各异的工具箱组成 。 v基本部分是MATLAB的核心,工具箱是扩展部 分。 v工具箱是用MATLAB的基本语句编成的各种子 程序集,用于解决某一方面的专门问题或实现 某一类的新算法。 vMATLAB有以下主要的工具箱: MATLAB主要的工具箱: v通信工具箱(Communication Toolbox) v控制系统工具箱(Control System Toolbox) v系统辨识工具箱(System Identification Toolbox) v信号处理工具箱(Signal Processing Toolbox) v神经网络工具箱(Neural Network Toolbox) v模糊逻辑控制工具箱(Fuzzy Logic Toolbox) v小波工具箱(Wavelet Toolbox) v模型预测控制工具箱(Model Predictive Control Toolbox) v图像处理工具箱(Image Processing Toolbox) v频域系统辨识工具箱(Frequency System Identification Toolbox) v优化工具箱(Optimization Toolbox) v偏微分方程工具箱(Partial Differential Equation Toolbox) v财政金融工具箱(Financial Toolbox) v统计工具箱(Statistics Toolbox) 1.1.2 MATLAB功能和特点 1 功能强大 运算功能强大 功能丰富的工具箱 文字处理功能强大 2人机界面友好,编程效率高 3强大而智能化的作图功能 4可扩展性强 5. Simulink动态仿真功能 1.2 MATLAB 环境设置 vMATLAB的操作界面是一个高度集成的工作界面, 它的通用操作界面包括八个常用的窗口。 v“Start”开始按钮。 MATLAB7.0版的界面更加方便,运行界面称 为MATLAB操作界面(MATLAB Desktop),默认 的操作界面如图所示。 图1.1 MATLAB 的默认界面 菜单 历史命令窗口 工作空间窗口/ 当前目录浏览 器 开始按钮 工具栏 命令窗口 1.2.1 菜单栏 1.2.2 工具栏 New M-File CopyCutPaste Open File Undo RedoHelp Simulink当前路径 图1.2 工具栏 GUIDE Profiler 1.2.3 通用操作界面窗口 1. 命令窗口(Command Window) 2. 历史命令窗口(Command History) 3. 当前目录浏览器窗口(Current Directory Browser) 4. 工作空间浏览器窗口(Workspace Browser) 5. 数组编辑器窗口(Array Editor) 6. M文件编辑调试器窗口(EditorDebugger) 7. 帮助导航浏览器窗口(Help Navigator Browser) 8. 程序性能剖析窗口(Profiler) 命令窗口中行编辑的常用操作键 MATLAB常用标点符号的功能 1.3 MATLAB帮助 v帮助导航浏览器窗口 v通过命令实现帮助 vPDF帮助 v其他帮助 Demos演示 通过Web查找帮助信息 1.4 MATLAB 其他管理 v程序文件 文件扩展名为.m v数据文件 文件扩展名为.mat v可执行文件 文件扩展名为.mex v图形文件 文件扩展名为.fig v模型文件 文件扩展名为.mdl v仿真文件 文件扩展名为.s 1.4.1 MATLAB用户文件格式 1.4.2 设置搜索路径 vX v在MATLAB内存中进行检查,检查X是否为工 作空间的变量或特殊变量; v检查X是否为MATLAB的内部函数(Built-in Function); v在当前目录上,检查是否有名为“X.m”或 “X.mex”的文件存在; v在MATLAB搜索路径的所有其他目录中,检查 是否有名为“X.m”或 “X.mex”的文件存在; v如果都不是,则MATLAB发出错误信息。 1. MATLAB的基本搜索过程 2. MATLAB搜索路径的扩展和修改 (1) 利用设置路径对话框修改搜索路径 在MATLAB界面选择菜单“File”“Set Path”命令。 在命令窗口运行“pathtool”命令。 (2) 利用path命令设置搜索路径 path (path, 新增目录) %在MATLAB的搜索路径的末尾添加新目 录 path(path,c: :MyDir ) 1.4.3 文件管理命令 vwhat :列出当前目录下的M、MAT、MEX文件清单 vdir:列出指定目录下的文件和子目录清单 vtype 文件名: 显示指定M文件的内容 vwhich 文件名 :指出M文件、MEX文件、工作空间变 量、内置函数或Simulink模型所在的目录 vmatlabroot :返回安装MATLAB的根目录 vdiary:把当前命令窗口中的所有内容(包括命令、计算 结果等)保存到日志文件中 vdiary (file) %使用指定文件名创建日志文件 vclc;clf:命令窗口清屏及图形窗口清屏 实验一 矩阵的基本操作 1.矩阵的建立 2. 1.1 手工输入法 矩阵的元素由方括号括起来,按矩阵行的顺序输入元素 。同一行的元素之间用逗号或空格分隔,不同行的元素之 间用分号分隔。 例1-1: a=1,2,3;4 5 6 a = 1 2 3 4 5 6 1.2 利用 MATLAB 函数建立特殊矩阵 利用MATLAB函数建立特殊矩阵,下表是由函数表 示的特殊矩阵: 例1-2: a=eye(3, 4) % 生成3*4单位矩阵 a = 1 0 0 0 0 1 0 0 0 0 1 0 例1-3:a=zeros(2) % 生成 2 阶全部元 素为0的矩阵 a= 0 0 0 0 1.3 冒号生成法 通过设定“步长”,自动生成数组(向量),格式为 :数组名=初值:步长:终值;若省略步长,则系统默 认步长为1,格式为:数组名=初值:终值。 例1-4: a=1:2:10 a = 1 3 5 7 9 说明: 1)初值是生成的第一个元素,步长是元素间隔。如果“ 终值-初值”是步长的整数倍,则生成的最后一个元素是 终值,否则小于终值。 2)步长可以取负值,这时终值不能大于初值。步长取 正数时,终值不能小于初值。 例1-5:a=10:-2:1 a = 10 8 6 4 2 例1-6:a=1.2:5 a = 1.2000 2.2000 3.2000 4.2000 1.4 线性生成法 给定生成数的个数,生成均匀数组,指令为 x=linspace(a,b,n)。a,b分别为生成数组的第一个和 最后一个元素,n是生成元素总数。 例1-7: a=linspace(9,1,5) a = 9 7 5 3 1 2. 矩阵的访问和修改 A(m,n): 提取矩阵A的第m行,第n列元素。 A(:,n): 提取第n列元素。 A(m,:): 提取第m行元素 A(m1:m2,n1:n2): 提取第m1行到第m2行和第n1列到第n2列的 所有元素(提取子块)。 A=1 2 3 4;5 6 7 8;-1 0 9 7 A = 1 2 3 4 5 6 7 8 -1 0 9 7 把A的第1行第2列对应的元素换成-9,命令和结果如下: A(1,2)=-9 A= 1 -9 3 4 5 6 7 8 1 0 9 7 实验二 矩阵的基本运算 1. 矩阵的转置 对于实矩阵用()符号求转置的结果是一样的。然而对 于含复数的矩阵,则()将同时对复数进行共轭处理。 例2-1:A=1 2 3;4 5 6 A = 1 4 2 5 3 6 2. 矩阵的行列式 可用函数det求矩阵的行列式大小。 例2-2: a=1 2 0;2 5 -1;4 10 -1; b=det(a) b = 1 3. 矩阵的四则运算 数组和矩阵的加减运算使用加号和减号,即“+”和“-”。 矩阵相乘使用“*”运算符。 如果只是将两个矩阵中相同位置的元素相乘,使用“.*”运算符。 矩阵除法有左除和右除的区别,分别使用“”和“/”运算符。 与“”和“/”运算符相对应,也有“.”和“./”运算符,分别用于将两个矩阵 中的对应元素相除。 矩阵与常数的代数运算,可以直接使用上面的各种运算符。 例2-3:请观察运算结果,体会算术运算 A=1 2;3 4;B= 3 5; 5 9; C=A+B D=A-B A*B A2 A/B=-0.50 0.50;3.50 1.50 AB=-1 -1;2 3 4.矩阵的逆、秩、迹运算 用函数inv实现矩阵的逆运算。 由函数pinv实现矩阵的伪逆运算 用函数rank求矩阵的秩。 矩阵的迹是指矩阵所有对角线元素的和 。在MATLAB中,矩阵的迹可由函数 trace计算得到。 例2-4:求矩阵 的行列式,逆,秩,迹。 A=1 2 3; 4 5 6; 2 3 5; A_det=det(A) A_det = -3 format rat % 分数形式表示结果 A_inv=inv(A) A_inv = -7/3 1/3 8/3 1/3 -2/3 -1/3 A_rank=rank(A) A_rank = 3 A_trace=trace(A) A_trace= 11 A_orth=orth(A) A_orth= -0.3276 0.4479 -0.8319 -0.7741 -0.6321 -0.0355 -0.5417 0.6323 0.5538 5.矩阵的范数 矩阵的范数运算可由函数norm来实现,具有 norm(A), norm(A,1), norm(A,2), norm(A,inf), norm(A,fro)等形式,分别代表矩阵的范数运算、1-范 数运算、7-范数运算、无穷大范数运算和F-范数运算 。 6. 矩阵的条件数 条件数的值代表矩阵“病态”程度的大小。在 MATLAB中,矩阵的条件数可分别由函数cond(A), condest(A)或rcond(A)计算得到,它们分别计算矩阵 的条件数值、1-范数矩阵条件数值和矩阵的逆条件数 值。 7.矩阵的幂和平方根 矩阵的幂运算使用运算符“”,幂运算具有类似Xp 的形式。如果p是整数,则幂通过重复求平方来计 算;如果该整数为负值,则首先计算X的逆;如果 p取其他值,则计算需要用到特征值和特征矢量, 即如果V,D=eig(X),则Xp=V*D.p/V。 用sqrtm函数求矩阵的平方根。 练习:已知 ,求 (1)A,B的秩。 (2) 2A+B, A-2B的逆 (3) A2 , B的2-范数 (4) A-1, B+2 实验三 向量组的线性相关性 在MATLAB环境下使用命令rref(A)可以求得矩阵A的行 最简型矩阵,进而可以判断矩阵A的列向量组是否线性相 关,并找出列向量组的最大无关组。 例3-1:A=1 2 1 8;1 2 3 10;2 3 1 13;1 2 2 9 A = 1 2 1 8 1 2 3 10 2 3 1 13 1 2 2 9 B=rref(A) B = 1 0 0 3 0 1 0 2 0 0 1 1 0 0 0 0 例3-2 求以下向量组的一个最大无关组,并线性表示其余向量。 解: 所以 为一个最大无关组,且 A=1 -2 1 3;0 6 3 -1;3 2 -1 3;1 1 1 1;0 4 5 6 A = 1 0 3 1 0 -2 6 2 1 4 1 3 -1 1 5 3 -1 3 1 6 rref(A) ans = 1 0 0 0 137/30 0 1 0 0 47/15 0 0 1 0 11/10 0 0 0 1 -118/15 实验四 矩阵的分解 矩阵的LU分解 矩阵的QR分解 矩阵的QZ分解 矩阵的乔累斯基分解 矩阵的奇异值分解 矩阵的Schur分解 1.矩阵的LU分解 (i)、矩阵的LU分解就是将一个矩阵表示为一个交换下三角矩阵 和一个上三角矩阵的乘积形式.线性代数中已经证明,只要方阵A 是非奇异的,LU分解总是可以进行的. (ii)、 MATLAB提供的lu函数用于对矩阵进行LU分解,其调用格 式为: L,U=lu(X):产生一个上三角阵U和一个变换形式的下三角阵 L(行交换),使之满足X=LU.注意,这里的矩阵X必须是方阵. L,U,P=lu(X):产生一个上三角阵U和一个下三角阵L以及一 个置换矩阵P,使之满足PX=LU.当然矩阵X同样必须是方阵. (iii)、实现LU分解后,线性方程组Ax=b的解x=U(Lb)或 x=U(LPb),这样可以大大提高运算速度. 例子 2.矩阵的QR分解 在MATLAB中,QR分解可由函数qr实现。常用 的调用格式如下: B,C=qr(A) 返回的矩阵C为上三角矩阵,矩阵B为 满秩矩阵。 Q,R,E = qr(A) 返回的矩阵E是置换矩阵,矩阵R是 上三角矩阵,矩阵Q是满秩矩阵。上述矩阵满足关系 A*E = Q*R。 3.矩阵的QZ分解 在MATLAB中,QZ分解可由函数qz来实现。qz 函数常用的调用格式如下: a. AA,BB,Q,Z,V = qz(A,B) 要求矩阵A,B是方阵。 产生的矩阵AA,BB是上三角矩阵,Q,Z是正交矩阵 ,矩阵V是特征矢量矩阵。其中,满足Q*A*Z = AA 与Q*B*Z = BB。 b. AA,BB,Q,Z,V = qz(A,B,flag) 对于方阵A,B的 QZ分解取决于参数flag。参数flag可取complex与 real。 4.矩阵的乔累斯基分解 设矩阵A为n阶对称正定矩阵,则A矩阵可分 解为LL,即A= LL。其中,矩阵L是上三角矩 阵。此时,这种分解就称为乔累斯基分解。在 MATLAB中,乔累斯基分解由函数chol实现。 5.矩阵的奇异值分解 在MATLAB中,矩阵的奇异值分解由函数svd来 实现,其调用格式为 b,c,d=svd(A) 6.矩阵的Schur分解 在MATLAB中,矩阵的Schur分解由Schur函数 来实现,其调用格式为 b,c=schur(A) 其中c矩阵为Schur矩阵。 实验五 线性方程组AX=B求解 1. 当A为满秩矩阵(方阵)时 在MATLAB中有两种方式计算上式:x=inv(A)*b和 x=Ab。 推荐使用第二种形式,因为与第一种相比,其求解速度更快,数 值更精确。 例5-1:求方程组 的解。 解:A=1 2 3;1 3 5;1 3 6;b=2 4 5; x1=inv(A)*b x1 = -1 0 1 或者x2=Ab x2 = -1 0 1 所以所求的方程组的解为 2. 齐次方程求解 若矩阵A不满秩时,则方程有非零解。null(A)可求得 方程组的基础解系,null(A,r)求得标准基础解系。 例5-2 求方程组 的基础解系和通解,已知矩阵 解: A=1 2 3 3;2 -3 -1 2;-2 2 0 1;1 1 2 2; rref(A) ans = 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 null(A) ans = -0.5774 -0.5774 0.5774 0.0000 null(A,r ans = -1 -1 1 0 所以原方程组的基础解系为 ,通解为 。 3. 一般情形 (1)r(A)=r(A,b)=n,方程有唯一解,x=Ab或 x=inv(A)*b. (2)r(A)=r(A,b)A=2 1 -1 1;4 2 -2 1;2 1 -1 1; b=1 2 1; B=A b; RA=rank(A);RB=rank(B); C=Ab C = 0.5000 0 0 0.0000 D=null(A,r) D = -0.5000 0.5000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- CN120198440A 基于机器视觉的注塑件缺陷检测方法及系统
- 2025年智能匹配无中介费二手商铺买卖合同示范文本
- 2025版国际货物买卖合同规范文本
- 2025版国防科技产业投资咨询顾问合同范本
- 2025版权授权协议书范本:原创游戏角色版权许可
- 2025年度企事业单位食堂膳食供应服务采购合同
- 2025版实习期间实习生社会保险缴纳劳动合同范本
- 2025年度智慧城市基础设施建设租赁推广合同
- 2025版汽车贷款贷款合同补充条款及附件
- 2025年度企业员工职业素养提升合同
- 公墓和骨灰寄存建筑设计规范
- 撸货垫付合同协议
- 2025-2030中国电力工程总承包行业市场发展分析及发展趋势与投资研究报告
- 白内障光明扶贫工程实施方案
- 方案评审表-技术方案评估
- APP融资方案模板
- 初中自我介绍课件
- 劳动教育读本中职版专题一崇尚劳动学习资料
- 《员工行为准则培训》课件
- 仓管员晋升组长述职报告
- 《付出总有收获》课件
评论
0/150
提交评论