数学实验 课件 第1、2章 MATLAB简介、MATLAB数值运算_第1页
数学实验 课件 第1、2章 MATLAB简介、MATLAB数值运算_第2页
数学实验 课件 第1、2章 MATLAB简介、MATLAB数值运算_第3页
数学实验 课件 第1、2章 MATLAB简介、MATLAB数值运算_第4页
数学实验 课件 第1、2章 MATLAB简介、MATLAB数值运算_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

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

文档简介

1.1MATLAB特点从2006年以来,MATLAB在每年的3月和9月推出当年的a版本和b版本.MATLAB具有如下特点和功能:(1)交互式命令环境MATLAB包含一个命令行窗口,在命令行窗口输入命令后执行,可以直接观察到执行结果.(2)数值运算功能MATLAB以矩阵作为数据操作的基本单位,但无需预先指定矩阵维数.MATLAB语句书写简单,不经事先声明即可调用.表达式的书写与数学和工程中常用的形式十分相似,故用MATLAB来计算问题要比用仅支持标量的非交互式的编程语言(如C、FORTRAN等语言)简洁得多.(3)符号运算功能MATLAB和著名的符号运算语言MAPLE相结合,具有强大的符号运算功能,能进行代数式和微积分运算等.(4)绘图功能Matlab提供丰富的绘图命令,具有出色的图形处理能力,很方便实现数据的可视化.(5)编程功能具有友好的工作平台编程环境,程序不必经过编译就可以直接运行,而且能够及时报告出现的错误并进行出错原因分析;简单易用的程序语言,汇集了当前最新的数学算法库,使用预定义函数避免其他语言通常需要许多语句才能实现的功能;MATLAB本身就像一个解释系统,用户可以方便地看到函数的源程序,也可以方便地开发自己的程序.MATLAB可以方便地和FORTRAN、C等语言进行接口,还和Maple有很好的接口.(6)丰富的工具箱

“工具箱”是MATLAB对一系列处理特定问题的函数的统称,分为通用型的工具箱和专业领域的工具箱;包括符号数学工具箱、统计学工具箱、全局优化工具箱、信号处理工具箱、图像处理工具箱、金融工具箱等.这些工具箱延伸到科学研究和工程应用的各个领域,为各行各业提供深度支持.澡身浴德修业及时1.2MATLAB窗口启动MATLAB

MATLABR2020a安装完成之后,如果在桌面上没有生成快捷方式,用户可以到MATLAB的安装目录MATLAB\R2020a\bin下找到matlab.exe文件,双击该文件即可启动MATLAB.MATLAB启动后就进入了集成开发环境,主窗口如图1-1所示.

MATLAB的集成开发环境由以下窗口组成:

(1)当前文件夹窗口;

(2)命令行窗口;

(3)工作区窗口;

(4)命令历史记录窗口.图1-1MATLAB集成开发环境(1)当前文件夹窗口MATLAB加载任何文件、执行任何命令都是从当前目录下开始的,MATLAB的当前路径是指所有文件的保存和读取都是在这个默认路径下进行.(2)

命令行窗口

MATLAB的输入命令和输出结果的窗口,在这里输入的命令会立即执行并输出结果.可用UP键盘将以前执行的命令调出.

MATLAB命令窗口以“>>”符号为提示符,用于在提示符后输入命令后按Enter键,该命令就会立即得到执行.如果没有错误,执行完毕后MATLAB会回到提示符,如果有需要显示的内容,会在命令窗口直接显示出来.如果出现错误或警告,MATLAB会在命令窗口中显示错误或警告信息.

(3)工作区窗口MATLAB命令窗口或M脚本文件执行产生的变量都会保存在工作空间中.通过工作空间,用户可以方便地实现监视内存的目的.工作空间首先按字母顺序排列所有变量,列出其数据类型、最大值和最小值.用户可以双击查看、编辑变量的值,也可以新建、导入、复制、保存和删除变量.MATLAB工作空间窗口默认位置在主窗口的右上方可以在MALTAB命令窗口运行clear命令,清除工作空间中的所有变量,或使用clearvar1,var2的形式清除部分变量.(4)命令历史记录窗口命令历史记录窗口一般位于MATLAB集成开发环境的右下角,记录了用户运行过的历史命令.如果用户需要重新执行某一条命令,只需双击该命令即可.也可以选中命令并复制下来,作为其他程序块的一部分.这一人性化的设置省去了完全重新输入的繁琐操作.在命令窗口,用户也可以通过上下箭头寻找历史命令.甚至,如果用户能确定该命令开头的一个或若干个字符,可以输入这些字符再按向上箭头进行查找,效率极高.当然,如果命令比较多,这样做依然不够方便,此时就可以查找命令历史窗口中的记录了.澡身浴德修业及时1.3常用菜单命令1.3.1.设置搜索路径

图1-2设置搜索路径对话框在MATLAB主窗口中,依次选择“主页”|“设置路径”选项,就可以打开“设置路径”对话框,如图1-2所示.这里的列表框中所列出的目录就是MATLAB的所有搜索路径.如果只想把某一目录下的文件包含在搜索范围内而忽略其子目录,则单击对话框中的“添加文件夹”按钮,否则单击“添加并包含子文件夹”按钮.

图1.2中其他按钮的作用:移至顶端:将选中的目录移动到搜索路径的顶端;上移:将选中的目录在搜索路径中向上移动一位;删除:将选中的目录在搜索路径中删除;下移:将选中的目录在搜索路径中向下移动一位;移至底端:将选中的目录移动到搜索路径的底部;还原:恢复上次改变路径前的路径;默认:恢复到最原始的MATLAB的默认路径.1.3.2.偏好设置图1-3预设项在MATLAB主窗口中,依次选择“主页”|“预设”选项,就可以打开“预设项”对话框,如图1-3所示.可以选择“字体”|“自定义”选项设置命令行窗口字体大小.在MATLAB主窗口中,依次选择“主页”

|“预设”选项,就可以打开“预设项”对话框,如图1-4所示.可以选择“常规”|“桌面语言”选项设置桌面和错误消息所用的语言.

图1-4设置桌面和错误消息所用的语言1.3.3.窗口布局图1-5布局窗口在MATLAB中选择“布局”菜单,可以在菜单命令中找到工作区、命令历史记录等命令,如图1-5所示.如图1.5所示,命令前的打勾表示该窗口在主窗口中显示,取消该箭头,即可在MATLAB主窗口中去掉对应的窗口.澡身浴德修业及时1.4MATLAB基础知识1.基本符号指令行“>>”是“指令输入提示符”,它是自动生成的,表示MATLAB处于准备就绪状态.如在提示符后输入一条命令或一段程序后按Eenter键,MATLAB将给出相应的结果,并将结果保存在工作区窗口中,然后再次显示一个“>>”,为下一段程序的输入做准备,见图1-1.MATLAB要求在英文状态下输入括号、标点符号和命令等.如果输入错误或者未正确调用函数等,都会在命令行窗口给出红色警告,用户可以根据给出的提示进行修改.下面介绍命令行窗口中出现的常见错误:(1)输入的括号为中文格式

>>sin()

sin()

错误:文本字符无效.请检查不受支持的符号、不可见的字符或非ASCII字符的粘贴.(2)函数未输入参数

>>sin()

错误使用sin

输入参数的数目不足.(3)未定义变量

>>sin(x)

函数或变量'x'无法识别.(4)MATLAB自带函数名未小写

>>Sin(pi/2)

函数或变量'Sin'无法识别.(5)正确格式

>>sin(pi/2)

ans=

12.

特殊符号名称符号说明分号;不显示计算结果命令的结尾标志续行符…用于长表达式的续行百分号%注释符,在它后面的文字、命令等不被执行冒号:生成一维数值数组单引号'矩阵转置单引号对''字符串标记符表1-1特殊符号表例1.1续行符举例.>>x=1-2+3-4+5...%百分号是注释符,可以输入中文,不影响命令运行

x=1-2+3-4+5...↑

错误:运算符的使用无效.>>x=1-2+3-4+5...%续行符英文状态输入,并且要和5空一格

-6+7-8

x=-43.常用命令表1-2常用命令命令含义命令含义clf清除图形窗口help命令行窗口中帮助函数clc清除命令窗口显示内容edit打开M文件编辑器clear清除工作区中的变量type显示文件内容who列出工作区中的变量demo浏览MATLAB软件基本功能whos列出工作区中的变量及大小和类型funtool打开可视化函数图形器

例1.2给变量a赋值1,然后清除赋值.

>>a=1

a=

1

>>clear

>>a

函数或变量'a'无法识别.4.数值与变量(1)数值MATLAB关于实数的表达方式与其他程序语言没有什么区别.但MATLAB有其特别之处:MATLAB的所有运算是定义在复数域上的,而其他程序语言的计算是定义在实数域的.下面列出MATLAB若干常用的数值表达方式:3,-99,7/3,0.001,9.456,+4.5e33%实数表述示例i*0.13e-2,3+5i,4-7j,-5/3+i*6/7,0.11-1j*0.79%复数表述示例值得指出:在以上表述中,i和j是MATLAB默认的虚单元;虚单元i和j与前后数字或算符之间一定不要有空格,以免误读.MATLAB的输出格式可由format命令控制,但要注意的是format命令只是影响在屏幕上的显示,而MATLAB的数据存储和运算总是以双精度进行的.表1-3format命令命令说明formatshort短固定十进制小数点格式,小数点后包含4位数.如3.1416formatlong长固定十进制小数点格式,double

值的小数点后包含15位数,single

值的小数点后包含7位数.如3.141592653589793formatshortE短科学记数法,小数点后包含4位数.如3.1416e+00formatlongE长科学记数法,double值的小数点后包含15位数,single值的小数点后包含7位数.如3.141592653589793e+00formatshortG短固定十进制小数点格式或科学记数法(取更紧凑的一个),总共5位.如3.1416formatlongG长固定十进制小数点格式或科学记数法(取更紧凑的一个),对于

double

值,总共15位;对于

single

值,总共7位.如3.14159265358979formathex二进制双精度数字的十六进制表示形式.如400921fb54442d18formatbank货币格式,小数点后包含2位数.如1.41formatrat小整数的比率.如1393/985例1.3

当数组中的一些值数字少,

而指数大时,使用shortG格式.

shortG格式在短固定十进制小数点格式和短科学记数法中选取最紧凑的显示格式.>>x=[2556.31156255.526759876899999];

>>formatshort

>>x

x=

1.0e+09*

0.00000.00000.00009.8769

>>formatshortG

>>x

x=

2556.312255.539.8769e+09(2)变量变量是任何程序设计语言的基本要素之一,它是指其数值在数据处理的过程中可能会发生变化的一些数据量名称.MATLAB中的变量不需要事先定义,在遇到新的变量名时,MATLAB会自动建立该变量并分配存储空间.在赋值过程中,如果变量已经存在,MATLAB会用新值代替旧值,并以新的变量类型代替旧的变量类型.对变量赋值可采用赋值语句.变量=值或表达式;变量的命名应遵循以下原则:①变量名区分大小写,例如abc_12和ABC_12表示不同的变量名;②变量名必须是以字母开头,可包含字母、数字和下划线,最多可含63个字符;③变量名中不得包含空格、标点、运算符;④变量名应尽量不同于MATLAB自用的变量名(如eps,pi等)、函数命令(如sin,eig等).(3)预定义变量MATLAB中提供了一些用户不能清除的固定变量,应尽可能不对表1-4中所列的预定义变量重新命名.表1-4MATLAB的预定义变量预定义变量含义预定义变量含义ans在没有定义变量时系统默认变量名i或j虚数单位epseps=2.22*10-16NaN或nan不定值,由Inf/Inf或0/0产生pi圆周率πInf或inf无穷大MATLAB的运算符分为算数运算符、关系运算符和逻辑运算符.5.

运算符

(1)算术运算符算术运算符是构成运算的最基本操作命令,根据作用对象不同,算术运算分为矩阵运算和数组运算.矩阵运算按线性代数的规则进行运算,数组运算则是对数组元素逐个进行运算.表1-5算术运算符运算符功能运算符功能+数的加法、同维矩阵相加+同维数组相加-数的减法、同维矩阵相减-同维数组相减*数的乘法、可乘矩阵相乘.*同维数组相乘\矩阵左除,A\B表示AX=B的解X.\同维数组左除,A.\B表示B的每个元素除以A的对应元素/矩阵右除,A/B表示XB=A的解X./同维数组右除,A./B表示A的每个元素除以B的对应元素^方阵的幂.^数组的幂,表示数组的每个元素的幂(2)关系和逻辑运算符表1-6关系与逻辑运算表关系运算符用于比较数、字符串、矩阵间的大小或不等关系,其返回值为逻辑0或1.逻辑运算主要用于逻辑表达式及进行逻辑运算,参与运算的逻辑量以0表示“假”,以任意非0数表示“真”.运算符功能运算符功能==等于&逻辑与~=不等于|逻辑或<

小于~逻辑非>

大于xor逻辑异或<=小于等于&&短逻辑与,当第一个操作数为假时,直接返回假>=大于等于||短逻辑或,当第一个操作数为真时,直接返回真例1.4逻辑运算.

>>a=20;b=1;

>>x=(b~=0)&&(a/b>18.5)

x=

logical

1

>>b=0;

>>x=(b~=0)&&(a/b>18.5)

x=

logical

0(3)运算符的优先级MATLAB进行运算时,不同的运算符有不同的优先级,按运算符的优先级从高到低进行运算,相同优先级的运算符,则按从左到右的顺序进行.各种运算符由高到低的运算优先级为:算术运算符、关系运算符、逻辑运算符.在逻辑运算符中,由高到低的级别为:~、&、|、xor.

圆括号可以改变运算的优先级顺序,使用多重圆括号时,优先级从外到内依次升高.澡身浴德修业及时1.5帮助系统1.联机帮助系统MATLAB的帮助系统非常完善,这与其他科学计算软件相比是一个突出的特点,要熟练掌握MATLAB,就必须熟练掌握MATLAB帮助系统的应用.在MATLAB主窗口中,依次选择“主页”|“帮助”选项下拉菜单前3项中的任何一项,将打开MATLAB联机帮助系统窗口,如图1-6所示.图1-6MATLAB联机帮助系统窗口为了使用户更快捷地获得帮助,可在MATLAB命令窗口中输入help命令.如想要获得关于help命令的帮助,只需在命令窗口输入helphelp并按Enter键:

>>helphelphelp-命令行窗口中函数的帮助此MATLAB函数显示name指定的功能的帮助文本,例如函数、方法、类、工具箱或变量.一些帮助文本用大写字符显示函数名称,以使它们与其他文本区分开来.键入这些函数名称时,请使用小写字符.对于大小写混合显示的函数名称(例如javaObject),请按所示键入名称.helpnamehelp另请参阅doc,lookfor,more,what,which,whos,help的文档

如果输入dochelp命令,则可以打开MATLAB联机帮助系统.对于函数来说,一般dochelp与helphelp得到的内容是一致的,dochelp得到的联机帮助系统实例更丰富一些.MATLAB中还有许多其他的常用帮助命令:who:内存变量列表;whos:内存变量详细信息;what:目录中的文件列表;which:确定文件位置;exist:变量检验函数.

2.联机演示系统除了在使用时查询帮助,对MATLAB初学者来说,最好的学习方法是查看它的联机演示系统.在MATLAB主窗口中,依次选择“主页”|“帮助”|“示例”选项,或者直接在MATLAB联机帮助窗口中选中“MATLABExamples”选项,或者直接在命令行窗口中输入demos,将进入MATLAB帮助系统的主演示页面,如图1-7所示.图1-7MATLAB帮助系统主演示页面左边是演示选项超链接,单击某个选项超链接即可进入具体的演示界面,在右边显示如图1-8所示.图1-8具体演示界面单击页面上的“打开实时脚本”按钮,运行该实例可以得到如图1-9所示的运行结果.图1-9运行结果2.1向量及其运算

2.1.1向量的创建

MATLAB中向量可以由以下方法创建:

(1)元素输入法

在命令行窗口中直接输入,向量元素用“[]”括起来,元素之间用空格、逗号或分号分隔.用空格和逗号分隔生成行向量,用分号分隔生成列向量.例2.1单个标量的输入.

>>a=3%输入数值a

a=

3

>>whos%whos命令可以查看工作区中所存储的变量信息

NameSizeBytesClassAttributes

a1x18double(2)冒号法

冒号表达式的基本形式为x=a:step:b,表示创建一个从a开始,

增量为step,不超过b的向量.若增量为1,表达式可以简写为x=a:b.(3)线性等分向量法

linspace(a,b)

生成包含a和b

之间的100个等间距点的行向量.②linspace(a,b,n)

生成包含n

个点的行向量.这些点的间距为

(b-a)/(n-1).(4)对数等分向量法①logspace(a,b)

生成一个由在

10^a

10^b(10的N次幂)之间的50个对数间距点组成的行向量

y.②logspace(a,b,n)

在10a

10b之间生成

n个点.例2.2生成向量举例.

>>x1=[13579]%元素输入法

x1=

13579

>>x2=1:2:10%冒号生成法

x2=

13579>>x3=5:-2:1%冒号生成法x3=531>>x4=linspace(3,-2,6)%线性等分向量法x4=3210-1-2>>x5=logspace(0,5,6)%对数等分向量x5=1101001000100001000002.1.2向量元素的引用①

x(n)

表示向量中的第n个元素②

x(n1:n2)

表示向量中的第n1至n2个元素例2.3向量元素的引用、修改和扩展.

>>x=1:2:5

x=

135>>x(2)=6%修改第2个元素为6x=165>>x(5)=7%增加第5个分量,第4个分量没有赋值,自动设为0x=16507>>x([1,end])ans=

15注:MATLAB中对下标的标识是从1开始的,就是和数学中使用的说法是一致的.这和其他一些编程语言中从0开始标识是不同的.2.1.3向量的运算

(1)加减与数加减

向量的加减法要求运算的向量有相同的维数,而向量的数加减法运算则是先数字扩展成与向量同维的且每个元素都等于该数字的向量,再进行加减运算.

>>a=1:3

a=

123>>b=2:2:7b=246>>a+b%向量a与b都是3维向量,可以做加法ans=369>>a+3%向量与3相加,向量的每个元素加3ans=456(2)数乘

向量的数乘运算是将每个元素都乘以该数.例2.4向量的运算

>>x=linspace(1,10,3)

ans=

1.00005.500010.0000

>>x*2

ans=

21120(3)点积、叉积及混合积

向量的点积

C=dot(A,B)返回向量A和B的数量点积.A和B必须同维.当A和B都为列向量时,它等同于A'*B

向量叉积

C=cross(A,B)返回向量A和B的叉积向量.如果A和B为向量,要求A和B必须为3个元素的向量.例2.5向量的点积和叉积运算.

>>A=[4-21];

>>B=[1-13];

>>C=dot(A,B)%向量A和B的点积

C=

9

>>D=cross(A,B)%向量A和B的叉积

D=

-5-11-2澡身浴德修业及时2.2矩阵及其运算

在数学上,定义由m×n个数

排成的

m行n列的数表称为m行n列矩阵.

若m=n,则该矩阵为

n

阶方阵.2.2.1矩阵的创建

(1)简单矩阵的创建

MATLAB中矩阵可以采用逐一输入元素的方法创建.输入矩阵时要用“[]”括起来,同行元素之间由空格或“,”分隔,行与行之间用“;”或回车符分隔,矩阵元素可以是表达式.例2.6矩阵的创建.>>a=[123;4,5,6;7,89]

a=

123

456

789>>b=[sin(pi/3),cos(pi/4);log(9),sqrt(6)]b=

0.86600.7071

2.19722.4495(2)特殊矩阵的创建

①空阵:在MATLAB中定义“[]”为空阵;

②全零矩阵:

zeros(n)创建n阶的全零阵;

zeros(m,n)或zeros([m,n])创建m×n的全零阵;

>>zeros(3)

ans=

000

000

000③单位矩阵:eye(n)创建n阶的单位阵;eye(m,n)创建m×n的单位阵;

>>eye(3)

ans=

100

010

001④全一矩阵:ones(n)创建n阶的全一阵;ones(m,n)创建mn的全一阵;>>ones(2,3)ans=

111

111⑤

随机矩阵:rand(n)在区间(0,1)内创建n阶均匀分布的随机矩阵;rand(m,n)在区间(0,1)内创建mn均匀分布的随机矩阵;rand在区间(0,1)内创建一个随机数量;randn(n)创建n阶的正态分布N(0,1)的随机阵;

>>rand(3)

ans=

0.42180.95950.8491

0.91570.65570.9340

0.79220.03570.6787⑥伴随矩阵:compan(p)

创建系数向量是p的多项式的伴随矩阵;⑦对角矩阵diag(v,k)

将向量v的元素放置在第k条对角线上.k=0表示主对角线,k>0位于主对角线上方,k<0位于主对角线下方.

>>diag([123])

ans=

100

020

003例2.7构造三对角矩阵>>A=diag([1234])+diag([234],1)+diag([543],-1)A=1200523004340034⑧

Hilbert矩阵

hilb(n)创建n阶的Hilbert矩阵;⑨魔方矩阵magic(n)创建n阶魔方矩阵

>>magic(3)

ans=

816

357

492⑩

稀疏矩阵

sparse(A)

通过挤出任何零元素将满矩阵转换为稀疏格式.如果矩阵包含许多零,将矩阵转换为稀疏存储空间可以节省内存.2.2.2矩阵的运算1矩阵的基本运算(1)常数与矩阵的运算

常数与矩阵运算即是常数与矩阵各元素之间进行运算.

k+A常数k加上矩阵A的每个元素

k-A常数k减去矩阵A的每个元素

k*A常数k乘以矩阵A的每个元素

A/k矩阵A的每个元素除以常数k(2)矩阵的加减法

数学上,设

和都是m×n矩阵,

要求矩阵A和B是同型矩阵,即A的行数和B的行数相等,A的列数与B的列数相等.

在MATLAB中用A+B、A-B计算矩阵的和差,这与数学上的矩阵加减法相同.

(3)矩阵的乘法

数学上,设

是m×s矩阵,

是s×n矩阵,则

是m×n矩阵,其中

要求矩阵A的列数等于B的行数.

在MATLAB中用A*B计算矩阵的乘积,也要求矩阵A的列数等于B的行数,这与数学上的矩阵乘法相同.

A.*B计算同型矩阵A和B对应元素的乘积.(4)矩阵的除和点除运算

矩阵的除和点除运算是MATLAB特有的,运算符为“/”、“\”、“./”、“.\”.A\BA左除B,求线性方程组AX=B的解X.

若A为非奇异方阵,则X=inv(A)*B;否则将使用最小二乘法求XA/BB右除A,求线性方程组XB=A的解X.

若B为非奇异方阵,则X=A*inv(B);否则将使用最小二乘法求XA.\BA的每个元素左除B的对应元素,要求A和B同型A./BB的每个元素右除A的对应元素,要求A和B同型(5)矩阵的幂和点幂运算

数学上,设

是n阶方阵,

表示k个A相乘,要求矩阵A是方阵.

在MATLAB中用A^k计算矩阵的k次幂,也要求矩阵A是方阵,这与数学上的矩阵求幂运算相同.但是,点幂运算是MATLAB特有的,A.^k计算A中的每个元素的k次幂.

例2.8矩阵运算.

>>A=magic(2)

A=

13

42

>>B=ones(2,3)

B=

111

111>>A+B%矩阵A和B不是同型矩阵,不能求和矩阵维度必须一致.%出错提示>>A+2ans=35>>A.^2%A的点幂运算ans=191642.矩阵的函数运算表2-1矩阵的函数运算表函数形式函数功能函数形式函数功能eig(A)求方阵A的特征值A'求矩阵A的转置rank(A)求矩阵A的秩det(A)求方阵A的行列式trace(A)求方阵A的对角元素和

rref(A)求矩阵A的行最简形inv(A)求方阵A的逆矩阵null(A)求Ax=0的基础解系lu(A)LU矩阵分解orth(A)求矩阵A的正交基(1)特征值函数

矩阵的特征值可由函数eig计算得出,可以给出矩阵的特征值和特征向量.

①e=eig(A)

返回方阵A的特征值;

[V,D]=eig(A)

返回特征值的对角矩阵D和矩阵V,V的列是对应的右特征向量,使得A*V=V*D.

>>A=magic(3)

A=

816

357

492>>[V,D]=eig(A)V=-0.5774-0.8131-0.3416-0.57740.4714-0.4714-0.57740.34160.8131D=15.0000000

4.8990

00

0

-4.8990(2)迹函数

b=trace(A)

计算矩阵

A

的对角线元素之和.

>>A=[1-52;-379;4-16];

>>b=trace(A)

b=

14(3)LU分解[L,U]=lu(A)将满矩阵或稀疏矩阵A分解为一个上三角矩阵U和一个经过置换的下三角矩阵L,使得A=L*U.

>>A=[10-70;-326;5-15]

A=

10-70

-326

5-15

>>[L,U]=lu(A)

L=

1.000000

-0.3000-0.04001.0000

0.50001.00000

U=

10.0000-7.0000002.50005.0000006.2000

以上介绍的函数形式在实际运算中是远远不够的,表2-2介绍了一些其他基本函数.函数名功能函数名功能sin正弦函数exp指数函数asin反正弦函数log自然对数函数cos余弦函数log10以10为底的对数函数acos反余弦函数log2以2为底的对数函数tan正切函数sqrt平方根函数atan反正切函数abs模函数cot余切函数angle相角函数acot反余切函数conj复共轭函数sec正割函数imag复矩阵虚部函数asec反正割函数real复矩阵实部函数csc余割函数mod(带符号)求余函数acsc反余割函数rem无符号求余函数round四舍五入函数sign符号函数表2-2基本函数表例2.9计算

处的函数值.

>>clear

>>x=

[0,pi/6,pi/3,pi/2,pi,5*pi/4,3*pi/2,2*pi];

>>y=sin(x)

y=

00.50000.86601.00000.0000-0.7071-1.0000

-0.0000

例2.10计算

>>exp(2)

ans=

7.3891

>>log(10)

ans=

2.3026

例2.11计算23对5取模.

>>b=mod(23,5)

b=

3

3.矩阵元素的特殊运算

矩阵中的元素与向量中的元素一样,可以进行抽取引用、编辑修改等操作.

(1)矩阵元素的提取

A(i,j)表示A中第i行,第j列的元素

A(i:j,m:n)表示由第i行到第j行和第m列到第n列交叉位置上的元素组成的子矩阵

A(i,:)表示第i行

A(:,j)表示第j列

A(:,:)表示整个A矩阵

A(:)表示将矩阵A中的每列合并成一个长的列向量

(2)矩阵元素的删除

通过将行或列指定为空矩阵[],即可从矩阵中删除行和列.

例2.12矩阵的提取和删除

>>A=magic(3)

A=

816

357

492

>>A([13],[23])%提取A的第1,3行,第2,3列所在元素

ans=

16

92>>A(2,:)=[]%删掉第2行A=816492(3)矩阵的变维

实现矩阵的变维有二种方法:即用“:”和函数reshape.

B=reshape(A,M,N)将矩阵X变成M*N维矩阵

例2.13矩阵的特殊运算.

>>a=[1:12]

a=

123456789101112

>>b=reshape(a,2,6)%将矩阵a重排成2行6列的矩阵

b=

1357911

24681012>>c=zeros(3,4)c=000000000000>>c(:)=a(:)c=147102581136912(4)矩阵的抽取

①x=diag(A,k)抽取矩阵A的第k条对角线的元素向量.k=0表示主对角线,k>0位于主对角线上方,k<0位于主对角线下方.

②L=tril(A,k)

返回位于A的第k个对角线上以及该对角线下方的元素.

③U=triu(A,k)

返回位于A的第k条对角线上以及该对角线上方的元素.

例2.14生成对角矩阵.

>>C=[123]

C=

123

>>V=diag(C)

V=

100

020

003>>V1=diag(V)V1=123>>V2=diag(C,2)V2=0010000020000030000000000>>V3=diag(C,-1)V3=0000100002000030

例2.15提取矩阵的上三角和下三角部分.

>>A=ones(4)

A=

1111

1111

1111

1111

>>C=triu(A,1)

C=

0111

0011

0001

0000>>D=tril(A,-1)D=0000100011001110(5)矩阵的扩展

对矩阵的扩展有2种方法:(1)利用对矩阵标识块的赋值命令.

A(m1:m2,n1:n2)=a,生成大矩阵.其中(m2-m1+1)必须等于a的行维数,(n2-n1+1)必须等于a的列维数.生成的(m2*n2)维的矩阵A,除赋值子阵和已存在的元素外,其余元素都默认为0.

例2.16构造大矩阵.

>>a=[123;456;789]

a=

123

456

789

>>a(3:5,4:6)=eye(3)

a=

123000

456000

789100

000010

0000012)利用小矩阵的组合来生成大矩阵>>v=[12620]v=

12620

>>a2=[-v(2:4);eye(2),zeros(

温馨提示

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

评论

0/150

提交评论