1、 ( 本科毕业设计说明书题 目 : 波的 Matlab 仿真设计学 生 姓 名 : *学 院 : *系 别 : *专 业 : *班 级 : *指 导 教 师 : * 副教授1摘 要据我们所了解的知识,可以把振动理解为一种非常普遍的运动形式。要出现波动就必须先要产生振动,振动可以理解为产生波动的前提。可是波的种类却有很多种,种类多而且它们的本质不同,却各有特殊性,可是它们也存在共性,它们都有一定的传播速度,也都有能量的传播。特别的每一种波,他都有特定的函数,也各具特点,我们学习数理方程时,知道一维,二维波动方程,但是由于数理方程很求解,有没有一种直观的方法可以把函数图像画出来。Matlab 是由
2、美国 mathwork 公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。计算功能、符号运算、特别是数据可视化功能都被它集成了。该软件在应用方面主要被集中在这几个方面上:有数值计算和算法开发还有符号表达式运算和推导,数学建模与仿真和数据分析可视化也是其中之一,最后还有科学与工程绘图,本文主要应用矩阵运算、多项式运算、plot 函数将波函数的运算结果可视化。关键词:波动函数;Matlab;矩阵计算;plot 函数2AbstractWe know that a vibration is a very common form of movement. So the spread
3、of vibration wave form, hereinafter referred to as the wave. The types of wave has a lot of, even though the essence of wave is different, but each has particularity, but there are also common, they all have certain transmission speed and the spread of energy can be reflected, interference is diffra
4、ction. Each wave of its function are not all the same, also with various features.Law is the law by Matlab mathwork by main face of scientific calculation, visualization and interactive program design ofthehigh-tech computing environment. It integrates computing functions, symbolic computation, data
5、 visualization function. This software applications mainly concentrated in several aspects: numerical calculation, algorithm development, symbolic expression operation and deducing, mathematical modeling and simulation, data analysis and visualization of science and engineering drawing, this paper m
6、ainly application matrix computation, polynomial operations, plot function will wave function of the operation result visualization. Keywords: Wave function;Matlab;The matrix calculation;Plot function3目 录引言 1第一章 机械振动及波动 .31.1 简谐振动 .31.2 振动 .51.3 振动的曲线表示法 .51.4 波动 .61.4.1 波的基本内容 .61.4.2 波的波面与波的波线 .61
7、.4.3 关于波的三个参数变量 .71.4.4 波函数 .71.4.5 波的叠加和干涉 .81.5 驻波 .9第二章 Matlab 基本知识 .102.1 Matlab 产生的历史背景 .102.2 Matlab 的语言和功能的特点 .112.3 Matlab 的工作界面和运行环境 .132.3.1Matlab 工作界面 132.3.2Matlab 经常使用的常量、变量和表达式 142.3.3Matlab 中的函数 152.3.4 矩阵的输入和运算 152.3.5 Matlab 的程序设计 .16第三章 使用 matlab 的 plot 函数 203.1 使用 plot 函数作图 .203.2
8、 一维本征值及二维本征值 223.2.1 二维波动问题的研究 30结论 .34参考文献 .35谢 辞 361引言由 Mathworks 公 司 发 布 的 Matlab 软 件 。 它 所 针 对 的 内 容 很 多 , 主 要 是 科学 方 法 计 算 、 优 越 可 视 化 特 别 是 可 交 互 式 得 程 序 。 计 算 环 境 有 较 高 的 高 科 技 来提 供 。 在 这 篇 文 章 中 主 要 应 用 它 可 以 快 速 进 行 数 值 分 析 、 矩 阵 计 算 、 数 据 优 越可 视 化 。 我 们 主 要 用 来 处 理 大 量 的 数 据 , 有 一 维 、 二 维
9、的 波 动 方 程 。我 们 在 进 行 波 的 仿 真 时 , 各 种 波 的 数 据 快 速 处 理 都 需 要 强 大 的 数 据 处 理 功能 , 而 且 要 能 进 行 集 中 处 理 , 所 以 需 要 一 个 能 把 数 据 集 成 在 一 个 易 于 使 用 的 可视 窗 环 境 中 , 并 且 对 于 程 序 的 更 改 能 越 简 单 越 好 , 而 且 要 求 可 移 植 性 高 , 因 为 这样 对 于 处 理 问 题 会 容 易 很 多 。 。 MATLAB 它 在 数 学 类 科 技 应 用 软 件 中 首 屈 一 指 。 可 以 用 自 己 丰 富 的 函 数 库
10、 来绘 制 函 数 , 进 行 大 量 的 计 算 , 用 简 单 方 便 的 界 面 来 连 接 其 他 语 言 程 序 。其 实 在 本 文 的 第 二 章 会 有 详 细 的 关 于 Matlab 的 介 绍 , 其 实 总 的 来 说Matlab 数 据 单 位 划 分 到 最 简 单 时 , 就 是 矩 阵 。 写 Matlab 的 程 序 方 程 式 对 于 初学 者 来 说 也 不 是 一 件 困 难 的 事 , 因 为 它 的 指 令 表 达 式 与 我 们 接 触 到 的 数 学 、 工 程中 常 用 的 表 达 式 很 相 似 。 所 以 就 优 越 于 其 他 相 关 软
11、 件 。数学中有一门学科叫做数理方程,它是用数学物理相结合的方法来处理理工科问题的一门学科。但是它内容多,而且特别难枯燥乏味,很难上手,但是又不得不学,通常他的一个公式要推导很久,怎么才能让大家在缤纷繁杂的数学公式中,直观简洁的看到函数所表达的函数图象。因此,这个工作也只能有 Matlab 来完成,用 Matlab 的数值可视化、矩阵计算使函数生动又形象的表示出来。Matlab 其实不仅仅的应用与科学领域。细心的人会观察到在具体生活工作中Matlab 可以应用而且胜任在很多领域。通讯系统中处理的信号函数和通讯波函数的设计与仿真就应该可以用到; 财 务 与 金 融 工 程 也 不 例 外 , 也
12、 可 以 使 用 它 来 作 为 处理 大 量 数 据 。 从 而 来 管 理 与 调 度 所 谓 的 优 化 计 算 。 可 以 这 么 说 , Matlab 涉 及 领 域 之 多 , 功 能 之 强 大 , 包 罗 万 象 的 各 种 信 号 和图 像 处 理 、 可 以 联 系 解 决 日 常 生 活 中 很 多 问 题 , 它 就 像 一 个 万 能 机 器 人 , 自 身附 加 着 别 人 不 能 比 拟 的 工 具 箱 。 可 以 用 来 单 独 提 供 专 用 函 数 。2本 文 主 要 针 对 一 维 、 二 维 波 动 方 程 的 数 据 模 拟 图 , 把 函 数 制 作
13、 出 它 的 动 态 图 ,我 们 首 选 Matlab 软 件 , 我 们 学 过 的 方 程 尽 管 书 中 有 详 细 的 定 义 , 但 是 如 何 让 这些 枯 燥 乏 味 的 公 式 我 们 可 以 用 物 理 图 像 来 展 现 出 来 , 这 就 是 这 片 文 章 的 主 要 内 容 。3第一章 机械振动及波动如果我们说日常生活中存在太多运动实例。我们更可以把振动理解为广泛而又很普遍的运动形式。其实每一个物体只要满足在特定的位置附近做周期性的往复运动的条件满足了就可以被称为振动。在现实生活中有很多例子,例如钟摆的振动,气缸中的活塞运动,音叉发声时的振动,交变电流,交变磁场,这
14、些振动虽然不是机械振动可是运动规律的描述也与机械振动类似,广义而言也成为振动现象。而振动也会传播,也有它特定的传播形式那就是波动,传播在弹性介质中的机械振动就会被我们称为机械波。波的范围很广也有很多种,电磁波、声波这是最常见的虽然波的种类很多,但是却各具特点,但它们也存在共同性,有波速,同时还伴随能量的传播。1.1 简谐振动首先让我们来了解最简单也是必须要知道的最基本的振动,简谐振动。简谐振动也有特定规律就是服从正弦规律,可是我们以后涉及的任何的复杂的振动,都可以用不同频率的简谐波动来合成。例如对于一个角频率复杂的振动来说它的波就可以让我们用频率为 、 、 的波来合成。例如图 1-1。23图
15、1-1 复杂波合成图其实弹簧振子它的振动就是属于一个最典型的简谐振动。我们规定劲度系数为k,然后把弹簧一端固定在墙壁上,另外一端可以与一质量为 m 的物体相连,然后将质量为 m 的物体也就是振子和弹簧一起置于光滑的水平面上,然后我们把它的平衡4位置定为原点。此位置上弹簧处于原长又无形变,选择建立一个坐标系并且把 O 当作原点,如图 1-2,我们就可以表示振子的任意 x 位置所受弹力为 。kxF图 1-2 弹簧振子那么我们由牛顿第二定律来推导可得到公式(1-1):kxFma)cos()(0tAtx2mkdt202xdt该方程解的一般形式是:(1-)cos()(0tAtx1)51.2 振动根据公式
16、 ,在公式里面存在几个我们必须知道的的特征量。)cos()(0tAtx第一个就是 :它表示振幅, 单位:m。选择字母 T 作为周期,有 。单位/2T是国际单位 S。选择 作为圆频率且推导可知 = ,单位:rad/s。反映质点mk/在 t 时刻振动的状态用相位衡量,单位:rad。这里还有其他几个参数例如、速度 、V加速度 。速度是形容振子在单位时间里的位移,而加速度就是振子速度变化量对a时间的导数我们有公式如(1-2)和公式(1-3) 。(1-)2/cos()sin(00tAtAdtxV2)(1-xttva202)s(3)1.3 振动的曲线表示法图 1-4 振动质点的轨迹图 1-4 是振动曲线的
17、表示方法,可是我们应该知道以下几件事:(1)图(4)中 xt 曲线它并不是质点真实的运动轨迹。(2)如果有两个质点在 a、c 位置处两时刻的运动状态包括位移和速度相同,就可以得出结论 a、c 的时间间隔是一个周期。(3)一个周期内找不到相同的运动状态。质点的运动状态如相同,则对应的位相之间必相差 2 或 2 的整数倍。6(4)常数 和 的确定由 t=0 时, ; , (初始条件)可知 。会A0xX0vV0cosA得到公式(1-4)和公式(1-5):1 (1-cos0A4)= (1-20/wvx5) 1.4 波动在前面我们了解了振动,振动的传播形成波函数。机械振动在弹性介质中传播产生机械波,在日
18、常生活中还会有它振动产生波的例子,例如声波、水波变化的磁场产生电磁波,虽然各类波本质不同但也存在共性。只有振动才会产生波动,从而才会有波动函数,那么波动函数合振动函数有什么关系在这一节我们会来介绍。1.4.1 波动的基本内容我们往往会接触到这样的一类波,在传播方向上介质点振动方向会垂直于波传播方向,我们就称这种波为横波。横波表示在图形上就会有波峰(突起部分)和波谷(凹陷部分) 。介质的振动才会将横波传播出去这是为什么?原因很简单只有介质产生振动才会发生弹性形变,继而带动周围的质点相互振动,这样波就传播出去了。我们定义纵波为:波的振动方向与传播方向在一条直线上。那么纵波的图形是什么样子的?它特点
19、又是什么?其实我们最终会得到一个疏密相间的波形,这就是纵波的波形。纵波可以不受限制的在固体、气体、液体中传播。1.4.2 波的波面与波的波线我们所定义的波在一个坐标系中,那么振面为在介质中由所有位相相同的质点一起组成的面,在图上我们可以看到它相位相同,会在一条连线上,那么这个面就被称为称波面。波前它总是传播在所有波面的最前沿,一个波面观测时发现它是平面那么我们管它叫平面波,波面是球面我们管它叫球面波。举个例子:太阳光球面波。7在波的传播方向上的直线被称为波射线。他们有下列性质:各向同性介质中传播的波的波线永远和面垂直,平面波它的波线是一束垂直于波面的平行直线,作为球面波的波线它是以波源作为中心
20、然后不断沿径向辐射的一束直线可以向外也可以指向波源,如图 1-5。图 1-5 平面波和球面波1.4.3 关于波的三个参数变量(1)波长 即在波传播方向上,位相差等于 的两个介质点的距离称波长,那么波长反应2波的空间周期性。(2)周期 即波传播了一个波长的距离时所需的时间,通过介质中质点振动的周期就可以知道波的周期与。(3)波速 u即波传播的速度,也可以理解为波的位相传播速度。从定义可得知,波速u=/T=v(v 是波的频率)。vT/1.4.4 波函数所谓波函数就是我们要用它给出波在传播过程中,弦上任意一点的振动位移。我们需要建立坐标系,做出 x 坐标用来表示(正或余)弦上每个介质点离平衡位置的距
21、离,做出 y 轴来用它表示介质离开平衡位置时的位移,由以上可以知道弦上的平面简谐波函数它是一个距离坐标“ ”关于时间“t”的二元函数 。我们如),(txy果不按照严格的动力学方法也可以将函数求解出,用简单的比较位相的方法。一般表示振动方程我们采取 函数,这样会很方便。cos即假设会有一个沿着“x”轴正方向传播的简谐波,我们可以设定坐标原点为8“x=0”,就可以得到该处介质质点的振动规律必定满足 。 )cos()(0tAty当波传播在介质中时,如果能量的损耗可忽略不计,振动在介质中以“u”的速度传播,那么可以知道在任意时刻“t” ,振动已经传播到“x”处,则“x”处的质点会偏离平衡位置做重复于原
22、点的有规律的振动,可是振动的时间会比原点晚,也就是说当“t”时刻 x 处质点的位移相当于 x=0 处质点在“ ” uxt/ uxt/时刻的位移,也可以理解为介质中任意位置“x”处质点在“t”时刻的位移为:y(x,t)= 上式会被称为波函数,这就是我们推导验证的平面)/(cos0utA简谐波的波动方程。我们由公式可以看出来波函数的物理意义,当 时,我们可以得出这样的0xX结论 y=y(t)= ,且表示 处质点的振动方程,该质点作简谐)2cos(0xt 0振动,初相位 ,然后我们又可以得到同一波线上,然后任何两个质点之0间的相位差可以由公式 得出, 然后当距离为波长时整数倍时就会)(12出现 ,说
23、明这两点相同,显示了波函数的空间周期性。当,x时当 nn“ ”时 ;表示在“ ”时刻,波线上的各个质点已0t )(cos)(00uxtAy 0t经离开了自己的平衡位置后它们位移的分布情况。所有质点的分布情况就被称为该时刻的波动方程。就横波来说,波形图可以理解为该时刻各个质点在空间中的真实分布,那么我来可以来看一下纵波,波形图它仅表示质点的位移分布。波动方程已经给出了各质点它们在不同的时刻位移,也可以理解为包含了不同时刻的波形,振动曲线以及波形图上质点的振动方向如图 1-6。(a)振动曲线 (b)质点振动方向图图 1-6 振动曲线图1.4.5 波的叠加和干涉1波的叠加9波的叠加原理:两列波它们都
24、在独立的传播中,如果相遇在某处会在两列波的波相相遇位置出现一种现象。和位移会等于各列波在单独传播时精工在该点产生位移的矢量之和。2、波的干涉波的干涉:当两列波满足一定条件时,就会出现在两列波相遇的各空间质点的振动却可以各保持原来的振幅,而在不同的位置各质点则会用不同的动能振动产生的现象。3、波的干涉条件:(1)第一两列波振动方向需要相同;(2)频率相同;(3)每一点由振动所引起的相位差固定。1.5 驻波我们也会经常遇到这种现象,当几列波相互叠加时,可以产生许多特殊现象,例如驻波就是个特例。在同种介质中传播的两列简谐波,当满足条件:它们拥有频率相同、拥有振幅相同、振动方向还相同,而且在同一直线上
25、彼此沿方向相反传播叠加就形成了驻波。当两列波一个正向一个负向传播并推导他们合成波函数公式 1-62:正向 )/(2cos1xtAy负向 2合成波波函数公式: 21y )/(2cos)/(cos xtAxtA(1-6)txcos)/cs(上式中 表示的是谐振动,而 来表示振幅。驻波在介质中质点2振动的特征是振幅的随位置不同而不同、并且有周期性、振幅最大点被我们叫做振腹, =1;x= ,振幅为 0 的点我们叫做波节,即 =0;x=x2cos2k )/2cosx;有上面公式可以知道相邻波节和波腹它们之间的距离都是 。)1(k我们就是根据这一点来测量行波的波长的,另外我们去分析振动质点之间相位关系,它
26、们之间不是同相的,同一段中质点可以振动有相同的相位,可是放在相邻的两段中各个质点的振动方向却是相反的。驻波要出现就必须满足一定条件即 L= (n=1,2,3, , , , ) ,由这个公式可以2/n10说波长也是量子化的。由关系式 ,频率也是量子化的/uv(n=1,2, , , , ) ,因此该频率也被称为本征频率。)2/(Lunv第二章 Matlab 基本知识2.1 Matlab 产生的历史背景早在 1970-1980 年,cleve moler 博士还有其它的同事。在 The national science 基金的提供和资助下。它们研制并且开发了 Matlab。这个软件可以调用eispa
27、ck 和 linpack 的子程序库中大量函数。eispack 和 linpack 是 foetran 程序库的主要内容。主要应用有两个我们常接触到一个是特征值的求解,另一个则是解线性方程。在 1970 年时,那个年代这两个程序库可是代表了最高水平的矩阵运算。随着时间的推移,计算机系的 Cleve Moler 教授,他在上课时教学生们使用eispack、linpack 程序库去解决它们上课时遇到的线性代数问题时, 发现学生进程缓慢,后来发现是在编写接口程序时很费时间,学生们很难做出接口程序,提前弄好了 eispack 和 linpack 的接口程序。他 就 自 己接口程序逐步完善以后 Clev
28、e Moler 给这个接口程序起了个响亮的名字 Matlab,这个名字一直被沿用。Matlab 该名的由来是受“matrix”和“labotatory”的影响,教授把两个英文单词的前三个字母的组合。在后来的几年里,Matlab 被许多所大学当做必要的教辅软件来使用,这为 Matlab 打下了良好的基础,随后十几年里,它作为免费软件面向大众被越来越多的人接受和熟识。在 1984 年,Cleve Moler 和 John Little 建立了 Math Works 公司,正式把MATLAB 推向市场,并继续进行 MATLAB 的研究和开发。当今世界应用最为广泛的数学软件有 30 多个,可是要考虑到
29、数学处理的内核而言,就只有两大类:第一种是数值计算的,有 MATLAB、Gauss 等等一些软件,它们的特长就是数值计算对于处理大批数据很轻松效率也很高,第二类就是数学分析性的有 mathematica、maple,对于这类软件它们所善于的是符号计算。可以给出用户解析解还有数学分析型,相对而言就是在处理大量数据的时候效率特别低,因此11mathworks 公司发现了商机看准了多功能市场,他们软件原有的数值计算和制图功能就是很卓越的,在这样的基础上,它们又一次超越专业水平开发研究了符号计算,文字处理功能,他么做了许多改进,例如将时间可视建模和实时控制能力融入其中,并开发了可以应用于多门科学多个领
30、域的软件。Matlab 的被开发是引领新一代科学软件的潮流。并且经过多年的竞争它取代以前的软件登上了擂主的宝座。MathWorks 公司在 1993 年推出了 Matlab 4.0 版,1995 年推出 4.2C 版(for win3.X)1997 年推出 5.0 版。1999 年推出 5.3 版。Matlab5.X 较 Matlab4.X 在界面和内容操作流程上都有很多改进,它采取超文本格式和 pdf 来作为帮助提示信息,给广大用户带来了方便。现在的 Matlab 在 mathworks 公司的 ,已经成功的发展成为一个针对不 断 完 善 下,多种工作平台, 。有人会说 Matlab 能接受
31、时间的多 门 科 学 功 能 非 常 强 大 的 软 件考验吗?事实证明它不仅禁受住了考验,而且还被人们广泛使用。在欧美许多学校中,学生们使用 Matlab 在它们的专业课上,举个例子学生们在处理线性代数时会遇到矩阵、自动控制了理论需要快速简易编程、数理统计要大量数值计算、数字信号处理要来观察波形、时间序列分析和动态系统上就要要求函数动态可视化。Matlab成为高级课程的必须工具,而一个研究生,博士生都需要熟练掌握。2.2 Matlab 的语言和功能的特点就语言特点来看,Matlab 语言简洁、易懂、语法限制宽松、命令紧凑。这些对于程序的设计者来说,设计自由度翻了数倍,而且可移植性非常强,有人
32、曾开玩笑地说 Matlab 大小通吃。身为一个高级的矩阵语言能有好的功能才是主题。功能分类可以划分为阵列语言、控制语句函数、数据结构、和输入输出。矩阵是 Matlab 的基础,我们在使用的时候,不需要预先定义变量和数据维数,这比起其他软件提供了很大的方便。对于进行 那对于 Matlab 非常轻算 、 逻 辑 运 算矩 阵 算 数 运 算 、 关 系 运松。Matlab 和其他软件相比它有自己的特殊的运算符这是其他软件所没有的。本来对于变成来说 Matlab 就轻松简易,而且它自身会提供一组程序和一组被称为工具箱的子程序,这就表明了它比其他软件工具的优越性,函数库可谓“包罗万象” ,这不仅仅是一
33、个优点,因为每一个学科专业和应用都会被提供一个与自己专业学科相匹配的函数库,即工具箱。12把 Matlab 分为两个部分来看:第一核心部分;第二工现 在 我 们 从 客 观 的 角 度具箱;核心部分它拥有数百个核心函数,函数多了与之相匹配的学科应用就会更加顺手。工具箱又可以再一次细分为两类;功能性的和科学性的。举个例子来说明它俩之间的区别,扩充计算符来增加计算功能, 文字处理我们会想到功图 示 建 模 仿 真能性的工具箱。那么科学性工具箱都有些什么呢,它拥有的是一些专业性特别强的软件:ontrol,toolbx,sgnl,prceessing,toolbox,等这些工具我们使用很方便,那是因为
34、都是由该领域内高水平的学术专家编写的又经历了不断改进,用户基本上不用有很高很深的理论就可以熟练的操作,来满足自己的学科需要。Matlab 它拥有强大的数值(矩阵)运算功能,包含了大量计算算法这是其他软件都不能比拟的。600 多个可以用到工程中的数学运算函数(其实还有很多) 。对于用户所需要实现的各种计算功能都方便。最新研究成果都被使用在函数中,而且各种算法都应用与科研和工程计算中并经过了各种优化和容错处理。用它来代替底层编程语言那就是“小菜” ,如 C 和 C+语言。在同等的技术要求下,我们使用 Matlab 对于软件编程方面工作量会大幅减少。它拥有的函数集涉猎非常宽,从我们见过的最简单函数,
35、到四四方方的矩阵、特征向量、快速傅立叶变换的复杂函数都被包括其中。我们归纳一下它里面的函数能解决的问题和在哪方面应用:(1)应用在数学领域例如矩阵运算和线性方程组的求解;(2)应用在数理方程中的微分方程及偏微分方程组的求解:(3) 统 计 分 析 ;算 、 傅 立 叶 变 换 和 数 据应 用 在 复 变 函 数 符 号 运(4)工程中的优化问题;(5)复数的各种运算、三角函数和其他初等数学运算。“草稿式语言”这就是对 Matlab 的最有力支持,因为原因是它的界面友好、编程效率高。我们在用它编程时可以发现在写程序的时候有一种书写函数名和表达式的感觉,我们的思维表达方式不会受程序规则来困扰,书
36、写形式特别自由。我们完全可以当做编是在草纸上排列公式与求解问题,就是这样功能也能满足工程技术人员的要求。他们的算法可以快速的被验证。另外 Matlab 不需要专门的编译器是一种解释性语言。我们在快速输入 Matlab 的语句同时就会把程序处理、编译、连接和快读运行,并且如果程序编译错误会有很详细的提示,对于复杂的大量的编译程序工作不用每13一行来校对。而且用户在感觉自己的一些编程公式繁杂,就可以直接调用丰富的库函数,从而很轻松的解决冗杂的子程序导入问题。正因为它有非常强大的图形化显示矩阵数组的能,这就能让注释图形,对变量进行标注可以同时来进展。图形处理技术总的来说可以被我们划分为二维三维处理图
37、像,还有可以支撑动画来进行演示。那么可视化、图像处理、动画等更高层次的处理都会迎刃而解。用户同时可以选用低级的绘图程序对动画。图像进行随时控制和编译。这时用户需要采取句柄技术来创建界面,最简单的就是图形对话框,这个就相当于人与计算机之间的对话框。用户层次也是多种多样的,没热用户所需要的要求并不是相同的,为了满足这点需求每个用户可以针对自己的要求来进行图形处理,可视化等特殊要求。进行数学计算不会在向以前一样那么麻烦,我们只需要直接调用函数,让软件来进行计算就可以了。这时用户的选择性就大大提高了,他们可以使用丰富的函数库,也可以根据自己的条件进行简易的编程和新函数的补充都是可以的。混编手法也可以说
38、是一个特色,Matlab 不挑食在混编条件下,容易调用其他语言的代码,也可以直接把程序调用来运行,这就要看用户的选择了。这些都是 Matlab 的扩展性的具体体现。把 Microsoft Word 和 Matlab 结合在一起这就是软件的一个亮点。大家现在应该知道这样做就会提高容错功能和软件应用灵活和兼容,文字处理、科学计算和工程设计从此就会拥有一个完美的工作环境,而不会再像以前那种之间独立互不相连的状态。Matlab 中 Notebook 是实现了 Word 和 Matlab 无缝连接最主要的函数,我们不得不佩服设计者的思维。我们在使 Word 时应该注意在全英文输入状态下才可以让 word
39、 原有编辑能力和相应的 Matlab 强大的计算和绘图能力相结合。新版本的软件可以容纳 C/C+数学库和图形库,用户并不需要像以前那样自己写程序节后只要利用编译器就可以开苏的把程序互换运行,即使是其他语言代码也不会影响,都会一一识别并进行计算。有些软件是不会支持网页服务的,而 Matlab 却不一样它可以应用于网页服务,允许 WEB 应用自己的程序,用户假如联机就可以被提供丰富的联机检索功能。综上所述,基于矩阵运算、强大的数值运算和数据处理功能的基础上它是一种高级编程语言,有很广泛的应用于各个领域,从复杂算法方面看表现出很多的优势,已成为国际上最为流行的软件之一。拥有很强的开放性。2.3 Ma
40、tlab的工作界面和运行环境142.3.1 Matlab 工作界面:我 们 要 知 道 Matlab 的 6 个 工 作 窗 口 , 它 们 是 组 成 工 作 界 面 的 主 要 部 分 , 它们 包 括 : “主 窗 口 ”、 “命 令 窗 口 ”、 “命 令 历 史 记 录 窗 口 ”、 “工 作 空 间 窗 口 ”、“工 作 台 ”、 “及 工 具 箱 窗 口 ”。 如 图 2-1。图 2-1Matlab 工 作 界 面( 1) 对 于 简 单 的 数 值 计 算 , 我 们 可 以 把 matlab 当 做 计 算 起 来 使 用 , 直 接 输入 数 值 和 运 算 符 , 立 即
41、 从 屏 幕 上 获 得 结 果 ;( 2) 我 们 对 变 量 赋 值 , 输 入 由 变 量 构 成 的 表 达 式 , 就 可 以 得 到 结 果 。例 如 : ;0.5)cos(;xypix( 3) 我 们 为 了 解 决 复 杂 的 问 题 采 用 编 程 的 方 法 来 解 决 , 用 判 断 、 循 环 、 迭代 等 语 句 来 进 行 编 程 解 决 算 法 问 题 ;( 4)Matlab 还 有 很 多 数 学 运 算 符 号 及 标 点 符 号 , 我 们 在 这 里 只 列 举 一 部 分如 表 2-1。2.3.2 Matlab 经常使用的常量、变量和表达式(1)整数、实
42、数、复数和字符就是这四种类型数据软件为我们提供。实数显示时默认的小数位是四位,若改变显示格式,可执行命令:Format;(2)变量:Matlab 的变量的命名规则:我们创建的变量首个字符必须是字母,之后的字符是任意的,但是其中不能有标点符号和空格;15Matlab 会自动识别字母大小写;变量名长度被限制在 19 个字符内;一些固有变量应该记住,例如:ans用于结果 、pi圆周率、我们用 i 或 j 单位、inf 表示无穷大数。的 缺 省 变 量 名 表 示 虚 数表 2-1 运 算 符 号运 算 符 图 形 参 数“+” 加 法 运 算 “figure” 图 形 创 建“-” 减 法 运 算
43、“clf” 清 除 图 形“*” 乘 法 运 算 “subplot” 把 窗 口 分割 成 , m*n“.*” 点 乘 运 算 “hold on” 保 留 当 前窗 口“/” 除 法 运 算 “grid” 加 格 栅“./” 点 除 运 算 “xlabel” 加 上 图 列“” 乘 幂 运 算 “yabel” 加 上 图 列“.” 点 乘 幂 运 算 “gtext” 创 建 交 叉十 字“” 表 示 左 除 “axis” 定 形 坐 标2.3.3 Matlab 中的函数1、 标 量 函 数我 们 知 道 三 角 、 指 数 、 对 数 、 取 整 ( fix) 等 基 本 函 数 作 用 于
44、标 量 或 矩 阵(数 组 )的 每 一 元 素 要 想 得 到 基 本 初 等 函 数 的 列 表 , 就 可 以 在 命 令 窗 口 中 输 入 :help elfun;2、 常 用 的 向 量 函 数 有 很 多 。 例 如 : max, min, sum, length。 上 面 这 些 函 数 可以 用 于 (列 或 行 )向 量 或 矩 阵 的 每 一 列 向 量 。3、 矩 阵 函 数16有些函数可以用来构造矩阵的例如 zeros, ones, eye, rand, diag, triu, tril, 那么有构造矩阵的就有矩阵计算的力量如 size,、det, 、rank,、in
45、v,、eig,、trace 、norm。2.3.4 矩阵的输入和运算1、 向 量 的 输 入( 1) 逐 个 输 入 法 : 就 是 用 空 格 ( 或 逗 号 ) 把 数 据 元 素 隔 开 。 用 逗 号 或 者 空格 隔 开 称 为 行 向 量 ; 用 分 号 隔 开 数 据 元 素 , 该 向 量 被 称 为 列 向 量 ;( 2) 冒 号 生 成 法 : 例 子 : x=second:increment:right, 它 表 示 包 含 由second 开 始 , 步 长 为 increment,到 right 结 束 的 组 成 的 行 向 量 ;2、 矩 阵 的 输 入第 一 整
46、 个 输 入 矩 阵 应 该 在 开 头 和 结 尾 处 放 置 “ ”; 第 二 分 号 “; ”或 回车 键 ( Enter) 是 用 来 让 矩 阵 的 行 与 行 之 间 隔 离 ; 第 三 逗 号 “, ”或 空 格 使 矩 阵元 素 分 隔 。 3、 特 殊 矩 阵 的 函 数 生 成上 面 讲 到 了 一 般 矩 阵 的 生 成 方 法 , 但 是 对 于 特 殊 矩 阵 我 们 也 有 特 定 的 生 成 方法 , 例 如 zeros(m,n) 表 示 mn 全 0 阵 、 eye(m,n) 表 示 mn 对 角 线 1 矩阵 、 ones(m,n) 表 示 mn 全 1 阵
47、, rand(m,n) 表 示 mn (0,1) 随 机 阵 。二 、 矩 阵 元 素 的 操 作(1) x(a,b)表 示 从 矩 阵 中 取 的 一 个 元 素 其 中 a,b 分 别 代 表 元 素 的 行 和 列 ;(2) x(a,:)和 x(:,b)相 应 的 表 示 取 矩 阵 中 的 一 行 或 一 列 ;(3) 用 矩 阵 A 的 第 j1j2 列 、 第 i1i2 行 列 构 成 新 矩 阵 ;(4) A B; A; B表 示 将 矩 阵 A 和 B 。拼 接 成 新 矩 阵2.3.5 Matlab 的程序设计一 、 程 序 设 计 的 基 本 原 则( 1) 首 先 设 置
48、 完 整 的 路 径 , 当 然 最 好 把 当 前 的 处 理 位 置 设 定 为 Current Directory。( 2) 如 果 为 了 以 后 便 于 程 序 维 护 应 该 把 把 参 数 值 集 中 的 放 在 程 序 的 开 始 部分 。 17( 3) MATLAB 的 每 条 命 令 后 , , 则 显 示 命 令 的然 后 若 为 逗 号 或 无 标 点 符 号结 果 ; 命 令 后 的 符 号 是 分 号 , 则 是 禁 止 显 示 结 果 。( 4) “%” 后 面 所 有 文 字 为 注 释 , “”表 示 续 行 。( 5) 我 们 将 程 序 模 块 化 , 以
49、 后 就 可 以 用 主 程 序 直 接 调 用 子 程 序 , 将 子 程 序合 并 在 一 起 来 快 速 执 行 全 部 的 操 作 。 二 、 关 系 和 逻 辑 运 算 符 关 系 运 算 符 有 很 多 在 这 里 只 举 几 个 例 子 , =, =, =当 关 系 成 立时 结 果 为 1, 否 则 为 0。 逻 辑 运 算 符 有 三 个 即 y=sin(x);Plot(x,y,k)gridonxlable(自变量 x)ylabel(函数 y)21title(示意图 ) holdonplot(x,cos(x) , k)axis(0 2*pi -1.2 1.2)执行后函数图如 3-2。图 3-2 函数图我们还可以用 Matlab 来表示 在0,10*pi