大学数学实验(MATLAB版)_第1页
大学数学实验(MATLAB版)_第2页
大学数学实验(MATLAB版)_第3页
大学数学实验(MATLAB版)_第4页
大学数学实验(MATLAB版)_第5页
已阅读5页,还剩491页未读 继续免费阅读

下载本文档

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

文档简介

大学数学实验(Matlab版)课程简介课程名称:大学数学实验(MATLAB版)课程内容:MATLAB基础MATLAB在高等数学中的应用MATLAB在线性代数中的应用MATLAB在概率论与数理统计中的应用第一部分MATLAB基础认识MATLAB、帮助系统的使用常量、变量、运算符和常见函数数值矩阵的生成及基本运算字符串、结构体与元胞矩阵符号计算编程基础绘图第1章认识MATLABMATLAB软件介绍发展历史主界面通用命令快捷键帮助系统1、MATLAB软件介绍矩阵实验室(MatrixLaboratory)的简称美国MathWorks公司于1984年推向市场是商业软件,功能强大,价格也高(1)发展历史简介1、MATLAB软件介绍2006年,MathWorks公司在技术层面上实现了一次飞跃,并在每年的3月和9月各发布一次新版本,分别被命名为MATLABR+年份+代码其中,上、下半年的代码分别为a和b.(1)发展历史简介(2)MATLAB的主界面标配界面,从上往下、从左往右依次为:选项卡当前目录、当前文件夹命令行窗口工作区如果打开MATLAB后不是这样的界面,点击:主页→

布局→

三列(如果没有“三列”,选择“默认”)

中英文界面的切换:主页→

预设→

常规→

桌面语言→

中文或英文,然后关掉MATLAB并重启(3)常见的通用命令(4)常用的快捷键2、帮助系统help命令lookfor命令which命令who和whos命令联机帮助在命令行窗口显示帮助信息在帮助界面显示帮助信息若联机帮助不显示,首先检查是否联网。如果已联网还不显示,可以在帮助窗口上,依次单击:预设(左上角的小齿轮)->帮助->本地安装。用户还可以在该界面上选择需要显示的语言。谢谢观看大学数学实验(Matlab版)第2章MATLAB语言基础MATLAB的主要功能就是数据处理数据:可以是标量,也可以是向量或矩阵;可以是常量,也可以是变量处理:可以是算术运算(加、减、乘、除),也可以是复杂的函数运算(求余弦)本章主要内容:常量、变量运算符与表达式常见函数1、常量与变量常量(constant)是所有合法数据的直接表示,如:1、0、-5、3.7、-2.87e2、1+2.5i、’a’等这些数据的大小不能被改变,且都具有默认的类型.如1、0、-5、3.7、-2.87e2是双精度(double)型,在内存占8个字节;复数1+2.5i默认在内存占16个字节,即:由两个double型组成.在MATLAB中,-2.87e2表示−2.87×102

.1、常量与变量变量(variable)是指它表示的值可以被改变的量.改变变量的值使用赋值运算符(”=”)来实现.变量被赋值后,新值将覆盖原来的值,这就是“变量”与“常量”的主要区别.常量和变量都可以参与各种运算,如:算术运算、关系运算和逻辑运算等.可分为:一般变量、永久变量1、常量与变量一般变量是指由用户命名的变量,这种变量可以存放一个数、也可以存放一个向量或矩阵等.这类变量的命名规则如下:由字母、数字和下划线组成;首字符必须是字母;变量名的长度不超过63个字符;变量名中的字母区分大小写.1、常量与变量永久变量是MATLAB中的特殊变量,这类变量已经被定义好,可以被直接使用.1、常量与变量常量与变量的值都可以直接在命令行窗口显示:如果是整型数据,则直接显示整型结果;如果是浮点型数据,则默认显示小数点后4位.在MATLAB中,可以使用format命令改变这种默认的显示方式.第2章MATLAB语言基础常量、变量运算符与表达式常见函数2、运算符与表达式运算符(operator)是指用于在操作数上执行某种操作的符号.表达式(expression)是按一定规则将操作数用运算符连接起来的、有意义的式子.如:3+5为一个表达式,操作数是2和3,运算符是”+”.2、运算符与表达式MATLAB提供了许多运算符,可以构成复杂的表达式用以实现复杂的计算.根据运算符的特点可以将它们分为三类:算术运算符与算术表达式关系运算符与关系表达式逻辑运算符与逻辑表达式(1)算术运算符与算术表达式(2)关系运算符与关系表达式(3)逻辑运算符与逻辑表达式第2章MATLAB语言基础常量、变量运算符与表达式常见函数(1)三角函数和双曲函数(2)指数函数和对数函数(3)归整函数和求余函数(4)复数函数(5)矩阵变换函数(6)其他常用函数谢谢观看大学数学实验(Matlab版)第3章数值矩阵的生成及基本运算矩阵的生成和修改矩阵的基本运算矩阵的阵列运算矩阵的关系运算与逻辑运算向量的运算矩阵的保存与加载1、矩阵的生成和修改矩阵的生成直接输入法矩阵编辑器由函数自动生成外部文件导入1、矩阵的生成和修改矩阵的修改单个元素的修改多个元素的修改多个连续元素多个分散元素特殊元素的修改删除矩阵的整行或整列矩阵形状的修改第3章数值矩阵的生成及基本运算矩阵的生成和修改矩阵的基本运算矩阵的阵列运算矩阵的关系运算与逻辑运算向量的运算矩阵的保存与加载2、矩阵的基本运算算术运算:+-*\/^转置:transpose或‘行列式和秩:det和rank逆运算:inv矩阵的特征值和特征向量:eig矩阵的大小:size其他运算:length、numel等关于逆运算:inv

若线性方程组为AX=b,且系数矩阵A是可逆的,由线性代数知识知道,该方程组的解为X=A−1b.求方程组的解.关于特征值与特征向量

由线性代数知识知道,若向量vi为矩阵B的第i个特征向量,其对应的特征值为di,则有Bvi=di

vi成立.因此其中,第3章数值矩阵的生成及基本运算矩阵的生成和修改矩阵的基本运算矩阵的阵列运算矩阵的关系运算与逻辑运算向量的运算矩阵的保存与加载3、矩阵的阵列运算思考:为什么没有阵列加和阵列减?3、矩阵的阵列运算思考:为什么没有阵列加和阵列减?答:因为矩阵的(算术)加和(算术)减运算本身就是对应元素的加和减,因此不需要再提供矩阵的阵列加和阵列减。第3章数值矩阵的生成及基本运算矩阵的生成和修改矩阵的基本运算矩阵的阵列运算矩阵的关系运算与逻辑运算向量的运算矩阵的保存与加载4、矩阵的关系运算与逻辑运算前面提到了关系运算和逻辑运算4、矩阵的关系运算与逻辑运算再讲一些与关系运算相关的函数第3章数值矩阵的生成及基本运算矩阵的生成和修改矩阵的基本运算矩阵的阵列运算矩阵的关系运算与逻辑运算向量的运算矩阵的保存与加载5、向量的运算在MATLAB中,向量被看为一种特殊的矩阵:行向量:行数为1的矩阵列向量:列数为1的矩阵.因此,向量的运算和矩阵的运算在大多数情况下都是相同的,如向量也有四则运算、阵列运算、关系运算和逻辑运算等.5、向量的运算但是,在一些特殊场合下,向量还有一些特殊的运算。下面只讲这些特殊的运算:点积(也叫数量积、内积):dotab=a1b1+a2b2+...+anbn叉积(外积、向量积,只对三维向量):corss混合积a(b×c)5、向量的运算名称举例交换律对向量的要求点积dot(a,b)满足任意维叉积cross(a,b)不满足三维混合积dot(a,cross(b,c))不满足三维第3章数值矩阵的生成及基本运算矩阵的生成和修改矩阵的基本运算矩阵的阵列运算矩阵的关系运算与逻辑运算向量的运算矩阵的保存与加载6、矩阵的保存与加载MATLAB中的大多数数据都是以矩阵形式存放的,因此对数据的保存和加载实质就是对矩阵的保存和加载.由于保存在MATLAB工作区中的数据都是存放在计算机内存中,关掉MATLAB或计算机出现意外时,这些数据都会消失,且不可恢复.6、矩阵的保存与加载如果这些数据需要重复使用,我们可以把它们保存在外存(如硬盘)上,这样关闭MATLAB后数据不会丢失,下次再用时只需把数据从外存上加载进来即可.MATLAB提供了把数据保存到外存的函数和从外存加载数据的函数.6、矩阵的保存与加载保存为MATLAB文件:save和load保存为文本文件或Excel文件writematrix和readmatrix其他相关函数用who或whos命令查看.mat文件中的变量获取Excel文件信息:xlsfinfo判断文件是否存在:exist删除文件:delete大学数学实验(Matlab版)第4章字符串、结构体与元胞矩阵字符串字符串的赋值与简单操作字符串函数结构体结构体变量的创建与修改结构体变量函数元胞矩阵1、字符串字符串的赋值与简单操作用“=”赋值同矩阵操作:转置、大小、合并但是不能参与数值计算字符串函数(见下一张幻灯片)第4章字符串、结构体与元胞矩阵字符串字符串的赋值与简单操作字符串函数结构体结构体变量的创建与修改结构体变量函数元胞矩阵2、结构体结构体变量的创建与修改用struct函数创建、直接创建字段的修改结构体变量函数第4章字符串、结构体与元胞矩阵字符串字符串的赋值与简单操作字符串函数结构体结构体变量的创建与修改结构体变量函数元胞矩阵3、元胞矩阵元胞矩阵的创建与修改处理元胞数据的常见函数大学数学实验(Matlab版)第5章符号计算符号矩阵的生成用sym定义用syms定义符号矩阵的计算符号函数及其常见的运算多项式函数一般函数1、符号矩阵的生成用sym定义符号对象(标量)将数值矩阵转换为符号矩阵用syms定义符号对象符号函数第5章符号计算符号矩阵的生成用sym定义用syms定义符号矩阵的计算符号函数及其常见的运算多项式函数一般函数2、符号矩阵的计算与数值型矩阵类似四则运算和阵列运算转置求行列式求逆求特征值与特征向量等第5章符号计算符号矩阵的生成用sym定义用syms定义符号矩阵的计算符号函数及其常见的运算多项式函数一般函数3、符号函数及其常见的运算多项式函数生成相关运算:四则运算、合并同类项、展开、因式分解,等。一般函数定义相关运算:找出符号变量、找出分子和分母、表达式化简、求反函数、求复合函数,等。大学数学实验(Matlab版)第6章编程基础1、M文件1.1M函数1.2M脚本1.3M函数和M脚本之间的联系与去别2、语句2.1控制语句2.2其他语句1、M文件在MATLAB命令行窗口中键入一行命令,回车后,系统会立即执行该命令.这种在命令行窗口进行人机交互的工作方式称为命令行模式.但是,当运行的命令较多时,采用命令行模式会比较麻烦,并且不便于保存这些命令.为了改善这一点,采用M文件模式,该模式可以让用户以文本文件形式存储命令.1、M文件当需要运行这些命令时,只需在命令行窗口中输入文件名即可.在MATLAB中,这种纯文本文件的扩展名必须为.m,因此称之为M文件.MATLAB将M文件分为两种:M函数文件和M脚本文件.1、M文件M函数文件(简称为“M函数”)可以被看为一个子过程,由三部分构成,即:0个或若干个输入数据、对数据进行处理的语句、0个或若干个输出数据.而M脚本文件(简称为“M脚本”)中通常是一些MATLAB命令的集合.下面分别讲上述的两种M文件.1.1M函数语法

function[结果变量列表]=函数名(输入变量列表)处理语句

end其中:

(1)function:M函数的引导行,是区别于M脚本的重要标记;(2)函数名:M函数的名称,其命名规则与变量的命名规则相同.如果M文件里只有一个函数(通常情况下只有一个函数),则该函数名必须与M文件名相同(包括大小写字母);(3)输入变量列表:待处理的数据.必须以变量的形式给出.在编写M函数时无法确定变量值,只有在调用该函数时这些变量才会被赋值,因此输入变量也可以被称为形式变量、形式参数(formalargument)或形参.1.1M函数语法

function[结果变量列表]=函数名(输入变量列表)处理语句

end其中:

(4)处理语句:对输入变量进行处理的MATLAB语句.

(5)结果变量列表:对输入变量进行处理后的结果所在的变量.若结果只有一个,中括号可以省略.

(6)end:结束标记.如果只有一个函数,该标记可以省略,但不建议.接下来,我们讲M函数的建立过程1.1M函数举例说明M函数文件的创建与编写步骤:题目:编写M函数AreaCircu,计算半径为r的圆的面积和周长,并在命令行窗口调用该函数.编写步骤:(1)明确函数的具体功能.最好能用自然语言来概括,并在概括时尽量涵盖所有涉及到的输入变量和输出变量.(2)确定函数名.函数名的命名规则与一般变量相同,并且函数名称要与函数的具体功能相关,尽量做到“见名知意”.1.1M函数举例说明M函数文件的创建与编写步骤:题目:编写M函数AreaCircu,计算半径为r的圆的面积和周长,并在命令行窗口调用该函数.编写步骤:(3)确定形参的个数和名称.形参通常是已知的、待处理的数据.形参的个数和名称是由函数的具体功能来确定的.(4)确定返回结果变量的个数和名称.编写函数的最终目的就是求出结果变量的值,因此必须事先确定结果变量的个数和名称.结果变量的个数和名称也是由函数的具体功能来确定的.1.1M函数举例说明M函数文件的创建与编写步骤:题目:编写M函数AreaCircu,计算半径为r的圆的面积和周长,并在命令行窗口调用该函数.编写步骤:(5)设计算法.通常,对数据的处理较为复杂,因此在对数据处理之前需要设计处理数据的详细步骤,即:设计算法.对于功能较为简单的函数,该步骤可以省略.(6)根据算法编写程序.根据设计好的算法编写处理语句.1.1M函数M函数的调用,在命令行窗口中,三个步骤:(1)确定要处理的数据(实参)和处理后返回的结果.可以手工计算返回结果,也可以在MATLAB命令行窗口采用命令行模式计算.(2)调用函数.如[a,c]=AreaCircu(3)就是将实参3传给函数的形参,执行函数中的处理语句,并返回结果a和c.如果函数内部有语法错误,则该步骤不能成功,需要先排除错误然后再调用.(3)验证函数返回的结果与之前计算的结果是否一致.如果两个结果是一致的,则说明函数目前是没有错误的,否则,说明函数内部有逻辑错误,需要重新审查算法并修改代码.1.1M函数两类错误:语法错误和逻辑错误语法错误和逻辑错误都是无法完全避免的.在大多数情况下,MATLAB可以提示语法错误的原因和出现的行,编程人员可以按照提示进行修改.而逻辑错误一般是由算法设计(或解题思路)上的错误导致的,具有隐蔽性,找出这种错误较为困难,需要编程人员具有(或从现在开始培养)“测试”和“调试”的能力.1.1M函数举例1:语法错误编写M函数Rect2Polar,将直角坐标(x,y)转换为极坐标(ρ,θ),并对该函数进行测试.举例2:逻辑错误编写M函数,计算1.1M函数两个内置变量:nargin和nargout在编写M函数时经常会用到两个特殊的内置变量:nargin和nargout,其中,nargin表示输入变量的个数,nargout表示输出变量的个数.举例:编写M函数ComputeXY,形参为x、y和r,函数的作用是计算x+ry和x-ry,其中r为参数,默认取1.1.1M函数定义数学函数的其他方法匿名函数内联函数1.2M脚本定义与M函数不同,M脚本没有格式要求,只要是正确的MATLAB命令和语句都可以写在脚本文件里.M脚本文件里包含了多个命令和语句的集合.执行一次脚本,就是批量执行脚本文件里的命令和语句,不像命令行模式那样输入一句执行一句.1.3M脚本与M函数的联系与区别M脚本文件与M函数文件的命名规则相同,都与变量的命名规则一样.并且,调用M脚本与M函数都需要通过文件名.M脚本不需要传递参数,在M脚本里创建的变量都会存到MATLAB的工作区中,脚本运行结束后这些变量不消失.M脚本中所需的变量也必须在调用前已经存在于工作区中.1.3M脚本与M函数的联系与区别而M函数不是这样的.每一个M函数有属于自己的、单独的工作区,M函数中使用的输入变量、返回变量和函数内部使用的变量都放在了属于该函数的独立工作区中.当该函数被调用时,这个工作区被创建;当函数运行结束后,这个工作区里的所有变量都会消失.因此,M函数工作区里的变量在时间和空间上都是“局部”的,称之为“局部变量”.1.3M脚本与M函数的联系与区别M函数不可直接使用MATLAB工作区里的变量,除非用global声明.因此,在M函数中使用global声明的变量不属于该函数所有,并且这类变量在函数调用前就已经存在,在函数运行结束后也不会丢失.这类变量在时间和空间上都具有“全局性”,称之为“全局变量”.1.3M脚本与M函数的联系与区别另一个不同之处:M函数文件可以进行预解析处理,而M脚本文件不可以.预解析处理:编好的函数文件都通常存储在硬盘上.当函数被第一次调用时,MATLAB需要先对其进行一次解析(Parse),然后才能运行.一般情况下,MATLAB不会把解析并执行后的文件立即从内存清走,因此后面再次调用该函数时无需再次解析,从而节约调用时间.1.3M脚本与M函数的联系与区别另一个不同之处:M函数文件可以进行预解析处理,而M脚本文件不可以.预解析处理:有时候,当需要调用的函数文件较多时,第一次解析要占用很多时间.为此,MATLAB提供了由用户在调用前对函数文件进行预解析(PreParse)的命令,解析后的文件名后缀是.p如果当前搜索目录下有两个文件myfile.m和myfile.p,MATLAB会优先调用.p文件.1.3M脚本与M函数的联系与区别另一个不同之处:M函数文件可以进行预解析处理,而M脚本文件不可以.预解析处理:预解析命令为pcode,用法为:pcodeFileName对函数文件进行预解析的另一个好处是产权保护:如果用户编好一个函数后不想把源代码公布于他人,可以对该函数文件进行预解析处理,然后公布预解析后的文件即可.第6章编程基础1、M文件1.1M函数1.2M脚本1.3M函数和M脚本之间的联系与去别2、语句2.1控制语句:分支语句、循环语句2.2其他语句2.1控制语句2.1控制语句写在脚本或函数中的语句都是一行一行顺序执行的,即顺序结构.而控制语句可以用来改变这种顺序执行的程序流程结构.常见的控制结构有分支结构和循环结构.所谓分支结构,是指当程序执行到某一处时需要对当前状态进行判断,并根据判断结果选择要执行的语句.所谓循环结构,是指在程序中需要重复执行某段代码(称为“循环体”)而设置的一种结构.分支结构和循环结构都离不开判断,前者需要判断当前状态,后者需要判断是否重复执行循环体.2.1控制语句(1)分支语句:if-elseif-elseif-elseswitch-case(2)循环语句:forwhile2.1控制语句(1)分支语句:if-else2.1控制语句(1)分支语句: if-elseif-else2.1控制语句(1)分支语句: switch-case补充:分段函数(1)自变量为矩阵时,前面讲的用if实现的分段函数都不能运行。(2)用piecewise函数2.1控制语句(2)循环语句:for2.1控制语句(2)循环语句:while2.1控制语句(2)循环语句:while和for的联系与区别相同:都能实现循环区别:for:循环次数可事先知道,如s(n)循环n次;while:循环次数不确定,如计算ex

的循环次数取决于误差,事先无法确定。2.2其他语句input与disp、fprintferror和warningbreak和continuepausereturntry-catch等2.2其他语句input与disp、fprintf举例:某商店对顾客购买的商品进行返券,标准为

编写脚本文件:trdff.m,由用户输入price,计算并输出相应的返回券tradeoff.2.2其他语句error和warning举例:计算函数g(x,y;ρ)=cos(x)+ρ*sin(y),其中ρ∈[0,1]为参数,默认取0.5.2.2其他语句break和continue如果条件2满足,则执行break语句,即跳出循环执行语句组4如果把break换成continue,则表示结束本次循环,即不再执行语句组3,而是立即判断条件1

是否满足,如果满足则继续循环,即执行语句组2,否则跳出循环执行语句组4.2.2其他语句pause用法:pause

或pause(n)return用来结束当前正在运行的程序,并返回到调用它的函数或命令行窗口.2.2其他语句try-catch若语句组1

没有错误,则语句组2

会被忽略.若语句组1

中有错误,则错误信息将被捕获并存放在内置变量lasterr中,然后执行语句组2.若语句组2

中还有错误,则整个程序结束,除非语句组2

中还有另一个嵌套的try-catch语句.举例:编写一个函数showImage,从硬盘上读取一张图片,如果能读取成功,则显示该图片,如果读入失败,则提示错误信息.大学数学实验(Matlab版)第7章绘图1、二维图形2、三维图形3、四维图形4、图形的保存与复制1、二维图形1.1二维图形的基本绘制plot命令fplot命令fimplicit命令在对数坐标系下绘图在极坐标系下绘图其他二维图形的绘制1.2二维图形的修饰1.1二维图形的基本绘制plot命令用法一:plot(Y)形式若参数Y为实型向量,则以Y中每个元素的下标为横轴数据、元素值为纵轴数据画点,然后用直线段依次连接各点,从而构成一条曲线;若参数Y为复数型向量,则以Y中每个元素值的实部为横轴数据、虚部为纵轴数据画点,然后用直线段依次连接各点并构成一条曲线.若Y为矩阵,则Y中的每个列向量对应一条曲线,因此Y有多少列,plot就会画出多少条曲线.1.1二维图形的基本绘制plot命令用法二:plot(X1,Y1,···,Xn,Yn)形式若参数Xi和Yi为同维实向量,则先画出点(Xi(j),Yi(j)),然后再用直线依次相连.若参数Xi和Yi为同维实矩阵,则画出两个矩阵中对应的列向量对所表示的直线段.若参数Xi为实向量,Yi为实矩阵.进一步,如果Yi的行数与Xi的维度相等,则以Xi中的分量为横坐标,Yi中的各列向量为纵坐标画直线段;如果Yi的列数与Xi的维度相等,则仍以Xi中的分量为横坐标,Yi中的各行向量为纵坐标画直线段.1.1二维图形的基本绘制plot命令用法三:plot(X1,Y1,LineSpec,···,Xn,Yn,LineSpec)参数Xi和Yi同上.参数LineSpec为字符串型,表示曲线的选项设置,包括颜色、线型、数据点等.1.1二维图形的基本绘制plot命令用法四:plot(X,Y,’Name_1’,Val_1,···,’Name_n’,Val_n)参数X和Y为同维向量.参数Name为字符串型,表示属性名称,参数Val为属性值.Name和Val必须成对出现.1.1二维图形的基本绘制fplot命令(1)f是x的函数,必须项;(2)xt和yt都是t的函数,必须项;(3)f、xt和yt可以是用M文件定义的函数,也可以是匿名函数或内联函数;(4)xinterval和tinterval分别是x和t的范围,可以不写,默认为[-5,5];(5)LineSpec为线型。1.1二维图形的基本绘制fplot命令与plot不同,fplot命令可以根据函数表达式自动地画出函数图像,无须手工给出绘图用的一组数据;fplot采用自适应步长控制画出来的函数图像,如果函数变化较为激烈时,步长自动缩小,反之步长变大.1.1二维图形的基本绘制fimplicit命令(1)F是关于x和y的二元函数,必须项;(2)Interval是横坐标和纵坐标的范围,以[xMin,xMax,yMin,yMax]的形式给出,可以不写,默认为[-5,5,-5,5];(3)LineSpec为线型。1.1二维图形的基本绘制在对数坐标系下绘图1.1二维图形的基本绘制在极坐标系下绘图polarplot函数1.1二维图形的基本绘制特殊二维图形的绘制1、二维图形1.1二维图形的基本绘制1.2二维图形的修饰设置子图生成新的绘图界面设置坐标轴的范围设置坐标轴的刻度及标签设置坐标轴和坐标系的名称设置坐标系的封闭性、网格线、多个图形设置图例清空图形1.2二维图形的修饰设置子图:subplot生成新的绘图界面:figure设置坐标轴的范围:axis、xlim、ylim设置坐标轴的刻度:xticks、yticks设置坐标轴和坐标系的名称:xlabel、ylabel、title封闭性(boxon/off)、网格线(gridon/off)、多个图形(holdon/off)设置图例:legend清空图形:clf第7章绘图1、二维图形2、三维图形3、四维图形4、图形的保存与复制2、三维图形三维曲线三维曲面三维坐标系的视角图形的旋转2、三维图形三维曲线:plot3fplot32、三维图形三维曲面基本的三维曲面绘制:meshgrid、mesh、surf等高线、热度图:contour、contour3、surface法线:surfnorm梯度:gradient和quiver隐函数确定的三维曲面:fimplicit32、三维图形三维坐标系视角的设置:view(az,el)2、三维图形图形的旋转用法:rotate(图形句柄,旋转轴,角度)注意:rotate命令只能对由plot、plot3、surf等命令绘制的图形进行旋转,不能对fplot、fimplicit、fplot3、fimplicit3等命令绘制的图形进行旋转;rotate命令可以对二维曲线、三维曲线、空间曲面进行旋转.第7章绘图1、二维图形2、三维图形3、四维图形4、图形的保存与复制3、四维图形用颜色表现第四维特征用切片图表现第四维特征:slice第7章绘图1、二维图形2、三维图形3、四维图形4、图形的保存与复制4、图形的保存与复制绘制好的图像可以被保存为图形文件.在绘图窗口中依次点击“文件(F)”->“保存(S)”,然后位置和类型,并输入文件名,最后点击“保存(S)”按钮即可.文件类型有:.bmp、.jpg、.png、.pdf等.还可以将图形文件保存为.fig类型,即MATLAB图形文件.用户双击.fig文件名再次打开图形界面并显示该图形,其他类型的文件不可以.4、图形的保存与复制MATLAB图形可以被拷贝到文字编辑软件,如Word、WPS中.最简单的方法是利用这类软件的插入功能将已保存好图形文件插入到指定位置.还可以在的图形绘图窗口中选择“编辑(E)”->“复制图窗(F)”,并到文本编辑软件中粘贴.如果使用TEX软件进行排版,需要把图形另存为.eps类型的文件,然后用\includegraphics命令加载该文件即可.大学数学实验(Matlab版)第8章极限与微分1、极限2、导数与微分1、极限说明:(1)参数F可以是匿名函数,也可以是符号型的函数表达式;(2)参数a可以是无穷大(inf或-inf);(3)函数symvar(F)用来从表达式F中寻找默认的符号变量,即在字母表里离x最近的字母.1、极限例题:1、极限例题:说明:本例是二重极限,由高等数学知识:如果上题中的极限存在,则有

成立。反之不然,例如第8章极限与微分1、极限2、导数与微分2、微分与导数(1)基本用法:2、微分与导数例题:2、微分与导数(2)隐函数求导:若函数y=f(x)

是由隐函数F(x,y)=0确定,则例题:2、微分与导数(2)参数方程求导:若函数y=f(x)由参数方程:y=u(t),x=v(t)给定,其中t

为参数,则例题:大学数学实验(Matlab版)第9章函数零点问题1、多项式函数的零点问题2、一般函数的零点问题3、方程组的求解1、多项式函数的零点问题对于给定的多项式求Pn(x)=0

的实根和复根就是多项式函数的零点问题.1、多项式函数的零点问题用法:roots(p)%求多项式p的所有实根和复根说明:(1)roots函数只能计算一个多项式方程的根,不能计算方程组的根;(2)参数p是多项式Pn

(x)从高次项到常数项系数组成的向量,即p为[an,an−1,...,a1,a0],缺少的次项用零填补.例题:用roots函数计算方程x5

−50x3

+200x−60=0

的根.第9章函数零点问题1、多项式函数的零点问题2、一般函数的零点问题3、方程组的求解2、一般函数的零点问题求解一般函数f(x)=0的实根和复根就是函数f(x)的零点问题.2、一般函数的零点问题说明:(1)如果x0是标量,则fzero在x0附近寻找最优解;如果x0为区间,则fzero在该区间范围内求解,此时要求F在区间的两个端点处的函数值是异号的;(2)参数F可以是M文件函数、匿名函数、内联函数,也可以是字符串形式的函数表达式;2、一般函数的零点问题说明:(3)fzero每次只能找出函数的一个零点,在使用前需要知道函数零点的大致位置或范围,这需要使用绘图函数绘制函数曲线,从图上估计出函数零点的近似解;(4)options为结构体变量,是可选项,用来设置fzero的求解方法,如果不写,则采用MATLAB默认设置.2、一般函数的零点问题2、一般函数的零点问题举例:用fzero函数计算方程的零点。2、一般函数的零点问题options为选项:(3)fzero每次只能找出函数的一个零点,在使用前需要知道函数零点的大致位置或范围,这需要使用绘图函数绘制函数曲线,从图上估计出函数零点的近似解;(4)options为结构体变量,是可选项,用来设置fzero的求解方法,如果不写,则采用MATLAB默认设置.第9章函数零点问题1、多项式函数的零点问题2、一般函数的零点问题3、方程组的求解3、方程组的求解MATLAB提供了solve函数和fslove函数用来求非线性方程组的解析解或数值解.1、solve函数当方程组不存在解析解或精确解时,该函数输出方程的数字形式的符号解或数值解.3、方程组的求解例题:3、方程组的求解2、fsolve函数的数值解:

例题:求方程下列非线性方程组的根初始点为x1=x2=-53、方程组的求解

例题:求方程下列非线性方程的根初始点为x0=[1,1;1,1]大学数学实验(Matlab版)第10章积分1、符号积分2、数值积分1、符号积分——int函数参数a或b可以是无穷大(inf或-inf),表示无穷积分;参数F表示被积函数,在区间[a,b]上可以有瑕点,表示瑕积分;F可以是符号型表达式,也可以是匿名函数;在计算不定积分时,F只能是符号型表达式.1、符号积分——int函数一元函数积分(不定积分和定积分)注意:在计算不定积分时,int不会在解函数中加入常数C1、符号积分——int函数重积分(二重、三重)1、符号积分——int函数重积分(二重积分)需要人为先转化成极坐标下的积分,即1、符号积分——int函数重积分(三重积分)需要先转化成柱面坐标下的积分,即1、符号积分——int函数重积分(三重积分)需要先转化成球面坐标下的积分,即1、符号积分——int函数第一类曲线积分(对弧长的积分):

其中L

是抛物线y=x2上点O(0,0)与点B(1,1)之间的一段弧需要先转化成定积分,即1、符号积分——int函数第二类曲线积分(对坐标的曲线积分):

其中L

是抛物线x=y2上点O(0,0)与点B(1,1)之间的一段弧需要先转化成定积分,即1、符号积分——int函数第一类曲面积分(对面积的曲面积分):

其中Σ

是由x=0、y=0、z=0和x+y+z=1所围的四面体表面将Σ

在x=0、y=0、z=0和x+y+z=1上的部分依次记为Σ1、Σ2、Σ3

和Σ4,则1、符号积分——int函数第二类曲面积分(对坐标的曲面积分):其中Σ

是由x2+y2+z2=1外侧在x

≥0,y≥0的部分将Σ

分成两部分:第10章积分1、符号积分2、数值积分2、数值积分——rsums函数例:2、数值积分——integral函数例:2、数值积分——integral2函数例:2、数值积分——quad2d函数例:quad2d函数的使用方法与integral2是类似的2、数值积分——integral3函数例:integral3函数的使用方法与integral2和integral1是类似的大学数学实验(Matlab版)第11章级数1、泰勒级数2、级数求和3、傅里叶级数1、泰勒级数——taylor函数参数F可以是符号型表达式,也可以是匿名函数,但不能是内联函数或M文件函数.例题:用taylor命令求y=sinx

在0点处的4、8、12阶泰勒展开,并画出它们的图像.1、泰勒级数——taylor函数例题:>>taylortool说明:生成计算Taylor级数的图形化界面,默认显示f(x)=xcosx

在区间

[−2π,2π]内的图形(实线)及其Taylor多项式级数函数的图形(虚线,在a=0附近的N=7阶展开),如图所示.1、泰勒级数——taylortool函数用户可以直接在图里修改f(x)、N、a,以及x

的上下界,然后按回车后即可看到计算结果.>>taylortool(‘f’)说明:对函数f(字符串类型的函数表达式),用图形化界面显示其Taylor展开式.例如:>>taylortool(’xˆ3*exp(x)’)可以计算并显示f(x)=x3ex在

0点处的7阶Taylor展开1、泰勒级数——taylortool函数第11章级数1、泰勒级数2、级数求和3、傅里叶级数说明:如果fk中只有一个变量,则在调用时可以省略该变量.例如:计算有限项级数20

+21

+···+264

的和>>symsum(2ˆk,k,0,64)2、级数求和——symsum函数例:2、级数求和——symsum函数第11章级数1、泰勒级数2、级数求和3、傅里叶级数MATLAB中没有现成的Fourier级数展开函数,但可以根据Fourier级数的定义编写一个函数来实现该算法.3、傅里叶级数设周期为2l

的周期函数f(x)满足收敛定理的条件(即Dirichlet条件),则它的Fourier级数展开式为3、傅里叶级数其中,进一步,如果f(x)仅在区间[a,b]上有定义,可以令l=(b−a)/2,并引入新变量

ˆx,使得x=ˆx

+l+a,带入f(x)中得h(ˆx),则h(ˆx)为区间[−l,l]上的函数;

然后对h(ˆx)进行周期性拓延,使其在其他区间也有定义,且h(ˆx)=h(kT+ˆx),其中T=2l,k

为任意整数;最后对h(ˆx)进行Fourier展开,并通过ˆx=x−l−a

将h(ˆx)替换为f(x).其中,3、傅里叶级数傅里叶函数的源代码见教材例,3、傅里叶级数

例,对函数进行Fourier展开,并画出拟合效果图.大学数学实验(Matlab版)第12章优化问题1、线性规划2、非线性规划——无约束优化3、非线性规划——约束优化4、多目标规划5、最小二乘规划1、线性规划1、线性规划参数f、A、b为必选项,其他参数为可选项参数x0表示初始值options为优化设置,详细说明请查阅帮助系统1、线性规划返回值:x为最优解,fval为函数在最优解处的函数值1、线性规划返回值:exitflag为终止迭代的条件,其值及含义如表1、线性规划返回值:output表示优化的一些信息,是一个结构体变量,各成员及说明见表1、线性规划返回值:lambda为各约束条件对应的拉格朗日乘子,也是一个结构体变量,各成员及说明见表转换为标准型:转换为标准型:1、线性规划——整数规划只能取整型1、线性规划——0-1规划第12章优化问题1、线性规划2、非线性规划——无约束优化3、非线性规划——约束优化4、多目标规划5、最小二乘规划(1)驻点法(2)用fminsearch函数(只能是实函数)2、非线性规划——无约束优化(3)用fminunc函数(实函数或复函数)第12章优化问题1、线性规划2、非线性规划——无约束优化3、非线性规划——约束优化4、多目标规划5、最小二乘规划3、非线性规划——约束优化:单变量其中,参数f、a和b为必选项,options为可选项3、非线性规划——约束优化:多变量其中,参数f和x0

为必选项,其他为可选项;nonlcon是非线性不等式约束和非线性等式约束,一般通过M函数文件来描述3、非线性规划——约束优化:多变量只有非线性约束和上下界约束。其中,非线性约束用M函数文件描述:3、非线性规划——约束优化:最大最小优化说明:参数f和x0为必选项,其他为可选项。

f是用M文件创建的函数向量3、非线性规划——约束优化:最大最小优化其中3、非线性规划——约束优化:二次规划此处的H为对称矩阵参数H和f为必选项,其他为可选项.3、非线性规划——约束优化:二次规划化为标准型第12章优化问题1、线性规划2、非线性规划——无约束优化3、非线性规划——约束优化4、多目标规划5、最小二乘规划4、多目标规划顾名思义,多目标规划是指有多个目标函数的优化问题.这类问题在实际中应用加多,如某生产商希望能获得较高利润的同时生产成本最小.多目标规划问题的解法较多,有理想解法、线性加权法、目标规划法、最大最小法等.4、多目标规划例如:4、多目标规划标准化后:4、多目标规划解法一:理想解法先对每一个目标函数进行优化,找到每一个目标函数的理想值;如果它们取到理想值时对应的决策变量是相等的,则多目标优化问题求解结束;否则,建立新的目标函数为每一个目标函数与其理想值之间的距离之和,再求新目标函数最小时对应的决策变量.4、多目标规划解法二:线性加权法将两个目标函数按一定的权重合并为一个目标函数,即,把多目标规划转换为单目标规划;然后再求单目标函数的最优化问题.4、多目标规划解法三:目标规划法其中,F(x)=[f1(x),...,fn(x)]T

为目标函数向量,g=[g1,...,gn]T

为目标函数想要达到的值,w为权重向量,一般取为g的绝对值,其他参数与约束规划相同.4、多目标规划解法三:目标规划法其中:(1)参数F、x0、g和w为必选项,其他为可选项;

(2)参数F为目标函数向量,x0为初始值,g为F中各函数的期望值,w为权重向量,一般取w=abs(g);

(3)attainfactor为目标达到因子,若为负数,表明目标函数值超过了期望值,若为正数,说明未达到.第12章优化问题1、线性规划2、非线性规划——无约束优化3、非线性规划——约束优化4、多目标规划5、最小二乘规划5、最小二乘规划最小二乘优化是一类非常特殊的优化,在曲线拟合、线性方程组近似求解等问题中较为常见.最小二乘优化问题的目标函数一般为若干函数的平方和,即也可以写成5、最小二乘规划——线性最小二乘若

F(x)中每一个分量fi

(x)是关于x

的线性函数,则称这类问题为线性最小二乘优化问题.这类问题相当于一个二次规划,但因为目标函数的特殊性,使得它还有更加简单的解法.下面介绍两种:5、最小二乘规划——线性最小二乘解法一:用lsqlin函数说明:参数C、d、A和b为必选项,其他为可选项;

resnorm为最优解对应的残差向量的2-范数的平方;

residual为残差向量,即residual=C·x−d5、最小二乘规划——线性最小二乘解法二:用lsqnonneg函数说明:参数C、d为必选项,其他为可选项5、最小二乘规划——非线性最小二乘用lsqnonlin函数说明:参数F和x0是必选项,其他为可选项;

jacobian为最优解处的雅克比矩阵,其第i

、j

列元素为fi(x)关于第xj

的偏导数在最优解处的函数值.大学数学实验(Matlab版)第13章常微分方程(组)1、符号求解2、求数值解1、符号求解例题1:用dsolve求y"−y'

=ex.1、符号求解例题2:用dsolve求y"−y'

=ex,初值条件y(0)=1,y'(0)=0.1、符号求解例题3:用求u'(x)=u(x)+v(x),v'(x)=u(x)−v(x)在初值条件为u(0)=1,v(0)=2下的解u(x)和v(x)第13章常微分方程(组)1、符号求解2、求数值解2、求数值解其中:t

是自变量,t0

是初值点,y0,y1,…,yn-1为y(t)在t0

处的零阶、一阶、…、n–1阶导数值(即初值)

(13.1)2、求数值解(13.1)2、求数值解(13.1)特别地:如果(13.1)中的F可以写成如下形式则Z'

可以写成其中这样,不难发现,这种情况是上种情况的一个特例.因此,这种情况也可以按上种情况来编写函数.但是,如果能用这种情况,尽量用这种情况编写M函数,因为MATLAB处理矩阵速度更快.说明:

(1)solver

返回一个列向量t和一个矩阵

y;

(2)t是自变量在tspan上的取值;

(3)y的第1列为与t对应的函数值【0阶导数值】,第2列为与t对应的一阶导数值,第3列为与t对应的二阶导数值,依次类推,直到n

-1阶导数值;

(4)因此在第3步中,用y(:,1)表示取自变量t处的函数值;

(5)读者可以根据需要输出或画出函数的其他阶导数值.其中:YP0是导数y'的初值条件例题4其他步骤(略)例题5M函数文件可以写成如下形式其他步骤(略)大学数学实验(Matlab版)第14章矩阵的生成及运算1、矩阵的生成2、矩阵的运算1、矩阵的生成常见的矩阵生成方法有四种:直接输入、通过矩阵编辑器输入、由函数自动生成和外部文件导入。其中,由函数自动生成的方法主要有冒号法、linspace法、特殊函数生成法(包括零矩阵、幺矩阵、单位阵、魔方阵等)本节在此基础上再引入几种新的自动生成矩阵的方法.1、矩阵的生成(1)用logspace函数生成等比例排列的向量函数logspace能够生成以10为底数的等比数列构成的向量,使用方法与linspace函数类似,即logspace(起始值,终止值,元素数目)与linspace函数不同的是,如果不写第三个参数,则默认生成50个元素.如:1、矩阵的生成(2)用diag函数生成对角矩阵或提取矩阵的对角元素向量1、矩阵的生成(2)用diag函数生成对角矩阵或提取矩阵的对角元素向量1、矩阵的生成(3)用vander函数生成范德蒙矩阵1、矩阵的生成(4)用函数tril和triu提取矩阵的下三角和上三角1、矩阵的生成(5)用hilb函数生成希尔伯特矩阵1、矩阵的生成(6)用sparse函数生成稀疏矩阵1、矩阵的生成(6)用sparse函数生成稀疏矩阵第14章矩阵的生成及运算1、矩阵的生成2、矩阵的运算2、矩阵的运算(1)初等变换2、矩阵的运算(2)伴随变换2、矩阵的运算(3)特征多项式2、矩阵的运算(3)特征多项式2、矩阵的运算(4)最小多项式2、矩阵的运算(5)正交矩阵2、矩阵的运算(5)正交矩阵2、矩阵的运算(5)正交矩阵2、矩阵的运算(5)正交矩阵2、矩阵的运算(5)正交矩阵2、矩阵的运算(6)广义逆矩阵如果矩阵A不是方阵,或是奇异的方阵,则它的逆是不存在的.如果存在一个矩阵B满足ABA=A,则称矩阵B是A的广义逆矩阵(或伪矩阵).

由代数学知识,满足上述条件的矩阵B是不唯一的.但是,对于给定的矩阵A,存在唯一的矩阵B同时满足如下的三条件:

(1)ABA=A;

(2)BAB=B;

(3)AB和BA都是对称的.此时称矩阵B是矩阵A的Moore-Penrose广义逆矩阵.2、矩阵的运算(6)广义逆矩阵2、矩阵的运算(6)广义逆矩阵2、矩阵的运算(7)矩阵的范数矩阵的范数是对矩阵的一种测度.在介绍矩阵范数之前,先介绍向量的范数.对于线性空间中的向量x,如果存在一个函数ρ(x)满足如下的三个条件:

(1)ρ(x)≥0,且ρ(x)=0的充分必要条件是x=0;(2)ρ(αx)=|α|ρ(x),α为任意实数;(3)对于向量x和y有ρ(x+y)≤ρ(x)+ρ(y)(Cauchy-Schwarz不等式),则称ρ(x)为向量x的范数.可以证明,下面给出的一族表达式都满足上述的三个条件2、矩阵的运算(7)矩阵的范数这里,||x||p

为向量范数的记号,表示向量x的p-范数.可以看出,2-范数就是欧式空间里向量的长度.

接下来介绍矩阵的范数:矩阵范数的定义要比向量的范数复杂,其数学定义为:对于任意的非零向量x,矩阵A=(aij)m×n

的范数为2、矩阵的运算(7)矩阵的范数常见的矩阵范数有如下四种:

其中,λmax

(AT

A)和trace(AT

A)分别表示矩阵AT

A的最大特征值和迹(对角线元素之和).2、矩阵的运算(7)矩阵的范数

说明:上述代码中的norm(x)等价于norm(x,2),即||x||2

,norm(A)等价于norm(A,2),表示||A||2

,norm(A,’fro’)表示||A||F

.2、矩阵的运算(9)矩阵的条件数在实际中,线性方程组Ax=b中的系数矩阵A一般是通过试验获取的,带有一定的误差.人们希望当这种误差很小时,所计算出的解与问题的准确解之间的误差也不大.遗憾的是,并非所有矩阵都是这样的.对于一些系数矩阵,个别元素的微小扰动会引起解的很大变化,称这种矩阵是病态的,反之,称它是良性的.病态与良性是相对的,通常用条件数来描述矩阵的这一特性.2、矩阵的运算(9)矩阵的条件数矩阵A的条件数等于A的范数与A的逆矩阵的范数的乘积,即

cond(A)=||A||·||A−1||.这样定义的条件数总是大于等于1的.条件数越接近于1,矩阵的性能越好;反之,性能越差.常见的矩阵范数有四种,因此矩阵的条件数也有四种:2、矩阵的运算(9)矩阵的条件数2、矩阵的运算(9)矩阵的条件数2、矩阵的运算(9)矩阵的条件数%验证:病态矩阵与良性矩阵的特点b=ones(5,1);%线性方程组的常数项ep=rand(5,5);%随机扰动%1、给魔方阵M增加随机扰动,并作为线性方程组的系数矩阵,%然后解方程组,看看解与不加扰动前的线性方程组之间的差异A1=M+10*ep;x1=A1\b;x0=M\b;r1=norm(x1-x0) %较小%2、希尔伯特阵H增加随机扰动,并作为线性方程组的系数矩阵,%然后解方程组,看看解与不加扰动前的线性方程组之间的差异A1=H+10*ep;x1=A1\b;x0=M\b;r2=norm(x1-x0) %较大大学数学实验(Matlab版)定义:关于线性方程组的求解,一般分为三种情况:唯一解、无穷多组解和近似解.求解:第15章线性方程组的求解1、线性方程组的唯一解2、线性方程组的通解3、线性方程组的近似解1、线性方程组的唯一解由代数学知识,当m=n且rank(A)=n时,线性方程组Ax=b

有唯一解即x=A−1b例如:1、线性方程组的唯一解1、线性方程组的唯一解上述代码中,x1和x2为数值解,x3为符号解,x4是由符号解转换过来的数值解.从运行结果上可以看出,符号解的误差为0,而直接用逆矩阵求出的数值解是有一定误差的,这个误差是在求逆矩阵过程中产生的.因此,在实际中,当矩阵A为奇异或接近奇异矩阵时,利用inv法可能会产生错误.第15章线性方程组的求解1、线性方程组的唯一解2、线性方程组的通解3、线性方程组的近似解2、线性方程组的通解当rank(A)=rank(C)=r≤n时,线性方程组Ax=b有无穷多解.此时,应先求出与原方程组对应的齐次方程组Ax=0的基础解系xi

(i=1,2,...,n−r),然后再计算原方程组的一个特解x0

,最后计算原方程组的通解其中,αi

为任意实数.例如2、线性方程组的通解2、线性方程组的通解2、线性方程组的通解该例还可以采用初等行变换方法求出,2、线性方程组的通解第15章线性方程组的求解1、线性方程组的唯一解2、线性方程组的通解3、线性方程组的近似解3、线性方程组的近似解当rank(A)<rank(C)时,线性方程组Ax=b没有解,这时只能用Moore-Penrose广义逆求解方程的最小二乘解x=pinv(A)∗b该解不满足原方程,但能使得||Ax−b||2

达到最小.例如3、线性方程组的近似解大学数学实验(Matlab版)第16章矩阵的变换与分解1、矩阵的相似变换及对角化2、二次型3、矩阵的分解1、矩阵的相似变换及对角化由代数学知识,对于n阶方

温馨提示

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

评论

0/150

提交评论