《数学建模讲义》课件.ppt

上传人(卖家):晟晟文业 文档编号:5106585 上传时间:2023-02-11 格式:PPT 页数:52 大小:393.50KB
下载 相关 举报
《数学建模讲义》课件.ppt_第1页
第1页 / 共52页
《数学建模讲义》课件.ppt_第2页
第2页 / 共52页
《数学建模讲义》课件.ppt_第3页
第3页 / 共52页
《数学建模讲义》课件.ppt_第4页
第4页 / 共52页
《数学建模讲义》课件.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、2ZMathematica侧重于数学方面,其它方面应用侧重于数学方面,其它方面应用不是很广泛不是很广泛Lindo,Lingo主要求解优化问题主要求解优化问题(建议与建议与Matlab结合使用结合使用)3MATLAB的发展史的发展史 MATLAB名字由名字由MATrix和和 LABoratory 两词的前三个字母两词的前三个字母组合而成。那是组合而成。那是20世纪七十年代,时任美国新墨西哥大学计世纪七十年代,时任美国新墨西哥大学计算机科学系主任的算机科学系主任的Cleve Moler出于减轻学生编程负担的动机,出于减轻学生编程负担的动机,为学生设计了一组调用为学生设计了一组调用LINPACK和和

2、EISPACK矩阵软件工具矩阵软件工具包库程序的的包库程序的的“通俗易用通俗易用”的接口,此即用的接口,此即用FORTRAN编写编写的萌芽状态的的萌芽状态的MATLAB。1984年由年由Little、Moler、Steve Bangert合作成立合作成立MathWorks公司,并把公司,并把MATLAB正式推向市场。从这时起,正式推向市场。从这时起,MATLAB的的内核采用内核采用C语言编写,而且除原有的数值计算能力外,还新增语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。了数据图视功能。1997年仲春,年仲春,MATLAB5.0版问世,紧接着是版问世,紧接着是5.1、5.2,以及

3、,以及和和1999年春的年春的5.3版,现在最高版本有版,现在最高版本有7.1。现今的。现今的MATLAB拥拥有更丰富的数据类型和结构、更友善的面向对象、更加快速精有更丰富的数据类型和结构、更友善的面向对象、更加快速精良的图形可视、更广博的数学和数据分析资源、更多的应用开良的图形可视、更广博的数学和数据分析资源、更多的应用开发工具。发工具。4MATLAB语言的主要特点语言的主要特点(1)具有丰富的数学功能)具有丰富的数学功能包括矩阵各种运算。如:正交变换、三角分解、特征值、常包括矩阵各种运算。如:正交变换、三角分解、特征值、常见的特殊矩阵等。见的特殊矩阵等。包括各种特殊函数。如:贝塞尔函数、勒

4、让德函数、伽码包括各种特殊函数。如:贝塞尔函数、勒让德函数、伽码函数、贝塔函数、椭圆函数等。函数、贝塔函数、椭圆函数等。包括各种数学运算功能包括各种数学运算功能.如如:数值微分数值微分,数值积分数值积分,插值插值,求求极值极值,方程求根方程求根,FFT,常微分方程的数值解常微分方程的数值解,符号运算符号运算,极限极限问题、积分问题等。问题、积分问题等。(2)具有很好的图视系统)具有很好的图视系统 可方便地画出二维和三维图形。可方便地画出二维和三维图形。图形用户界面图形用户界面GUI制作工具,可以制作用户菜单和控件。制作工具,可以制作用户菜单和控件。使用者可以根据自己的需求编写出满意的图形界面。

5、使用者可以根据自己的需求编写出满意的图形界面。高级图形处理。如:色彩控制、句柄图形、动画等。高级图形处理。如:色彩控制、句柄图形、动画等。5(3)可以直接处理声音和图象文件)可以直接处理声音和图象文件。(4)具有若干功能)具有若干功能非常强大非常强大的应用工具箱。的应用工具箱。(5)使用方便,具有很好的扩张功能。)使用方便,具有很好的扩张功能。声言文件。如:声言文件。如:WAV文件(例:文件(例:等)等).图象文件。如:图象文件。如:bmp、gif、pcx、tif 、jpeg等文件。等文件。如:如:OPTIMAL、SIMULINK、DSP、SIGNAL等等30多种多种.(6)具有很好的帮助功能

6、)具有很好的帮助功能 可以可以M文件转变为独立于平台的文件转变为独立于平台的EXE可执行文件。可执行文件。使用使用MATLAB语言编写的程序可以直接运行,无需编译。语言编写的程序可以直接运行,无需编译。提供十分详细的帮助文件(提供十分详细的帮助文件(PDF、HTML、demo文件)。文件)。联机查询指令:联机查询指令:help指令指令(例:(例:help elfun,help exp,help simulink),),lookfor关键词(例:关键词(例:lookfor fourier)。)。MATLAB的应用接口程序的应用接口程序API是是MATLAB提供的十分重要提供的十分重要的组件的组件

7、,由,由 一系列接口指令组成一系列接口指令组成。用户就可在。用户就可在FORTRAN或或C中中,把把MATLAB当作计算引擎使用当作计算引擎使用。6MATLAB的数据类型的数据类型 现有四种基本数据类型:双精度数组现有四种基本数据类型:双精度数组(7.0已改进已改进)、字符串字符串数组、元胞数组、构架数组。数组、元胞数组、构架数组。(矩阵是特殊的数组矩阵是特殊的数组)元胞数组(元胞数组(Cell Array)如同银行里的保险箱库一样。如同银行里的保险箱库一样。该数组的基本组分是元胞(该数组的基本组分是元胞(Cell),),以下标来区分。以下标来区分。元胞可以存放任何类型、任何大小的数组。元胞可

8、以存放任何类型、任何大小的数组。构架数组(构架数组(Structure Array)也能存放各类数据。也能存放各类数据。该数组的基本组分是构架(该数组的基本组分是构架(Structure),),以下标来区分。以下标来区分。构架必须在划分构架必须在划分“域域”后才能使用。后才能使用。数据不能存放于构架,只能存放在域中。数据不能存放于构架,只能存放在域中。构架的域可以存放任何类型、任何大小的数组。构架的域可以存放任何类型、任何大小的数组。不同构架的同名域中存放的内容可不同。不同构架的同名域中存放的内容可不同。同一个元胞数组中各元胞的内容可以不同。同一个元胞数组中各元胞的内容可以不同。7MATLAB

9、中变量的中变量的命名规则命名规则(1)变量名必须是变量名必须是不含空格不含空格的单个词;的单个词;(2)变量名变量名区分大小写区分大小写;(3)变量名必须以变量名必须以字母打头字母打头,之后可以是任意字,之后可以是任意字母、数字或下划线,母、数字或下划线,变量名中不允许使用标点符变量名中不允许使用标点符号号.(4)不区分变量与不区分变量与常量常量.一、变量与函数一、变量与函数1、变量、变量8特殊变量表特殊变量表92、数学运算符号及标点符号、数学运算符号及标点符号(1)MATLAB的每条的每条命令后,若为命令后,若为逗号逗号或或无无标点符号标点符号,则显示命令则显示命令的结果;若命令后为的结果;

10、若命令后为分分号号,则禁止显示结果,则禁止显示结果.(2)“%”后面所有文后面所有文字为注释字为注释.(3)“.”表示续行表示续行.+加法运算加法运算适用于适用于两两个数个数或或两两个矩阵个矩阵或或矩阵与向矩阵与向量量的运算的运算;不同符号不同符号用法稍有用法稍有差异差异。减法运算减法运算*乘法运算乘法运算.*点乘运算点乘运算/除法运算除法运算./点除运算点除运算乘幂运算乘幂运算.点乘幂运算点乘幂运算反斜杠表示左除反斜杠表示左除.103.常用数学函数常用数学函数注意:这些函数可以直接以注意:这些函数可以直接以向量或矩阵作为参数向量或矩阵作为参数,输出为,输出为对应向量或矩阵。对应向量或矩阵。函

11、函 数数名名 称称函函 数数名名 称称 sin(x)正弦函数正弦函数asin(x)反正弦函数反正弦函数 cos(x)余弦函数余弦函数acos(x)反余弦函数反余弦函数 tan(x)正切函数正切函数atan(x)反正切函数反正切函数abs(x)绝对值绝对值max(x)最大值最大值 min(x)最小值最小值sum(x)元素的总和元素的总和 sqrt(x)开平方开平方exp(x)以以e为底的指数为底的指数 log(x)自然对数自然对数log10(x)以以10为底的对数为底的对数 floor(x)取整取整log2(x)以以2为底的对数为底的对数 sign(x)符号函数符号函数fix(x)取整取整 11

12、4.1 M脚本文件脚本文件 对于一些比较对于一些比较简单的问题简单的问题,在指令窗中直接输入指令计算,在指令窗中直接输入指令计算。对于对于复杂计算复杂计算,采用脚本文件(,采用脚本文件(Script file)最为合适最为合适。MATLAB只是按文件所写的指令执行只是按文件所写的指令执行。M脚本文件的特点是:脚本文件的特点是:脚本文件的构成比较简单,只是一串按用户意图排列而脚本文件的构成比较简单,只是一串按用户意图排列而成的成的(包括控制流向指令在内的包括控制流向指令在内的)MATLAB指令集合。指令集合。M文件文件有两种形式有两种形式:脚本文件脚本文件(Script File)和和函数文件函

13、数文件(Function File)。这两种文件的扩展名,均为这两种文件的扩展名,均为“.m”Matlab的可执行文件。的可执行文件。4、M文件文件12M文件脚本文件建立方法:文件脚本文件建立方法:1.在在Matlab中中,点点:File-New-M-file,生成编辑窗口生成编辑窗口2.在编辑窗口中输入复杂的计算命令集合;在编辑窗口中输入复杂的计算命令集合;3.点:点:File-Save,存盘,文件名任意存盘,文件名任意易记忆的易记忆的.例、随机产生例、随机产生50个随个随机数,并用图形显示机数,并用图形显示结果结果(比较均匀分布与比较均匀分布与正态分布正态分布)a=rand(1,50);s

14、ubplot(1,2,1);plot(a);b=randn(1,50);subplot(1,2,2);plot(b);1020304050-2-1.5-1-0.500.511.521020304050-2-1.5-1-0.500.511.52134.2 M函数文件函数文件 与脚本文件不同与脚本文件不同,函数文件犹如一个,函数文件犹如一个“黑箱黑箱”,把一些数据,把一些数据送进并经加工处理,再把结果送出来。送进并经加工处理,再把结果送出来。MATLAB提供的函数指令大部分都是由函数文件定义的。提供的函数指令大部分都是由函数文件定义的。M函数文件的特点是:函数文件的特点是:从形式上看从形式上看,与

15、脚本文件不同,与脚本文件不同,函数文件的笫一行总是,函数文件的笫一行总是以以“function”引导的引导的“函数申明行函数申明行”。一般结构如下。一般结构如下function 因变量名因变量名=函数名(自变量名)函数名(自变量名)注释行注释行函数体函数体.returnfunction 因变量名因变量名=函数名(自变量名)函数名(自变量名)子函数子函数%(只在上函数中使用只在上函数中使用)%注释内容注释内容函数体函数体.return.144.3 M函数文件的一般结构函数文件的一般结构 典型典型 M函数函数文件的结构如下文件的结构如下:函数申明行函数申明行:位于函数文件的首行,以关键字:位于函数

16、文件的首行,以关键字 function 开开头,函数名以及函数的输入输出宗量都在这一行被定义。头,函数名以及函数的输入输出宗量都在这一行被定义。笫一注释行笫一注释行:紧随函数申明行之后以:紧随函数申明行之后以%开头笫一注释行。开头笫一注释行。该行供该行供lookfor关键词查询和关键词查询和 help在线帮助使用在线帮助使用。在线帮助文本区在线帮助文本区:笫一注释行及其之后的连续以:笫一注释行及其之后的连续以%开头的开头的所有注释行构成整个在线帮助文本。所有注释行构成整个在线帮助文本。编写和修改记录编写和修改记录:与在线帮助文本区相隔一个:与在线帮助文本区相隔一个“空空”行,行,也以也以%开头

17、,标志编写及修改该开头,标志编写及修改该M文件的作者和日期等文件的作者和日期等。函数体函数体:为清晰起见,它与前面的注释以:为清晰起见,它与前面的注释以“空空”行相隔。行相隔。15M文件建立方法:文件建立方法:1.在在Matlab中点中点:File-New-M-file2.在编辑窗口中输入程序内容在编辑窗口中输入程序内容3.点:点:File-Save存盘,文件名必须函数名一致。存盘,文件名必须函数名一致。例:定义函数例:定义函数 f(x1,x2)=100(x2-x12)2+(1-x1)2function f=fun(x)f=100*(x(2)-x(1)2)2+(1-x(1)2;return1.

18、建立建立M文件:文件:fun.m2.可以直接使用函数可以直接使用函数fun.m例如:计算例如:计算 f(1,2),只需在只需在Matlab命令窗口键入命令:命令窗口键入命令:x=1 2;fun(x)164.4 函数调用和参数传递函数调用和参数传递 在在MATLAB中,调用函数的常用形式是:中,调用函数的常用形式是:输出参数输出参数1,输出参数输出参数2,=函数名函数名(输入参数输入参数1,输入参数输入参数2,)函数调用可以嵌套,一个函数可以调用别的函数,甚至调函数调用可以嵌套,一个函数可以调用别的函数,甚至调用它自己用它自己(递归调用递归调用)。MATLAB允许使用比允许使用比“标称数目标称数

19、目”较少的输入输出变量,较少的输入输出变量,实现对函数的调用实现对函数的调用。17 MATLAB在函数调用上有一个与众不同之处在函数调用上有一个与众不同之处:函数所传递的函数所传递的参数具有可调性参数具有可调性。传递参数数目的可调性来源于如下两个传递参数数目的可调性来源于如下两个MATLAB永久变量:永久变量:函数体内的函数体内的 nargin 给出调用该函数时的输入参数数目。给出调用该函数时的输入参数数目。函数体内的函数体内的 nargout 给出调用该函数时的输出参数数目。给出调用该函数时的输出参数数目。只要在函数文件中包括这两个变量,就可以知道该函数文件只要在函数文件中包括这两个变量,就

20、可以知道该函数文件调用时的输入参数和输出参数数目。调用时的输入参数和输出参数数目。值得注意:值得注意:nargin、nargout 本身都是函数本身都是函数,不是变量,所不是变量,所以用户不能赋值,也不能显示。以用户不能赋值,也不能显示。“变长度变长度”输入输出变量:输入输出变量:varargin、varrgout。具有接受具有接受“任意多输入任意多输入”、返回、返回“任意多输出任意多输出”的能力的能力。184.5 MATLAB的程序流控制的程序流控制4.5.1程序流控制程序流控制 循环结构:循环结构:MATLAB提供提供两种两种循环方式。循环方式。分支结构:分支结构:ifelseend。/i

21、felseifelseendforend 循环和循环和while-end循环。循环。switch-case 结构。结构。for x=array commandsendwhile expression commandsendif expression commands1else commands2endif (expression1)commands1elseif (expression2)commands2 elseif (expression3)commands3 elseif else commands endswitch(a)case (a)1 commands1 case (a=)2

22、commands3 case 3 otherwise commandn end194.6 图形用户界面(图形用户界面(GUI)编程编程 现代的主流应用程序已经从命令行的交互方式转变为以图现代的主流应用程序已经从命令行的交互方式转变为以图形界面为主的交互方式,这主要是由于它给用户带来了操作形界面为主的交互方式,这主要是由于它给用户带来了操作和控制的方便与灵活性。和控制的方便与灵活性。(面向对象编程)(面向对象编程)MATLAB能够以比较简单的方式实现一系列的图形界面功能够以比较简单的方式实现一系列的图形界面功能。通过对控件、菜单属性的设置和能。通过对控件、菜单属性的设置和 Callback 的编

23、写,就能的编写,就能够满足大多数用户的需求。够满足大多数用户的需求。控件的控件的 Callback 属性:属性:Callback 属性的取值是字符串,可属性的取值是字符串,可以是某个以是某个M文件名或一小段文件名或一小段MATLAB语句语句。当用户激活控件当用户激活控件对象(对象(例例如如:在控件对象图标上单击鼠标左键:在控件对象图标上单击鼠标左键)时,应用程)时,应用程序就运行序就运行 Callback 属性定义的子程序。属性定义的子程序。菜单的菜单的 Callback 属性:属性:Callback 属性的取值是字符串,可属性的取值是字符串,可以是某个以是某个M文件名或一小段文件名或一小段M

24、ATLAB语句语句。当用户激活菜单当用户激活菜单对象时,若没有子菜单就运行对象时,若没有子菜单就运行 Callback 属性定义的子程序。属性定义的子程序。若有,先运行若有,先运行 Callback 属性定义的子程序,再显示子菜单。属性定义的子程序,再显示子菜单。202.4 M文件的调试文件的调试 编写编写 M文件时,错误(文件时,错误(Bug)在所难免。错误有两种:语法在所难免。错误有两种:语法(Syntax)错误和运行(错误和运行(Run-time)错误。错误。语法错误是指变量名、函数名的误写,标点符号的缺、漏等。语法错误是指变量名、函数名的误写,标点符号的缺、漏等。对于这类错误,通常能在

25、运行时发现,终止执行,并给出相应对于这类错误,通常能在运行时发现,终止执行,并给出相应的错误原因以及所在行号。的错误原因以及所在行号。运行错误是算法本身引起的,发生在运行过程中。相对语法运行错误是算法本身引起的,发生在运行过程中。相对语法错误而言,运行错误较难处理错误而言,运行错误较难处理。尤其是。尤其是M函数文件,它一旦运函数文件,它一旦运行停止,其中间变量被删除一空,错误很难查找。行停止,其中间变量被删除一空,错误很难查找。有两种调试方法:直接调试法和工具调试法。有两种调试方法:直接调试法和工具调试法。212.4 M文件的调试(续文件的调试(续1)直接调试法直接调试法:可以用下面方法发现某

26、些运行错误。:可以用下面方法发现某些运行错误。在在M文件中,将某些语句后面的分号去掉,文件中,将某些语句后面的分号去掉,迫使迫使M文件输文件输出一些中间计算结果,以便发现可能的错误。出一些中间计算结果,以便发现可能的错误。在适当的位置,添加显示某些关键变量值的语句(包括使在适当的位置,添加显示某些关键变量值的语句(包括使用用 disp 在内)。在内)。在原在原M脚本或函数文件的适当位置,增添指令脚本或函数文件的适当位置,增添指令keyboard。keyboard 语句可以设置程序的断点语句可以设置程序的断点。设置断点设置断点,单步执行单步执行来查找算法错误来查找算法错误debug;222.5

27、编程实践编程实践 例例 1 设 银 行 年 利 率 为设 银 行 年 利 率 为11.25%.将将10000元钱存入银元钱存入银行,问多长时间会连本带利行,问多长时间会连本带利翻一番?翻一番?脚本文件实现方式脚本文件实现方式(ex1.m):money=10000;years=0;rot=1+11.25/100;while money1 for i=1:year money=money*rot;endelse year=0;while money1 f=x2+1;elseif x=0 f=x3;else f=2*x;end例例2 计算分段函数的定积分计算分段函数的定积分,010211)(32 x

28、xxxxxxf242.5 编程实践编程实践脚本文件计算脚本文件计算(ex4.m):a(1)=100;b=a(1);for i=2:11 a(i)=a(i-1)/2;b=b+a(i);endaa=zeros(1,2*length(a);aa(1:2:end)=a;plot(aa),b例例3 一球从一球从100米高度自由落下米高度自由落下,每次落地后反跳回原高度的每次落地后反跳回原高度的一半一半,再落下再落下.求它在第求它在第10次落地时次落地时,共经过多少米共经过多少米?第第10次反次反弹有多高弹有多高?0510152025010203040506070809010025二二.常用函数简介常用函

29、数简介矩阵运算矩阵运算(含数组含数组)1.矩阵的建立与表示法:矩阵的建立与表示法:在命令窗口中输入:在命令窗口中输入:A=1,2,3;4,5,6;7,8,9 可以得到:可以得到:A=1 2 3 4 5 6 7 8 9若要显示整行或整列,则可以用若要显示整行或整列,则可以用(:)冒号来表示。冒冒号来表示。冒(:)代表矩阵中行代表矩阵中行(ROWS)或列或列(COLUMNS)的全部。的全部。例如执行命令:例如执行命令:A(:,2),就会显示第就会显示第2列的全部,结果列的全部,结果为:为:ans=2 5 8262.矩阵的四则运算符号:矩阵的四则运算符号:加加 “+”减减 “”乘乘 “*”乘方乘方“

30、”除除 “/”共轭转置共轭转置 “”非共轭转置非共轭转置“.”特殊符号特殊符号“.”“.*”,“./”,“.”左除左除“”例如:例如:b=1+2i;3+4ib=1.0000+2.0000i 3.0000+4.0000ibans=1.0000-2.0000i 3.0000-4.0000ib.ans=1.0000+2.0000i 3.0000+4.0000i运算非常灵活运算非常灵活273.其他特殊矩阵的生成方法:其他特殊矩阵的生成方法:1)eye(m,n)或或eye(m)产生产生m*n 或或 m*m的单位矩的单位矩阵。例如:阵。例如:eye(3,4)与与eye(3)分别产生如下矩阵:分别产生如下矩

31、阵:1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 12)zeros(m,n)或或 zeros(m)产生产生m*n 或或m*m 的的零矩阵。例如:零矩阵。例如:zeros(3,4)与与zeros(3)分别分别产生如下矩阵:产生如下矩阵:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0283)ones(m,n)或或ones(m)产生产生m*n或或m*m的全部的全部元素为元素为1的矩阵。例如:的矩阵。例如:ones(3,4)与与ones(3)分分别产生如下矩阵:别产生如下矩阵:1 1 1 1 1 1 1 1 1 1 1 1 1 1

32、1 1 1 1 1 1 14.常用矩阵函数常用矩阵函数:1)d=eig(A)-返回矩阵返回矩阵A的特征值所组成的列向的特征值所组成的列向量;量;v,d=eig(A)-返回分别由矩阵返回分别由矩阵A的特征向量和的特征向量和特征值(以其为主对角线元素,其余元素为零)特征值(以其为主对角线元素,其余元素为零)的两个矩阵。的两个矩阵。29例如执行命令:例如执行命令:d=eig(A)结果为:结果为:d=16.1168-1.1168-0.0000 例如执行命令:例如执行命令:v,d=eig(A)结果为:结果为:v=d=0.2320 0.7858 0.4082 16.1168 0 0 0.5253 0.08

33、68 -0.8165 0 -1.1168 0 0.8187 -0.6123 0.4082 0 0 -0.0000 其中其中v(:,i)为为d(i,i)所对应的特征向量。所对应的特征向量。302)det(A)计算行列式计算行列式A的值。例如的值。例如det(A)结结果为:果为:ans=03)inv(A)求矩阵求矩阵A的逆。例如的逆。例如:inv(A)结果为:结果为:Warning:Matrix is close to singular or badly scaled.Results may be inaccurate.RCOND=2.055969e-018.ans=1.0e+016*-0.450

34、4 0.9007 -0.4504 0.9007 -1.8014 0.9007 -0.4504 0.9007 -0.4504314)orth(A)返回对应于返回对应于A的正交化矩阵。例如:的正交化矩阵。例如:orth(A)结果为:结果为:ans=0.2148 0.8872 0.5206 0.2496 0.8263 -0.38795)poly(A)若若A为一矩阵,则返回为一矩阵,则返回A的特征多项式。例的特征多项式。例如:如:poly(A)结果为:结果为:ans=1.0000 -15.0000 -18.0000 -0.0000 若若A为一向量,则返回以为一向量,则返回以A的元素为根的特征多项式。的

35、元素为根的特征多项式。例如:例如:r=1,2,3;p=poly(r)结果为:结果为:p=1 -6 11 -66)rank(A)计算矩阵计算矩阵A的秩。例如:的秩。例如:r=rank(A)结果为:结果为:r=2 325.矩阵分解:矩阵分解:1)q,r=qr(A)将矩阵将矩阵A做正交化分解,使得做正交化分解,使得A=q*r。q为为单位矩阵单位矩阵(unitary matrix),其范数(其范数(norm)为)为1。r为对为对角化的上三角矩阵。例如:角化的上三角矩阵。例如:q,r=qr(A)q=-0.1231 0.9045 0.4082 -0.4924 0.3015 -0.8165 -0.8616

36、-0.3015 0.4082 r=-8.1240 -9.6011 -11.0782 0 0.9045 1.8091 0 0 -0.0000 norm(q)ans=1.0000332)L,U=lu(A)将矩阵将矩阵A做对角线分解,使得做对角线分解,使得A=L*U,L为下三角矩阵(为下三角矩阵(lower triangular matrix),),U为上三角矩阵为上三角矩阵(upper triangular matrix)。例如:例如:L,U=lu(A)L=0.1429 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0 U=7.0000 8.0000 9.0000

37、0 0.8571 1.7143 0 0 0.0000346.关系运算符关系运算符 M AT L A B有用于比较矩阵的六个关系运算符,也可以有用于比较矩阵的六个关系运算符,也可以对矩阵与一个标量进行比较,即矩阵中的每个元素与标量进行对矩阵与一个标量进行比较,即矩阵中的每个元素与标量进行比较。关系运算符如下:比较。关系运算符如下:小于小于 大于大于=大于等于大于等于=等于等于=不等于不等于 关系运算符比较对应的元素,产生一个仅包含关系运算符比较对应的元素,产生一个仅包含1和和0的具有的具有相同维数的矩阵。其元素是:相同维数的矩阵。其元素是:1 比较结果是真比较结果是真0 比较结果是假比较结果是假

38、 在一个表达式中,算术运算符优先级最高,其次是关系运在一个表达式中,算术运算符优先级最高,其次是关系运算符,最低级别是逻辑运算符。圆括号可以改变其顺序算符,最低级别是逻辑运算符。圆括号可以改变其顺序。可用于可用于同维矩阵比较同维矩阵比较及及矩阵与单个元素矩阵与单个元素比较。比较。357.逻辑运算符逻辑运算符 在在M AT L A B中有四种逻辑运算符:中有四种逻辑运算符:&与与|或或 非非xor 异或异或 逻辑运算符的运算优先级最低。在一个表达式中,关系逻辑运算符的运算优先级最低。在一个表达式中,关系运算符和算术运算符的运算级别运算符和算术运算符的运算级别要高于逻辑运算符。要高于逻辑运算符。x

39、or和和or之间的差别在于:表达式中至少有一个是真,那之间的差别在于:表达式中至少有一个是真,那么么or是真;是真;xor是表达式中有一个是真但不能两者均为真时才是表达式中有一个是真但不能两者均为真时才为真。运算符为真。运算符&和和|比较两个相同维数的矩阵,如同前一节一样,比较两个相同维数的矩阵,如同前一节一样,它也能使一个标量与一个矩阵进行比较。逻辑运算符是按元素它也能使一个标量与一个矩阵进行比较。逻辑运算符是按元素比较的。零元素表示逻辑值假,任何其他值的元素表示逻辑值比较的。零元素表示逻辑值假,任何其他值的元素表示逻辑值真。其结果是一个包含真。其结果是一个包含1和和0的矩阵。的矩阵。368

40、.逻辑函数逻辑函数 在在MATLAB中有几个逻辑函数。在以下定义的函数中,假中有几个逻辑函数。在以下定义的函数中,假设设A是一个是一个mn的矩阵,的矩阵,x是一个向量。是一个向量。在一些计算中,很重要的一点是要在给定的矩阵中以一定在一些计算中,很重要的一点是要在给定的矩阵中以一定的特征定位。例如,在部分选主元的高斯消去法中,必须在工的特征定位。例如,在部分选主元的高斯消去法中,必须在工作列中寻找最大的项。作列中寻找最大的项。MATLAB命令命令find可以用于这种情况。可以用于这种情况。find(x)返回一个返回一个x中包含非零元素的下标的向量。如果所中包含非零元素的下标的向量。如果所有的元素

41、都是零,那么返回一个空矩阵,即有的元素都是零,那么返回一个空矩阵,即。find(A)返回一个长的列向量,表示返回一个长的列向量,表示A中包含非零元素的下中包含非零元素的下标向量。标向量。u,v=find(A)返回向量返回向量u和和v,它们包含,它们包含A中的非零元素的中的非零元素的下标,即下标,即A中元素中元素(uk,vk)为非零。为非零。u,v,b =find(A)返回包含返回包含A中非零元素的下标向量中非零元素的下标向量u和和v以以及一个包含对应非零元素的向量。及一个包含对应非零元素的向量。A中元素中元素(uk,vk)为非零并为非零并且能在且能在bk中找到。中找到。命令命令find可以与关

42、系运算符合用,这样使命令更有用。例如可以与关系运算符合用,这样使命令更有用。例如:index=find(x0.5)378.逻辑函数逻辑函数(续续)any(x)如果如果x中的有一个元素为非零值,那么返回中的有一个元素为非零值,那么返回1;否则,返回;否则,返回0。any(A)对对A进行列运算,根据相应列是否包含非零元素,返回一个带进行列运算,根据相应列是否包含非零元素,返回一个带1和和0的行向量。的行向量。all(x)如果所有的元素都是非零值,返回如果所有的元素都是非零值,返回1;否则,返回;否则,返回0。all(A)对对A进行列操作,根据相应列是否所有元素都为非零值,返回进行列操作,根据相应列

43、是否所有元素都为非零值,返回带带1和和0的一个行向量。的一个行向量。例:例:all(x =5)、all(all(A=A)isnan(A)返回一个维数与返回一个维数与A相同的矩阵,在这个矩阵中,对应相同的矩阵,在这个矩阵中,对应A中有中有N a N处为处为1,其他地方为,其他地方为0。isinf(A)返回一个维数与返回一个维数与A相同的矩阵,在这个矩阵中,对应相同的矩阵,在这个矩阵中,对应A中有中有inf处为处为1,其他地方为,其他地方为0。isempty(A)如果如果A是一个空矩阵,返回是一个空矩阵,返回1;否则返回;否则返回0。isequal(A,B)如果如果A和和B是相同的,即有相同的维数

44、和相同的内容,是相同的,即有相同的维数和相同的内容,则返回则返回1。isreal(A)如果如果A是一个不带虚部的实矩阵,则返回是一个不带虚部的实矩阵,则返回1;否则,返回零。;否则,返回零。isfinite(A)返回一个与返回一个与A维数相同的矩阵。在这个矩阵中,维数相同的矩阵。在这个矩阵中,A中元素中元素是有限的,则对应元素为是有限的,则对应元素为1;否则,为零。;否则,为零。38二、图形功能二、图形功能2维维1.2维图形生产维图形生产 函数函数plot例子:例子:1)y=0 0.58 0.70 0.95 0.83 0.25;plot(y)2)x=0:2*pi/30:2*pi;y=sin(x

45、);plot(x,y)多条曲线:多条曲线:x=0:2*pi/30:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2)命令命令hold on;hold off函数函数linspase线型和颜色:线型和颜色:plot(x,y1,.+,x,y2,-*)标记:标记:xlabel,ylabel,title,text,gtext(sinx)坐标系控制:坐标系控制:axis多幅图形:多幅图形:subplot(m,n,p)画面分成画面分成mn区域的第区域的第p个区域中画图;个区域中画图;画函数图象:画函数图象:fplot(sin(x)./x,-20 20-0.4 1.2),gte

46、xt(sin(x)/x)39二、图形功能二、图形功能3维维2.3维图形维图形mesh、surf、plot3()等等 例子:例子:1)做函数图形做函数图形x=-10:0.3:10;y=x;X,Y=meshgrid(x,y);Z=sqrt(X.2+Y.2);Z=sin(Z)./Z;mesh(X,Y,Z);(或或surf(X,Y,Z)2)空间曲线空间曲线螺旋线螺旋线 t=0:pi/50:10*pi;plot3(sin(t),cos(t),t)3)等高线等高线 contour 对对1),hold on;contour3(X,Y,Z,10,r)2222sinyxyxz 40三、多项式:三、多项式:多项式

47、是用多项式是用向量向量形式来表示,从最右边算起,第一个为形式来表示,从最右边算起,第一个为0阶系数,第二个为阶系数,第二个为1阶系数,依次类推。例如一个元三次多项阶系数,依次类推。例如一个元三次多项式:式:4x3+3x2+2x+1用用向量向量4 3 2 1来表示。来表示。1.多项式的运算:多项式的运算:1)乘:乘:conv指令执行多项式的相乘运算,指令格式为:指令执行多项式的相乘运算,指令格式为:z=conv(x,y)例如:例如:x=1 3 5;y=2 4 6;z=conv(x,y)z=2 10 28 38 30 如果要对两个以上的多项式进行相乘,可以重复使用如果要对两个以上的多项式进行相乘,

48、可以重复使用conv指令,例如:(指令,例如:(x,y同上)同上)conv(conv(x,y),x)ans=2 16 68 172 284 280 150412)分解:与分解:与1)相反,用)相反,用deconv指令,其指令格式为:指令,其指令格式为:z,r=deconv(x,y)表示表示x除以除以 y商为商为z,余数为,余数为r。例如:例如:z,r=deconv(z,x)z=2 4 6 r=0 0 0 0 03)求根:求根:roots指令用于求多项式的根。例如:指令用于求多项式的根。例如:fx=1 3 2;rootoffx=roots(fx)rootoffx=-2 -1有如有如roos(1

49、0 1)424)polyval(p,x)计算多项式计算多项式p在在x处的值,其中处的值,其中x可以是数可以是数或向量或矩阵。或向量或矩阵。例如:例如:p=1 -6 11 -6;x=1;p1=polyval(p,x)结果为:结果为:p1=0 x=1,2,3;p2=polyval(p,x)结果为:结果为:p2=0 0 0 x=A;p3=polyval(p,x)结果为:结果为:p3=0 0 0 6 24 60 120 210 3365)polyder(p)求求p的微分多项式。的微分多项式。例如:例如:p=1-6 11-6;dp=polyder(p)dp=3 -12 1143 6)r,p,k=resi

50、due(a,b)求求a/b的部分因式分解。若多项式的部分因式分解。若多项式a,b都没有重根都没有重根,则则:例如用求例如用求x/(x2+3x+2)的部分因式分解的部分因式分解:x=1 0;y=1 3 2;r,p,k=residue(x,y)r=2 -1 p=-2 -1 k=又例又例:x=5 3-2 7;y=-4 0 8 3;r,p,k=residue(x,y);当输入三个参当输入三个参数数 r,p,k 时,该函数时,该函数又会生成原来的函数。又会生成原来的函数。例如:例如:x,y=residue(r,p,k)x=1 0 y=1 3 244三三、符号变量、符号运算、符号变量、符号运算符号运算工具

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(《数学建模讲义》课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|