




已阅读5页,还剩217页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内容简介本书主要讲授大学工科数学课程中的线性代数、微积分、常微分方程、概率论与数理统计等重要数学方法用matlab软件的实现过程及其应用,内容分五个部分:第一部分为matlab软件使用简介,介绍matlab软件的基本内容;第二部分为线性代数实验,介绍用matlab软件求解线性方程组、计算矩阵特征值和特征向量、进行矩阵的相似对角化及矩阵分解的方法;第三部分为微积分实验,介绍用matlab软件进行符号微积分运算、数值微分和数值积分计算的方法;第四部分为常微分方程实验,介绍用matlab软件求解线性(非线性)微分方程(组)的解析解和数值解、进行动态仿真的方法;第五部分为概率论与数理统计实验,介绍用matlab软件进行随机变量的相关计算、随机数的产生及样本数据统计与可视化的方法。另外,针对具体内容介绍了相应的应用实例,以帮助学生逐步学会用所学知识去解决实际问题。每一章后附有一定量的实验题,以供学生课后上机练习及实验。本书适用于理工科院校大学本、专科学生,以及具备工科数学知识和计算机知识的其他科技工作者。前 言“数学实验”是在数学应用于各个学科领域,特别是应用于工程技术领域的过程中产生的,是伴随着计算机的广泛使用和数学软件的有效开发而发展的,它着重体现了“用数学”和“实现数学”的理念。“用数学”是指应用数学理论知识解决相关领域中的实际问题;“实现数学”是指通过计算机及数学软件实现部分数学结果的理论推导和计算过程,使得抽象的数学内容直观化、可视化。数学实验课程是大学工科数学课程教学改革与建设的主要成果之一,目前已在全国各高校广泛开设,并已成为大学工科数学课程的重要组成部分。数学实验课开设的主要目的是通过“数学实验”使学生深入理解数学基本概念和基础理论、熟悉并掌握常用的数学软件,培养学生应用数学知识并结合计算机工具解决实际问题的能力。数学实验课将数学知识与计算机应用有机地结合起来,以数学知识为背景、以数学软件为工具,为学生自觉学习数学方法、动手解决实际问题搭建了平台,对提高学生学习数学的兴趣、加强学生的数学理论基础、培养学生的开拓性思维等具有重要作用。本书主要讲授大学工科数学课程中的线性代数、微积分、常微分方程、概率论与数理统计等重要数学方法用matlab软件的实现过程,内容分五个部分:第一部分为matlab软件使用简介,介绍功能强大的matlab软件的基本运行,变量、矩阵、数组及其运算,函数及语句和m文件的编写,以及绘图功能及数据的导入导出等。第二部分为线性代数实验,介绍用matlab软件求解线性方程组、计算矩阵特征值和特征向量以及进行矩阵相似对角化和矩阵分解的方法。第三部分为微积分实验,介绍用matlab软件进行符号微积分运算、数值微分、函数插值和数值积分计算的方法。第四部分为常微分方程实验,介绍用matlab软件求解线性(非线性)微分方程(组)的解析解和数值解、进行向量场绘制和动态仿真的方法。第五部分为概率论与数理统计实验,介绍用matlab软件进行随机变量相关计算、随机数的产生,及进行样本数据的统计描述与可视化的方法。另外,针对具体方法介绍了相应的应用实例,所以更有利于培养学生“用数学”的意识和能力。本书的主要阅读对象是理工科院校本专科学生。数学实验课对学生后继课程的学习,特别是学生在课程设计和毕业设计等环节中的学习和研究具有重要帮助,提供思想和方法的指导。本课程也将为学生进一步学习数学建模、参加数学建模竞赛、利用数学方法解决各个领域中的实际问题打下良好的基础。本书由陈东彦老师组织编写,主要由刘凤秋、李善强、曹作宝编写,牛犇、宋显华、孙伟参与了部分内容的编写,田广悦老师对书中各部分内容的选编给与了很多具体的指导。由于缺乏经验、水平有限,书中难免有不妥之处,希望同行专家及广大读者批评指正! 编者 目 录内容简介1前 言2第1章 matlab软件使用简介81.1 matlab软件使用入门81.1.1 matlab启动/退出81.1.2 matlab操作的注意事项及常用技巧111.1.3 matlab帮助111.2 matlab的变量和表达式131.3 matlab矩阵创建及其运算161.3.1 matlab矩阵的创建161.3.2 matlab矩阵的运算181.4 m文件的编写与调用211.4.1 文件的操作221.4.2 命令文件231.4.3 函数文件241.5 matlab编程251.5.1 matlab常用的程序控制语句251.5.2 matlab编程应用301.6 matlab基本绘图321.6.1二维图形的绘制321.6.2 三维图形的绘制381.7 matlab数据的导入与导出411.7.1 导入数据411.7.2 导出文本文件441.7.3 对ms-excel电子表格文件的操作46实验 148第2章 线性代数实验502.1 线性方程组的求解502.1.1 matlab中矩阵的相关运算502.1.2 线性方程组的求解522.1.3 应用实例562.2 矩阵的特征值与特征向量及其相似对角化592.2.1 矩阵的特征值与特征向量592.2.2 矩阵的相似对角化612.2.3 应用实例642.3 矩阵的分解682.3.1 矩阵的lu分解682.3.2 矩阵的qr分解692.3.3 矩阵的cholesky分解702.3.4 矩阵的奇异值分解712.3.5* 矩阵的hessenberg分解742.3.6* 矩阵的schur分解75实验 277第3章 微积分实验803.1 微积分符号运算803.1.1 符号变量与符号表达式803.1.2 符号函数的极限813.1.3 符号函数的微分833.1.4 符号函数的积分883.1.5 符号函数的求和与泰勒多项式913.1.6 应用实例933.2 数值微分953.2.1 数值微分计算方法953.2.2 数值微分的matlab实现973.2.3 应用实例973.3 函数插值983.3.1 拉格朗日插值993.3.2 函数插值的matlab实现1003.3.3 应用实例1033.4 数值积分1063.4.1 数值积分计算方法1063.4.2 误差估计和收敛性1133.4.3 数值积分的matlab实现1143.4.5 应用实例1203.5* 二次曲面与曲面交线的绘制1223.5.1 二次曲面1223.5.2 空间两曲面的交线124实验 3127第4章 常微分方程实验1294.1 常微分方程及其模型1294.1.1 常微分方程的基本概念1294.1.2 常微分方程模型1314.2 常微分方程解析解的matlab实现1334.3 常微分方程数值解及其matlab实现1364.3.1 数值解的euler法1374.3.2 数值解的runge-kutta法1404.3.3 常微分方程数值解的matlab实现1424.4* 向量场绘图及simulink在求解微分方程上的应用1474.4.1 向量场绘图1474.4.2. simulink应用148实验 4158第5章 概率论与数理统计实验1605.1 随机变量及概率分布1605.1.1 概率密度函数值的计算1615.1.2 概率密度函数的可视化1645.1.3 分布函数的计算1685.1.4 逆累积分布函数的计算1705.1.5 随机变量数字特征的计算1735.2 随机数的产生及应用1755.2.1随机数的产生1755.2.2应用实例1785.3 样本的统计描述1815.3.1 样本的统计量及其计算1815.3.2 样本的分布及其可视化1885.3.3 应用实例1945.4 参数估计与假设检验1985.4.1 参数估计及其matlab实现1985.4.2 假设检验及其matlab实现2015.4.3 应用实例204实验 5207附 录209附表1-1 常用三角函数表209附表1-2 常用计算函数209附表1-3 文件操作函数表210附表5-1 常见分布概率密度函数表210附表5-2 常见分布函数表212附表5-3 专用函数计算概率密度函数表213附表5-4 专用函数计算累积概率值函数表214附表5-5 常用临界值函数表215附表5-6 常见分布的均值和方差215附表5-7 随机数产生函数表216附表5-8 参数估计函数表217参考文献219第1章 matlab软件使用简介matlab是矩阵实验室(matrix laboratory)的简称,由美国mathworks公司出品,与mathematica、maple并称为三大数学软件。matlab是一个功能强大的常用数学软件,它不但可以解决数学中的数值计算问题,而且可以解决符号演算、矩阵运算、绘制图形、实现算法、创建用户界面和连接其它编程语言的程序等问题,并且能够方便地绘出各种函数图形。matlab主要应用于工程计算、控制设计、信号与图像处理、信号检测、金融建模设计与分析等领域。它使用方便,输入简洁,并且很容易由用户自行扩展,因此已成为国内外许多大学教学和科学研究中最常用且必不可少的工具。不同的操作系统有相应的matlab版本,本书介绍windows操作系统下的matlab 7.1版本的基本使用。1.1 matlab软件使用入门1.1.1 matlab启动/退出1. 启动matlabwindows 版本的matlab按照安装光盘中的安装说明成功安装后,系统会在windows【开始】菜单的【程序】子菜单中加入启动matlab命令的图标,用鼠标单击此图标就可启动matlab系统,如图1.1。图1.1 启动matlab启动matlab后,就可以进入matlab的工作环境。首先出现matlab的图标,接着就进入了其默认的桌面系统如图1.2。图1.2是matlab桌面系统的默认界面(通过更改desktop菜单里的选项可以组合不同的窗口模式)。左上视窗为当前目录(current directory),可切换为工作空间(workspace);其左下视窗为历史命令(command history),可切换为当前目录(current directory);右半个视窗为命令窗口(command window),命令窗口是用户与matlab进行人机交互的主要环境,在此可输入命令或执行m文件,是命令窗口的提示符,可以在它后面输入命令或输入语句。图1.2 matlab界面2matlab基本演示下面通过三个实例来初步了解matlab的操作和功能。例1.1计算,并输出的值。x1=sqrt(2), x2=pix1 = 1.4142x2 = 3.1416思考题1:例1.1中的变量x1和x2中间 “,”能否去掉,请验证你的结果?注:matlab在提示符后的每一行输入后需要输入,即enter键(回车)。例1.2绘制在区间,上的图形。 x,y=meshgrid(-8:0.5:8); r=sqrt(x.2+y.2)+eps; z=sin(r)./r; surf(x,y,z) % surf函数绘制由矩阵x,y,z所确定的曲面输出图像如图1.3所示:图1.3 直角坐标的图形例1.3 极坐标绘图演示。t=0:0.01:2*pi; polar(t,sin(6*t) % 图1.4图1.4 极坐标绘图3. 退出matlab若要退出matlab,只需用鼠标点击其系统集成界面右上角的关闭按钮,或者在命令窗口输入exit或quit命令即可。1.1.2 matlab操作的注意事项及常用技巧1. 注意事项(1)在命令窗口工作区中输入matlab命令后,须按下enter键,matlab才能执行所输入的命令,否则不执行该命令。(2)matlab区分字母大小写。(3)一般情况下,在命令窗口中输入一个命令并按下enter键,计算机会显示此次输入的执行结果。为了简便,在后续的章节中我们将不再显示符号。(4)如果用户不想显示输入的结果,只要在所输命令的后面加上一个分号“;”即可。如:x= 2 + 3 x=5x= 2 + 3 ; (5)可以在某一行结尾处键入3个英文句号“”实现续行的目的。如:q=56+sin(pi)+exp(3)+(1+2+3+4+5)/sin(x). -5*x+1/2-567/(x+y)(6)matlab中的变量必须为字母、数字及某些符号组合,某些情况也允许输入汉字,但标点符号必须是英文状态下的标点符号。(7)matlab中不需要专门定义变量类型,系统会自动根据表达式的值或输入的值来确定变量的数据类型。(8)命令行与m文件中的注释语句都以百分号“%”开始;语句行中百分号后面的该行内容将被忽略而不被执行,在m文件中%后面的语句可以用help命令显示出来。2. 常用技巧特殊的功能键如下:(1)esc恢复当前命令输入前的空白状态。(2)调出上一行命令。(3)调出下一行命令。其中,为键盘中的向上键,为键盘中的向下键。后两个功能键在程序调试时很有用。在matlab实际使用中,往往需要对刚执行过的命令进行修改后重新执行,为了避免重复输入,可用调出原命令后再做修改。1.1.3 matlab帮助matlab的离线帮助文件内容丰富,是学习matlab的最佳资料,学习matlab首先要学会matlab帮助的使用。在命令窗口中输入help命令或直接用鼠标左键单击菜单中的help按钮(快捷键f1),可以打开如图1.5所示的帮助窗口。图1.5 matlab帮助窗口图1.5中左上角有四个可以切换的选项页,分别为contents,index,search和demos,可以根据需要打开相应的选项页查找所需的信息。当遇见一个新的函数时,可通过search来进行查找其功能及详细用法。demos提供了大量的演示文件,也为初学者提供帮助。matlab还提供了在线帮助功能,但用户需要连接网络。下面介绍一下通过search来查找sin函数。进入帮助界面后选中search选项页进入下一界面并在后面空白处输入sin,点击go按钮就会看到如图1.6的结果。图1.6 matlab中的seacrch for 搜索功能还可以在命令窗口直接输入查找命令,例如 help sin sin sine. sin(x) is the sine of the elements of x. see also asin, sind. overloaded functions or methods (ones with the same name in other directories) help sym/sin.m reference page in help browser doc sin借助于matlab提供的帮助系统,可以解决在使用matlab过程中遇到的许多问题。1.2 matlab的变量和表达式1. matlab变量命名规则(1)matlab中变量名可以包含字母、数字及下划线,但必须以字母开头,后面最多跟63个字母或数字,如x,y,asd_f,d3er45等都是合法的变量名。(2)变量名区分大小写,如ab与ab表示两个不同的变量。(3)注意不要用matlab中的内部函数或命令名作为变量名。如果内部函数用作变量名,内部函数将失效。2. 与工作空间中的变量有关的函数1)列出变量函数:who 功能:列出当前工作空间中的变量,且内存中的当前变量以简单形式列出函数:whos功能:列出当前内存变量的名称、大小、类型等信息2)清除变量函数:clear功能:清除工作空间中的所有变量,用于释放系统内存函数:clear all功能:清除函数工作空间和基本工作空间的所有函数变量,全局变量和类函数:clc功能:清除命令窗口3. matlab的运算符1)数学运算符+(加号),-(减号),*(乘号),(左除),/ (右除), (乘幂)2)关系运算符(大于),=(大于等于),= =(等于),=(不等于)3)逻辑运算符&(逻辑与运算),|(逻辑或运算),(逻辑非运算)例1.4 已知矩阵,对其做简单的关系与逻辑运算。a=1, 2; 1, 2; b=1, 1; 1 ,2; c=(a56+sin(pi)+exp(3) %计算结果赋给默认变量ansans =1.5645e+004 %即为1.5645104a=56+sin(pi)+exp(3) %计算结果赋给变量aa =1.5645e+004a=56+sin(pi)+exp(3);即如果在表达式后面加“;”,则执行后不显示运算结果。例1.5中的正弦、指数函数是matlab自带的函数。matlab中还有很多类似的函数,常用的函数详见附录中的附表1-1和1-2。5. matlab的数据显示matlab系统中数值数据的存储和计算默认都是双精度,如果需要可以利用format命令来调整数据的显示格式。matlab默认显示格式为format loose(松散格式),屏幕的显示会有一些空行,占用更大的篇幅,因此可以在命令语句输入前,输入显示格式命令format compact(紧凑格式)。此外,format命令还可以用于控制数字显示的方式,例如format rat表示此后的数据显示为近似的有理数。下面是format用于控制浮点变量的输出精度的八种格式,如表1.1所示。表1.1 format用于浮点数的八个格式类型结果例子format short固定5个小数的输出3.1416format long固定15个小数的输出3.14159265358979format short e带有5位精度的浮点格式3.1416e+000 format longt e带有15位精度的浮点格式3.141592653589793e+002format short g带有5位数的最佳的定点数或浮点数3.1416format long g带有15位数用于显示double、7位用于显示single的最佳的定点数或浮点数3.14159265358979format short eng工程格式,至少5个有效小数和幂为3的数3.1416e+007format long eng工程格式,正好有16位有效数字和幂为3的倍数3.14159265358979e+081例1.6 分别用五位定点、十五位定点及有理数形式将表示出来。a=5+sin(7);format short , a a =5.6570format long, aa =5.65698659871879format rat, aa =3117/551 6. matlab中的常量在matlab中有些变量是固有的,在使用时注意轻易不要对这些变量重新赋值以免出现错误。一些常见变量及具体意义见表1.2。表1.2 matlab中常量常量符号常量含义i 或j虚数单位,定义为i2=j2=-1inf 或inf正无穷大,由零做除数引入此常量nan不定式,表示非数值量,产生于0/0,/,0*等运算pi圆周率的双精度表示eps容差变量,pc上此值为2-52realmin最小浮点数,2-1022realmax最大浮点数,210231.3 matlab矩阵创建及其运算matlab的基本运算单位是矩阵,能否熟练掌握矩阵的输入、各种数值运算以及矩阵函数的使用是能否学好matlab的关键。1.3.1 matlab矩阵的创建1. 通过输入直接创建矩阵输入方法是先键入左方括号“”,然后按行直接键入矩阵的所有元素,最后键入右方括号“”。注意:整个矩阵以“”和“ ”作为首尾,同行的元素用“,”或空格隔开,不同行的元素用“;”或按enter键来分隔;矩阵的元素可以是数字或表达式。例1.7 直接输入创建矩阵。a = 1, 2, 3; 4, 15, 60; 7, 8, 9a = 1 2 3 4 15 60 7 8 9 a=1, 2, 34, 15, 607, 8, 9 a = 1 2 3 4 15 60 7 8 92. 相关函数创建矩阵matlab提供了若干函数来创建一些特殊矩阵,见表1.3。表1.3 生成特殊矩阵的相关函数函数名称函数功能函数名称函数功能zeros(m, n)m行n列零矩阵randn(m, n)m行n列正态分布随机矩阵eye(n)n阶单位矩阵magic(n)n阶魔方矩阵ones(m, n)m行n列元素为1的矩阵rand(m, n)m行n列均匀分布随机矩阵例1.8 创建矩阵。ones(3) %生成元素都为1的3阶方阵 ans= 1 1 1 1 1 1 1 1 1例1.9 创建矩阵。zeros(2, 5) %生成元素都为0的2行5列零矩阵ans= 0 0 0 0 0 0 0 0 0 0例1.10 生成3阶魔方矩阵。magic(3) ans= 8 1 6 3 5 7 4 9 23. 冒号操作符“:” j: k表示生成步长为1的等差数列构成的数组:j, j+1, j+2,k;j: i: k表示生成步长为i的等差数列构成的数组:j, j+i, j+2*i,k;例1.11 等差数列的生成。1:5 %步长为1的等差数列ans = 1 2 3 4 5linspace(1, 5, 5) %给出区间1, 5的5个等分点数据ans=1 2 3 4 51:2:7 %步长为2的等差数列ans=1 3 5 78:-2:0 %步长为-2的等差、递减数列ans=8 6 4 2 01.3.2 matlab矩阵的运算1. matlab矩阵元素操作下面介绍矩阵元素的抽取与赋值、矩阵扩充、矩阵元素的删除等操作。详细用法见表1.4。1)矩阵元素的抽取与赋值例1.12 已知矩阵,抽取与修改的一些元素。a=1 23 56; sin(3) 7 9; log(2) 6 1 % 输入矩阵aa =1.0000 23.0000 56.00000.1411 7.0000 9.00000.6931 6.0000 1.0000a(2, 3) %抽取矩阵a的第二行第三列元素ans=9a(4) %抽取矩阵a(:)的第四个元素ans=23a(2: 4) %抽取矩阵a(:)的第二、三、四个元素ans=0.1411 0.6931 23.0000a(1, :) %抽取矩阵a的第一行ans=1 23 56a(:, 3) %抽取矩阵a的第三列ans=569 1a=a(1, 3) % 把矩阵a的第一行第三列元素赋值给变量aa =56 a(2, 1)=100 % 把矩阵a的第二行第一列元素修改为100a = 1.0000 23.0000 56.0000 100.0000 7.0000 9.0000 0.6931 6.0000 1.0000b=a(3,1,2,3) b = 6 1 23 562)矩阵的扩充例1.13 已知矩阵,利用与生成矩阵,和。 a=1, 3; 6, 9; %输入矩阵a c= a; c(1, 3)=100; %把矩阵a扩充为2行3列矩阵 c c = 1 3 1006 9 0 b=1, 5; 0, 8; %输入矩阵b d=a, b %由矩阵a与b合成矩阵d d = 1 3 1 5 6 9 0 8 f=a, zeros(2); zeros(2), b %矩阵a与b合成分块矩阵ff = 1 3 0 0 6 9 0 0 0 0 1 5 0 0 0 83)矩阵部分元素的删除例1.14 已知矩阵,删除的第一行。a=1 23 56; sin(3) 7 9; log(2) 6 1; a(1, :)= %删出a的第一行a = 0.1411 7.0000 9.00000.6931 6.0000 1.0000表1.4 矩阵元素的操作用法功能a(i, j)矩阵a的第i行第j列元素a(:, j)矩阵a的第j列a(i, :)矩阵a的第i行a(:, :)矩阵a的所有元素构造一个2维矩阵a(:)矩阵a的所有元素按列构造一个列矩阵a(i)矩阵a(:)的第i个元素a(i: j)矩阵a(:)的第i个到j个元素构成的向量 空矩阵a(i,j,k,l)取出矩阵a的第i,j行及第k,l列交点上的元素2. 矩阵的基本运算a+b:矩阵加法a-b:矩阵减法a*b:矩阵乘法ab:矩阵的左除a/b:矩阵的右除transpose(a)或a:a的转置k*a:数k乘以a矩阵a的n次幂:an矩阵的点幂:.其中,矩阵的左除“”和右除“”。如果矩阵a是非奇异方阵,则ab等于a的逆矩阵乘b,即inv(a)*b;同理b/a等于b乘a的逆矩阵,即b*inv(a)。具体计算时可不用逆矩阵而直接计算。右除b/a也可由 (ab)来实现。例1.15 已知矩阵,求和。 a=1 2 3; 4 5 6; b=3 2 1; 6 5 4; c=a+bc = 4 4 4 10 10 10 c=a.bc = 1 4 3 4096 3125 1296 注:点和算术运算符之间不能有空格。例1.16 已知,求,和。x=1 2 3; y=4 5 6; x.2ans = 1 4 92 .x ans = 2 4 82 .x; yans = 2 4 8 16 32 64例1.17 矩阵,求的3次幂。 syms a; a=a 0 1; 0 a 3; 0 a 2; a3ans = a3, 2*a2+2*a, a*(a+2)+4+3*a 0, a*(a2+3*a)+3*a2+6*a, 12+a*(6+3*a)+9*a 0, a*(a2+3*a)+2*a2+4*a, 8+a*(6+3*a)+6*a注:当矩阵中含有未知变量时,需要用syms声明未知变量,否则会出现“? undefined function or variable a”的错误提示。列于表1.5中的其它的矩阵相关运算函数将在第二章中做详细介绍。表1.5 矩阵的其它相关运算函数名称函数功能函数名称函数功能rank(a)求a的秩rref(a)求a的行最简形eig(a)求a的特征值及特征向量inv(a)求a的逆矩阵poly(a)求a的特征多项式det(a)求a的行列式trace(a)求a的迹norm(a, 1)求a的1范数cond(a)求a的条件数1.4 m文件的编写与调用在初学阶段,通常在命令窗口中输入matlab语句。输入一行命令后系统立即执行该命令,这种方式称为命令窗口下的命令行方式。用命令行方式编写的程序可读性差且不易存储。因而,对于相对复杂问题的求解,一般先编写成可存储的程序文件,然后在matlab中执行该程序文件,这种方式称为程序文件方式。由matlab语句组成的程序文件类型是m文件,m文件的扩展名为m。m文件可分为两种形式:一种是命令文件或脚本文件(script file),是用户为解决特定的问题而编制的。另一种是函数文件(function file),通常被其它m文件调用。它们都是由若干matlab语句或命令组成的文件。要注意在编写m文件时,m文件名一定以字母开头,且不要与内置函数重名。1.4.1 文件的操作matlab类型文件的打开、关闭和保存等操作与word非常相似。新建m文件的操作是在命令窗口中选择filenewm-file(见图1.7),然后用鼠标单击m-file,打开了matlab中的“m函数与m文件编辑器”(见图1.8),用户可以在该编辑窗口中编辑一个新的m文件。此编辑器还可以用来对已存在的m文件进行编辑、调试和运行。实际上,m文件也可用其它文本编辑器来建立、编辑。图1.7 新建m文件图1.8 m函数与m文件编辑器(编辑窗口)m文件有三种运行方式:一是在命令窗口中直接键入文件名,按enter键; 二是在编辑窗口中打开菜tools,再单run(快捷键f5);三是直接单击工具栏中的run图标。m文件保存的路径一定要在其设置的搜索路径上,否则matlab找不到此文件,导致无法运行。后面的例题如果不特别说明,都是以第一种方式运行的。在m文件中,当表达式后面接分号时,与命令行方式的语句一样,表达式的计算结果不显示,但中间结果仍保存在内存中。1.4.2 命令文件命令文件(也称脚本文件)的一般形式为:.m,如a1.m,pp.m等都是合法的m文件名。命令文件的格式特征如下:(1)用clear,close all等语句开始,清除工作空间中原有的变量和图形,以避免其它已执行程序所残留数据对当前程序的影响。(2)前几行通常是注释行,用于对此程序用途的说明,特别是在运行时对用户输入数据的要求,更要叙述清楚,否则程序的可读性将很差。这些注释行必须以%开始(这与c语言中的/* */类似),此后程序运行时将忽略%后的该行内容。matlab规定可以通过输入“help 文件名”来输出该文件中的所有注释。(3)程序的主体。如果文件中有全局变量,即可以在子程序即函数文件和主程序命令文件中共用的变量,应在程序的起始部分注明。其语句是global 变量名1 变量名2 为了改善程序的可读性,应注重语句的缩进及与end的对应关系。在程序中有时误操作输入中文符号,可能导致程序无法运行,matlab用红色标注有问题的语句。因而在输入程序中,要注意中英文的切换。(4)命令文件常会调用用户编写的函数或者系统自带的函数。例1.18 编写列出区间上的素数的程序。%列出素数的程序exam01_18.mclear, close allm=input(输入m的值m=), n=input(输入n的值n=)x=m:n; %列出从m到n的全部自然数for u=2:sqrt(n) %列出除数(最大到n的平方根) n=find(rem(x,u)=0&x=u); %找到不是素数的序号 x(n)=; %将其删除掉end,x %循环结束,显示结果 exam01_18 %执行exam01_18.m,输入5和20x = 5 7 11 13 17 191.4.3 函数文件matlab提供了许多函数文件,且随着版本的更新不断扩充。matlab软件的大部分功能都是来自其建立的函数集,利用这些函数可以使用户方便地解决各种问题。函数文件的一般形式为: function =()m函数文件可以有多个自变量和多个因变量,当有多个因变量时用 括起来。函数文件中的变量除非用global声明,否则均为局部变量,不保存在工作空间中。下面看matlab自带的求素数的m文件,通过其帮助很容易找到该函数为primes.m。type primes输出:function p = primes(n)%primes generate list of prime numbers.% primes(n) is a row vector of the prime numbers less than or % equal to n. a prime number is one that has no factors other% than 1 and itself.% class support for input n:% float: double, single% see also factor, isprime.% copyright 1984-2004 the mathworks, inc. % $revision: 1.16.4.2 $ $date: 2004/07/05 17:02:09 $if length(n)=1 error(matlab:primes:inputnotscalar, n must be a scalar); endif n 0);注:函数文件是以function开始,后跟函数名(在保存时,会默认为m文件的文件名,不要修改为其它名称,当m文件名与function后的函数名不一致时,调用函数文件时常会发生错误)。另外,函数文件通常都有变量的输入输出。下面来编写函数文件。例1.19 设方阵可逆,编写求的m函数文件。 % 编写exam01_19.m用于求矩阵a的四个值function da, a2, inva, traa=comp4(a)da=det(a) % da为矩阵a的行列式a2=a2 % a2为矩阵a的平方inva=inv(a) % inva为矩阵a的逆矩阵traa=a % traa为矩阵a的转置因为函数的输入变量为a,所以在调用前先给a赋值,然后才能对编写的m文件进行调用。a=1, 2;5, 8; %输入矩阵a exam01_19 %调用exam01_19.m函数计算矩阵的da =-2a2 =11 1845 74inva =-4.0000 1.0000 2.5000 -0.5000traa =1 52 81.5 matlab编程在解决实际问题时,往往需要编写较复杂的程序,下面将介绍matlab编程涉及到的内容。1.5.1 matlab常用的程序控制语句程序控制结构有三种:顺序结构、选择结构和循环结构。任何复杂的程序都由这三种基本结构组成。1. 顺序结构按排列顺序依次执行各条语句,直到程序的最后,这是一种最简单的程序结构,一般涉及数据的输入、输出和计算等。1)数据的输入函数:input格式:a=input(提示信息)其中,提示信息为字符串,此格式通过提示信息输入a的值,输入的a可以是数或者字符串,输入字符串时必须带单引号。例1.20 输入a的值和name的值。 a=input(please input a: ) %要求用户输入a的值(可以是数或字符串)please input a: 1000 %输入1000a = 1000 name=input(whats your name? )whats your name? michael jordan %输入michael jordanname =michael jordan2)数据的显示函数:disp格式:disp(x)其中,x是数值矩阵或字符串,该格式用于显示变量x的值,且一次只能显示一个变量。例1.21 显示a的值。 a=hello, tom!; disp(a)hello, tom!3)数据的格式化输出若要求数字以某种形式输出,则需要对数据的输出进行格式化。除了用前面介绍的format进行控制外,还可以用fprintf来控制输出。函数:fprintf格式:fprintf(fid,format,variables)其中,fid为文件句柄,若缺省,则输出到屏幕上;format用来指定变量variables输出时采用的格式,包含普通字符串、格式字符串(见表1.6)、转义字符(见表1.7)。表1.6 格式字符串%d 整数%f 实数:小数形式%e实数:科学
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学四年级英语上册Unit5单元语音速记与巧练(含答案)
- 宿舍楼基础设施检查与维护方案
- 道路交通事故应急处理方案
- 水稻品种课件
- 水痘说明文课件
- 医用化学分散系66课件
- 知识点3.4从文化层面感知色彩设计构成设计色彩76课件
- 水电工作安全知识培训课件
- 二零二五年度高科技企业员工股票期权激励计划协议书
- 二零二五年楼顶彩钢板防水设计与施工承揽协议
- 二氧化碳静态爆破施工方案样本
- 八年级年级主任工作计划
- 英汉互译单词练习打印纸
- 四川JS-004竣工验收报告
- 花卉栽植施工方案
- 水工闸门课件
- 水泥生产企业生产安全事故综合应急预案
- 全自动血液细胞分析仪产品技术要求深圳迈瑞
- 找对英语学习方法的第一本书
- 《诺丁山》经典台词
- 对铁路机车乘务员规章培训的探讨与实践
评论
0/150
提交评论