




文档简介
第第 1 1 章章 MatLab MatLab 入门入门 本章学习的主要目的 本章学习的主要目的 1 了解 MatLab 软件的功能 熟悉 MatLab 软件的各菜单 工具栏及常用命令的使用 2 掌握 MatLab 有关矩阵的创建方法 矩阵的基本运算符 矩阵的计算函数 3 掌握 MatLab 的符号运算 1 1 1 1 MatLab 语言概述语言概述 1 1 1 MatLab 语言的发展语言的发展 MatLab 语言是由美国的 Clever Moler 博士于 1980 年开发的 设计者的初衷是为 解决 线性代数 课程的矩阵运算问题取名 MatLab 即 Matrix Laboratory 矩阵实验室的 意思 它将一个优秀软件的易用性与可靠性 通用性与专业性 一般目的的应用与 高深的科学技术应用有机的相结合 1 1 2 MatLab 的功能的功能 1 矩阵运算功能矩阵运算功能 MatLab 提供了丰富的矩阵运算处理功能 是基于矩阵运算的处理工具 例如 C A B A B C 都是矩阵 是矩阵的加运算 即使一个常数 Y 5 MatLab 也看做是一个 1 1 的矩阵 2 符号运算功能符号运算功能 符号运算即用字符串进行数学分析 允许变量不赋值而参与运算 用于解代数方 程 微积分 复合导数 积分 二重积分 有理函数 微分方程 泰勒级数展开 寻 优等等 可求得解析符号解 3 丰富的绘图功能与计算结果的可视化丰富的绘图功能与计算结果的可视化 具有高层绘图功能 两维 三维绘图 具有底层绘图功能 句柄绘图 使用 plot 函数可随时将计算结果可视化 4 图形化程序编制功能图形化程序编制功能 动态系统进行建模 仿真和分析的软件包 用结构图编程 而不用程序编程 只 需拖几个方块 连几条线 即可实现编程功能 5 丰富的丰富的 MatLab 工具箱工具箱 MatLab 主工具箱 符号数学工具箱 SIMULINK 仿真工具箱 控制系统工具箱 信号处理工具箱 图象处理工具箱 通讯工具箱 系统辨识工具箱 神经元网络工具 箱 金融工具箱 6 MatLab 的兼容功能的兼容功能 可与 C 语言 FORTRAN 语言跨平台兼容 用函数 CMEX FMEX 实现 7 MatLab 的容错功能的容错功能 非法操作时 给出提示 并不影响其操作 例如 在命令窗口输入 1 0 执行结果显示如下 提示被 0 除 结果为无穷大 Warning Divide by zero ans Inf 8 MatLab 的开放式可扩充结构的开放式可扩充结构 MatLab 所有函数都是开放的 用户可按自己意愿随意更改 正因为此功能 使 得 MatLab 的应用越来越广泛 9 强大的联机检索帮强大的联机检索帮助系统助系统 可随时检索 MatLab 函数 可随时查询 MatLab 函数的使用方法 1 1 3 MatLab 的应用的应用 1 工业研究与开发 2 数学教学 特别是线性代数 3 数值分析和科学计算方面的教学与研究 4 电子学 控制理论和物理学等工程和科学学科方面的教学与研究 5 经济学 化学和生物学等计算问题的所有其他领域中的教学与研究 1 2 MatLab 的使用的使用 1 2 1 MatLab 的启动的启动 1 进入MatLab工作环境 方法 1 开机执行程序 MatLab 安装目录 MatLab exe 方法 2 用鼠标双击 MatLab 图标 方法 3 点击 windows 窗口的开始 程序 MatLab 2 退出 MatLab 工作环境 方法 1 点击 file 菜单下的 exit MatLab 方法 2 点击 MatLab 窗口的关闭按钮 1 2 2 MatLab 的界面的界面 MatLab 的界面上有五个窗口 它们是 1 命令窗口 在命令窗口中可以直接输入命令行 以实现计算或绘图功能 用 clc 命令清除命 令窗口的内容 命令 pause 暂停操作 直至按任意键继续 2 起始面板 该窗口中显示 MatLab 总包和已安装的工具箱的帮助 演示 GUI 工具和产品主 页方面的内容 3 工作空间 该窗口中显示当前 MatLab 的内存中使用的变量的信息 包括变量名 变量数组 大小 变量字节大小和变量类型 在该窗口选定某个变量后 双击变量名 将打开数 组编辑器窗口 可以显示和修改该变量的具体内容 该显示主要用于数值型变量 4 命令历史 该窗口显示所有执行过的命令 利用该窗口 一方面可以查看曾经执行过的命令 另一方面可以重复利用原来输入的命令行 这只需在命令历史窗口中直接双击某个命 令即可 5 当前目录 该窗口显示当前工作目录下所有文件的文件名 文件类型和最后修改时间 可以 在该窗口上方的小窗口中修改工作目录 1 2 3 MatLab 的运行方式的运行方式 MatLab 提供了两种运行方式 命令行方式和 M 文件方式 1 命令行运行方式通过直接在命令窗口中输入命令行来实现计算或作图功能 但 这种方式在处理复杂的问题和大量数据时相当困难 2 M 文件运行方式是在一个以 m 为扩展名的 M 文件中输入一系列数据和命令 然 后让 MatLab 执行这些命令 MatLab 的 M 文件有两种类型 脚本 M 文件和函数 M 文 件 脚本文件就是命令的简单叠加 没有输入和输出参数 运行产生的所有变量是全 局变量 函数 M 文件有输入和输出参数 可以弥补 MatLab 的内部函数有限的不足 自定义新的函数 所有变量除特殊声明外 都是局部变量 1 2 4 MatLab 的数的数 1 MatLab 操作的数的范围为复数 表示为 a bi 或 a bj 例例 1 求1 的值 输入 sqrt 1 执行结果 ans 0 1 0000i 例例 2 设复数 i eziziz 6 321 2 21 43 计算 3 21 z zz z 输入指令 z1 3 4i z2 1 2 i z3 2 exp i pi 6 z z1 z2 z3 执行结果 z1 3 0000 4 0000i z2 1 0000 2 0000i z3 1 7321 1 0000i z 0 3349 5 5801i 例例 3 复数矩阵的生成 输入指令 A 1 3 2 4 5 8 6 9 i B 1 5i 2 6i 3 8 i 4 9 i 执行结果 A 1 0000 5 0000i 3 0000 8 0000i 2 0000 6 0000i 4 0000 9 0000i B 1 0000 5 0000i 2 0000 6 0000i 3 0000 8 0000i 4 0000 9 0000i 例例 4 求上例复数矩阵 A 的实部 虚部 模和相角 输入指令 A real real A A imag imag AC A magnitude abs A A phase angle A 180 pi 以度为单位计算相角 执行结果 A real 1 3 2 4 A imag 5 8 6 9 AC magnitude 5 0990 8 5440 6 3246 9 8489 A phase 78 6901 69 4440 71 5651 66 0375 例例 5 用 MatLab 计算 3 8 能得到 2 吗 输入指令 a 8 r a 1 3 执行结果如下 输出的是其中的一个根 r 1 0000 1 7321i 2 数据显示格式数据显示格式 format 默认值 short format short 保证小数点后有四位有效数字 format short e 用 5 位科学计数法表示 format short g 用 15 位科学计数法表示 format long 用 15 位数字表示 format long e 用 15 位科学计数法表示 format rat 用近似的有理数表示 format loose 输入命令和回显之间加空行 format compact 输入命令和回显之间不加空行 3 数据计算精度控制数据计算精度控制 digits n 限制在可控精度运算中取 n 位有效数字进行计算 1 2 5 MatLab 的变量的变量 1 变量的命名规则 变量名是以字母开头 可以包含字母 数字或下划线的不超过 31 个字符的字符 串 区分大小写 如 myfile 和 Myfile 是两个不同的变量 2 特殊变量 不能重新赋值 ans 对于未赋值的运算结果 自动赋给 ans 变量 eps 机器零阈值 inf 或 Inf 表示正无穷大 定义为 1 0 i j 虚数单位 NaN 非数 它产生于 0 0 0 等运算 nargin 函数输入变量数目 nargout 函数输出变量数目 pi 圆周率 realmin 最小可用正实数 realmax 最大可用正实数 3 变量的查询 函数 who 与 whos 作用都是列出在 MatLab 工作空间中已经驻留的变量名清单 不同的是 whos 在给出驻留变量的同时 还给出它们的维数及性质 如在命令窗口输入 who 后 显示 Your variables are A B 在命令窗口输入 whos 后 显示 Name Size Bytes Class A 2x2 230 cell array B 1x1 264 struct array 4 变量的删除 在命令窗中运用 clear 指令可以删除内存中指定的变量 格式 clear 变量名 若不写变量名 缺省变量全部被删除 5 变量的的保存与获取 把 MatLab 工作空间中一些有用的数据长久保存下来的方法是生成 mat数据文件 mat 文件是标准的二进制文件 还可以以 ASCII 码形式保存 用命令 save 保存变量 用 load 恢复已保存的变量 具体格式 save 将工作空间中所有的变量存到 MatLab mat 文件中 save data 将工作空间中所有的变量存到 data mat 文件中 save data a b 将工作空间中 a 和 b 变量存到 data mat 文件中 可用 load 指令调用已生成的 mat 文件 load 将 MatLab mat 文件中的变量恢复到工作空间中 load data 将 data mat 文件中的变量恢复到工作空间中 load data a b 将 data mat 文件中的变量 a b 恢复到工作空间中 例例 6 假定内存中已经存在变量 X Y Z a 保存变量 X Y X 变量在文件 saf mat 中 save saf X Y Z 保存变量 X Y X 变量在文件 saf mat 中 dir 显示当前目录下的文件 saf mat b 从文件 saf 中恢复变量 Z clear 删除内存中所有变量 load saf Z 恢复变量 Z who 查看变量 Your variables are Z 1 2 6 MatLab 的矩阵和向量的矩阵和向量 MatLab 是一种直译式的高级语言 建立在向量 数组和矩阵的基础上 矩阵是 MatLab 的核心 1 创建矩阵 创建矩阵 方法 1 直接输入法 规则 矩阵元素必须用 括住 矩阵元素必须用逗号或空格分隔 在 内矩阵的行与行之间必须用分号或回车分隔 矩阵元素可以是任何实数或复数 MatLab 表达式 复数可用特殊函数 i j 输入 例例7 生成一个实数矩阵和复数矩阵 输入指令 a 1 2 3 4 5 6 x 2 pi 2 sqrt 3 3 5i 执行结果 a 1 2 3 4 5 6 x 2 0000 1 5708 1 7321 3 0000 5 0000i 方法 2 用用 MatLab 函数创建矩阵函数创建矩阵 空阵 MatLab 允许输入空阵 当一项操作无结果时 返回空阵 zeros n m 生成 n 行 m 列的零矩阵 ones n m 生成 n 行 m 列的全 1 矩阵 eye n m 生成 n 行 m 列对角线元素全为 1 其它元素为 0 的矩阵 rand n m 生成 0 1 均匀分布的 n 行 m 列的随机矩阵 randn n m 生成正态分布的 n 行 m 列的随机矩阵 magic n n 阶幻方矩阵 n 1 3 4 5 pascal n n 阶杨辉三角形矩阵 diag v k 生成和提取对角阵 diag v 当 v 为矩阵时 提取矩阵的对角元生成一个向量 当 v 为向量时 用向量的元素单位矩阵 eye n 为对角元生成同维数的对角矩阵 triu v k 生成和提取上三角阵 tril v k 生成和提取下三角阵 repmat a m n 生成 m n 分块矩阵 每块元素为 a 矩阵 方法方法 3 在在 M 文件中用文件中用 MatLab 语句创建一个矩阵 语句创建一个矩阵 如 创建和保存矩阵 AM 的 MyMatrix m 文件 AM 101 102 103 104 105 106 107 108 109 201 202 203 204 205 206 207 208 209 301 302 303 304 305 306 307 308 309 方法方法 4 从一个外部数据文件中装载并创建一个矩阵 从一个外部数据文件中装载并创建一个矩阵 把下面的数据保存在一个文本文件 a txt 中 1 2 3 2 3 4 在命令窗口中输入 load a txt 则在内存中生成 2 3 矩阵变量 a 2 向量的生成方法 向量的生成方法 同矩阵的生成 冒号 运算 j k 生成向量 j j 1 j 2 k j i k 生成向量 j j i j 2i k rem k j i 如 a 1 2 6 生成 a 1 3 5 linspace a b n 从 a 到 b 的 n 个线性等分数组 logspace a b n 从 a 到 b 的 n 个对数等分数组 3 矩阵的标识矩阵的标识 元素标识方式 A i j i j 分别代表行数和列数 向量标识方式 A vr vc vr vc 是含矩阵行号和列号的单调向量 如 A 1 1 3 表示 A 1 1 A 1 3 0 1 向量标识方式 A vr vc A vr A vc vr vc 是由 0 1 组成的长度为 矩阵行维和列维的逻辑向量 1 表示取 0 表示不取 islogical a 测试矩阵 a 是否 维逻辑变量 若不是可以转换用 a2 3 4 a 1 2 3 2 3 4 a a a a ans 1 2 3 1 2 3 2 3 4 2 3 4 1 2 3 1 2 3 2 3 4 2 3 4 指令修改 可以用 A 来修改 例例 9 把矩阵 a 的第 3 行第 3 列元素修改位为 0 输入指令 a 1 2 0 3 0 5 7 8 9 a 3 3 0 执行结果 a 1 2 0 3 0 5 7 8 9 a 1 2 0 3 0 5 7 8 0 矩阵的扩充 矩阵的扩充 方法 1 用小矩阵生成大矩阵 例例 10 A ones 2 4 B zeros 1 2 C 2 3 D A B C D 1 1 1 1 1 1 1 1 0 0 2 3 方法 2 对超出矩阵维数的元素直接赋值 其余元素补 0 例例 11 把矩阵 a 由 2 行 3 列扩充成 3 行 4 列 且第 3 行第 4 列元素为 1 其余为 0 输 入指令 a 1 2 3 4 5 6 a 3 4 1 执行结果 a 1 2 3 0 4 5 6 0 0 0 0 1 矩阵的部分删除 矩阵的部分删除 按行或列赋空值即可 但删除行或列的部分元素则会出错 例例 12 a 2 删除 a 的第 2 行 矩阵结构的改变矩阵结构的改变 a 表示把矩阵 a 排成 1 列 按列的次序 a 在赋值左边 a 的维数不变 会把 右边数据重组 要求右边数据个数与左边数据个数相等 函数 reshape a m n 在总元素数不变的前提下 将矩阵 a 改变成 m 行 n 列的矩阵 例例 13 把 a 矩阵元素排成 1 排 输入指令 a 1 2 3 2 3 4 b a 执行结果 b 1 2 2 3 3 4 把自然数作为元素 按列顺序修改矩阵 a 矩阵 a 的型不变 输入指令 a 1 6 执行结果 a 1 3 5 2 4 6 5 矩阵的运算 矩阵的运算 a 矩阵加 减 矩阵加 减 运算 运算 规则 相加 减的两矩阵必须有相同的行数和列数 两矩阵对应元素相加减 允许参与运算的两矩阵之一是标量 标量与矩阵的所有元素分别进行加减操作 b 矩阵乘 矩阵乘 运算 运算 A B 规则 A 与 B 相乘 A 矩阵的列数必须等于 B 矩阵的行数 标量可与任何矩阵相乘 例例 14 a 1 2 3 4 5 6 7 8 0 b 1 2 3 c a b c 14 32 23 d 1 0 2 f pi d f 3 1416 0 6 2832 c 矩阵数组乘法 矩阵数组乘法 X Y 规则 X Y 必须有相同的维数 除非其中一个为 1 1 矩阵 运算结果为两个矩阵的 相应元素相乘 得到的结果与 X Y 同维 例例 15 a 1 2 4 5 b 2 1 2 3 c a b c 2 2 8 15 d 矩阵除的运算 矩阵除的运算 在线性代数中没有矩阵除的运算 有矩阵逆运算 在 MatLab 中有两种矩阵除运算 a b a b a b 相当于 1 a b a b 相当于b a 1 e 矩阵数组除的运算 矩阵数组除的运算 a b a b a b b a a b b a a b b a 都是 a 的元素被 b 的对应元素除 a b b a 都是 b 的元素被 a 的对应元素除 规则 a b 必须有相同的维数 除非其中一个为 1 1 矩阵 运算结果为两个矩阵的相 应元素相除 得到的结果与 a b 同维 例例 16 a 1 2 4 5 b 2 1 2 3 c a b c 0 5000 2 0000 2 0000 1 6667 f 矩阵转置 矩阵转置 Am n 运算结果为 n m 矩阵 对应元素由矩阵 A 行列互换得到 例例 17 a 1 2 4 8 3 5 c a c 1 8 2 3 4 5 g 矩阵乘方矩阵乘方 例例 18 a 1 2 3 4 5 6 7 8 9 a 2 ans 30 36 42 66 81 96 102 126 150 h 矩阵关系运算符及关系函数矩阵关系运算符及关系函数 A 小于 B A B lt A B A 小于或等于 B AB gt A B A 大于或等于 B A B ge A B A 等于 B A B equ A B A 不等于 B A B ne A B 结果是 0 1 矩阵 1 表示真 0 表示假 例例 19 A 1 9 B 10 A r0 A0 L2 A 0 L3 A L4 A 2 for i 1 3 for j 1 3 c sym i r sym j A i j subs a end end 6 6 字符表达式和符号表达式转换为数值表达式字符表达式和符号表达式转换为数值表达式 命令 numeric S 将变量 S 转换为数值量 x 不管 S 是字符变量还是符号变量 例例 2828 format long s1 sym 3 23 x1 numeric s1 s2 3 14225 x2 numeric s2 运行结果为 x1 0 13043478260870 x2 3 14225000000000 7 7 计算符号表达式的值计算符号表达式的值 eval eval 例例 2929 a sym 2 x y x 2 y 3 zhi eval a 显示结果为 zhi 7 说明当 x 2 y 3 时 2 x y 等于 7 1 3 1 3 上机实验内容上机实验内容 1 分别使用 WINDOWS 中的计算器和 MatLab 的命令方式计算表达式 2 459 3 4 3 sin 2 3ln 8 的值 2 使用 funtool 函数计算器完成正弦函数 其导函数和原函数的图形显示 3 生成矩阵 A 通过修改矩阵 A 的第 1 行第 3 列元素为 2 把矩阵扩充为 4 行 5 列 其中第 4 行第 3 列元素为 7 其余列为 0 删除第 2 列元素的操作生成矩阵 B 按行的 逆顺序取 A 的 1 2 4 5 列 且第四行为自然数 1 到 4 生成新的矩阵 C 计算 B C B C B C 2 B B 和 C 的行列式 B C B C 并找出 A 中大于 3 的元素 且将其替换 为 1 A 0 1 0 2 1 3 4 6 8 4 9 7 3 2 2 4 观察幻方矩阵和杨辉三角形矩阵各元素的规律 5 创建符号矩阵 A 计算 x 1 1 y 2 3 时对应的矩阵 B 并计算矩阵 A B 的行列式 A x y 2 x 5 y 3 x 9 y 4 x 13 y 4 x 2 y 5 x 6 y 6 x 10 y 7 x 14 y 7 x 3 y 8 x 7 y 9 x 11 y 10 x 15 y 10 x 4 y 11 x 8 y 12 x 12 y 13 x 16 y 1 4 上机实验步上机实验步骤骤 1 1 在 windows 窗口 点击开始 附件 计算器 打开计算器 2 按如下顺序点击各键 注 下面说明中各键之间用 隔开 选中十进制 弧度 C 3 ln 2 x y 8 MS C 3 4 pi sin 3 5 9 x y 0 5 4 2 M MR 记录结果2 459 3 4 3 sin 2 3ln 8 3 在桌面单击 MatLab 图标 打开 MATLAB 软件 4 在命令窗口输入 log 3 2 8 sin 3 4 pi sqrt 3 59 4 2 显示结果为 2 1 在桌面单击 MatLab 图标 打开 MatLab 软件 2 在命令窗口输入 funtool 则打开函数计算器的三个图形窗口 3 在第 3 个图形窗口中 在 f 后面的文本框内输入 sin x 回车 则在第 1 个图形 窗口显示正弦函数的图形 4 在第 3 个图形窗口中 点击 df dx 键 则在第 1 个图形窗口显示正弦函数的导 数余弦函数的图形 5 在第 3 个图形窗口中 在 f 后面的文本框内输入 sin x 回车 再点击 int 键 则在第 1 个图形窗口显示正弦函数的一个原函数负余弦函数的图形 3 在 MatLab 命令窗口中输入 A 0 1 0 2 1 3 4 6 8 4 9 7 3 2 2 B A B 1 3 2 B 4 3 7 B 2 运行结果 B C A 3 1 1 1 2 4 5 C 4 1 4 运行结果 C B C 运行结果 B C 运行结果 B C 运行结果 2 B 运行结果 det B 运行结果 根据矩阵 B 的行列式 可判别矩阵 B 可逆矩阵 B C 运行结果 det C 运行结果 根据矩阵 C 的行列式 可判别矩阵 C 可逆矩阵 B C 运行结果 A find A 3 1 运行结果 4 1 在桌面单击 MatLab 图标 打开 MatLab 软件 2 在命令窗口输入 magic 1 生成 1 阶幻方矩阵 运行结果 magic 3 运行结果 3 阶幻方矩阵元素的特点是 magic 4 运行结果 4 阶幻方矩阵元素的特点是 由此可推知 n 阶幻方矩阵的特点是 3 在命令窗口输入 pascal 1 生成 1 阶杨辉三角矩阵 运行结果 pascal 2 运行结果 pascal 3 运行结果 pascal 6 运行结果 由此可推知 n 阶杨辉三角矩阵各元素的特点是 5 1 在桌面单击 MatLab 图标 打开 MatLab 软件 在 MatLab 命令窗口中 点击菜 单 File New M file 打开 M 文件编辑窗口 输入创建矩阵 A 的 MyMatrix m 文件 syms x y c r a r c 1 3 x c r 1 4 y for i 1 4 for j 1 4 c sym i r sym j A i j subs a end end A 2 在M文件编辑窗口中 点击File Save 在默认路径下存盘 文件名为 MyMatrix m 3 在MatLab命令窗口输入 MyMatrix x 1 1 y 2 3 B eval A 运行结果 det A 运行结果 det B 运行结果 第第 2 章章 MatLab 作图作图 本章学习的主要目的 本章学习的主要目的 1 熟练掌握二维 三维图形的绘制 2 掌握简单动画的制作 3 了解分形几何学 绘制 Koch 雪花曲线和 Minkowski 香肠 曲线 2 1 图形输出窗口的创建与控制图形输出窗口的创建与控制 figure 创建一个名为 Figure N0 n 1 的新空白图形窗口 figure n 创建一个名为 Figure N0 n 的新空白图形窗口 不管前面的窗口 Figure N0 n 1 是否存在 但如窗口 Figure N0 n 已经存在 则将此窗 口设置为当前窗口 clf 清除当前窗口的图形 get n 返回图形窗口 Figure N0 n 的所有图像参数的名称和当前值 set n 返回关于图形窗口 Figure N0 n 的所有图像参数的名称和其可能取 的值 subplot m n i 将当前窗口分割成 m n 个子图 并将第 i 个子图作为当前视图 返 回值为当前视图的句柄值 其中每个子图都完全等同于一个完整的 图形窗口 可在其中完成所有图形操作命令 hold on 可以在当前窗口继续画图 而不覆盖窗口中已存在的图形 hold off 释放当前窗口 在当前窗口继续画图将覆盖原来的图形 zoom on 为当前图形打开缩放模式 单击鼠标左键 则在当前图形窗口中 以鼠标点中的点为中心的图形放大 2 倍 单击鼠标右键 则缩小 2 倍 zoom off 关闭缩放模式 grid on 在当前图上加格栅 grid off 在当前图上删除格栅 xlabel string 在当前图形的 x 轴上加图例 string ylabel string 在当前图形的 y 轴上加图例 string zlabel string 在当前图形的 z 轴上加图例 string title string 在当前图形的顶端上加图例 string gtext string 在当前图形上出现一个交叉的十字 该十字随鼠标的移动而移动 当按下鼠标左键时 该标注 string 放在当前十字交叉处 axis xmin xmax ymin ymax zmin zmax 定制图形坐标 xmin xmax ymin ymax zmin zmax 分别为 x y z 的最小 最大值 axis auto 将坐标轴返回到自动缺省值 axis square 图框成方形 axis off 清除坐标刻度 例例 1 将图形窗口分为两个子图 在第一个子图中 在区间 0 2 pi 上画 sin x cos x 的图形 加格栅 并加注图例 自变量 x 函数 y 示意图 sin x cos x 在第二个子图中 显示 sin x 在区间 pi 2 pi 的部分图形 输入命令 见图 1 图 2 subplot 1 2 1 x linspace 0 2 pi 30 y sin x plot x y k grid on title 示意图 ylabel 函数 y title 示意图 hold on 0246 1 0 8 0 6 0 4 0 2 0 0 2 0 4 0 6 0 8 1 示意图 函数y sin x cos x 22 53 0 0 2 0 4 0 6 0 8 1 图 1 图 2 plot x cos x k axis 0 2 pi 1 2 1 2 gtext sin x gtext cos x subplot 1 2 2 fplot sin x 0 2 pi k axis pi 2 pi 0 1 2 2 2 二维曲线作图二维曲线作图 Matlab 作图是通过描点 连线来实现的 故在画一个曲线图形之前 必须先取得 该图形上的一系列的点的横坐标和纵坐标 然后将该点集的坐标传给函数作图 作二 维和三维图形是同样的道理 调用格式 plot X Y S plot X Y plot X1 Y1 S1 Xn Yn Sn 其中 X Y 是向量 分别表示点集的横坐标和纵坐标 S 表示线型 规定如下 线型 线方式 实线 点线 虚点线 波折线 线型 点方式 圆点 加号 星号 x x 形 o 小圆 颜色 y 黄 r 红 g 绿 b 蓝 w 白 k 黑 m 紫 c 青 命令 plot X Y 画实线 命令 plot X1 Y1 S1 Xn Yn Sn 将多条线画在一起 例例 2 在区间 0 2 pi 用蓝点线画正弦函数 sin x 的图形 用 描点 用绿虚点线画余弦 函数 cos x 的图形 用 描点 见图 3 命令序列 x 0 pi 15 2 pi y1 sin x y2 cos x plot x y1 b x y2 g x y1 x y2 01234567 1 0 8 0 6 0 4 0 2 0 0 2 0 4 0 6 0 8 1 2 3 二维符号函数作图二维符号函数作图 可以通过 ezplot 或 fplot 函数作显函数 隐函数和参数方程确定的函数的图 形 fplot fun lims 表示绘制字符串 fun 指定的函数在 lims xmin xmax 的图 形 fun 必须是 M 文件的函数名或独立变量为 x 的字符串 此字符串被送入函数 eval 不能画参数方程和隐函数的图 形 但在一个图上可以画多个图形 函数 fun x 必须对向量 中的每一个元素 x 返回一行向量 ezplot f 表示在区间 2 pi x 2 pi 绘制 f f x 的函数图 ezplot f a b 表示在 a x b 绘制显函数 f f x 的函数图 ezplot f xmin xmax ymin ymax 表示在区间 xmin x xmax ymin y ymax 绘制隐函数 f x y 0 的函数图 ezplot x y tmin tmax 表示在区间 tmin t tmax 绘制参数方程 x x t y y t 的函 数图 例例 3 在 1 2 上画 3sin 22 xey x 的图形 见图 4 先建立 M 文件 myfun m function y myfun x y exp 2 x sin 3 x 2 再输入命令 fplot myfun 1 2 例例 4 将 x y 的取值范围都限制在 2 pi 2 pi 画函数 tanh x sin x cos x 的图形 输入命令 见图 5 fplot tanh x sin x cos x 2 pi 2 pi 1 5 1 5 例例 5 在 0 pi 上画 y sin x 的图形 见图 6 ezplot sin x 0 pi 例例 6 在 0 pi 上画 x cos3t y sin3t 星形图形 见图 7 ezplot cos t 3 sin t 3 0 pi 例例 7 在 2 0 5 0 2 上画隐函数 ex sin xy 0 的图形 见图 8 ezplot exp x sin x y 2 0 5 0 2 2 1012 0 10 20 30 40 50 60 505 1 5 1 0 5 0 0 5 1 1 5 图 4 图 5 0123 0 0 2 0 4 0 6 0 8 1 图6 sin x 1 0 500 51 1 0 5 0 0 5 1 图7 y x cos t 3 y sin t 3 2 2 4 二维极坐标图二维极坐标图 函数 polar theta rho s 用角度 theta 弧度表示 和极半径 rho 作极坐标图 s 表示线 型 例例 8 画阿基米德螺线 3 r 见图 9 theta lins pace 0 2 pi 30 rho 3 th eta polar thet a rho b title 阿 基米德线 2 1 5 1 0 500 5 0 0 2 0 4 0 6 0 8 1 1 2 1 4 1 6 1 8 2 图 8 y exp x sin x y 0 5 10 15 20 30 210 60 240 90 270 120 300 150 330 1800 阿 基 米 德 线 图 9 2 5 三维曲线图三维曲线图 命令 plot3 x y z s 通过描点连线画出曲线 其中 x y z 可以是 n 维向量 代表 该曲线上点集的横坐标 纵坐标 函数值 s 表示颜色和线型 x y z 也可以是 m n 矩阵 其对应的每一列表示一条曲线 此时可以画多条曲线 例例 9 在区间 0 10 pi 画出画螺旋线tztytx cos sin x sin t 并分别标注 t 0 pi 50 10 pi 见图 10 plot3 sin t cos t t 1 0 5 0 0 5 1 1 0 5 0 0 5 1 0 5 10 15 20 25 30 35 图 10 例例 10 画多条曲线 观察函数 Z X Y 2 见图 11 x 3 0 1 3 y 1 0 1 5 X Y meshgrid x y Z X Y 2 plot3 X Y Z 注 函数 meshgrid x y 产生分别以向量 x 为行 向量 y 为列的两个矩阵 3 2 1 0 1 2 3 1 2 3 4 5 0 10 20 30 40 50 60 70 图 11 2 6 空间曲面图空间曲面图 1 命令 surf x y z 将数据点所表示的曲面画出 其中 x y z 分别表示曲面上点的横坐 标 纵坐标 函数值 例例 11 画函数 Z X Y 2 的图形 见图 12 x 3 0 1 3 y 1 0 1 5 X Y meshgrid x y Z X Y 2 surf X Y Z 2 命令 mesh x y z 将该数据点在空间描出 并连成网格 例例 12 画出 22 22 sin yx yx z 所表示的三维曲面 yx 的取值范围是 8 8 输 入 命 令 序列 x 8 0 5 8 y x X ones size y x Y y ones size x R sqrt X 2 Y 2 eps Z sin R R mesh X Y Z xlabel x ylabel y zlabel z 2 7 三维图的简捷绘制三维图的简捷绘制 ezsurf string ezmesh string 提供绘制三维曲面图的简捷方法 例例 13 画出曲面 22 yx xez 的图形 见图 14 ezsurf x exp x 2 y 2 2 8 动画制作动画制作 1 动画的制作动画的制作 在 moviein getframe 命令下 可以完成动态数据到动态画面的制作 其使用格 式和制作步骤为 M moviein n 创建一个矩阵 M 共有 n 列 每一列将存储一帧画面 M i getframe 将当前图形窗口中的画面作为第 i 帧以列的形式存入矩阵 M Movie M k 将按列的顺序放映矩阵 M 中存储的画面 并重复 k 次 例例 14 函数 5 sin xy exyz 的动画表达 x 3 0 1 3 X Y meshgrid x z sin X Y exp X Y 5 mesh z M moviein 30 axis manual for j 1 30 mesh cos 4 pi j 30 z z M j getframe end 3 2 1 0 1 2 3 3 2 1 0 1 2 3 0 5 0 0 5 图 14 0 10 20 30 40 50 60 70 0 20 40 60 80 3 2 1 0 1 2 3 4 5 图 15 movie M 25 2 彗星轨线 动态图形的展现彗星轨线 动态图形的展现 利用彗星轨线命令可以非常容易地绘出质点的运动轨迹 其使用格式为 comet y comet x y comet x y p comet3 z comet3 x y z comet3 x y z p comet 命令适用于二维平面 comet3 命令适用于三维平面 式中对 x y 的要求与在 plot plot3 中的要求相同 参数 p 设定绘得的彗星轨线的彗长为 p length z 例例 15 动态螺旋线图动态螺旋线图 见图 16 z 0 0 1 100 x sin z y cos z 10 comet3 x y z 图 图 16 2 9 分形几何学分形几何学 在我们生活着的大千世界里 除了有像房屋建筑 公路桥梁 汽车 飞机 轮船 以及各种劳动生活工具等这些人造的形态规则的几何形体外 更广泛地充满了诸如花 草树木 山川河流 烟雾云彩等形态极不规则的几何形体 大自然在向人们展示其美 丽多变态的同时 也提出了难以回答的询问 如何描述复杂的自然表象 如何分析其 内在的机理 科学家与艺术家一直在苦苦追寻着这些问题的答案 并力图从传统的欧 几里得几何体系终解放出来 最近几十年 一些科学家开始朦胧地 感觉 了另一个 世界的存在 这个几何世界的描述对象是自然界的几何形态 七十年代 美国科学家 B Mandelbrot 用 Fractal 这个词来定义这门新的几何学科 分形几何学 分形几何学 把自然形态看作是有无限嵌套层次的精细结构 并且在不同尺度下保持某种相似的属 性 于是在简单的迭代过程中就可以得到描述复杂自然形态的有效方法 尽管分形的提出只有二十多年的时间 但它已经在自然科学的诸多领域如数学 物理 化学 材料科学 生命科学 地质 天文 计算机乃至经济 社会 艺术等及 其广泛的领域有着重大的应用 可以毫不夸张地说 分形是大自然的几何学 分形 处处可见 本节的目的是以迭代的观点介绍分形的基本特性以及生成分形的基本方法 使读 者在欣赏美丽的分形图案的同时对分形几何这门学科有个直观的了解 并从哲理的高 度理解这门学科诞生的必然 激发读者探寻科学真理的兴趣 这类图形的构造方式都有一个共同的特点 即最终的图形 F 是按照一定的规则 R 通过对初始图形 F0 不断修改得到的 其中最具有代表性的图形是 Koch 曲线和 Minkowski 香肠 曲线 图 17 Koch 曲线 1 Koch曲线分形原理 Koch曲线的构造方式是 给定一条直线段 F0 将该直线段三等分 并将中间的一段用以该线段为边的等 边三角形的另外两条边替代 得到图形 F1 如上图所示 然后 再对图形 F1 中的每 一小段都按上述方式修改 以至无穷 则最后得到的极限曲线就是所谓的 Koch 曲线 Koch曲线的修改规则R是将每 一条直线段F0用一条折线F1替代 我们称F1为形的生成元 分形的基 本特性完全有生成元决定 因此给 定一个该分生成元 我们就可以生 成各种各样的分形图形 可使用画线函数line x y 根据各点坐标 x y 连成折线 图 19 根据图19所示 由i点和i 1点的坐标 可得Koch曲线生成元各点的坐标如下 15 14 113 12 1 3 2 3 1 6 3 2 1 3 1 3 2 i ii iiii ii i xx xxx yyxxx xxx xx 15 14 113 12 1 3 2 3 1 6 3 2 1 3 1 3 2 i ii iiii ii i yy yyy xxyyy yyy yy 图 18 Minkowski 香肠 曲线 生成生成元各点坐标的程序如下 function x y pd a b ii length a x a 1 y b 1 for i 1 ii 1 aa1 a i aa2 a i 1 bb1 b i bb2 b i 1 x x aa2 3 2 aa1 3 aa1 aa2 2 bb2 bb1 sqrt 3 6 aa1 3 2 aa2 3 aa2 y y bb2 3 2 bb1 3 bb1 bb2 2 aa2 aa1 sqrt 3 6 bb1 3 2 bb2 3 bb2 end 多次分形程序fx1 m function fx1 n 输入参数n代表分形次数 a 0 6 b 0 0 for i 1 3 x y pd a b a x b y end line x y 2 Minkowski 香肠 分形原理 根据图 20 所示 由 i 点和 i 1 点的坐标 可得 Minkowski 香肠 曲线生成 元各点的坐标如下 其中 4 1 2 ii xx l 4 1 3 ii yy l 生成生成元各点坐标的程序如下 function x y pd1 a b ii length a x a 1 y b 1 for i 1 ii 1 aa1 a i aa2 a i 1 bb1 b i bb2 b i 1 l2 aa2 aa1 4 l3 bb2 bb1 4 x2 aa2 4 3 aa1 4 y2 bb2 4 3 bb1 4 x7 3 aa2 4 1 aa1 4 y7 bb1 4 3 bb2 4 x x x2 x2 l3 aa1 aa2 2 l3 aa1 aa2 2 l3 x7 l3 x7 aa2 y y y2 y2 l2 bb1 bb2 2 l2 bb1 bb2 2 l2 y7 l2 y7 bb2 end 多次分形程序 fx2 m function fx2 n 输入参数n代表分形次数 a 0 8 b 0 0 for i 1 n 18 17 376 315 314 323 12 1 4 3 4 1 2 1 2 1 4 1 4 3 i ii ii ii ii i xx xxx lxx lxxx lxxx lxx xxx xx 18 17 276 215 214 223 12 1 4 3 4 1 2 1 2 1 4 1 4 3 i ii ii ii ii i yy yyy lyy lyyy lyyy lyy yyy yy x y pd1 a b a x b y end line x y 在命令窗口输入 fx1 6 fx2 6 可得到6次分形的Koch曲线和Minkowski 香肠 曲线 2 10 上机实验内容上机实验内容 1 在同一画面绘制 0 x 2 pi 范围内的 sin 2x sinx2 sin2x 的图形 2 在同一平面中的两个窗口分别用 polar 绘制心形线 cos1 3 和马鞍面 z x x y y 的图形 并以不同的角度观察马鞍面 3 在区域 3 x 3 3 yFigure Toolbar 选择视角工具 以不同的角 度观察马鞍面 图 22 图 23 3 在 MatLab 命令窗口输入 clf x 3 0 1 3 y x X Y meshgrid x y Z 0 1 sin X 2 Y 2 surf X Y Z shading flat 见图 24 图 24 4 在 MatLab 命令窗口输入 ezplot exp x y sin x y 3 3 12 12 见图 25 3 2 10123 10 5 0 5 10 图 25 5 在 MatLab 命令窗口输入 ezplot 2 t sin t 2 1 cos t 0 6 pi 见图 26 图 26 6 完成函数 z x2 y2sinx 的动画表达 1 在MatLab命令窗口中 点击菜单File New M file 打开M文件编辑窗口 输入程序如下 x 3 0 1 3 X Y meshgrid x z X 2 Y 2 sin X mesh z M moviein 30 axis manual for j 1 30 mesh cos 4 pi j 30 z z M j getframe end movie M 25 2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年病媒生物控制技术(097)副高试题及答案
- 2025新型医疗事故责任评估与赔偿解决方案合同
- 2025年校园安保体系优化与保安人员职业成长聘用合同
- 2025年甲级写字楼转租合同范本:顶级商务办公空间租赁协议
- 2025年大型工业厂房仓储租赁合同及多功能仓储设备租赁协议
- 2025年度商业地产租赁合同编制与风险评估服务协议(商务版)
- 2025年智慧型办公楼绿色建筑认证与节能管理服务合同
- 2025年度跨境电商贸易金融风险规避财产信托借款协议
- 2025年度酒店业客房智能化控制系统采购与维护合同
- 2025年度高科技农业装备买卖合同
- 第27课 中国特色社会主义的开创与发展 课件 中外历史纲要(上)
- 静脉溶栓病例汇报
- 国家电投集团招聘考试试题及答案
- T/CACEM 31.5-2023高速公路经营管理第5部分:服务区服务要求
- 2025届黑龙江省龙东地区数学八下期末学业质量监测试题含解析
- 医疗项目可行性研究报告【范本模板】
- 北京市海淀区师达中学2025年七下数学期末考试试题含解析
- IATF16949:2016内审员培训试卷含答案
- 机械基础教案
- 矿山租用土地协议书
- 配网安规培训
评论
0/150
提交评论