




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学建模与数学实验 MATLAB入门 MATLAB作为线性系统的一种分析和仿真工具 是理工科大学生应该掌握的技术工具 它作为一种编程语言和可视化工具 可解决工程 科学计算和数学学科中许多问题 MATLAB建立在向量 数组和矩阵的基础上 使用方便 人机界面直观 输出结果可视化 矩阵是MATLAB的核心 MATLAB的进入与运行方式 两种 MATLAB入门 一 变量与函数 二 数组 三 矩阵 四 MATLAB编程 五 实验作业 1 变量MATLAB中变量的命名规则是 1 变量名必须是不含空格的单个词 2 变量名区分大小写 3 变量名最多不超过19个字符 4 变量名必须以字母打头 之后可以是任意字母 数字或下划线 变量名中不允许使用标点符号 一 变量与函数 特殊变量表 2 数学运算符号及标点符号 1 MATLAB的每条命令后 若为逗号或无标点符号 则显示命令的结果 若命令后为分号 则禁止显示结果 2 后面所有文字为注释 3 表示续行 3 数学函数 MATLAB的内部函数是有限的 有时为了研究某一个函数的各种性态 需要为MATLAB定义新函数 为此必须编写函数文件 函数文件是文件名后缀为M的文件 这类文件的第一行必须是一特殊字符function开始 格式为 function因变量名 函数名 自变量名 函数值的获得必须通过具体的运算实现 并赋给因变量 4 M文件 M文件建立方法 1 在MATLAB中 点 File New M file2 在编辑窗口中输入程序内容3 点File Save 存盘 M文件名必须与函数名一致 MATLAB的应用程序也以M文件保存 例 定义函数f x1 x2 100 x2 x12 2 1 x1 2 functionf fun x f 100 x 2 x 1 2 2 1 x 1 2 1 建立M文件 fun m MATLAB fun 2 可以直接使用函数fun m 例如 计算f 1 2 只需在MATLAB命令窗口键入命令 x 12 fun x 返回 x logspace first last n 创建从first开始 到last结束 有n个元素的对数分隔行向量 1 创建简单的数组 二 数组 MATLAB shuzu1 x abcdef 创建包含指定元素的行向量 x first last创建从first开始 加1计数 到last结束的行向量 x first increment last创建从first开始 加increment计数 到last结束的行向量 x linspace first last n 创建从first开始 到last结束 有n个元素的行向量 2 数组元素的访问 MATLAB shuzu2 3 直接使用元素编址序号 x abcd 表示提取数组x的第a b c d个元素构成一个新的数组 x a x b x c x d 2 访问一块元素 x a b c 表示访问数组x的第a个元素开始 以步长b到第c个元素 但不超过c b可以为负数 b缺省时为1 1 访问一个元素 x i 表示访问数组x的第i个元素 3 数组的方向前面例子中的数组都是一行数列 是行方向分布的 称之为行向量 数组也可以是列向量 它的数组操作和运算与行向量是一样的 唯一的区别是结果以列形式显示 产生列向量有两种方法 直接产生例c 1 2 3 4 转置产生例b 1234 c b 说明 以空格或逗号分隔的元素指定的是不同列的元素 而以分号分隔的元素指定了不同行的元素 4 数组的运算 1 标量 数组运算数组对标量的加 减 乘 除和平方运算 是指数组的每个元素对该标量施加相应的加 减 乘 除 平方运算 设 a a1 a2 an c是标量 则 a c a1 c a2 c an c a c a1 c a2 c an c a c a1 c a2 c an c 右除 a c c a1 c a2 c an 左除 a c a1 c a2 c an c c a c a1 c a2 c an MATLAB shuzu3 2 数组 数组运算当两个数组有相同维数时 加 减 乘 除 幂运算可按元素对元素方式进行 不同大小或维数的数组是不能进行运算的 设 a a1 a2 an b b1 b2 bn 则 a b a1 b1 a2 b2 an bn a b a1 b1 a2 b2 an bn a b a1 b1 a2 b2 an bn a b b1 a1 b2 a2 bn an a b a1 b1 a2 b2 an bn MATLAB shuzu4 返回 三 矩阵 逗号或空格用于分隔某一行的元素 分号用于区分不同的行 除了分号 在输入矩阵时 按Enter键也表示开始新一行 输入矩阵时 严格要求所有行有相同的列 例m 1234 5678 9101112 p 111122223333 1 矩阵的建立 特殊矩阵的建立 MATLAB matrix1 d eye m n 产生一个m行n列的单位矩阵 c ones m n 产生一个m行n列的元素全为1的矩阵 b zeros m n 产生一个m行n列的零矩阵 a 产生一个空矩阵 当对一项操作无结果时 返回空矩阵 空矩阵的大小为零 2 矩阵中元素的操作 MATLAB matrix2 1 矩阵A的第r行 A r 2 矩阵A的第r列 A r 4 取矩阵A的第i1 i2行 第j1 j2列构成新矩阵 A i1 i2 j1 j2 5 以逆序提取矩阵A的第i1 i2行 构成新矩阵 A i2 1 i1 6 以逆序提取矩阵A的第j1 j2列 构成新矩阵 A j2 1 j1 7 删除A的第i1 i2行 构成新矩阵 A i1 i2 8 删除A的第j1 j2列 构成新矩阵 A j1 j2 9 将矩阵A和B拼接成新矩阵 AB A B 3 依次提取矩阵A的每一列 将A拉伸为一个列向量 A 2 矩阵 矩阵运算 1 元素对元素的运算 同数组 数组运算 3 矩阵的运算 1 标量 矩阵运算标量 数组运算相同 MATLAB matrix3 2 矩阵运算 矩阵加法 A B矩阵乘法 A B方阵的行列式 det A 方阵的逆 inv A 方阵的特征值与特征向量 V D eig A 返回 关系与逻辑运算 1 关系操作符 2 逻辑运算符 1 for循环 允许一组命令以固定的和预定的次数重复forx array commands end在for和end语句之间的命令串 commands 按数组 array 中的每一列执行一次 在每一次迭代中 x被指定为数组的下一列 即在第n次循环中 x array n 控制流 MATLAB提供三种决策或控制流结构 for循环 while循环 if else end结构 这些结构经常包含大量的MATLAB命令 故经常出现在MATLAB程序中 而不是直接加在MATLAB提示符下 例对n 1 2 10 求xn 的值 MATLAB for1 while expression commands end只要在表达式 expression 里的所有元素为真 就执行while和end语句之间的命令串 commands 2 While循环与for循环以固定次数求一组命令相反 while循环以不定的次数求一组语句的值 MATLAB while1 例设银行年利率为11 25 将10000元钱存入银行 问多长时间会连本带利翻一番 3 if else end结构 1 有一个选择的一般形式是 if expression commands end如果在表达式 expression 里的所有元素为真 就执行if和end语句之间的命令串 commands MATLAB fun1 MATLAB命令窗口输入fun1 2 fun1 1 即可 2 有三个或更多的选择的一般形式是 if expression1 commands1 elseif expression2 commands2 elseif expression3 commands3 elseif else commands endendend end 先建立M文件fun2 m来定义函数f x 再在MATLAB命令窗口输入fun2 2 fun2 0 5 fun2 1 即可 MATLAB fun2 返回 对以下问题 编写M文件 1 用起泡法对10个数由小到大排序 即将相邻两个数比较 将小的调到前头 2 有一个矩阵 编程求出其最大值及其所处的位置 3 编程求 4 一球从100米高度自由落下 每次落地后反跳回原高度的一半 再落下 求它在第10次落地时 共经过多少米 第10次反弹有多高 5 有一函数 写一程序 输入自变量的值 输出函数值 实验作业 返回 MATLAB作图 二维图形 三维图形 图形处理 实例 作业 特殊二 三维图形 MATLAB作图是通过描点 连线来实现的 故在画一个曲线图形之前 必须先取得该图形上的一系列的点的坐标 即横坐标和纵坐标 然后将该点集的坐标传给MATLAB函数画图 命令为 plot X Y S plot X Y 画实线plot X Y1 S1 X Y2 S2 X Yn Sn 将多条线画在一起 X Y是向量 分别表示点集的横坐标和纵坐标 线型 y黄色 点 连线m洋红o圈 短虚线c蓝绿色xx 符号 长短线r红色 加号 长虚线 1 曲线图 例在 0 2 用红线画sinx 用绿圈画cosx x linspace 0 2 pi 30 y sin x z cos x plot x y r x z g0 解 MATLABliti1 2 符号函数 显函数 隐函数和参数方程 画图 1 ezplot ezplot x t y t tmin tmax 表示在区间tmin t tmax绘制参数方程x x t y y t 的函数图 ezplot f x a b 表示在a x b绘制显函数f f x 的函数图 ezplot f x y xmin xmax ymin ymax 表示在区间xmin x xmax和ymin y ymax绘制隐函数f x y 0的函数图 例在 0 上画y cosx的图形 解输入命令ezplot sin x 0 pi MATLABliti25 解输入命令ezplot cos t 3 sin t 3 0 2 pi MATLABliti41 解输入命令ezplot exp x sin x y 2 0 5 0 2 MATLABliti40 2 fplot 注意 1 fun必须是M文件的函数名或是独立变量为x的字符串 2 fplot函数不能画参数方程和隐函数图形 但在一个图上可以画多个图形 fplot fun lims 表示绘制字符串fun指定的函数在lims xmin xmax 的图形 解先建M文件myfun1 m functionY myfun1 x Y exp 2 x sin 3 x 2 再输入命令 fplot myfun1 1 2 MATLABliti43 MATLABliti28 解输入命令 fplot tanh x sin x cos x 2 pi 11 11 例在 2 2 范围内绘制函数tanh的图形 解fplot tanh 2 2 MATLABliti42 3 对数坐标图 在很多工程问题中 通过对数据进行对数转换可以更清晰地看出数据的某些特征 在对数坐标系中描绘数据点的曲线 可以直接地表现对数转换 对数转换有双对数坐标转换和单轴对数坐标转换两种 用loglog函数可以实现双对数坐标转换 用semilogx和semilogy函数可以实现单轴对数坐标转换 loglog Y 表示x y坐标都是对数坐标系semilogx Y 表示x坐标轴是对数坐标系semilogy 表示y坐标轴是对数坐标系plotyy有两个y坐标轴 一个在左边 一个在右边 例用方形标记创建一个简单的loglog 解输入命令 x logspace 1 2 loglog x exp x s gridon 标注格栅 MATLABliti37 例创建一个简单的半对数坐标图 解输入命令 x 0 1 10 semilogy x 10 x MATLABliti38 例绘制y x3的函数图 对数坐标图 半对数坐标图 MATLABliti22 返回 三维图形 1 空间曲线 2 空间曲面 返回 plot3 x y z s 空间曲线 1 一条曲线 例在区间 0 10 画出参数曲线x sint y cost z t MATLABliti8 解t 0 pi 50 10 pi plot3 sin t cos t t rotate3d 旋转 plot3 x y z 2 多条曲线 例画多条曲线观察函数Z X Y 2 这里meshgrid x y 的作用是产生一个以向量x为行 向量y为列的矩阵 MATLABliti9 其中x y z是都是m n矩阵 其对应的每一列表示一条曲线 解x 3 0 1 3 y 1 0 1 5 X Y meshgrid x y Z X Y 2 plot3 X Y Z 返回 空间曲面 例画函数Z X Y 2的图形 解x 3 0 1 3 y 1 0 1 5 X Y meshgrid x y Z X Y 2 surf X Y Z shadingflat 将当前图形变得平滑 MATLABliti11 1 surf x y z 画出数据点 x y z 表示的曲面 2 mesh x y z 解x 3 0 1 3 y 1 0 1 5 X Y meshgrid x y Z X Y 2 mesh X Y Z MATLABliti24 例画出曲面Z X Y 2在不同视角的网格图 画网格曲面 3 meshz X Y Z 在网格周围画一个curtain图 如 参考平面 解输入命令 X Y meshgrid 3 125 3 Z praks X Y meshz X Y Z 例绘peaks的网格图 MATLABliti36 返回 在图形上加格栅 图例和标注 定制坐标 图形保持 分割窗口 缩放图形 改变视角 图形处理 返回 动画 1 在图形上加格栅 图例和标注 1 GRIDON 加格栅在当前图上GRIDOFF 删除格栅 处理图形 2 hh xlabel string 在当前图形的x轴上加图例string hh ylabel string 在当前图形的y轴上加图例string hh title string 在当前图形的顶端上加图例string hh zlabel string 在当前图形的z轴上加图例string 例在区间 0 2 画sin x 的图形 并加注图例 自变量X 函数Y 示意图 并加格栅 解x linspace 0 2 pi 30 y sin x plot x y xlabel 自变量X ylabel 函数Y title 示意图 gridon MATLABliti2 3 hh gtext string 命令gtext string 用鼠标放置标注在现有的图上 运行命令gtext string 时 屏幕上出现当前图形 在图形上出现一个交叉的十字 该十字随鼠标的移动移动 当按下鼠标左键时 该标注string放在当前十交叉的位置 例在区间 0 2 画sin x 并分别标注 sin x cos x 解x linspace 0 2 pi 30 y sin x z cos x plot x y x z gtext sin x gtext cos x MATLABliti3 返回 2 定制坐标 Axis xminxmaxyminymaxzminzmax 例在区间 0 005 0 01 显示sin 1 x 的图形 解x linspace 0 0001 0 01 1000 y sin 1 x plot x y axis 0 0050 01 11 MATLABliti4 返回 定制图形坐标 将坐标轴返回到自动缺省值 Axisauto 3 图形保持 1 holdonholdof 例将y sin x y cos x 分别用点和线画出在同一屏幕上 解x linspace 0 2 pi 30 y sin x z cos x plot x z holdonPlot x y MATLABliti5 保持当前图形 以便继续画图到当前图上 释放当前图形窗口 2 figure h 例区间 0 2 新建两个窗口分别画出y sin x z cos x 解x linspace 0 2 pi 100 y sin x z cos x plot x y title sin x pausefigure 2 plot x z title cos x MATLABliti6 返回 新建h窗口 激活图形使其可见 并把它置于其它图形之上 4 割窗口 h subplot mrows ncols thisplot 划分整个作图区域为mrows ncols块 逐行对块访问 并激活第thisplot块 其后的作图语句将图形画在该块上 激活已划分为mrows ncols块的屏幕中的第thisplot块 其后的作图语句将图形画在该块上 命令Subplot 1 1 1 返回非分割状态 subplot mrows ncols thisplot subplot 1 1 1 解x linspace 0 2 pi 100 y sin x z cos x a sin x cos x b sin x cos x eps subplot 2 2 1 plot x y title sin x subplot 2 2 2 plot x z title cos x subplot 2 2 3 plot x a title sin x cos x subplot 2 2 4 plot x b title sin x cos x 例将屏幕分割为四块 并分别画出y sin x z cos x a sin x cos x b sin x cos x MATLABliti7 返回 5 缩放图形 zoomon 单击鼠标左键 则在当前图形窗口中 以鼠标点中的点为中心的图形放大2倍 单击鼠标右键 则缩小2倍 解x linspace 0 2 pi 30 y sin x Plot x y zoomon MATLABliti13 例缩放y sin x 的图形 zoomoff 为当前图形打开缩放模式 关闭缩放模式 返回 6 改变视角view 1 view a b 命令view a b 改变视角到 a b a是方位角 b为仰角 缺省视角为 37 5 30 解x 3 0 1 3 y 1 0 1 5 X Y meshgrid x y Z X Y 2 subplot 2 2 1 mesh X Y Z subplot 2 2 2 mesh X Y Z view 50 34 subplot 2 2 3 mesh X Y Z view 60 70 subplot 2 2 4 mesh X Y Z view 0 1 1 MATLABliti10 例画出曲面Z X Y 2在不同视角的网格图 view用空间向量表示的 三个量只关心它们的比例 与数值的大小无关 x轴view 1 0 0 y轴view 0 1 0 z轴view 0 0 1 2 view x y z 返回 7 动画 Moviein getframe movie 函数Moviein 产生一个帧矩阵来存放动画中的帧 函数getframe对当前的图像进行快照 函数movie 按顺序回放各帧 MATLABliti14 返回 例将曲面peaks做成动画 解 x y z peaks 30 surf x y z axis 33 33 1010 m moviein 15 fori 1 15view 37 5 24 i 1 30 m i getframe endmovie m 特殊二 三维图形 1 特殊的二维图形函数 2 特殊的三维图形函数 返回 特殊的二维图形函数 1 极坐标图 polar theta rho s 用角度theta 弧度表示 和极半径rho作极坐标图 用s指定线型 例 解 theta linspace 0 2 pi rho sin 2 theta cos 2 theta polar theta rho g title Polarplotofsin 2 theta cos 2 theta MATLABliti15 2 散点图 scatter X Y S C 在向量X和Y的指定位置显示彩色圈 X和Y必须大小相同 解输入命令 loadse
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产品设计中的可持续性理念实践案例分享
- 智能电池簇管理技术的行业动态与市场机遇
- 2025物品抵押的借款合同示范文本
- 邮储银行绍兴市诸暨市2025秋招笔试计算机基础专练及答案
- 中国银行天水市秦州区2025秋招笔试言语理解题专练及答案
- 工商银行宝鸡市扶风县2025秋招英文面试20问及高分答案
- 工商银行百色市田东县2025秋招笔试计算机基础专练及答案
- 中国银行承德市承德县2025秋招笔试计算机基础专练及答案
- 中国银行清远市佛冈县2025秋招笔试英语阅读选词题专练30题及答案
- 邮储银行铜仁市松桃苗族自治县2025秋招英文结构化面试题库含答案
- 布依山歌教学课件
- 2025年铁路客运值班员(高级)职业技能鉴定参考试题库(含答案)
- T-CALC 007-2025 重症监护病房成人患者人文关怀规范
- 供热通风与空调工程技术单选题100道及答案
- 大学英语四级词汇完整表(打印背诵版)
- 开封市第二届职业技能大赛健康和社会照护项目技术文件(世赛选拔项目)
- 建筑工地安全施工规范
- 2024至2030年全球及中国海洋休闲设备行业市场分析及投资建议报告
- QFD质量功能展开的未来发展趋势
- 燃气行业数字化转型研究
- 超声引导下神经阻滞
评论
0/150
提交评论