通过matlab完成线性代数的运算
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 欢迎您来到
《线性代数》实验室!
在这里,抽象的数学已经成为一门生动 的“实验科学”,从实际问题出发,借助 计算机,你可以亲自设计、亲自动手,去 体验解决问题的过程,从实验中去学习、 探索和发现数学规律。
线性代数实验课
南通职业大学基础课部 2000年10月
课程目录
•实验一 •实验二
•实验三 •实验四 •实验五
例7.输入:
while 1 n=input(ˊEnter n,negative quies.ˊ); if n<=0 break,end while n>1 if rem(n,2)==0 n=n/2 else n=3*n+1 end end end.
10.求助提示
格式: Help
%可得到HELP文件列表和磁盘上 的各种M文件 Help facility % 给出指定的项的帮助信息 格式: demo % 给出一个表演程序的菜单
5、变量的存储
用clear命令可从工作空间中清除现存的变量。 工作空间中的变量可以用save命令存储到磁盘文件中 去。键入命令save<文件名>,将工作空间中全部变量 存到<文件名>.mat文件中去,若省略<文件名>则存 入文件matlab.mat中;命令save<文件名><变量名集> 将<变量名集>指出的变量存入文件<文件名>.mat中 。 用命令laod可将变量从磁盘文件读入MATLAB的工作 空间,其用法为load<文件名>,它将<文件名>指出的 磁盘文件中的数据依次读入名称与<文件名>相同的工 作空间中的变量中去。若省略<文件名>则matlab.mat从 中读入所有数据。
主要运算有
A'表示A的转置矩阵。 A+B表示矩阵A与B的和; A-B表示矩阵A与B的差。 (3)矩阵乘法: A*B表示矩阵A与B的乘积。当其中一个变量是标量时, K*B=B*K表示标量与矩阵的乘法。 (4) 矩阵除法: 分左除“\”和右除“/”;X=A\B表示AX=B的解;X= A/B表示XA=B的解。 特别地当B为列向量时,X=A\B是线性方程组AX=B的解。如果A是非 奇异矩阵,则X=A\B=A-1B。 (5) 矩阵乘方: A^P,当P为正整数时,表示P个A的连乘积。 3、向量运算符 (1) “.*”:表示矩阵A与B对应元素相乘所得的矩阵 (2) “./”和“.\”:表示向量对应元素相除。“./”其中表示A的元素是被除 数 (3) “.^”:表示求A元素以B对应元素为指数的值 (1) 转置: (2) 加与减:
五.M文件
1.””选项 “M-file”即可建立M文件。也可选定Edit菜单建立M文 件,选定“Save”选项即可保存文件。删除M文件使用 格式:Delete 文件名 2. M文件的编辑与执行 选定MATLAB命令窗口中的“Edit”菜单可利用键盘 编辑键对M文件进行全屏幕编辑。M文件以ASCⅡ编码 形式存储,在命令窗口中直接键入文件名,就可执行M 文件。
也可以用软件提供的语言编写程序完成,这种程序设计语言简单且容易掌握。 当然,我们也应认识到计算机只是纸和笔的延伸,计算机是数学探索的工具,计 算机提供对抽象概念的直观感受。数学实验课不是计算机程序课,数学思维是目 的,计算机的使用只是手段。
第二节
数学实验的内容
在教学内容的选择上,将线性代数实验室作为线性代数的辅助课程, 教学内容互补,不重复线性代数课程讲述的基本内容,而是让学生了解 几种数学软件的基本使用方法,对线性代数课程所讲述内容通过数学实 验去完成。 主要介绍利用MATLAB软件完成线性代数运算的方法,包括求行列式
学提供了一个科学的现代化的环境,把计算机引入到数学学习中,使用计算机进
行数学运算,就能提高数学学习的效率。我们将这种用计算机借助于数学软件代 替纸和笔以及人的部分脑力劳动进行数学学习的手段称作数学实验。 本实验课我们所选用的软件是MATLAB。用于数学实验的MATLAB软件有其独
特的功能,简单的问题只要按规则输入表达式就可以直接得到结果,复杂的问题
一. 进入MATLAB
在Window98环境下,双击“开始”按钮的程序里的选项(如果已经在 Window98的桌面上建立了快捷方式,则双击MATLAB图标),即可进入 MATLAB系统。这时,屏幕上会显示一个启动画面,片刻之后,出现一个 工作屏幕(命令窗口)。
二. MATLAB命令窗口简介
命令窗口中,最上面显示“MATLAB Command Window” 字样的一栏为标题栏,标题栏的右边依次为窗口最小 化按钮、窗口缩放按钮和关闭窗口按钮。标题栏下面的菜单栏包含 “File(文件)”、“Edit(编辑)”、“Window(窗口)”、“Help (帮助)”四项。菜单栏下面的工具栏显示了九个工具按钮,各按钮相 当于菜单栏中各选项命令,熟练使用工具按钮可使工作更快捷、更方便 (详见第五章MATLAB的命令窗口)。 在命令窗口中,除标题栏、菜单栏、工具栏以外的窗口,用于输入 和显示计算结果,称为命令编辑区。 在启动MATLAB、命令编辑区显示帮助信息后,将显示符号“|”,符 号“|”表示MATLAB已准备好,正等待用户输入命令,这时,就可以在提 示符“|”后面键入命令,按下回车键后,MATLAB就会解释执行所输入的 命令,并在命令后面给出计算结果。如果在输入命令后再以分号结束, 则不会显示结果。
第一章
进入线性代数实验室 —准备实验 矩阵运算
线性方程组 特征值和特征向量 MATLAB的命令窗口
第二章
第三章 第四章 第五章
•实验一
第一章 进入线性代数实验室 —准备实验
第一节
数学教改的一个重要内容。
数学实验的方法
与数学教学内容相结合,进行数学实验,对现行的教学方法进行改革,是当前 数学这门学科由于其自身的特性,要想达到像化学和物理那样进行实验是比较 困难的,但是可以根据它的特征,改进学习方法,加进新的内容,特别是用现代 化的学习工具,帮助我们加快掌握这门学科知识。计算机科学的发展,为学习数
9.控制流语句
(1) for 循环语句 for语句使用较为灵活,一般用于循环次数已经 确定的情况。其格式为: for t=表达式1:表达式2:表达式3 语句体 end 其中,表达式1的值为循环的初值,表达式2的值为步 长,表达式3的值为循环的终值。如果省略表达式2,则默 认步长为1。For语句允许嵌套。在程序里,每一个“for” 关键字必须和一个“end”关键字配对,否则出错。
(3)if条件语句
if条件语句用于选择结构。其格式有两种情况: 格式一: if 逻辑表达式 语句体 end 格式二: if 逻辑表达式1 语句体1 else 语句体2 end if条件语句可以嵌套使用,但是,必须注意if语 句和end语句成对出现。
例6. % 输入数n,判断其正负及奇偶性
MATLAB程序如下: n=input(ˊn=ˊ), if n<=0 A= ˊnegativeˊ, elseif isempty(n)= = 1 A= ˊemptyˊ, break elseif rem(n,2)= =0 A= ˊevenˊ else A= ˊoddˊ end 运行此程序时,程序要求用户输入一个数,它先判断 该数是否为负数,再判断它是奇还是偶数,所以它共 有三个出口。
四. MATLAB的语言环境
1.常量和变量 在MATLAB中变量名用字符或字符加数字组成, 总长不超过19个字符,如A,FJfj gjglsvnbdnv都是合法的变量名, MATLAB区分大小写,A与a可以是两个不同的变量,在变量名中不能 使用括号。应该注意所有的函数名均由小写字母构成。 例2.inv(a)为求矩阵a的逆矩阵。但INV(a)则为未定义的函数。 在MATLAB中的数学常数用特定的标识符来表示: eps 表示浮点计算的容许误差为2-52 pi 圆周率π Inf 表示无穷大 Nan 表示一个不定值 2、矩阵运算符 MATLAB中的常量或变量都代表矩阵,标量应看作1x1阶的矩阵。
3. M文件种类
(1). 命令文件 命令文件没有输入参数,也不返回输出参数,只是一些命令行的组 合命令文件可对工作空间中的变量进行操作,也可生成新的变量。即使 命令文件运行结束,命令文件产生的变量仍将保留在工作空间中,直到 关闭MATLAB或用相关命令删除。下面是一个命令文文件的例子。 例8. % 计算Fibonacci数的一个M文件 f(1)=1;f(2)=1;i=1; while f(i)+f(i+1)<1000 f(i+2)=f(i)+f(i+1); i=i+1; end 在MATLAB提示符下,如键入文件名,则MATLAB会自动执行这一文 件中的每条命令,并产生执行结果。
4、表达式
变量、常量和函数由运算符连接得到算术表达式。 当运算对象是矩阵时,应用矩阵运算符;当运算对 象为数组时则用数组运算符。 通常表达式的值赋给某个变量称为赋值命令语句。赋 值命令语句的一般形式为<变量>=<表达式>。但亦 可略去<变量>,此时表达式之值自动赋给MATLAB系 统指定的变量ans。 例3. 输入: a=[1 2 3 ;4 5 6;7 8 9] 则显示结果为 a= 1 2 3 4 5 6 7 8 9
的值,进行向量和矩阵运算,求逆矩阵、特征值和特征向量,求解线性
方程组等。 数学实验所用MATLAB软件提供了程序设计的功能,与其它程序设计
语言一样,可以编写应用程序解决复杂的问题。数学实验的程序设计语
言简单明了,它是以求解单一问题的语句为主,通过人机对话的形式, 在屏幕上显示所求的结果,把这样的语句通过控制语句和连接语句按顺 序结合成一个整体,就生成了程序。它可以进行数值计算、符号演算和 图形描绘。
f 1 1 2 3 5 8 13 21 34 55 89 144 233 337 610 987 注意,在命令文件中的变量i及f都将保存在工作区中, 这一点与函数文件是截然不同的。
例1.键入: x1=sqrt(5),x2=1.37,y=3/x2 结果显示为: x1=2.2361 x2=1.3700 y=2.1898
在MATLAB的命令窗口里,可用Ctrl+C来终止正在运行的程序。
三. 退出MATLAB
要退出MATLAB系统,可按如下方式进行: 1.在文件菜单(File)中选择“Exit”或“Quit”。 2.用鼠标点击窗口右上角的关闭图标“X”。
第三节
实验目的
准备实验
本实验的目的是使学生对 MATLAB软件有一个初步了解。
实验工具
MATLAB是一种高效的科研编程的软件环境,它拥有自己的特定语 言,了解和掌握MATLAB语言,能扩展MATLAB 的能力。 MATLAB是我们线性代数实验室中的实验平台,线性代数实验室中的 大部分计算都需要使用MATLAB辅助完成。
例4.
% 计算出1~4的乘法表 for n = 1:4 for end end r r= m=1:n
r(n,m)=m*n ;
1 0 0 0
2 3 4 6 0 9 0 0
4 8 12 16
(2) while循环语句
while语句一般用于事先不能确定循环次数的情况。 其格式为: while 表达式 语句体 end 当表达式的值为真时,执行语句体;当表达式的值为假,终止该 循环。在while语句的循环中,可用break语句退出循环。 例5. % 给出2000以内的fibnacci数 f(1)=1; f(2)=1; i=1; while f(i)+f(i+1)<2000 f(i+2)=f(i)+f(i+1); i=i+1; end f
6、变量值的显示
作为运算结果的变量值,在表达式计算后会在屏 幕上显示出来,但在表达式结尾加一个分号“;”,该结 果不再显示。 MATLAB以双精度执行所有运算,数据以多种格式显示, 当缺省时,显示五位十进制数。显示格式用格式命令指定, 例如: Format long 显示15位有效数字 Format shore e 5位浮点数 Format long e 15位浮点数 7.注释语句 符号“%”引导的行是注释行。 其格式为: % 语句 8.键盘输入语句 格式: input(ˊ提示字ˊ)
《线性代数》实验室!
在这里,抽象的数学已经成为一门生动 的“实验科学”,从实际问题出发,借助 计算机,你可以亲自设计、亲自动手,去 体验解决问题的过程,从实验中去学习、 探索和发现数学规律。
线性代数实验课
南通职业大学基础课部 2000年10月
课程目录
•实验一 •实验二
•实验三 •实验四 •实验五
例7.输入:
while 1 n=input(ˊEnter n,negative quies.ˊ); if n<=0 break,end while n>1 if rem(n,2)==0 n=n/2 else n=3*n+1 end end end.
10.求助提示
格式: Help
%可得到HELP文件列表和磁盘上 的各种M文件 Help facility % 给出指定的项的帮助信息 格式: demo % 给出一个表演程序的菜单
5、变量的存储
用clear命令可从工作空间中清除现存的变量。 工作空间中的变量可以用save命令存储到磁盘文件中 去。键入命令save<文件名>,将工作空间中全部变量 存到<文件名>.mat文件中去,若省略<文件名>则存 入文件matlab.mat中;命令save<文件名><变量名集> 将<变量名集>指出的变量存入文件<文件名>.mat中 。 用命令laod可将变量从磁盘文件读入MATLAB的工作 空间,其用法为load<文件名>,它将<文件名>指出的 磁盘文件中的数据依次读入名称与<文件名>相同的工 作空间中的变量中去。若省略<文件名>则matlab.mat从 中读入所有数据。
主要运算有
A'表示A的转置矩阵。 A+B表示矩阵A与B的和; A-B表示矩阵A与B的差。 (3)矩阵乘法: A*B表示矩阵A与B的乘积。当其中一个变量是标量时, K*B=B*K表示标量与矩阵的乘法。 (4) 矩阵除法: 分左除“\”和右除“/”;X=A\B表示AX=B的解;X= A/B表示XA=B的解。 特别地当B为列向量时,X=A\B是线性方程组AX=B的解。如果A是非 奇异矩阵,则X=A\B=A-1B。 (5) 矩阵乘方: A^P,当P为正整数时,表示P个A的连乘积。 3、向量运算符 (1) “.*”:表示矩阵A与B对应元素相乘所得的矩阵 (2) “./”和“.\”:表示向量对应元素相除。“./”其中表示A的元素是被除 数 (3) “.^”:表示求A元素以B对应元素为指数的值 (1) 转置: (2) 加与减:
五.M文件
1.””选项 “M-file”即可建立M文件。也可选定Edit菜单建立M文 件,选定“Save”选项即可保存文件。删除M文件使用 格式:Delete 文件名 2. M文件的编辑与执行 选定MATLAB命令窗口中的“Edit”菜单可利用键盘 编辑键对M文件进行全屏幕编辑。M文件以ASCⅡ编码 形式存储,在命令窗口中直接键入文件名,就可执行M 文件。
也可以用软件提供的语言编写程序完成,这种程序设计语言简单且容易掌握。 当然,我们也应认识到计算机只是纸和笔的延伸,计算机是数学探索的工具,计 算机提供对抽象概念的直观感受。数学实验课不是计算机程序课,数学思维是目 的,计算机的使用只是手段。
第二节
数学实验的内容
在教学内容的选择上,将线性代数实验室作为线性代数的辅助课程, 教学内容互补,不重复线性代数课程讲述的基本内容,而是让学生了解 几种数学软件的基本使用方法,对线性代数课程所讲述内容通过数学实 验去完成。 主要介绍利用MATLAB软件完成线性代数运算的方法,包括求行列式
学提供了一个科学的现代化的环境,把计算机引入到数学学习中,使用计算机进
行数学运算,就能提高数学学习的效率。我们将这种用计算机借助于数学软件代 替纸和笔以及人的部分脑力劳动进行数学学习的手段称作数学实验。 本实验课我们所选用的软件是MATLAB。用于数学实验的MATLAB软件有其独
特的功能,简单的问题只要按规则输入表达式就可以直接得到结果,复杂的问题
一. 进入MATLAB
在Window98环境下,双击“开始”按钮的程序里的选项(如果已经在 Window98的桌面上建立了快捷方式,则双击MATLAB图标),即可进入 MATLAB系统。这时,屏幕上会显示一个启动画面,片刻之后,出现一个 工作屏幕(命令窗口)。
二. MATLAB命令窗口简介
命令窗口中,最上面显示“MATLAB Command Window” 字样的一栏为标题栏,标题栏的右边依次为窗口最小 化按钮、窗口缩放按钮和关闭窗口按钮。标题栏下面的菜单栏包含 “File(文件)”、“Edit(编辑)”、“Window(窗口)”、“Help (帮助)”四项。菜单栏下面的工具栏显示了九个工具按钮,各按钮相 当于菜单栏中各选项命令,熟练使用工具按钮可使工作更快捷、更方便 (详见第五章MATLAB的命令窗口)。 在命令窗口中,除标题栏、菜单栏、工具栏以外的窗口,用于输入 和显示计算结果,称为命令编辑区。 在启动MATLAB、命令编辑区显示帮助信息后,将显示符号“|”,符 号“|”表示MATLAB已准备好,正等待用户输入命令,这时,就可以在提 示符“|”后面键入命令,按下回车键后,MATLAB就会解释执行所输入的 命令,并在命令后面给出计算结果。如果在输入命令后再以分号结束, 则不会显示结果。
第一章
进入线性代数实验室 —准备实验 矩阵运算
线性方程组 特征值和特征向量 MATLAB的命令窗口
第二章
第三章 第四章 第五章
•实验一
第一章 进入线性代数实验室 —准备实验
第一节
数学教改的一个重要内容。
数学实验的方法
与数学教学内容相结合,进行数学实验,对现行的教学方法进行改革,是当前 数学这门学科由于其自身的特性,要想达到像化学和物理那样进行实验是比较 困难的,但是可以根据它的特征,改进学习方法,加进新的内容,特别是用现代 化的学习工具,帮助我们加快掌握这门学科知识。计算机科学的发展,为学习数
9.控制流语句
(1) for 循环语句 for语句使用较为灵活,一般用于循环次数已经 确定的情况。其格式为: for t=表达式1:表达式2:表达式3 语句体 end 其中,表达式1的值为循环的初值,表达式2的值为步 长,表达式3的值为循环的终值。如果省略表达式2,则默 认步长为1。For语句允许嵌套。在程序里,每一个“for” 关键字必须和一个“end”关键字配对,否则出错。
(3)if条件语句
if条件语句用于选择结构。其格式有两种情况: 格式一: if 逻辑表达式 语句体 end 格式二: if 逻辑表达式1 语句体1 else 语句体2 end if条件语句可以嵌套使用,但是,必须注意if语 句和end语句成对出现。
例6. % 输入数n,判断其正负及奇偶性
MATLAB程序如下: n=input(ˊn=ˊ), if n<=0 A= ˊnegativeˊ, elseif isempty(n)= = 1 A= ˊemptyˊ, break elseif rem(n,2)= =0 A= ˊevenˊ else A= ˊoddˊ end 运行此程序时,程序要求用户输入一个数,它先判断 该数是否为负数,再判断它是奇还是偶数,所以它共 有三个出口。
四. MATLAB的语言环境
1.常量和变量 在MATLAB中变量名用字符或字符加数字组成, 总长不超过19个字符,如A,FJfj gjglsvnbdnv都是合法的变量名, MATLAB区分大小写,A与a可以是两个不同的变量,在变量名中不能 使用括号。应该注意所有的函数名均由小写字母构成。 例2.inv(a)为求矩阵a的逆矩阵。但INV(a)则为未定义的函数。 在MATLAB中的数学常数用特定的标识符来表示: eps 表示浮点计算的容许误差为2-52 pi 圆周率π Inf 表示无穷大 Nan 表示一个不定值 2、矩阵运算符 MATLAB中的常量或变量都代表矩阵,标量应看作1x1阶的矩阵。
3. M文件种类
(1). 命令文件 命令文件没有输入参数,也不返回输出参数,只是一些命令行的组 合命令文件可对工作空间中的变量进行操作,也可生成新的变量。即使 命令文件运行结束,命令文件产生的变量仍将保留在工作空间中,直到 关闭MATLAB或用相关命令删除。下面是一个命令文文件的例子。 例8. % 计算Fibonacci数的一个M文件 f(1)=1;f(2)=1;i=1; while f(i)+f(i+1)<1000 f(i+2)=f(i)+f(i+1); i=i+1; end 在MATLAB提示符下,如键入文件名,则MATLAB会自动执行这一文 件中的每条命令,并产生执行结果。
4、表达式
变量、常量和函数由运算符连接得到算术表达式。 当运算对象是矩阵时,应用矩阵运算符;当运算对 象为数组时则用数组运算符。 通常表达式的值赋给某个变量称为赋值命令语句。赋 值命令语句的一般形式为<变量>=<表达式>。但亦 可略去<变量>,此时表达式之值自动赋给MATLAB系 统指定的变量ans。 例3. 输入: a=[1 2 3 ;4 5 6;7 8 9] 则显示结果为 a= 1 2 3 4 5 6 7 8 9
的值,进行向量和矩阵运算,求逆矩阵、特征值和特征向量,求解线性
方程组等。 数学实验所用MATLAB软件提供了程序设计的功能,与其它程序设计
语言一样,可以编写应用程序解决复杂的问题。数学实验的程序设计语
言简单明了,它是以求解单一问题的语句为主,通过人机对话的形式, 在屏幕上显示所求的结果,把这样的语句通过控制语句和连接语句按顺 序结合成一个整体,就生成了程序。它可以进行数值计算、符号演算和 图形描绘。
f 1 1 2 3 5 8 13 21 34 55 89 144 233 337 610 987 注意,在命令文件中的变量i及f都将保存在工作区中, 这一点与函数文件是截然不同的。
例1.键入: x1=sqrt(5),x2=1.37,y=3/x2 结果显示为: x1=2.2361 x2=1.3700 y=2.1898
在MATLAB的命令窗口里,可用Ctrl+C来终止正在运行的程序。
三. 退出MATLAB
要退出MATLAB系统,可按如下方式进行: 1.在文件菜单(File)中选择“Exit”或“Quit”。 2.用鼠标点击窗口右上角的关闭图标“X”。
第三节
实验目的
准备实验
本实验的目的是使学生对 MATLAB软件有一个初步了解。
实验工具
MATLAB是一种高效的科研编程的软件环境,它拥有自己的特定语 言,了解和掌握MATLAB语言,能扩展MATLAB 的能力。 MATLAB是我们线性代数实验室中的实验平台,线性代数实验室中的 大部分计算都需要使用MATLAB辅助完成。
例4.
% 计算出1~4的乘法表 for n = 1:4 for end end r r= m=1:n
r(n,m)=m*n ;
1 0 0 0
2 3 4 6 0 9 0 0
4 8 12 16
(2) while循环语句
while语句一般用于事先不能确定循环次数的情况。 其格式为: while 表达式 语句体 end 当表达式的值为真时,执行语句体;当表达式的值为假,终止该 循环。在while语句的循环中,可用break语句退出循环。 例5. % 给出2000以内的fibnacci数 f(1)=1; f(2)=1; i=1; while f(i)+f(i+1)<2000 f(i+2)=f(i)+f(i+1); i=i+1; end f
6、变量值的显示
作为运算结果的变量值,在表达式计算后会在屏 幕上显示出来,但在表达式结尾加一个分号“;”,该结 果不再显示。 MATLAB以双精度执行所有运算,数据以多种格式显示, 当缺省时,显示五位十进制数。显示格式用格式命令指定, 例如: Format long 显示15位有效数字 Format shore e 5位浮点数 Format long e 15位浮点数 7.注释语句 符号“%”引导的行是注释行。 其格式为: % 语句 8.键盘输入语句 格式: input(ˊ提示字ˊ)