高等代数实验

上传人:cl****1 文档编号:584147682 上传时间:2024-08-30 格式:PPT 页数:121 大小:1.64MB
返回 下载 相关 举报
高等代数实验_第1页
第1页 / 共121页
高等代数实验_第2页
第2页 / 共121页
高等代数实验_第3页
第3页 / 共121页
高等代数实验_第4页
第4页 / 共121页
高等代数实验_第5页
第5页 / 共121页
点击查看更多>>
资源描述

《高等代数实验》由会员分享,可在线阅读,更多相关《高等代数实验(121页珍藏版)》请在金锄头文库上搜索。

1、四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验高等代数实验1四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验预备实验 MATLAB使用练习2四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验 MATLAB是MATrix LABoratory的缩写,它将计算、可视化和编程功能集成在非常便于使用的环境中,是一个交互式的、以矩阵计算为基础的科学和工程计算软件。MATLAB的特点可以简要地归纳如下:3四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验编程效率高编程效率高 与Fortran、C等语言相比,它更接近我们通常进行计算时的思

2、维方法,用它编程犹如在纸上书写计算公式,编程时间和程序量大大减少。计算功能强计算功能强 它以不必指定维数的矩阵和数组作为主要数据对象,矩阵和向量计算功能特别强,库函数也很丰富,非常适用于科学和工程计算。4四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验使用简便使用简便 其语言灵活、方便,将编译、连接、执行融为一体,在同一画面上排除书写、语法等错误,加快了用户编写、修改、调试程序的速度,计算结果也用人们十分熟悉的数学符号表示出来。具有初步计算机知识的人几个小时就可以基本掌握它。易于扩充易于扩充 用户根据需要建立的文件可以与库函数一样被调用,从而提高了使用效率,扩充了计算功能,它

3、还可以与Fortran、C语言子程序混合编程。5四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验 此外,它还有很方便的绘图功能。 为了解决各种特殊的科学和工程计算问题,MATLAB系统提供了许多个工具箱,如优化工具箱、统计工具箱和符号运算工具箱等。6四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验1 概述概述1.1 1.1 数据术语数据术语数据术语数据术语1)矩阵:矩阵:由由mn个数组成的排成个数组成的排成m行行n列的一个矩形的数列的一个矩形的数表,其中表,其中00矩阵为空矩阵矩阵为空矩阵()。数表中第。数表中第i(1im)行行第第j(1jn)列的数据称为矩

4、阵元素列的数据称为矩阵元素 2 2)标量标量 :1111的矩阵,即为只含一个数的矩阵。的矩阵,即为只含一个数的矩阵。3 3)向向量量:1n1n或或n1n1的的矩矩阵阵,即即只只有有一一行行的的或或者者一一列列的的矩矩阵阵。只只有有一一行行的的矩矩阵阵称称为为行行向向量量,只只有有一一列列的的矩矩阵阵称为列向量。称为列向量。数表中第数表中第i(1in)个数据称为个数据称为向量向量元素元素。4 4)数组:数组:矩阵的延伸,一般指多维数组,其中标量、向矩阵的延伸,一般指多维数组,其中标量、向量和矩阵都是数组的特例。量和矩阵都是数组的特例。7四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代

5、数实验1.2 数据类型数据类型数据类型包括数据类型包括数值型、字符串型、元胞型、构数值型、字符串型、元胞型、构架型架型等。数值型有单精度型、双精度型和整数等。数值型有单精度型、双精度型和整数型。整数型有型。整数型有uint8,uint16,uint32uint8,uint16,uint32和和uint64uint64等无符号型和等无符号型和int8int8,int16int16,int32int32和和int64int64等等符号型整数。符号型整数。数值型数据可以用带小数点的形式和科学计数数值型数据可以用带小数点的形式和科学计数法表示,数值的表示范围是法表示,数值的表示范围是10-30910+

6、309。-20、1.25、2.88e-56(表示表示2.8810-56)、7.68e204(表示表示7.6810204) 都是合法的数据表示。都是合法的数据表示。一般在计算时一般在计算时采用双精度型,在输出时有多种数值采用双精度型,在输出时有多种数值显示格式可供选择。显示格式可供选择。8四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验数值显示格式的设置通过数值显示格式的设置通过format 命令,命令, 格式如下:格式如下:format shortformat short 默默认设置,以置,以5 5位数字形式位数字形式输出出 format longformat long 以以

7、1515位十进制数形式输出位十进制数形式输出format short eformat short e 以以5 5位十进制数加指数形式输位十进制数加指数形式输出出format long eformat long e 以以1616位十进制数加指数形式位十进制数加指数形式输出输出format short gformat short g 从从format short和和format short e 中自动选择最佳输出形式中自动选择最佳输出形式9四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验format long gformat long g 从从format long和和forma

8、t long e 中自动选择最佳输出形式中自动选择最佳输出形式format hexformat hex 以以1616位十六进制数形式输出位十六进制数形式输出format +format + 以正号、负号和零形式输出以正号、负号和零形式输出format bankformat bank 以两位小数形式输出以两位小数形式输出format ratformat rat 以近似分数形式输出以近似分数形式输出format looseformat loose 以稀疏格式(变量与执行结果之以稀疏格式(变量与执行结果之 间有空行)输出间有空行)输出 format compactformat compact 以紧凑

9、格式(变量与执行结果之以紧凑格式(变量与执行结果之 间无空行)输出间无空行)输出10四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2 变量变量2.1变量的命名变量的命名变量的命名规则为变量的命名规则为: :1 1 变变量量名名必必须须以以字字母母开开头头,变变量量名名的的组组成成可可以以是是任任意意字字母、数字或者下划线,但不能含有空格和标点符号。母、数字或者下划线,但不能含有空格和标点符号。2 2 关键字和函数名不能作为变量名。关键字和函数名不能作为变量名。3 3 变量名不能超过变量名不能超过6363个字符。个字符。4 4 变量名区分字母的大小写变量名区分字母的大小写,

10、,即大小写敏感。即大小写敏感。 大小写是否区分可以通过命令大小写是否区分可以通过命令casesencasesen on/off on/off进行进行切换(如果不区分大小写,为切换(如果不区分大小写,为casesencasesen off , off ,否则为否则为casesencasesen on on)。)。11四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2.2变量的赋值变量的赋值变量的赋值通常有变量的赋值通常有两种形式两种形式: 1 1 变量变量= =表达式表达式 2 2 表达式表达式其其中中表表达达式式是是用用运运算算符符将将有有关关运运算算量量连连接接起来的式子,

11、其结果是一个数组。起来的式子,其结果是一个数组。形形式式1 1中中,= = 代代表表的的是是赋赋值值操操作作,将将表表达达式式的的值值赋赋给给MATLABMATLAB的的变变量量;形形式式2 2中中,将将表达式的值赋给表达式的值赋给MATLABMATLAB的临时变量的临时变量ansans。12四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例例例2-12-12-12-1 在命令窗口输入下述语句,并按回车键执在命令窗口输入下述语句,并按回车键执在命令窗口输入下述语句,并按回车键执在命令窗口输入下述语句,并按回车键执行,分别给变量行,分别给变量行,分别给变量行,分别给变量a a

12、 a a、b b b b、c c c c赋值:赋值:赋值:赋值: a=1% a为标量为标量b=0 1 % b为行向量为行向量c=1 2;3 4;5 6 % c为为矩矩阵阵即即二二维维数数组组13四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2.3 特殊变量特殊变量epseps MATLAB MATLAB定义的正的极小值定义的正的极小值2.2204e-162.2204e-16RealmaxRealmax 最大的正实数最大的正实数1.7977e+3081.7977e+308RealminRealmin 最小的正实数最小的正实数2.2251e-3082.2251e-308Pi P

13、i 内建的内建的值值i, ji, j 虚数单位虚数单位i=j=-1i=j=-1InfInf NaNNaN 无法定义一个数目无法定义一个数目 NarginNargin 函数输入参数个数函数输入参数个数NargoutNargout 函数输出参数个数函数输出参数个数Flops Flops 浮点运算次数浮点运算次数14四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2.4内存变量的管理内存变量的管理1 1 内存变量的显示与删除内存变量的显示与删除1 1)whowho 用于显示在用于显示在MATLABMATLAB工作空间中已工作空间中已 经驻留的变量名清单。经驻留的变量名清单。2 2)

14、whoswhos 在给出变量名的同时,还给出它们在给出变量名的同时,还给出它们 的大小、所占字节数及数据类型等的大小、所占字节数及数据类型等 信息。信息。3 3)clearclear 删除删除MATLABMATLAB工作空间中的变量。注工作空间中的变量。注 意,特殊变量不能被删除意,特殊变量不能被删除。15四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例2-22-2 查询查询例例2-12-1中语句执行后中语句执行后工作空间中工作空间中 的变量情况。的变量情况。在命令窗口输入在命令窗口输入在命令窗口输入在命令窗口输入 whowho执行结果为:执行结果为:执行结果为:执行结果

15、为: Your variables are: Your variables are: a b c a b c在命令窗口输入在命令窗口输入在命令窗口输入在命令窗口输入 whoswhos执行结果为:执行结果为:执行结果为:执行结果为:Name Size Bytes Class a 1x1 8 double array b 1x2 16 double array c 3x2 48 double arrayGrand total is 10 elements using 72 bytes16四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2 2 工作空间浏览器工作空间浏览器工作空间浏

16、览器窗口用于工作空间浏览器窗口用于显示所有显示所有MATLAB工作空工作空间中的变量名、数据结构、类型、大小和字节数,也间中的变量名、数据结构、类型、大小和字节数,也可以对变量进行观察、编辑、提取和保存。可以对变量进行观察、编辑、提取和保存。17四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3 3 内存变量文件内存变量文件 利利用用MATMAT文文件件可可以以把把MATLABMATLAB工工作作空空间间中中的的一一些些有有用用变变量量久久地地保保留留下下来来。MATMAT文文件件的的生生成成和和调调入入由由savesave和和loadload命命令来完成令来完成1) sav

17、e1) save的格式为:的格式为:的格式为:的格式为:save save 文件名文件名文件名文件名 变量名表变量名表变量名表变量名表 -append- -append-asciiascii 功能:功能:功能:功能:把工作空间中的变量存入磁盘。其中变量把工作空间中的变量存入磁盘。其中变量把工作空间中的变量存入磁盘。其中变量把工作空间中的变量存入磁盘。其中变量名表指出需存储的变量,名表指出需存储的变量,名表指出需存储的变量,名表指出需存储的变量,appendappend为数据填加方为数据填加方为数据填加方为数据填加方式,式,式,式,asciiascii为数据形式为数据形式为数据形式为数据形式2)

18、 load2) load的格式为:的格式为:的格式为:的格式为:load load 文件名文件名文件名文件名 变量名表变量名表变量名表变量名表 - -asciiascii 功能:功能:功能:功能:磁盘上存储的磁盘上存储的磁盘上存储的磁盘上存储的matmat数据文件取回到数据文件取回到数据文件取回到数据文件取回到MATLABMATLAB工作空间中。参数含义同工作空间中。参数含义同工作空间中。参数含义同工作空间中。参数含义同savesave。18四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例2-3:2-3: 例例2-12-1中语句执行后,在命令窗口中语句执行后,在命令窗口

19、依次输入下述命令:依次输入下述命令:Save %变量变量a,b和和c保存在保存在matlab.matSave mydata1.mat Save mydata1.mat %变量变量变量变量a a,b b和和和和c c保存在保存在保存在保存在 mydata2.matmydata2.matsave mydata2.mat asave mydata2.mat a % %变量变量变量变量a a保存在保存在保存在保存在 mydata2.mat mydata2.matsave mydata3.mat a bsave mydata3.mat a b % %变量变量变量变量a a和和和和b b保存在保存在保存在

20、保存在 mydata3.matmydata3.matsave mydata4.mat a b c save mydata4.mat a b c %变量变量变量变量a a,b b和和和和c c保存在保存在保存在保存在 mydata4.matmydata4.mat19四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3 图形功能图形功能3.1 直角坐标系的二维图形直角坐标系的二维图形PlotPlot:直角坐标系的二维图形的绘制函数直角坐标系的二维图形的绘制函数三种调用格式三种调用格式: :1) 1) plot(yplot(y,s)s) 功功能能:当当y y是是向向量量时时,元元素素

21、的的序序号号作作为为x x坐坐标标,元元素素值值作作为为y y坐标,对应绘制线性直角坐标系的二维图形坐标,对应绘制线性直角坐标系的二维图形。 当当y y是矩阵时,元素的所在列号作为是矩阵时,元素的所在列号作为x x坐标,元素值作为坐标,元素值作为y y坐标,分别对应绘制线性直角坐标系的二维图形,曲坐标,分别对应绘制线性直角坐标系的二维图形,曲线条数等于输入参数矩阵的列数。线条数等于输入参数矩阵的列数。 20四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2) 2) plot(x,yplot(x,y,s)s)功功能能:当当x x是是向向量量,y y是是矩矩阵阵时时,则则绘绘制制

22、出出多多根根不不同同颜颜色色的的曲曲线线。曲曲线线条条数数等等于于y y矩矩阵阵的的另另一一维维数数,x x被作为这些曲线共同的横坐标。被作为这些曲线共同的横坐标。当当x,yx,y是是同同维维矩矩阵阵时时,则则以以x,yx,y对对应应列列元元素素为为横横、纵纵坐坐标标分分别别绘绘制制曲曲线线,曲曲线线条条数数等等于于矩矩阵阵的的列列数。数。当输入参数是实矩阵时,则按列绘制每列元素值当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩相对其下标的曲线,曲线条数等于输入参数矩阵的列数。阵的列数。当输入参数是复数矩阵时,则按列分别以元素实当输入参数是复数矩阵时,则按列分

23、别以元素实部和虚部为横、纵坐标绘制多条曲线部和虚部为横、纵坐标绘制多条曲线21四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3)3)plot(x1,y1,s1,x2,y2,s2,plot(x1,y1,s1,x2,y2,s2,xn,xn,ynyn,snsn)功功能能:绘绘制制(xi,yi,sixi,yi,si)对对应应的的二二维维图形。图形。S S是是表表示示所所绘绘图图形形的的线线形形、点点型型和和颜颜色色的的字字符符串串。函函数数调调用用格格式式中中的的S S是是线线形形、点点型型和和颜颜色色的的组组合合字字符符,默默认认值值为为b-.b-.(蓝蓝色色实线实点标记实线实点

24、标记) )。22四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验绘图绘图函数的常用的函数的常用的颜色含义颜色含义 类型类型 符号符号蓝色蓝色(默认默认) b(Blue)黄色黄色 y(Yellow)品红色品红色(紫色紫色) m(Magenta)青色青色 c(Cyan)红色红色 r(Red)绿色绿色 g(Green)白色白色 w(White)黑色黑色 k(Black)23四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验绘图函数的常用的线形含义绘图函数的常用的线形含义 类型类型 符号符号实线实线( (默认默认) ) - -点线点线 : :点划线点划线 -.-.虚线

25、虚线 - 24四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验 绘图函数的常用的绘图函数的常用的数据点形含义数据点形含义 类型类型 符号符号实点标记(默认)实点标记(默认) . .圆圈标记圆圈标记 o o叉号形叉号形 x x星号标记星号标记 * *钻石形标记钻石形标记 d d向下的三角形标记向下的三角形标记 v v向上的三角形标记向上的三角形标记 向左的三角形标记向左的三角形标记 五角星标记五角星标记 p p25四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3.2 绘制图形的辅助操作绘制图形的辅助操作1 图形标记图形标记title(txttitle(txt

26、) ) 功能功能:在图形窗口顶端的中间位置输出字符串在图形窗口顶端的中间位置输出字符串txttxt作为标题。作为标题。xlabel(txtxlabel(txt) ) 功能功能:在在x x轴下的中间位置输出字符串轴下的中间位置输出字符串txttxt作为标作为标注。注。ylabel(txtylabel(txt) ) 功能功能:在在y y轴边上的中间位置输出字符串轴边上的中间位置输出字符串txttxt作为作为标注标注。26四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验text(x,y,txttext(x,y,txt) ) 功能功能:在图形窗口的在图形窗口的(x, y)(x, y)

27、处写字符串处写字符串txttxt。坐标。坐标x x和和y y按照与所绘制图形相同的刻度给出。按照与所绘制图形相同的刻度给出。gtext(txtgtext(txt) ) 功能功能:通过使用鼠标或方向键,移动图形窗口中通过使用鼠标或方向键,移动图形窗口中的十字光标,在图形窗口中添加字符串的十字光标,在图形窗口中添加字符串txttxt。legend(str1 ,str2 ,legend(str1 ,str2 ,) ) 功能功能:在当前图上输出图例,并用说明性字符串在当前图上输出图例,并用说明性字符串str1, str2str1, str2等作为标注。等作为标注。legend offlegend of

28、f 功能功能:从当前图形中清除图例。从当前图形中清除图例。27四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2 屏幕控制屏幕控制命令命令 功能功能figure(nfigure(n) ) 创创建建和和显显示示当当前前序序号号为为n n的的图图形形窗窗口口。clfclf 清除当前图形窗口的图形。清除当前图形窗口的图形。clcclc 清除命令窗口的命令。清除命令窗口的命令。home home 移动光标到命令窗口的左上角。移动光标到命令窗口的左上角。hold hold 是否保持当前图形的切换命令。是否保持当前图形的切换命令。 hold hold onon命命令令保保持持当当前前图图

29、形形并并加加入入另另一一个个图图形形,hold hold offoff命命令令 释释放放当当前前图图形形窗窗口口(缺缺省省状状态态),isholdishold命命令令如如果果当当前前图图形形处处于于hold hold onon状状态态,则则返回返回1 1;否则,返回;否则,返回0 0。28四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验subplot(m,n,psubplot(m,n,p) ) 将将图图形形窗窗口口分分割割成成m m行行n n列列, ,并并设设置置p p所所指指定定的的子子窗窗口口为为当当前前窗窗口口。子子窗窗口口按按行行由由左左至至右右,由由上上至至下下进进

30、行行编编号号。subplotsubplot设设置置图图形形窗窗口口为为缺缺省省模模式式,即单窗口模式,等价于即单窗口模式,等价于subplot (1,1,1)subplot (1,1,1)。gridgrid是是否否画画分分格格线线的的双双向向切切换换命命令令,grid grid onon设设置置为为画画分格线,分格线,grid offgrid off为不画分格线。为不画分格线。29四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3 设定坐标设定坐标系系统axis(xminaxis(xmin xmaxxmax yminymin ymaxymax)设定坐标系统的最大和最小值。设定

31、坐标系统的最大和最小值。axis axis (autoauto)将将当当前前图图形形的的坐坐标标系系统统恢恢复复到到自自动动缺缺省省状状态态。axis axis (squaresquare)将当前图形的坐标系统设置为方形。将当前图形的坐标系统设置为方形。axis axis (equalequal)将当前图形的坐标轴设成相等。将当前图形的坐标轴设成相等。30四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验axis axis (offoff)关闭坐标系统。关闭坐标系统。axis axis (onon)显示坐标系统。显示坐标系统。boxbox坐标形式在封闭式和开启式之间切换指令坐标

32、形式在封闭式和开启式之间切换指令。box onbox on命令使坐标形式呈封闭形式命令使坐标形式呈封闭形式box offbox off命令坐标形式呈开启形式。命令坐标形式呈开启形式。31四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3.3 plotyy函数函数PlotyyPlotyy: 用不同标度在同一个坐标内绘制曲线用不同标度在同一个坐标内绘制曲线plotyyplotyy(x1,y1,x2,y2)(x1,y1,x2,y2) 分分别绘制制(x1x1,y1y1)和和(x2x2,y2y2)的的图形形。其其中中x1x1和和y1y1、 x2x2和和y2y2为为对对应应的的向向量或矩

33、阵。量或矩阵。32四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3.4 极坐标系绘图极坐标系绘图PolarPolar:极坐标系绘图函数极坐标系绘图函数polar(theta,r)polar(theta,r)在在极极坐坐标标中中绘绘图图。向向量量thetatheta的的元元素素代代表表弧弧度参数,向量度参数,向量r r代表从极点开始的长度。代表从极点开始的长度。33四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3.5 对数坐标绘图对数坐标绘图半对数和对数坐标系绘图函数半对数和对数坐标系绘图函数: semilogx, semilogy, loglog格式:格

34、式: semilogx(x,y) 功能:功能:在半对数坐标系中绘图,在半对数坐标系中绘图,x轴用以轴用以10为底的对数刻度标定。这类似于为底的对数刻度标定。这类似于plot(log10(x),y),但是对于但是对于log10(0)不能给不能给出警告信息。出警告信息。34四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验semilogy(x,y) 功能:功能:在半对数坐标系中绘图,在半对数坐标系中绘图,y轴用以轴用以10为底的对数刻度标定。这类似于为底的对数刻度标定。这类似于plot(x,log10(y),但是对于但是对于log10(0)不能给不能给出警告信息。出警告信息。log

35、log(x,y) 功能:功能:在对数坐标系中绘图。两个坐标在对数坐标系中绘图。两个坐标轴均用以轴均用以1 0为底的对数刻度标定。这类为底的对数刻度标定。这类似于似于plot (log10(x),log10(y),但是对于但是对于log10(0)不能给出警告信息不能给出警告信息35四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验4 程序设计程序设计4.1 运算符优先级运算符优先级MATLAB中各种运算符的优先级如下:中各种运算符的优先级如下:(矩阵转置矩阵转置)、(矩阵幂矩阵幂)和和.(数组转置数组转置)、.(数组幂数组幂) (逻辑非逻辑非) *(乘乘)、/(左除左除)、(右除

36、右除)和和.*(点乘点乘)、./(点左除点左除)、.(点右除点右除) +、-(加减加减): (冒号冒号) 、=、= &(逻辑与逻辑与) |(逻辑或逻辑或) &(先决与先决与) |(先决或先决或)36四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验4.2 M文件文件4.2.1 M文件概述文件概述 用用MATLABMATLAB语言编写的程序,称为语言编写的程序,称为M M文件文件。M M文件可以根据调用方式的不同分为两类:文件可以根据调用方式的不同分为两类: 命令文件和函数文件。命令文件和函数文件。两种工作方式:两种工作方式: 交互式的命令行工作方式和交互式的命令行工作方式和M

37、M文件的程序文件的程序工作方式。工作方式。37四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验4.2.2 M文件的建立文件的建立 为为建建立立新新的的M M文文件件,启启动动MATLABMATLAB文文本本编编辑辑器有器有3 3种方法:种方法: 1) 1) 菜单操作。菜单操作。 2) 2) 命令操作。命令操作。 3) 3) 命令按钮操作。命令按钮操作。38四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验4.3 4.3 分支语句分支语句 4.3.1 if 结构结构 格式格式1: if 条件条件 语句组语句组 end39四川文理学院数财系高等代数实验高等代数实验

38、高等代数实验高等代数实验格式格式2 2: if if 条件条件 语句组语句组1 1 else else 语句组语句组2 2 end end40四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验格式格式3 3: if if 条件条件1 1 语句组语句组1 1 elseifelseif 条件条件2 2 语句组语句组2 2 elseifelseif 条件条件m m 语句组语句组m m else else 语句组语句组m+1m+1 end end41四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验4.3.2 switch-case switch-case结构结构一般一

39、般switch-caseswitch-case语句格式为:语句格式为: switch 表达式表达式 case 值值1 语句组语句组1 case 值值2 语句组语句组2 case 值值m 语句组语句组m otherwise 语句组语句组m+1 end42四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验4.3.3 try-catch结构结构try-catch结构格式为格式为: trytry 语句组语句组1 1 catch catch 语句组语句组2 2 end end 43四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验4.4 循环语句循环语句4.4.1 whi

40、le循环循环 while 循环的一般形式:循环的一般形式: while 条件表达式条件表达式 语句组;语句组; end44四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验4.4.2 forfor循环循环for语句的格式为:语句的格式为:forfor循环变量循环变量= =表达式表达式1 1:表达式:表达式2 2:表达式:表达式3 3 循环体语句循环体语句endend45四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验forfor语句的更一般的格式为:语句的更一般的格式为: for for 循环变量循环变量= =矩阵表达式矩阵表达式 循环体语句循环体语句 end

41、end 执执行行时时依依次次将将矩矩阵阵的的各各列列元元素素赋赋给给循循环环变变量量,然然后后执执行行循循环环体体语语句句,直直至至各各列列元素处理完毕。元素处理完毕。46四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验实验1 矩阵及其运算47四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验1 矩阵矩阵1.1 矩阵的建立矩阵的建立1直接输入法直接输入法 最简单的建立矩阵的方法是从键盘直最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行矩阵的元素用方括号括起来,按矩阵行的顺序输

42、入各元素,同一行的各元素之的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。间用分号分隔。48四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2利用利用M文件建立矩阵文件建立矩阵 对于比较大且比较复杂的矩阵,可以对于比较大且比较复杂的矩阵,可以为它专门建立一个为它专门建立一个M文件。下面通过一文件。下面通过一个简单例子来说明如何利用个简单例子来说明如何利用M文件创建文件创建矩阵。矩阵。49四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例1-1 利用利用M文件建立文件建立MYMAT矩阵。矩阵

43、。(1) 启动有关编辑程序或启动有关编辑程序或MATLAB文本文本编辑器,并输入待建矩阵:编辑器,并输入待建矩阵: (2) 把输入的内容以纯文本方式存盘把输入的内容以纯文本方式存盘(设设文件名为文件名为mymatrix.m)。 (3) 在在MATLAB命令窗口中输入命令窗口中输入mymatrix,即运行该,即运行该M文件,就会自动文件,就会自动建立一个名为建立一个名为MYMAT的矩阵,可供以的矩阵,可供以后使用。后使用。50四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验 3. 利用冒号表达式建立一个向量利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式冒号表

44、达式可以产生一个行向量,一般格式是:是: e1:e2:e3其中其中e1为初始值,为初始值,e2为步长,为步长,e3为终止值。为终止值。在在MATLAB中,还可以用中,还可以用linspace函数产生行函数产生行向量。其调用格式为:向量。其调用格式为:linspace(a,b,n)其中其中a和和b是生成向量的第一个和最后一个元素,是生成向量的第一个和最后一个元素,n是元素总数。是元素总数。显然,显然,linspace(a,b,n)与与a:(b-a)/(n-1):b等价。等价。4建立大矩阵建立大矩阵大矩阵可由方括号中的小矩阵或向量建立起来。大矩阵可由方括号中的小矩阵或向量建立起来。51四川文理学院

45、数财系高等代数实验高等代数实验高等代数实验高等代数实验1.2 矩阵的拆分矩阵的拆分1矩阵元素矩阵元素 通过下标引用矩阵的元素,例如通过下标引用矩阵的元素,例如A(3,2)=200采用矩阵元素的序号来引用矩阵元素。矩阵元素的序采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在号就是相应元素在内存中的排列顺序。在MATLAB中,中,矩阵元素按列存储,先第一列,再第二列,依次类推。矩阵元素按列存储,先第一列,再第二列,依次类推。例如例如A=1,2,3;4,5,6;A(3)ans = 2显然,序号显然,序号(Index)与下标与下标(Subscript )是一一对应的,

46、是一一对应的,以以mn矩阵矩阵A为例,矩阵元素为例,矩阵元素A(i,j)的序号为的序号为(j-1)*m+i。其相互转换关系也可利用其相互转换关系也可利用sub2ind和和ind2sub函数求得。函数求得。52四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验 2矩阵拆分矩阵拆分 (1) 利用冒号表达式获得子矩阵利用冒号表达式获得子矩阵 A(:,j)表示取表示取A矩阵的第矩阵的第j列全部元素;列全部元素;A(i,:)表示表示A矩阵第矩阵第i行的全部元素;行的全部元素;A(i,j)表示表示取取A矩阵第矩阵第i行、第行、第j列的元素。列的元素。 A(i:i+m,:)表示取表示取A矩阵

47、第矩阵第ii+m行的全部行的全部元素;元素;A(:,k:k+m)表示取表示取A矩阵第矩阵第kk+m列的列的全部元素,全部元素,A(i:i+m,k:k+m)表示取表示取A矩阵第矩阵第ii+m行内,并在第行内,并在第kk+m列中的所有元素。列中的所有元素。此外,还可利用一般向量和此外,还可利用一般向量和end运算符来表示运算符来表示矩阵下标,从而获得子矩阵。矩阵下标,从而获得子矩阵。end表示某一维表示某一维的末尾元素下标。的末尾元素下标。53四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验(2) 利用空矩阵删除矩阵的元素利用空矩阵删除矩阵的元素 在在MATLAB中,定义中,定义

48、为空矩阵。给为空矩阵。给变量变量X赋空矩阵的语句为赋空矩阵的语句为X=。注意,。注意,X=与与clear X不同,不同,clear是将是将X从工作空间从工作空间中删除,而空矩阵则存在于工作空间中,中删除,而空矩阵则存在于工作空间中,只是维数为只是维数为0。54四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验 1.3 特殊矩阵特殊矩阵1通用的特殊矩阵通用的特殊矩阵常用的产生通用特殊矩阵的函数有:常用的产生通用特殊矩阵的函数有:zeros:产生全产生全0矩阵矩阵(零矩阵零矩阵)。ones:产生全产生全1矩阵矩阵(幺矩阵幺矩阵)。eye:产生单位矩阵。产生单位矩阵。rand:产生产

49、生01间均匀分布的随机矩阵。间均匀分布的随机矩阵。randn:产生均值为产生均值为0,方差为,方差为1的标准正的标准正态分布随机矩阵。态分布随机矩阵。55四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例1-2 分别建立分别建立33、32和与矩阵和与矩阵A同样大小的同样大小的零矩阵。零矩阵。(1) 建立一个建立一个33零矩阵。零矩阵。zeros(3) (2) 建立一个建立一个32零矩阵。零矩阵。zeros(3,2) (3) 设设A为为23矩阵,则可以用矩阵,则可以用zeros(size(A)建建立一个与矩阵立一个与矩阵A同样大小零矩阵。同样大小零矩阵。A=1 2 3;4 5

50、 6; %产生一个产生一个23阶矩阵阶矩阵Azeros(size(A) %产生一个与矩阵产生一个与矩阵A同样大小同样大小的零矩阵的零矩阵56四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例1-3 建立随机矩阵:建立随机矩阵:(1) 在区间在区间20,50内均匀分布的内均匀分布的5阶随机阶随机矩阵。矩阵。(2) 均值为均值为0.6、方差为、方差为0.1的的5阶正态分布阶正态分布随机矩阵。随机矩阵。命令如下:命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)此外,常用的函数还有此外,常用的函数还有reshape(A,m,n),它

51、在矩阵总元素保持不变的前提下,将它在矩阵总元素保持不变的前提下,将矩阵矩阵A重新排成重新排成mn的二维矩阵。的二维矩阵。57四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2用于专门学科的特殊矩阵用于专门学科的特殊矩阵 (1) 魔方矩阵魔方矩阵魔方矩阵有一个有趣的性质,其每行、每魔方矩阵有一个有趣的性质,其每行、每列及两条对角线上的元素和都相等。对于列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由阶魔方阵,其元素由1,2,3,n2共共n2个个整数组成。整数组成。MATLAB提供了求魔方矩阵提供了求魔方矩阵的函数的函数magic(n),其功能是生成一个,其功能是生成一个

52、n阶阶魔方阵。魔方阵。58四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例1-4 将将101125等等25个数填入一个个数填入一个5行行5列列的表格中,使其每行每列及对角线的和的表格中,使其每行每列及对角线的和均为均为565。M=100+magic(5)59四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验(2) 范得蒙矩阵范得蒙矩阵范得蒙范得蒙(Vandermonde)矩阵最后一列全为矩阵最后一列全为1,倒,倒数第二列为一个指定的向量,其他各列是其后数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向列与倒数第二列的点乘积。可

53、以用一个指定向量生成一个范得蒙矩阵。在量生成一个范得蒙矩阵。在MATLAB中,函数中,函数vander(V)生成以向量生成以向量V为基础向量的范得蒙矩为基础向量的范得蒙矩阵。例如,阵。例如,A=vander(1;2;3;5)即可得到上述即可得到上述范得蒙矩阵。范得蒙矩阵。60四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验(3) 伴随矩阵伴随矩阵MATLAB生成伴随矩阵的函数是生成伴随矩阵的函数是compan(p),其中,其中p是一个多项式的系数是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。向量,高次幂系数排在前,低次幂排在后。例如,为了求多项式的例如,为了求多项式

54、的x3-7x+6的伴随矩的伴随矩阵,可使用命令:阵,可使用命令:p=1,0,-7,6;compan(p)61四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2 矩阵运算矩阵运算2.1算术运算算术运算1基本算术运算基本算术运算 MATLAB的基本算术运算有:的基本算术运算有:(加加)、(减减)、*(乘乘)、/(右除右除)、(左除左除)、(乘方乘方)。注意,运算是在矩阵意义下进行的,单注意,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。个数据的算术运算只是一种特例。62四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验(1) 矩阵加减运算矩阵加减运算

55、假定有两个矩阵假定有两个矩阵A和和B,则可以由,则可以由A+B和和A-B实现矩阵的加减运算。运算规则是:实现矩阵的加减运算。运算规则是:若若A和和B矩阵的维数相同,则可以执行矩矩阵的维数相同,则可以执行矩阵的加减运算,阵的加减运算,A和和B矩阵的相应元素相矩阵的相应元素相加减。如果加减。如果A与与B的维数不相同,则的维数不相同,则MATLAB将给出错误信息,提示用户两将给出错误信息,提示用户两个矩阵的维数不匹配。个矩阵的维数不匹配。63四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验(2) 矩阵乘法矩阵乘法 假定有两个矩阵假定有两个矩阵A和和B,若,若A为为mn矩阵,矩阵,B

56、为为np矩阵,则矩阵,则C=A*B为为mp矩阵。矩阵。64四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验(3) 矩阵除法矩阵除法在在MATLAB中,有两种矩阵除法运算:中,有两种矩阵除法运算:和和/,分别表示左除和右除。如果分别表示左除和右除。如果A矩阵是非奇异方矩阵是非奇异方阵,则阵,则AB和和B/A运算可以实现。运算可以实现。AB等效于等效于A的逆左乘的逆左乘B矩阵,也就是矩阵,也就是inv(A)*B,而,而B/A等效等效于于A矩阵的逆右乘矩阵的逆右乘B矩阵,也就是矩阵,也就是B*inv(A)。对于含有标量的运算,两种除法运算的结果相对于含有标量的运算,两种除法运算的结

57、果相同,如同,如3/4和和43有相同的值,都等于有相同的值,都等于0.75。又如,。又如,设设a=10.5,25,则,则a/5=5a=2.1000 5.0000。对。对于矩阵来说,左除和右除表示两种不同的除数于矩阵来说,左除和右除表示两种不同的除数矩阵和被除数矩阵的关系。对于矩阵运算,一矩阵和被除数矩阵的关系。对于矩阵运算,一般般ABB/A。65四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验(4) 矩阵的乘方矩阵的乘方 一个矩阵的乘方运算可以表示成一个矩阵的乘方运算可以表示成Ax,要求要求A为方阵,为方阵,x为标量。为标量。2点运算点运算 在在MATLAB中,有一种特殊的运

58、算,中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有点,所以叫点运算。点运算符有.*、./、.和和.。两矩阵进行点运算是指它们的对。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参应元素进行相关运算,要求两矩阵的维参数相同。数相同。66四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2.2 关系运算关系运算 MATLAB提供了提供了6种关系运算符:种关系运算符:(小小于于)、(大于大于)、=(大大于或等于于或等于)、=(等于等于)、=(不等于不等于)。它们的含义不难理解,但要注意其书写它

59、们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。方法与数学中的不等式符号不尽相同。67四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验关系运算符的运算法则为:关系运算符的运算法则为: (1) 当两个比较量是标量时,直接比较当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式两数的大小。若关系成立,关系表达式结果为结果为1,否则为,否则为0。 (2) 当参与比较的量是两个维数相同的当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给素按标量关系运算规则逐个进行,并给出元

60、素比较结果。最终的关系运算的结出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它果是一个维数与原矩阵相同的矩阵,它的元素由的元素由0或或1组成。组成。68四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验(3) 当参与比较的一个是标量,而另一个当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它果是一个维数与原矩阵相同的矩阵,它的元素由的元素由0

61、或或1组成。组成。69四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例1-5 产生产生5阶随机方阵阶随机方阵A,其元素为,其元素为10,90区间的随机整数,然后判断区间的随机整数,然后判断A的的元素是否能被元素是否能被3整除。整除。 (1) 生成生成5阶随机方阵阶随机方阵A。A=fix(90-10+1)*rand(5)+10) (2) 判断判断A的元素是否可以被的元素是否可以被3整除。整除。 P=rem(A,3)=0其中,其中,rem(A,3)是矩阵是矩阵A的每个元素除以的每个元素除以3的余数矩阵。此时,的余数矩阵。此时,0被扩展为与被扩展为与A同维同维数的零矩阵,数的零

62、矩阵,P是进行等于是进行等于(=)比较的结比较的结果矩阵。果矩阵。70四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3 矩阵分析矩阵分析3.1 对角阵与三角阵对角阵与三角阵1对角阵对角阵只有对角线上有非只有对角线上有非0元素的矩阵称为对角元素的矩阵称为对角矩阵,对角线上的元素相等的对角矩阵矩阵,对角线上的元素相等的对角矩阵称为数量矩阵,对角线上的元素都为称为数量矩阵,对角线上的元素都为1的的对角矩阵称为单位矩阵。对角矩阵称为单位矩阵。71四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验 (1) 提取矩阵的对角线元素提取矩阵的对角线元素设设A为为mn矩阵,矩

63、阵,diag(A)函数用于提取矩阵函数用于提取矩阵A主主对角线元素,产生一个具有对角线元素,产生一个具有min(m,n)个元素的个元素的列向量。列向量。diag(A)函数还有一种形式函数还有一种形式diag(A,k),其功能是,其功能是提取第提取第k条对角线的元素。条对角线的元素。(2) 构造对角矩阵构造对角矩阵设设V为具有为具有m个元素的向量,个元素的向量,diag(V)将产生一个将产生一个mm对角矩阵,其主对角线元素即为向量对角矩阵,其主对角线元素即为向量V的的元素。元素。diag(V)函数也有另一种形式函数也有另一种形式diag(V,k),其功能,其功能是产生一个是产生一个nn(n=m+

64、)对角阵,其第对角阵,其第k条对角线条对角线的元素即为向量的元素即为向量V的元素。的元素。72四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例1-6 先建立先建立55矩阵矩阵A,然后将,然后将A的第一的第一行元素乘以行元素乘以1,第二行乘以,第二行乘以2,第五,第五行乘以行乘以5。A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;.11,18,25,2,19;D=diag(1:5);D*A %用用D左乘左乘A,对,对A的每行乘的每行乘以一个指定常数以一个指定常数73四川文理学院数财系高等代数实验高等代数实验高等代数实

65、验高等代数实验2三角阵三角阵三角阵又进一步分为上三角阵和下三角三角阵又进一步分为上三角阵和下三角阵,所谓上三角阵,即矩阵的对角线以阵,所谓上三角阵,即矩阵的对角线以下的元素全为下的元素全为0的一种矩阵,而下三角阵的一种矩阵,而下三角阵则是对角线以上的元素全为则是对角线以上的元素全为0的一种矩阵。的一种矩阵。74四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验 (1) 上三角矩阵上三角矩阵求矩阵求矩阵A的上三角阵的的上三角阵的MATLAB函数是函数是triu(A)。triu(A)函数也有另一种形式函数也有另一种形式triu(A,k),其功能,其功能是求矩阵是求矩阵A的第的第k条

66、对角线以上的元素。例如,条对角线以上的元素。例如,提取矩阵提取矩阵A的第的第2条对角线以上的元素,形成新条对角线以上的元素,形成新的矩阵的矩阵B。(2) 下三角矩阵下三角矩阵在在MATLAB中,提取矩阵中,提取矩阵A的下三角矩阵的函的下三角矩阵的函数是数是tril(A)和和tril(A,k),其用法与提取上三角矩,其用法与提取上三角矩阵的函数阵的函数triu(A)和和triu(A,k)完全相同。完全相同。75四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3.2 矩阵的转置与旋转矩阵的转置与旋转1矩阵的转置矩阵的转置转置运算符是单撇号转置运算符是单撇号()。2矩阵的旋转矩阵的

67、旋转利用函数利用函数rot90(A,k)将矩阵将矩阵A旋转旋转90的的k倍,当倍,当k为为1时可省略。时可省略。76四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验 3矩阵的左右翻转矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列和最后一列调换,第二列和倒数第二列调换,列调换,依次类推。,依次类推。MATLAB对矩对矩阵阵A实施左右翻转的函数是实施左右翻转的函数是fliplr(A)。4矩阵的上下翻转矩阵的上下翻转MATLAB对矩阵对矩阵A实施上下翻转的函数实施上下翻转的函数是是flipud(A)。77四川文

68、理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验 3.3 矩阵的逆与伪逆矩阵的逆与伪逆1矩阵的逆矩阵的逆对于一个方阵对于一个方阵A,如果存在一个与其同阶的方,如果存在一个与其同阶的方阵阵B,使得:,使得:AB=BA=I (I为单位矩阵为单位矩阵)则称则称B为为A的逆矩阵,当然,的逆矩阵,当然,A也是也是B的逆矩阵。的逆矩阵。求一个矩阵的逆是一件非常烦琐的工作,容易求一个矩阵的逆是一件非常烦琐的工作,容易出错,但在出错,但在MATLAB中,求一个矩阵的逆非常中,求一个矩阵的逆非常容易。求方阵容易。求方阵A的逆矩阵可调用函数的逆矩阵可调用函数inv(A)。例例1-7 用求逆矩阵的方法解

69、线性方程组。用求逆矩阵的方法解线性方程组。Ax=b其解为:其解为:x=A-1b78四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2矩阵的伪逆矩阵的伪逆如果矩阵如果矩阵A不是一个方阵,或者不是一个方阵,或者A是一个是一个非满秩的方阵时,矩阵非满秩的方阵时,矩阵A没有逆矩阵,但没有逆矩阵,但可以找到一个与可以找到一个与A的转置矩阵的转置矩阵A同型的矩同型的矩阵阵B,使得:,使得:ABA=ABAB=B此时称矩阵此时称矩阵B为矩阵为矩阵A的伪逆,也称为广的伪逆,也称为广义逆矩阵。在义逆矩阵。在MATLAB中,求一个矩阵中,求一个矩阵伪逆的函数是伪逆的函数是pinv(A)。79四川文

70、理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3.4 方阵的行列式方阵的行列式把一个方阵看作一个行列式,并对其按把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵行列式的规则求值,这个值就称为矩阵所对应的行列式的值。在所对应的行列式的值。在MATLAB中,中,求方阵求方阵A所对应的行列式的值的函数是所对应的行列式的值的函数是det(A)。80四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3.5 矩阵的秩与迹矩阵的秩与迹1矩阵的秩矩阵的秩矩阵线性无关的行数与列数称为矩阵的矩阵线性无关的行数与列数称为矩阵的秩。在秩。在MATLAB中,求矩阵秩的函

71、数是中,求矩阵秩的函数是rank(A)。2矩阵的迹矩阵的迹矩阵的迹等于矩阵的对角线元素之和,矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在也等于矩阵的特征值之和。在MATLAB中,求矩阵的迹的函数是中,求矩阵的迹的函数是trace(A)。81四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3.6 向量和矩阵的范数向量和矩阵的范数矩阵或向量的范数用来度量矩阵或向量矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。范数有多种方法在某种意义下的长度。范数有多种方法定义,其定义不同,范数值也就不同。定义,其定义不同,范数值也就不同。82四川文理学院数财系高等代数实验

72、高等代数实验高等代数实验高等代数实验1向量的向量的3种常用范数及其计算函数种常用范数及其计算函数在在MATLAB中,求向量范数的函数为:中,求向量范数的函数为:(1) norm(V)或或norm(V,2):计算向量:计算向量V的的2范范数。数。(2) norm(V,1):计算向量:计算向量V的的1范数。范数。(3) norm(V,inf):计算向量:计算向量V的的范数。范数。2矩阵的范数及其计算函数矩阵的范数及其计算函数MATLAB提供了求提供了求3种矩阵范数的函数,其函种矩阵范数的函数,其函数调用格式与求向量的范数的函数完全相同。数调用格式与求向量的范数的函数完全相同。83四川文理学院数财系

73、高等代数实验高等代数实验高等代数实验高等代数实验3.7 矩阵的条件数矩阵的条件数在在MATLAB中,计算矩阵中,计算矩阵A的的3种条件数种条件数的函数是:的函数是:(1) cond(A,1) 计算计算A的的1范数下的条范数下的条件数。件数。(2) cond(A)或或cond(A,2) 计算计算A的的2范范数数下的条件数。数数下的条件数。(3) cond(A,inf) 计算计算A的的 范数下的范数下的条件数。条件数。84四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3.8 矩阵的特征值与特征向量矩阵的特征值与特征向量在在MATLAB中,计算矩阵中,计算矩阵A的特征值和特的特征

74、值和特征向量的函数是征向量的函数是eig(A),常用的调用格式,常用的调用格式有有3种:种:(1) E=eig(A):求矩阵:求矩阵A的全部特征值,的全部特征值,构成向量构成向量E。(2) V,D=eig(A):求矩阵:求矩阵A的全部特征的全部特征值,构成对角阵值,构成对角阵D,并求,并求A的特征向量构的特征向量构成成V的列向量。的列向量。85四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验 (3) V,D=eig(A,nobalance):与第:与第2种格式类似,但第种格式类似,但第2种格式中先对种格式中先对A作相作相似变换后求矩阵似变换后求矩阵A的特征值和特征向量,的特征

75、值和特征向量,而格式而格式3直接求矩阵直接求矩阵A的特征值和特征向的特征值和特征向量。量。86四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验实验2 多项式87四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验1 多项式的表示多项式的表示MATLABMATLAB中多项式的表示方法中多项式的表示方法 :例如:行向量例如:行向量 p=1 -12 0 25 116对应的多对应的多项式为:项式为:88四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2 多项式的算术运算1 加减运算加减运算 89四川文理学院数财系高等代数实验高等代数实验高等代数实验高等

76、代数实验90四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2 2 2 2 乘法运算乘法运算乘法运算乘法运算 MATLABMATLAB支持多项式乘法,函数格式为:支持多项式乘法,函数格式为:函数函数conv(P1,P2) conv(P1,P2) 求多项式求多项式P1P1和和P2P2的乘积。的乘积。这里,这里,P1P1,P2P2是两个多项式系数向量。是两个多项式系数向量。例例 2-22-2 计算计算c=conv(1 2 2,1 5 4)c=conv(1 2 2,1 5 4)执行结果如下:执行结果如下:c = c = 1 7 16 18 81 7 16 18 8由执行结果可知由执

77、行结果可知: :91四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3 除法运算除法运算Q,r=deconv(P1,P2) Q,r=deconv(P1,P2) 对对多多项项式式P1P1和和P2P2作作除除法法运运算算。其其中中Q Q返返回回多多项式项式P1P1除以除以P2P2的商式,的商式,r r返回返回P1P1除以除以P2P2的余式。的余式。注意注意deconvdeconv是是convconv的逆函数,即有的逆函数,即有P1=conv(P2,Q)+rP1=conv(P2,Q)+r。 92四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例2-3 2-3 计

78、算计算Q=deconv(1 8 0 0 -10,2 -1 3)Q=deconv(1 8 0 0 -10,2 -1 3)Q =Q = 0.5000 4.2500 1.3750 0.5000 4.2500 1.3750Q,r=deconv(1 8 0 0 -10,2 -1 3)Q,r=deconv(1 8 0 0 -10,2 -1 3)执行结果如下:执行结果如下:Q =Q = 0.5000 4.2500 1.3750 0.5000 4.2500 1.3750r =r = 0 0 0 0 0 0 -11.3750 -11.3750 - -14.125014.1250由执行结果可知商是由执行结果可知商

79、是: :余式是余式是: :93四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验3 多项式求根多项式求根 x=roots(P)x=roots(P)其其中中P P为为多多项项式式的的系系数数向向量量,求求得得的的根根赋赋给给向向量量x x,即即x(1),x(2),x(n)x(1),x(2),x(n)分分别别代代表表多多项项式式的的n n个根。个根。给给出出一一个个多多项项式式的的根根,可可以以构构造造相相应应的的多多项项式式。若若已已知知多多项项式式的的全全部部根根,则则可可以以用用polypoly函数建立起多项式,其调用格式为:函数建立起多项式,其调用格式为: P=poly(x

80、)P=poly(x)x x为具有为具有n n个元素的向量,个元素的向量,poly(x)poly(x)为以为以x x为其根为其根的多项式,且将该多项式的系数赋给向量的多项式,且将该多项式的系数赋给向量P P。 94四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例2-42-4 求多项式的求多项式的 根根A=1,8,0,0,-10;x=roots(A)A=1,8,0,0,-10;x=roots(A)执行结果如下:执行结果如下:x =x =-8.0194 -8.0194 1.0344 1.0344 -0.5075 + 0.9736i -0.5075 + 0.9736i -0.50

81、75 - 0.9736i -0.5075 - 0.9736i由结果可以看出,方程的根为两个实根和一对共轭由结果可以看出,方程的根为两个实根和一对共轭复根复根 95四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例2 2-5-5 求方程求方程 的根。的根。 r=1 -7 2 40; p=roots(r);r=1 -7 2 40; p=roots(r);执行结果如下:执行结果如下:p =p =5.00005.0000 4.0000 4.0000 -2.0000 -2.0000由结果可以看出,方程的根均为实根由结果可以看出,方程的根均为实根5.0005.000,4.00004.0

82、000和和-2.0000-2.0000。96四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例 2 2- -6 6已知已知 (1) (1) 计算计算 的全部根。的全部根。(2) (2) 由方程由方程 的根构造一个多项式的根构造一个多项式并与并与 进行行对比。比。 P=3,0,4,-5,-7.2,5;P=3,0,4,-5,-7.2,5;X=roots(P) X=roots(P) % %求方程求方程f(x)=0f(x)=0的根的根G=poly(X) G=poly(X) % %求多项式求多项式G(x)G(x)97四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验执

83、行结果为:执行结果为:X = -0.3046 + 1.6217i -0.3046 - 1.6217i -1.0066 1.0190 0.5967 G =1.0000 0.0000 1.3333 -1.6667 -2.4000 1.6667注意:构造的多项式的首项系数为注意:构造的多项式的首项系数为1 1。 98四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验4 多项式估值多项式估值1 代数多项式求值代数多项式求值 Y=Y=polyval(P,xpolyval(P,x) )求求代代数数多多项项式式的的值值。若若x x为为一一常常数数,则则求求多多项项式式P P在该点的值,在该点

84、的值, Y Y = = P(1)x P(1)x N N + + P(2) P(2) x x (N-1) (N-1) + + . . + P(N) x + P(N+1)+ P(N) x + P(N+1)若若x x为向量或矩阵,则对向量或矩阵中的每个元为向量或矩阵,则对向量或矩阵中的每个元素求多项式素求多项式P P的值,返回值为与自变量同型的的值,返回值为与自变量同型的向量或矩阵。向量或矩阵。 99四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例2 2- -7 7 已知已知 分别计算分别计算 和和 时时 的值。的值。P=1 8 0 0 -10P=1 8 0 0 -10;x=1

85、.2x=1.2;Y=Y=polyval(P,xpolyval(P,x) )执行结果如下:执行结果如下:Y = Y = 5.8976 5.8976y=2 3 4;5 4 1;Y=y=2 3 4;5 4 1;Y=polyval(P,ypolyval(P,y) )执行结果如下:执行结果如下:Y = Y = 70 287 758 70 287 758 1615 758 -1 1615 758 -1 100四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2 矩阵多项式求值矩阵多项式求值polyvalmpolyvalm函数用来求矩阵多项式的值,要函数用来求矩阵多项式的值,要求以方阵求以方

86、阵x x为自变量求多项式的值。为自变量求多项式的值。 101四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例2 2- -8 8 当当x x取取 时时求求 的值。的值。p=1 -5 0 8;p=1 -5 0 8;a=2 3 5 ;5 8 1;7 6 9;a=2 3 5 ;5 8 1;7 6 9;polyvalm(p,a)polyvalm(p,a)执行结果:执行结果:ans =ans = 552 690 562 552 690 562 548 686 538 548 686 538 1148 1422 1154 1148 1422 1154102四川文理学院数财系高等代数实验

87、高等代数实验高等代数实验高等代数实验polyval(p,a)polyval(p,a)执行结果:执行结果:ans =ans = -4 -10 8 -4 -10 8 8 200 4 8 200 4 106 44 332 106 44 332103四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例2 2- -9 9 当当x x=8=8时求时求( (x x-1)(-1)(x x-2) (-2) (x x-3)(-3)(x x-4)-4) 的值。的值。 p=poly(1 2 3 4)p=poly(1 2 3 4), polyvalm(p,8)polyvalm(p,8)执行结果如下:执

88、行结果如下:p = p = 1 -10 35 -50 24 1 -10 35 -50 24ansans = = 840840104四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验实验3 线性方程组的解法105四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验直接解法直接解法1利用左除运算符的直接解法利用左除运算符的直接解法对于线性方程组对于线性方程组Ax=b,可以利用左除运算,可以利用左除运算符符“”求解:求解: x=Ab106四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例-1 用直接解法求解下列线性方程组。用直接解法求解下列线性方程组

89、。命令如下:命令如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;x=Ab107四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验2利用矩阵的分解求解线性方程组利用矩阵的分解求解线性方程组矩阵分解是指根据一定的原理用某种算法矩阵分解是指根据一定的原理用某种算法将一个矩阵分解成若干个矩阵的乘积。将一个矩阵分解成若干个矩阵的乘积。常见的矩阵分解有常见的矩阵分解有LU分解、分解、QR分解、分解、Cholesky分解,以及分解,以及Schur分解、分解、Hessenberg分解、奇异分解等。分解、奇异分解等。108四川文理学院数

90、财系高等代数实验高等代数实验高等代数实验高等代数实验(1) LU分解分解矩阵的矩阵的LU分解就是将一个矩阵表示为一个交换下三角矩分解就是将一个矩阵表示为一个交换下三角矩阵和一个上三角矩阵的乘积形式。线性代数中已经证阵和一个上三角矩阵的乘积形式。线性代数中已经证明,只要方阵明,只要方阵A是非奇异的,是非奇异的,LU分解总是可以进行的。分解总是可以进行的。MATLAB提供的提供的lu函数用于对矩阵进行函数用于对矩阵进行LU分解,其调用分解,其调用格式为:格式为:L,U=lu(X):产生一个上三角阵:产生一个上三角阵U和一个变换形式的下和一个变换形式的下三角阵三角阵L(行交换行交换),使之满足,使之

91、满足X=LU。注意,这里的矩。注意,这里的矩阵阵X必须是方阵。必须是方阵。L,U,P=lu(X):产生一个上三角阵:产生一个上三角阵U和一个下三角阵和一个下三角阵L以以及一个置换矩阵及一个置换矩阵P,使之满足,使之满足PX=LU。当然矩阵。当然矩阵X同样同样必须是方阵。必须是方阵。实现实现LU分解后,线性方程组分解后,线性方程组Ax=b的解的解x=U(Lb)或或x=U(LPb),这样可以大大提高运算速度。,这样可以大大提高运算速度。109四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例-2 用用LU分解求解例分解求解例7-1中的线性方程组。中的线性方程组。命令如下:命令如

92、下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;L,U=lu(A);x=U(Lb)或采用或采用LU分解的第分解的第2种格式,命令如下:种格式,命令如下:L,U ,P=lu(A);x=U(LP*b)110四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验(2) QR分解分解对矩阵对矩阵X进行进行QR分解,就是把分解,就是把X分解为一个正交分解为一个正交矩阵矩阵Q和一个上三角矩阵和一个上三角矩阵R的乘积形式。的乘积形式。QR分分解只能对方阵进行。解只能对方阵进行。MATLAB的函数的函数qr可用于可用于对矩阵进行对矩阵进行Q

93、R分解,其调用格式为:分解,其调用格式为:Q,R=qr(X):产生一个一个正交矩阵:产生一个一个正交矩阵Q和一个上和一个上三角矩阵三角矩阵R,使之满足,使之满足X=QR。Q,R,E=qr(X):产生一个一个正交矩阵:产生一个一个正交矩阵Q、一个、一个上三角矩阵上三角矩阵R以及一个置换矩阵以及一个置换矩阵E,使之满足,使之满足XE=QR。实现实现QR分解后,线性方程组分解后,线性方程组Ax=b的解的解x=R(Qb)或或x=E(R(Qb)。111四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例-3 用用QR分解求解例分解求解例7-1中的线性方程组。中的线性方程组。命令如下:命

94、令如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;Q,R=qr(A);x=R(Qb)或采用或采用QR分解的第分解的第2种格式,命令如下:种格式,命令如下:Q,R,E=qr(A);x=E*(R(Qb)112四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验(3) Cholesky分解分解如果矩阵如果矩阵X是对称正定的,则是对称正定的,则Cholesky分解将矩阵分解将矩阵X分解分解成一个下三角矩阵和上三角矩阵的乘积。设上三角矩阵成一个下三角矩阵和上三角矩阵的乘积。设上三角矩阵为为R,则下三角矩阵为其转置,即,则下三角矩阵

95、为其转置,即X=RR。MATLAB函数函数chol(X)用于对矩阵用于对矩阵X进行进行Cholesky分解,其调用格分解,其调用格式为:式为:R=chol(X):产生一个上三角阵:产生一个上三角阵R,使,使RR=X。若。若X为非对为非对称正定,则输出一个出错信息。称正定,则输出一个出错信息。R,p=chol(X):这个命令格式将不输出出错信息。当:这个命令格式将不输出出错信息。当X为对称正定的,则为对称正定的,则p=0,R与上述格式得到的结果相同;与上述格式得到的结果相同;否则否则p为一个正整数。如果为一个正整数。如果X为满秩矩阵,则为满秩矩阵,则R为一个阶为一个阶数为数为q=p-1的上三角阵

96、,且满足的上三角阵,且满足RR=X(1:q,1:q)。实现实现Cholesky分解后,线性方程组分解后,线性方程组Ax=b变成变成RRx=b,所,所以以x=R(Rb)。113四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例-4 用用Cholesky分解求解例分解求解例7-1中的线性方程中的线性方程组。组。命令如下:命令如下:A=2,1,-5,1;1,-5,0,7;0,2,1,-1;1,6,-1,-4;b=13,-9,6,0;R=chol(A)? Error using = cholMatrix must be positive definite命令执行时,出现错误信息,说

97、明命令执行时,出现错误信息,说明A为非正定矩为非正定矩阵。阵。114四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验迭代解法迭代解法迭代解法非常适合求解大型系数矩阵的方程组。在数值迭代解法非常适合求解大型系数矩阵的方程组。在数值分析中,迭代解法主要包括分析中,迭代解法主要包括 Jacobi迭代法、迭代法、Gauss-Serdel迭代法、超松弛迭代法和两步迭代法。迭代法、超松弛迭代法和两步迭代法。1Jacobi迭代法迭代法对于线性方程组对于线性方程组Ax=b,如果,如果A为非奇异方阵,即为非奇异方阵,即aii0(i=1,2,n),则可将,则可将A分解为分解为A=D-L-U,其中

98、,其中D为为对角阵,其元素为对角阵,其元素为A的对角元素,的对角元素,L与与U为为A的下三角的下三角阵和上三角阵,于是阵和上三角阵,于是Ax=b化为:化为:x=D-1(L+U)x+D-1b与之对应的迭代公式为:与之对应的迭代公式为:x(k+1)=D-1(L+U)x(k)+D-1b这就是这就是Jacobi迭代公式。如果序列迭代公式。如果序列x(k+1)收敛于收敛于x,则,则x必是方程必是方程Ax=b的解。的解。115四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验Jacobi迭代法的迭代法的MATLAB函数文件函数文件Jacobi.m如下:如下:function y,n=jac

99、obi(A,b,x0,eps)if nargin=3 eps=1.0e-6;elseif nargin=eps x0=y; y=B*x0+f; n=n+1;end116四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例-5 用用Jacobi迭代法求解下列线性方程迭代法求解下列线性方程组。设迭代初值为组。设迭代初值为0,迭代精度为,迭代精度为10-6。在命令中调用函数文件在命令中调用函数文件Jacobi.m,命令如,命令如下:下:A=10,-1,0;-1,10,-2;0,-2,10;b=9,7,6;x,n=jacobi(A,b,0,0,0,1.0e-6)117四川文理学院数财

100、系高等代数实验高等代数实验高等代数实验高等代数实验2Gauss-Serdel迭代法迭代法在在Jacobi迭代过程中,计算时,已经得到,迭代过程中,计算时,已经得到,不必再用,即原来的迭代公式不必再用,即原来的迭代公式Dx(k+1)=(L+U)x(k)+b可以改进为可以改进为Dx(k+1)=Lx(k+1)+Ux(k)+b,于是得到:,于是得到:x(k+1)=(D-L)-1Ux(k)+(D-L)-1b该式即为该式即为Gauss-Serdel迭代公式。和迭代公式。和Jacobi迭代相比,迭代相比,Gauss-Serdel迭代用新分量代迭代用新分量代替旧分量,精度会高些。替旧分量,精度会高些。118四

101、川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验Gauss-Serdel迭代法的迭代法的MATLAB函数文件函数文件gauseidel.m如下:如下:function y,n=gauseidel(A,b,x0,eps)if nargin=3 eps=1.0e-6;elseif nargin=eps x0=y; y=G*x0+f; n=n+1;end119四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例-6 用用Gauss-Serdel迭代法求解下列线迭代法求解下列线性方程组。设迭代初值为性方程组。设迭代初值为0,迭代精度为,迭代精度为10-6。在命令中调用函数文件在命令中调用函数文件gauseidel.m,命令,命令如下:如下:A=10,-1,0;-1,10,-2;0,-2,10;b=9,7,6;x,n=gauseidel(A,b,0,0,0,1.0e-6)120四川文理学院数财系高等代数实验高等代数实验高等代数实验高等代数实验例例-7 分别用分别用Jacobi迭代和迭代和Gauss-Serdel迭代法求解下列线性方程组,看是否收迭代法求解下列线性方程组,看是否收敛。敛。命令如下:命令如下:a=1,2,-2;1,1,1;2,2,1;b=9;7;6;x,n=jacobi(a,b,0;0;0)x,n=gauseidel(a,b,0;0;0)121

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号