第6章MATLAB数学实验_第1页
第6章MATLAB数学实验_第2页
第6章MATLAB数学实验_第3页
第6章MATLAB数学实验_第4页
第6章MATLAB数学实验_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章 MATLAB数学实验没有大胆的猜测,就做不出伟大的发现。 牛顿MATLAB是Matrix Laboratory的缩写,是一个集数值计算、图形处理、符号运算、文字处理、数学建模、实时控制、动态仿真和信号处理等功能为一体的数学应用软件,而且该系统的基本数据结构是矩阵,又具有数量巨大的内部函数库和多个工具箱,使得该系统迅速普及到个领域,尤其在大学校园里,许多学生借助它来学习大学数学和计算方法等课程,并用它做数值计算和图形处理等工作。下面介绍它的基本功能,并用它做与线性代数相关的数学实验。在正确完成安装MATLAB软件之后,直接双击系统桌面上的MATLAB图标,启动MATLAB,进入MATLA

2、B默认的用户主界面,界面有3个主要的窗口:命令窗口(Commend Window),当前目录窗口(Current Directory),工作间管理窗口(Workspace)。如图6.1所示。图6.1命令窗口是和MATLAB编译器连接的主要窗口,“”为运算提示符,表示MTALAB处于准备状态,当在提示符后输入一段正确的运算式时,只需按Enter键,命令窗口中就会直接显示运算结果。如图6.2所示。图6.2数据的默认格式为五位有效数字,可用format命令改变输出格式。Help是获取帮助的命令,在它之后应该跟一个主题词。例如,help format,系统就会对format的用法提供说明,因此它对初学

3、者是非常有用的。当需要编写比较复杂的程序时,就需要用到M文件,而只需要将所有命令按顺序放到一个扩展名.m的文本文件下,每次运行只需输入该M文件的文件名即可。下面介绍MATLAB程序设计中常用的程序控制语句和命令。顺序结构是最简单的程序结构,在编写程序后,系统将按照程序的物理位置顺序执行。选择语句。在编写程序时,往往需要根据一定的条件来执行不同的语句,此时,需要使用分支语句来控制程序的进程,通常使用if-else-end结构来实现这种控制。if-else-end结构是:if 表达式 执行语句1 else 执行语句2end此时,如果表达式为真,则系统执行语句1;如果表达式为假,则系统执行语句2.例

4、如比较a和b的大小,其中a=40,b=10.程序设计:cleara=40;b=10;if aa)elsedisp(ab)end运行结果:ab分支语句。另外,MATLAB语句中还提供了switch-case-otherwise-end分支语句,其使用格式如下:switch 开关语句 case 条件语句 执行语句 ,.,执行语句 case (条件语句1,条件语句2,条件语句3,) 执行语句 ,.,执行语句.otherwise 执行语句 ,.,执行语句 end在上面的分支语句中,当某个条件语句的内容与开关语句的内容相匹配时,系统将执行其后的语句,如果所有的条件语句与与开关条件都不相符合时,系统将执行

5、otherwise后的语句。循环语句。当遇到许多有规律的重复运算时,可以方便地使用以下两种循环语句。for循环基本格式是: for i= 表达式, 执行语句,执行语句 end上述结构是对循环次数的控制。例 求1+2+ +100的值。程序设计: sum=0; for i=1:100 Sum=sum+i; end sum sum= 5050for循环可以重复使用,即可以多次嵌套。while循环的判断控制可以是逻辑判断语句,因此,它的循环次数可以是一个不定数,这样就赋予了它较for循环更广泛的用途。其使用格式如下:while 表达式 执行语句 ,.,执行语句End 常用指令。终止命令break语句一

6、般用在循环控制中,通过if使用语句。当if语句满足一定条件时,break语句将被调用,系统将在循环尚未结束时跳出当前循环。继续命令continue一般也用在循环控制中,通过if使用语句。当if语句满足一定条件时,continue语句将被调用,系统将不再执行相关的执行语句,并不会跳出当前循环。等待用户反应命令pause用于使程序暂时终止运行,等待用户按任意键后继续运行。该语句适合于在调试程序时需要查看中间结果的情况。除了在程序设计中需要经常用到上述命令外,还有一些常用命令在其他操作中也经常使用,比如clr可以清除工作窗口,type可以显示文件内容,quit可以退出MATLAB等。6.1 矩阵的输

7、入与特殊矩阵的生成6.1.1 矩阵的输入 MATLAB是以矩阵为基本变量单元的,因此矩阵的输入非常方便。输入时,矩阵的元素用方括号括起来,行内元素用逗号分隔或空格分隔,各行之间用分号分隔或直接按回车键。例 6.1 输入矩阵A=。解 在命令窗口中输入 A=1 1 2;-1 0 3;4 -5 6 A= 6.1.2 矩阵的结构操作 输入矩阵后,可以对矩阵进行的主要操作包括矩阵的扩充,矩阵元素的提取和变换,矩阵元素的部分删除等。下面对其作简单介绍。1.矩阵的扩充例如,用下述命令可以在上述矩阵A下面再加上一个行向量:A(4,:)=1 3 2A= 下述命令可以在上述矩阵A下面再加上一个列向量: A(:,4

8、)=-1 0 3 2 A= 2矩阵元素的提取和变换可以用下述命令提取上述矩阵A的第3行第1列的元素: A(3,1)ans= 4可以用下述命令提取上述矩阵A的第1行第3列的元素: A(:,1,3) ans= 可以用下述命令提取矩阵的上三角和下三角部分及对角线元素:triu(A)提取矩阵A的上三角部分;tril(A)提取矩阵A的下三角部分;diag(A)提取矩阵A的对角线元素。可以用下列命令对矩阵进行翻转和旋转:fliplr(A)矩阵A左右翻转;flipud(A)矩阵A上下翻转;rot90(A)矩阵A整体逆时针旋转90度。3矩阵元素的删除可以用下述命令删除上述矩阵A的第2行的元素:A(2,:)=

9、ans= 6.1.3 特殊矩阵的生成某些特殊矩阵可以直接调用相应的函数得到,例如:zeros(m,n)生成一个m行n列的零矩阵;ones(m,n)生成一个m行n列元素都是1的矩阵;eye(n)生成一个n阶的单位矩阵;rand(m,n)生成一个m行n列的随机矩阵;vander(V)生成以向量V为基础向量的范德蒙德矩阵;magic(n)生成一个n阶魔方矩阵;hilb(n)生成一个n阶希尔伯特矩阵;invhilb(n)求n阶的希尔伯特矩阵的逆矩阵。例 6.2 随机生成一个67的矩阵。解 rand(6,7) ans= 例 6.3 生成一个以向量(1,2,3,5)为基础向量的范德蒙德矩阵。解 vande

10、r(1;2;3;5) ans= 习 题1输入矩阵A= ,并提取矩阵A的第3列和第2行元素。2生成一个1012阶的随机矩阵,并提取该矩阵的上三角部分。3生成一个5阶单位阵、6阶全1矩阵,4阶魔方阵。4求4阶希尔伯特矩阵及其逆矩阵。5对矩阵A= 进行左右、上下和90度旋转。6.2 矩阵的运算6.2.1 矩阵的代数运算如果已经输入矩阵A和B,则可由下述命令对其进行运算:的转置;A+B加法;k*A数k乘A;A*B乘法;inv(A)A的逆阵;AxA的x次方;ABB;A/BB 。例 6.4 设A= ,B= ,求、A+B、AB、B。解 程序设计结果如下: A=1 2 -1;0 1 2;-3 6 4 A= B

11、=-1 0 1;0 2 2;3 5 1 B= ans= A+B ans= A*B ans= A2 ans= inv(A)*B ans= 6.2.2 矩阵的特征参数运算在进行科学运算时,常常要用到矩阵的特征参数,如矩阵的行列式、秩、迹、条件书数等,在MATLAB可以用下述命令轻松地进行这些运算。det(A)A的行列式;rank(A)A的秩;trace(A)A的迹;cond(A)A的条件数;size(A)输出A的行数和列数。例 6.5 求向量组,的秩。解 程序运行结果如下: A= rank(A) ans= 3故可知向量组的秩为3。例 6.6 判断向量组=,=,=,=是否线性相关?解 由,所组成的矩

12、阵A= ,只需求出A的秩或者A的行列式,即可判断其线性相关性,因此,在MATLAB命令窗口下,键入: A= 1 1 2 3;1 -1 0 1;2 1 3 5;3 1 3 4; rank(A) ans= 3即r(A)=34,故,线性相关。例 6.7 计算D=。解 程序运行结果如下: A=1 2 3;4 5 6;7 8 9; D=det(A); ans= 0即D=0。例 6.8 计算。解 程序运行结果如下: syms x y A=1+x 1 1 1;1 1+x 1 1;1 1 1+x 1;1 1 1 1+x; det(A) ans= 2*x*y2+2*x2*y+x2*y2习 题1、设A=,B=,求

13、、。2、求向量组,的秩。3、计算。4、计算。5、判断向量组:=,=,=,=,=的线性相关性。6.3 线性方程组的求解在MATLAB中,求解线性方程组的方法有很多,本实验将介绍两个命令来直接求解。rref(A)A的最简行阶梯形矩阵;linesolve(A,y,options)求解Ax=y;null(A,r)求齐次方程组Ax=0的基础解系。例 6.9 将矩阵A=化为最简行阶梯形矩阵。解 程序运行结果: A=7 1 -1 10 1;4 8 -2 4 3;12 1 -1 5; rref(A) ans= 例 6.10 求齐次方程组的基础解系及全部解。解 该方程组的矩阵表示形式为X=0。则在MATLAB命

14、令窗口下,键入: A=1 2 -1 -2;2 -1 -1 1;3 1 -2 -1; null(A,r) ans= 即两个基础解系分别为=,=。故原方程通解为(,为任意常数)。例 6.11 求解线性方程组。解 程序结果如下: B=1 3 -2 4 1 7;2 6 0 5 2 5;4 11 8 0 5 3;1 3 2 1 1 -2 rref(B) B = 1 3 -2 4 1 7 2 6 0 5 2 5 4 11 8 0 5 3 1 3 2 1 1 -2 ans = 1.0000 0 0 -9.5000 4.0000 35.5000 0 1.0000 0 4.0000 -1.0000 -11.00

15、00 0 0 1.0000 -0.7500 0 -2.2500 0 0 0 0 0 0所以原方程组等价于方程组 故方程组的通解为: ,其中, 例 6.12 求齐次线性方程组的全部解。该方程组的矩阵表达形式=则在MATLAB命令窗口下,键入:解 方法 1 y1=3*x1+4*x2+2*x3+x4=5; y2=6*x1+8*x2+5*x3+2*x4=8; y3=9*x1+12*x2+7*x3+3*x4=13; x1,x2,x3,x4=solve(y1,y2,y3,y3) x1 = x1x2 =x2x3 =-2x4 =-3*x1-4*x2+9则原方程组的解为(其中,为任意常数)。 方法 2 format rat A=3 4 2 1;6 8 5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论