




已阅读5页,还剩117页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
欢迎学习MATLAB 1 1MATLAB概述 MATLAB语言的发展matlab语言是由美国的CleverMoler博士于1980年开发的设计者的初衷是为解决 线性代数 课程的矩阵运算问题取名MATLAB即MatrixLaboratory矩阵实验室的意思 Matlab是所有系统工具的基础 设计自动化工具 一般用途工具 信号和图像处理 控制系统设计和分析 1 1 3初识MATLAB例1 1绘制正弦曲线和余弦曲线 x 0 0 5 360 pi 180 plot x sin x x cos x 例1 2求方程3x4 7x3 9x2 23 0的全部根 p 3 7 9 0 23 建立多项式系数向量x roots p 求根 例1 3求积分quad x log 1 x 0 1 例1 4求解线性方程组 a 2 3 1 8 3 2 45 1 9 b 4 2 17 x inv a b例1 5三维图像 Matlab的学习方法 必须做大量的练习 熟悉其中的函数联系和自己的课题相关 深刻的体会多看帮助文件 又一本好的参考书会提问题 寻求网络的帮助记住 Matlab可以做很多事情 2 Matlab6 5环境 菜单栏 单击即可打开相应的菜单 工具栏 使用它们能使操作更快捷 CommandWindow 命令窗口 用来输入和显示计算结果 其中符号 表示等待用户输入 LaunchPad 分类帮助窗口 Workspace 工作区窗口 存储着命令窗口输入的命令和所有变量值 CommandHistory 历史纪录窗口 记录着每次时间及运行过的所有命令行 CurrentDirectory 当前目录选择窗口 命令窗口 菜单栏 工具栏 分类帮助窗口 历史纪录窗口 MATLAB界面 命令窗口 图形窗口 编辑窗口 帮助窗口 二 命令行基础 1 简单的运算 步骤如下 1 用键盘在命令窗口输入以下内容 12 2 7 4 3 2 2 按Enter键 该指令就被执行 3 命令窗口显示所得结果 ans 2 1 输入 2 按Enter键 3 显示 x 3 y x 3 x 1 4 2 15 sin x y 25 9873 例 计算 在命令窗口中输入sqrt 18 7 sin pi 6 5 cos pi 6 注意 1 为命令提示符 2 字母要区分大小写 所有命令和函数名都必须用小写 注意 1 当命令行有错误 Matlab会用红色字体提示 2 同一行中若有多个表达式 则必须用分号或逗号隔开 若表达式后面是分号 将不显示结果 3 输入为 三 Matlab的变量及管理 1 变量名的命名规则 1 以字母开头 后面可跟字母 数字和下短线 2 大小写字母有区别 3 不超过31个字符 Example fun Zheng12 2 Matlab的预定义变量 MATLAB常用数学函数 指数函数 复数函数 其他函数 六 M文件 1 M文件的建立 M文件 就是用Matlab语言编写的 可在Matlab里运行的程序 M文件有两大类 命令文件和函数文件 单击 File 选择 New 单击 M file 输入内容 保存 2 M命令文件 脚本文件 M命令文件 只是一些命令行的组合 而且其中的所有变量也成为工作区的一部分 1 打开M文件 输入 x 2 15 y 3 67 z 6 71 sum x y zfun x y z 3 2 以名ed m保存 注意 在保存名处只需输入ed M文件窗口即可关闭 3 在Matlab命令窗口输入M文件名 ed 即可出现M文件上结果 3 M函数文件 它就像库函数一样方便的调用 1 格式 function输出变量 函数名 输入变量 函数体语句 2 注意 a 输出变量多于一个时 要用方括号 b 输入 输出变量多于一个时 要用逗号隔开 c 必须以函数名存盘 1 打开M文件 输入 functiony zheng x y x 2 3 2 x 1 7 2 输入zheng并保存这个M文件 3 在Matlab命令窗口输入 zheng 1 1 就有其值 输入 zheng 1 3 就可求出对应的值 依次可求得所有值 七 简单编程 1 条件语句 它的执行原理与C语言中条件语句的执行原理完全一样 1 if语句体end 2 if语句体1else语句体2end 2 if语句体1elseif语句体2else语句体3end 1 打开M文件 输入 functiony xy x ifx 0y 0elseifx 1y 1elseifx 2y 2 xelsey 2 x 5end 2 输入xy并保存这个M文件 3 在Matlab命令窗口输入 xy 1 就有其值 输入 xy 0 7 就可求出对应的值 依次可求得所有值 2 循环语句 1 for循环变量 初值 增量 终值循环体end 2 while循环体end 1 打开M文件 输入 s 0forn 1 100s s 1 n 2end 2 输入sg并保存这个M文件 3 在Matlab命令窗口输入 sg 就有其值 矩阵的MATLAB表示 直接输入 A 12 3 456 7 89 按 Enter 键 指令被执行 在指令执行后 MATLAB指令窗中将显示以下结果 A 123456789冒号操作符 a 0 1 10 a linspace 0 1 10 用linspace函数格式 linspace 初值 终值 点数 下标操作 矩阵下标 按列优先排列 用两个下标来表示 第i行j列的元素用A i j 来表示用一个下标来表示 对于矩阵按列操作 可用单下标引用A i 在下标的表达式中使用冒号表示矩阵的一部分 下标引用从序号1开始 下标操作 A 123456789 A 4 A 8 行列删除 B 123 456 789 B 2 B 123789 矩阵的尺寸 为了判断矩阵的尺寸 Matlab提供了以下函数 m n size A 返回矩阵的行数m和列数nM size A 在矩阵M中返回矩阵的行数 列数len length A 返回矩阵A行数和列数中的最大值 特殊矩阵 单位矩阵eye n 生成n维单位阵eye m n 生成m n的单位阵eye m n 生成m n的单位阵eye size A 生成与A矩阵同样大小的单位矩阵oneszeros 特殊矩阵 全1矩阵ones n ones m n ones m n ones size A 全零矩阵zeros n zeros m n zeros m n zeros size A 随机矩阵rand n rand m n rand m n rand size A 生成的随机矩阵的各个元素值在0和1之间 对角阵diag n 对角阵魔术矩阵magic n 魔术矩阵的所有行元素和 列元素和 对角线元素和均相等 阵列的运算符号除了加减符号外其余的阵列运算符号均须多加 符号 阵列运算功能 注意 一定要多加 符号 加 减 乘 左除 右除 次方 转置矩阵的几种基本变换操作 1 通过在矩阵变量后加 的方法来表示转置运算 a 10 2 12 34 2 4 98 34 6 a ans 10349822341246 2 矩阵求逆 inv a ans 0 01160 0372 0 00150 0176 0 10470 03450 0901 0 0135 0 0045 3 矩阵的特征值 u v eig a u 0 29600 3635 0 3600 0 2925 0 41280 7886 0 9093 0 83520 4985v 48 8395000 19 8451000 10 9943 MATLAB下矩阵的运算 矩阵的代数运算转置B A 加减乘A BA BA B左除A B即AX B的解X A 1B右除A B即XB A的解X AB 1翻转fliplrflipudrot90乘方A B点运算A BA BA BA BA 函数 曲线的绘图 绘图命令fplot 是专门用于绘制一元函数曲线 格式 fplot fun a b 表示绘制区间 a b 上函数y fun的图形 Example5 绘出下列函数图形 说明其奇偶性 fplot x 4 2 x 2 1 10 10 b 按回车键Enter c 出现图形窗口 上有其图形 d 同样的方法输入 e 同样的方法 按回车键 出现其对应图形 fplot x 2 exp x 2 10 10 5 1二维数据曲线图5 1 1绘制单根二维曲线plot函数的基本调用格式为 plot x y 其中x和y为长度相同的向量 分别用于存储x坐标和y坐标数据 x 0 0 001 10 0到10的1000个点的x座标y sin x 对应的y座标plot x y 绘图 可以设定显示范围 作图方法二 例5 1在0 x 2 区间内 绘制曲线y 2e 0 5xcos 4 x 程序如下 x 0 pi 100 2 pi y 2 exp 0 5 x cos 4 pi x plot x y 例5 2绘制曲线 程序如下 t 0 0 1 2 pi x t sin 3 t y t sin t sin t plot x y 5 1 2绘制多根二维曲线含多个输入参数的plot函数调用格式为 plot x1 y1 x2 y2 xn yn 1 当输入参数都为向量时 x1和y1 x2和y2 xn和yn分别组成一组向量对 每一组向量对的长度可以不同 每一向量对可以绘制出一条曲线 这样可以在同一坐标内绘制出多条曲线 2 当输入参数有矩阵形式时 配对的x y按对应列元素为横 纵坐标分别绘制曲线 曲线条数等于矩阵的列数 例5 3分析下列程序绘制的曲线 x1 linspace 0 2 pi 100 x2 linspace 0 3 pi 100 x3 linspace 0 4 pi 100 y1 sin x1 y2 1 sin x2 y3 2 sin x3 x x1 x2 x3 y y1 y2 y3 plot x y x1 y1 1 4 图形保持holdon off命令控制是保持原有图形还是刷新原有图形 不带参数的hold命令在两种状态之间进行切换 例5 5采用图形保持 在同一坐标内绘制曲线y1 0 2e 0 5xcos 4 x 和y2 2e 0 5xcos x 程序如下 x 0 pi 100 2 pi y1 0 2 exp 0 5 x cos 4 pi x plot x y1 holdony2 2 exp 0 5 x cos pi x plot x y2 holdoff 5 1 3设置曲线样式MATLAB提供了一些绘图选项 用于确定所绘曲线的线型 颜色和数据点标记符号 它们可以组合使用 例如 b 表示蓝色点划线 y d 表示黄色虚线并用菱形符标记数据点 当选项省略时 MATLAB规定 线型一律用实线 颜色将根据曲线的先后顺序依次 要设置曲线样式可以在plot函数中加绘图选项 其调用格式为 plot x1 y1 选项1 x2 y2 选项2 xn yn 选项n 例5 6在同一坐标内 分别用不同线型和颜色绘制曲线y1 0 2e 0 5xcos 4 x 和y2 2e 0 5xcos x 标记两曲线交叉点 程序如下 x linspace 0 2 pi 1000 y1 0 2 exp 0 5 x cos 4 pi x y2 2 exp 0 5 x cos pi x k find abs y1 y2 1e 2 查找y1与y2相等点 近似相等 的下标x1 x k 取y1与y2相等点的x坐标y3 0 2 exp 0 5 x1 cos 4 pi x1 求y1与y2值相等点的y坐标plot x y1 x y2 k x1 y3 bp 5 1 4图形标注与坐标控制1 图形标注有关图形标注函数的调用格式为 title 图形名称 xlabel x轴说明 ylabel y轴说明 text x y 图形说明 legend 图例1 图例2 函数中的说明文字 除使用标准的ASCII字符外 还可使用LaTeX格式的控制字符 这样就可以在图形上添加希腊字母 数学符号及公式等内容 例如 text 0 3 0 5 sin omega t beta 将得到标注效果sin t 例5 7在0 x 2 区间内 绘制曲线y1 2e 0 5x和y2 cos 4 x 并给图形添加图形标注 程序如下 x 0 pi 100 2 pi y1 2 exp 0 5 x y2 cos 4 pi x plot x y1 x y2 title xfrom0to2 pi 加图形标题xlabel VariableX 加X轴说明ylabel VariableY 加Y轴说明text 0 8 1 5 曲线y1 2e 0 5x 在指定位置添加图形说明text 2 5 1 1 曲线y2 cos 4 pi x legend y1 y2 加图例 给坐标加网格线用grid命令来控制 gridon off命令控制是画还是不画网格线 不带参数的grid命令在两种状态之间进行切换 给坐标加边框用box命令来控制 boxon off命令控制是加还是不加边框线 不带参数的box命令在两种状态之间进行切换 例5 8在同一坐标中 可以绘制3个同心圆 并加坐标控制 程序如下 t 0 0 01 2 pi x exp i t y x 2 x 3 x plot y gridon 加网格线boxon 加坐标边框axisequal 坐标轴采用等刻度 线条和颜色控制符 5 1 7图形窗口的分割subplot函数的调用格式为 subplot m n p 该函数将当前图形窗口分成m n个绘图区 即每行n个 共m行 区号按行优先编号 且选定第p个区为当前活动区 在每一个绘图区允许以不同的坐标系单独绘制图形 例5 10在图形窗口中 以子图形式同时绘制多根曲线 2 极坐标图polar函数用来绘制极坐标图 其调用格式为 polar theta rho 选项 其中theta为极坐标极角 rho为极坐标矢径 选项的内容与plot函数相似 例5 12绘制r sin t cos t 的极坐标图 并标记数据点 程序如下 t 0 pi 50 2 pi r sin t cos t polar t r 5 2 2二维统计分析图在MATLAB中 二维统计分析图形很多 常见的有条形图 阶梯图 杆图和填充图等 所采用的函数分别是 bar x y 选项 stairs x y 选项 stem x y 选项 fill x1 y1 选项1 x2 y2 选项2 例5 13分别以条形图 阶梯图 杆图和填充图形式绘制曲线y 2sin x 程序如下 x 0 pi 10 2 pi y 2 sin x subplot 2 2 1 bar x y g title bar x y g axis 0 7 2 2 subplot 2 2 2 stairs x y b title stairs x y b axis 0 7 2 2 subplot 2 2 3 stem x y k title stem x y k axis 0 7 2 2 subplot 2 2 4 fill x y y title fill x y y axis 0 7 2 2 三维曲线和曲面 1 空间曲线绘制函数plot3 格式一 plot3 x y z 功能 若x y z为相同长度的向量 则根据向量x y z绘制空间三维曲线 如果x y z为同阶矩阵 则绘制对应列的多条曲线 格式二 plot3 x y z s 功能 按字符串s设置的线型 颜色 标记符号绘制三维空间曲线 字符串s的设置与plot命令的设置相同 三维螺旋线 t 0 pi 50 10 pi plot3 sin t cos t t grid 1 产生三维数据在MATLAB中 利用meshgrid函数产生平面区域内的网格坐标矩阵 其格式为 x a d1 b y c d2 d X Y meshgrid x y 语句执行后 矩阵X的每一行都是向量x 行数等于向量y的元素的个数 矩阵Y的每一列都是向量y 列数等于向量x的元素的个数 Matlab绘图 续 meshgrid Matlab绘图 续 view 3 2 绘制三维曲面的函数surf函数和mesh函数的调用格式为 mesh x y z c surf x y z c 一般情况下 x y z是维数相同的矩阵 x y是网格坐标矩阵 z是网格点上的高度矩阵 c用于指定在不同高度下的颜色范围 例5 17绘制三维曲面图z sin x sin y x 10 程序如下 x y meshgrid 0 0 25 4 pi z sin x sin y x 10 mesh x y z axis 04 pi04 pi 2 51 此外 还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz 其用法与mesh类似 不同的是meshc还在xy平面上绘制曲面在z轴方向的等高线 meshz还在xy平面上绘制曲面的底座 例5 18在xy平面内选择区域 8 8 8 8 绘制4种三维曲面图 程序如下 计算机的最小正数在pc机上它等于2 52 x y meshgrid 8 0 5 8 z sin sqrt x 2 y 2 sqrt x 2 y 2 eps subplot 2 2 1 mesh x y z title mesh x y z subplot 2 2 2 meshc x y z title meshc x y z subplot 2 2 3 meshz x y z title meshz x y z subplot 2 2 4 surf x y z title surf x y z 例5 19绘制标准三维曲面图形 程序如下 t 0 pi 20 2 pi x y z cylinder 2 sin t 30 subplot 2 2 1 surf x y z subplot 2 2 2 x y z sphere surf x y z subplot 2 1 2 x y z peaks 30 surf x y z z sin sqrt x 2 y 2 sqrt x 2 y 2 解线性方程组Ax B6x1 3x2 4x3 3 2x1 5x2 7x3 48x1 4x2 3x3 7A 634 257 8 4 3 B 3 4 7 X A B A 634 2578 4 3B 3 4 7X 0 60007 0000 5 4000 求多项式方程的根 roots p solve p 例 求方程的所有根p 1 49 10 r roots p 或s1 sym x 3 4 x 2 9 x 10 solve s1 7 2非线性方程数值求解7 2 1单变量非线性方程求解在MATLAB中提供了一个fzero函数 可以用来求单变量非线性方程的根 该函数的调用格式为 z fzero fname x0 tol trace 其中fname是待求根的函数文件名 x0为搜索的起点 一个函数可能有多个根 但fzero函数只给出离x0最近的那个根 tol控制结果的相对精度 缺省时取tol eps trace 指定迭代信息是否在运算中显示 为1时显示 为0时不显示 缺省时取trace 0 例7 8求f x x 10 x 2 0在x0 0 5附近的根 步骤如下 1 建立函数文件funx m functionfx funx x fx x 10 x 2 2 调用fzero函数求根 z fzero funx 0 5 z 0 3758 7 3常微分方程初值问题的数值解法7 3 1龙格 库塔法简介7 3 2龙格 库塔法的实现基于龙格 库塔法 MATLAB提供了求常微分方程数值解的函数 一般调用格式为 t y ode23 fname tspan y0 t y ode45 fname tspan y0 其中fname是定义f t y 的函数文件名 该函数文件必须返回一个列向量 tspan形式为 t0 tf 表示求解区间 y0是初始状态列向量 t和y分别给出时间向量和相应的状态向量 例7 10设有初值问题 试求其数值解 并与精确解相比较 精确解为y t 1 建立函数文件funt m functionyp funt t y yp y 2 t 2 4 t 1 2 求解微分方程 t0 0 tf 10 y0 2 t y ode23 funt t0 tf y0 求数值解y1 sqrt t 1 1 求精确解t y y1 y为数值解 y1为精确值 显然两者近似 课堂练习 当系数取a 9 b 27 c 2 36667 利用ODE45求在 0 50 处该常微分方程组的数值解 并画出其三维图像 functiondy erigid t y dy zeros 3 1 acolumnvectordy 1 9 y 2 y 1 dy 2 27 y 1 y 2 y 1 y 3 dy 3 2 36667 y 3 y 1 y 2 T Y ode45 erigid 050 0 10 10 1 plot3 Y 1 Y 2 Y 3 gridon 7 4函数极值MATLAB提供了基于单纯形算法求解函数极值的函数fmin和fmins 它们分别用于单变量函数和多变量函数的最小值 其调用格式为 x fmin fname x1 x2 x fmins fname x0 这两个函数的调用格式相似 其中fmin函数用于求单变量函数的最小值点 fname是被最小化的目标函数名 x1和x2限定自变量的取值范围 fmins函数用于求多变量函数的最小值点 x0是求解的初始值向量 MATLAB没有专门提供求函数最大值的函数 但只要注意到 f x 在区间 a b 上的最小值就是f x 在 a b 的最大值 所以fmin f x1 x2 返回函数f x 在区间 x1 x2 上的最大值 例7 13求f x x3 2x 5在 0 5 内的最小值点 1 建立函数文件mymin m functionfx mymin x fx x 3 2 x 5 2 调用fmin函数求最小值点 x fmin mymin 0 5 x 0 8165 6 2数据插值6 2 1一维数据插值在MATLAB中 实现这些插值的函数是interp1 其调用格式为 Y1 interp1 X Y X1 method 函数根据X Y的值 计算函数在X1处的值 X Y是两个等长的已知向量 分别描述采样点和样本值 X1是一个向量或标量 描述欲插值的点 Y1是一个与X1等长的插值结果 method是插值方法 允许的取值有 linear nearest cubic spline 注意 X1的取值范围不能超出X的给定范围 否则 会给出 NaN 错误 例6 10用不同的插值方法计算若x 0246810 Y 04163664100 求x 13579 处的Y值 MATLAB中有一个专门的3次样条插值函数Y1 spline X Y X1 其功能及使用方法与函数Y1 interp1 X Y X1 spline 完全相同 例6 13某观测站测得某日6 00时至18 00时之间每隔2小时的室内外温度 用3次样条插值分别求得该日室内外6 30至17 30时之间每隔2小时各点的近似温度 设时间变量h为一行向量 温度变量t为一个两列矩阵 其中第一列存放室内温度 第二列储存室外温度 命令如下 h 6 2 18 t 18 20 22 25 30 28 24 15 19 24 28 34 32 30 XI 6 5 2 17 5YI interp1 h t XI spline 用3次样条插值计算 曲线拟合 已知离散点上的数据集 即已知在点集上的函数值 构造一个解析函数 其图形为一曲线 使在原离散点上尽可能接近给定的值 这一过程称为曲线拟合 在MATLAB中 用polyfit函数来求得最小二乘拟合多项式的系数 再用polyval函数按所得的多项式计算所给出的点上的函数近似值 polyfit函数的调用格式为 P S polyfit X Y m 函数根据采样点X和采样点函数值Y 产生一个m次多项式P及其在采样点的误差向量S 其中X Y是两个等长的向量 P是一个长度为m 1的向量 P的元素为多项式系数 polyval函数的功能是按多项式的系数计算x点多项式的值 例6 15 符号计算之求极限 symsx y1 1 4 x 1 x y2 exp x 1 x limit y1 x 0 limit y2 x 0 求导数与偏导数 symsx f 3 x 3 5 x 1 diff f 1 symsxy 对x偏导数z x 2 sin 2 y B diff z x 求解不定积分 symsxb f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家能源大同市2025秋招交通运输类面试追问及参考回答
- 中国广电乌兰察布市2025秋招心理测评常考题型与答题技巧
- 中国移动西双版纳2025秋招供应链采购类专业追问清单及参考回答
- 国家能源哈尔滨市2025秋招面试专业追问及参考财务审计岗位
- 新疆语言考试试题及答案
- 中国广电常州市2025秋招行业解决方案岗位专业追问清单及参考回答
- 巴音郭楞自治州中石化2025秋招心理测评常考题型与答题技巧
- 国家能源广州市2025秋招笔试模拟题及答案
- 中国联通陕西地区2025秋招网申填写模板含开放题范文
- 太原市中石油2025秋招笔试模拟题含答案财务与审计岗
- 2025年中国近眼显示行业市场全景分析及前景机遇研判报告
- 2025个人住房公积金借款合同范本
- 2025贵州民航产业集团有限公司社会招聘考试参考试题及答案解析
- 光伏水面专项施工方案
- 高三励志课件
- 河南省人民医院2025年护士规范化培训招生考试参考题库及答案解析
- 防消联勤课件
- 绿色交通系统无人驾驶车辆示范项目可行性研究报告
- 2025年领导干部政治理论知识竞赛题库及答案
- 2025国庆中秋节前安全教育
- 东北三省2025~2026学年度上学期高考单元检测示范卷 数学(选择性必修第一册 人教版 第1章)(含答案)
评论
0/150
提交评论