《MATLAB与科学计算》PPT课件.ppt_第1页
《MATLAB与科学计算》PPT课件.ppt_第2页
《MATLAB与科学计算》PPT课件.ppt_第3页
《MATLAB与科学计算》PPT课件.ppt_第4页
《MATLAB与科学计算》PPT课件.ppt_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB与科学计算 一 前言 MATLAB matrixlaboratory的缩写 矩阵实验室的意思 一开始它是一种专门用于矩阵数值计算的软件 自MATLAB4 0版本问世以来 该软件成为最具有吸引力 应用最为广泛的科学计算语言 我们这个课就拿MATLAB6 1版本来讲 6 x版本大同小异 学习该软件的必要性 目前 MATLAB软件不仅走入企业 公司和科研机构 而且在高等院校也是从大学生到博士生都必须掌握的一项基本技能 是必不可少的计算工具 MATLAB功能 数值计算 符号运算和图形处理 学习它的意义 随着计算机科学和计算软件的发展 数学系学生必须掌握一门好的计算软件 这是我们就业 继续身造或做科研工作所要用到的 是当代大学生必备的一项技能 其它计算软件 MATHEMATIC 数学分析问题的计算 IDL 航天 控制 FOETRAN BASIC 科学计算 可以说一个人掌握了一门计算软件 再学习其它计算软件很容易 MATLAB桌面平台 1 主窗口 整个大的窗口 其它几个窗口都包括在其中 2 命令窗口 commandwindow 为运算提示符 表示MATLAB在准备状态 当在提示符后输入一段运算式并按回车键后 就给出计算结果 3 历史窗口 commandhistory 保留命令历史记录 这方便于使用者查询 双击历史窗口中的某一行命令 即可在命令窗口中执行该命令 4 当前目录窗口 currentdirectory 在当前目录窗口中可显示或改变当前目录 也可以显示当前目录下的文件 并提供搜索功能 5 发行说明书窗口 launchpad 用来说明用户所拥有的Mathworks公司产品的工具包 演示以及帮助信息 6 工作间管理窗口 workspace 显示目前内存中所有的MATLAB变量的变量名 数学结构 字节数及其类型 命令窗口查询帮助 help 函数名 当用户知道函数名字 而不知道其用法时 用help命令可以去了解此函数的用法 如 helpinv MATLAB标点的含义 1 分号 区分行以及取消运行显示等 例 A 1 2 3 4 与A 1 2 3 4 的区别 2 逗号 区分列及函数参数分隔符等 例 1 2 3 4 B 1 4 3 3 2 1 4 5 6 3 小括号 指定运算过程的先后次序等 例 x 0 5 y sin x 2 cos x z sin x 2 cos x 4 方括号 矩阵定义标志等 见上 5 续行号 例 y sin x 2 cos x 也可写为y sin x 2 cos x 6 百分号 注释标记 该行 以后的语句不执行 例 线性规划程序 a 0 5 b sin x 正弦函数 7 等号 赋值标记 见上 8 单引号 字符串表示符 单引号里面的内容为字符串 单引号一定在英文状态下输入例 a xingtaicollege 9 冒号 有多种应用功能 学习过程中注意 如 选取矩阵的所有行 列 矩阵定义 二 数值计算 变量 MATLAB语言不需要对所使用的变量进行事先声明 也不需要指定其类型 它会自动根据所赋予变量的值或所进行的操作来确定变量的类型 如果变量重新赋值将会用新值代替旧值 如 a 1b 0 5c a bc 3 变量命名的规则 1 变量名区分大小写 2 变量名长度不能超过31位 3 必须以字母开头 变量名中可包含字母 数字 下划线 但不能使用标点 常量 MATLAB中有些预定义的变量 这些特殊的变量称为常量 常用到的有 i j 虚数单位 pi NaN 表示不定值 比如0 0 inf 无穷大 infinit 比如1 0 算术操作符 加 减 可以通用 分别为矩阵乘 乘方 左除 右除 分别为数组乘 乘方 左除 右除 此时向量的运算不会满足矩阵的运算法则 注意矩阵的加点运算结果 如 a1 2 a2 1 2 3 4 b2 4 3 2 1 a1 a2a1 a2a2 a1a1 a2a1 a2 a1 a2是错误的写法a1 a2a2 b2a2 b2a2 b2 a2 b2是错误的写法a2 b2b2 a2a2 b2 例已知水的黏度随温度的变化公式为 0 1 at bt2 其中 0 1 785 10 3 a 0 03368 b 0 000221 求水在0 20 40 80 时的黏度 程序如下 miu0 1 785e 3 a 0 03368 b 0 000221 t 0 20 80miu miu0 1 a t b t 2 运行后的结果为 miu 0 00180 00100 00070 00050 0003 字符串 字符串的约定 1 字符串用单引号括起来 2 字符串的每个每个字符 包括空格 都是字符数组的一个元素 例s xingtaicollege f sin x 是字符串 chararray 向量的生成 1 直接输入 如a 1 2 5 3 2 利用冒号表达式生成 如 b 2 2 10 此时 可省略 步长为1时 步长可省略 第一个数为首元素的值 第2个数为步长或差值 第三个数为尾元素的限值 不能超过这个值 如b 2 2 11等价于b 2 2 10 3 线性等份向量生成 y linspace x1 x2 n 生成n维向量 使得y 1 x1 y n x2 如 y linspace 1 100 6 向量的基本运算 1 向量的加减 用 同维向量才可以加 减 相应元素加减 2 向量与数可以加 减 用 数与向量的每个元素进行作用 3 向量与数可以相乘 用 4 向量与数可以相除 向量 数 数 向量 5 两个向量点积 必须是同维向量 dot a b sum a b 6 两个向量叉积 cross a b a b必须同维并是3维且次序不能颠倒 7 混合积 由以上两个函数实现 dot a cross b c 矩阵的生成 1 直接输入 如 a 1 3 4 4 3 2 2 创建M文件输入大矩阵 当矩阵很大时 直接输入显得很笨 出错不易修改 我们可以编写一个M文件 M文件的扩展名必须是m 例编写一个名为matrix m 名字自己随便起 的M文件如下 matrix mmat 1 2 3 3 3 4 5 1 3 2 1 4 8 9 7 5 在命令窗口中输入matrix 就会运行该文件 查看矩阵的结构可用size mat savewa 把a保存在w的mat数据文件中 用load调用出来 loadw 矩阵运算 1 加 减 乘运算 2 矩阵的除法有两种形式 左除 和右除 右除是先计算逆再做乘法 而左除不计算逆直接进行除法运算 这样可避免奇异矩阵无法求逆带来的麻烦 3 矩阵与常数间的运算 运算是数与矩阵的每个元素进行运算 除法运算 只能常数做除数 4 矩阵求逆 inv A 为A的逆 inverse 5 求转置矩阵 A 6 求矩阵的行列式 det A determinant是行列式 7 矩阵幂运算 用 如A 3 表示A A A 8 矩阵指数运算 expm A A为方阵 9 矩阵对数运算 logm A A为方阵 如 a rand 3 成生一个3阶随机矩阵b expm a c logm b 10 矩阵开方 sqrtm a 11 求矩阵的秩 rank a 12 a的迹 trace a 如 A 1 2 3 2 3 2 4 1 3 1 5 6 2 5 3 2 b 1 3 2 1 求方程组Ax b的解 由于rank A rank B 4 B为增广矩阵 所以有唯一解 x A b 或x inv A b 又如 A 361 625 961 1444 1936 1 1 1 1 1 b 1 1 求方程组Ax b的解 由于rank A rank B 2 B为增广矩阵 所以有无穷多个解 MATLAB中用除法解方程组时所得到的解是所有解中范数最小的一个x A b 特殊矩阵的生成 1 zeros n 生成n n阶0矩阵 2 zeros m n 生成m n阶0矩阵 3 zeros size a 生成与a阶数相同的0矩阵 4 eye n 生成n阶单位矩阵 5 eye m n 生成m n阶单位矩阵 6 eye size a 生成与a阶数相同的单位矩阵 7 ones n 生成n阶全1矩阵 8 ones m n 生成m n阶全1矩阵 9 ones size a 生成与a阶数相同的全1矩阵 10 rand n 生成n n阶随机矩阵 其元素值在0和1之间 11 rand m n 生成m n阶随机矩阵 12 rand 生成一个随机数 13 rand size a 生成与a阶数相同的随机矩阵 14 magic n 生成n阶魔阵 15 vander V 生成以向量V为基础向量的范得蒙矩阵 矩阵的特殊操作 1 变维操作reshape a m n 把矩阵a变成m n阶矩阵 如a 1 12 reshape a 2 6 reshape a 3 4 注意变维操作要保证元素个数一致 例s 1 12 c zeros 3 4 c s 符号 表示变维操作 这两个矩阵必须预先定义维数 结果c取的是s的元素 注 c 147258369 2 对角元素抽取diag a k 注 diagonal为对角线的意思 抽取矩阵a的第k条对角线的元素作为向量 k 0时为主对角线 k为正值时为上方第k条对角线 k为负值时为下方第k条对角线 diag a 相当于diag a 0 例a rand 3 v diag a 说明 如果b是一个行向量 则diag b 为对角矩阵 其对角线元素为b的元素 如 b 1 3 diag b 如果b是一个对角矩阵 则diag b 为一个列向量 3 tril a 注 trianglelow 提取矩a的主下三角 4 tril a k 提取矩a的第k条对角线下面部分 k 0时为主对角线 k为正值时为上方第k条对角线 k为负值时为下方第k条对角线 5 triu a k 注 triangleup 提取矩a的第k条对角线上面部分 逻辑运算符 1 等于 2 不等于 3 小于 4 大于 5 小于等于 6 大于等于 7 逻辑与 8 逻辑或 9 逻辑非 说明 在关系比较中 若双方为同维数组 矩阵 则比较的结果也是同维数组 矩阵 它们的元素有0和1组成 对应位置上的元素满足比较关系时为1 否则为0 当常数与数组 矩阵 比较时 结果与数组 矩阵 同维 其值依次为常数与数组元素依次比较的结果 例 a 1 3 4 6 7 9 x 5y x a运行结果y 000011111 逻辑运算的意义是 与 当运算双方的对应元素值都为非0时 结果为1 否则为0 或 当运算双方的对应元素值有一非0时 结果为1 否则为0 非 当运算数组 矩阵 的对应位置上的元素值为0时 结果为1 否则为0 例 a 1 2 3 2 b 0 1 3 0 d a be a bf b 算术运算 比较运算 逻辑与或非运算的优先级 先算术运算 再比较运算 最后逻辑与或非运算 常用的一些函数 直接调用 sin x 正弦函数 sine 例 x pi 0 1 pi y sin x plot x y asin x 反正弦函数 anti sine cos x 余弦函数 cosine acos x 反余弦函数 anti cosine tan x 正切函数 tangent atan x 反正切函数 anti tangent cot x 余切函数 cotangent acot x 反余切函数 anti otangent sec x 正割函数 secant asec x 反正割函数 anti secant csc x 余割函数 cosecant acsc x 反余割函数 anti osecant sinh x 双曲正弦 hyperbolicsine asinh x 反双曲正弦 anti hyperbolicsine cosh x 双曲余弦 hyperboliccosine acosh x 反双曲余弦 anti yperboliccosine tanh x 双曲正切函数 hyperbolictangent atanh x 反双曲正切函数 anti hyperbolictangent coth x 双曲余切函数 hyperboliccotangent acoth x 反双曲余切函数 anti hyperboliccotangent exp x e指数函数 exponent log x 自然对数函数 logarithm log10 x 以10为底的对数 log2 x 以2为底的对数 sqrt x 平方根函数 squareroot abs x 求模函数 absolute inline f的表达式 自定义函数 函数的自变量为函数中出现的变量 自变量顺序安字母表顺序 inline f的表达式 变量1 变量2 变量3 与上面的区别是它安变量表的给出的顺序规定函数的变量顺序 如 g inline sin 2 x y z 表示 g x y z sin 2 x y z g inline sin 2 x y z x z y 表示 g x z y sin 2 x y z g1 1 2 3 与g2 1 2 3 的意义不同 factorial n 求n的阶乘 多项式表示方法 在MATLAB中多项式p x anxn an 1xn 1 a0是以向量p an an 1 a0 的形式储存的 1 系数向量直接输入 例输入多项式x 3 5x 2 6x 33 p 1 5 6 33 poly2sym p polynomial多项式 将系数向量表示成符号多项式 2 矩阵的特征多项式输入 例a 1 2 3 2 3 4 3 4 5 p poly a 求a的特征多项式系数向量p1 poly2sym p 即为a的特征多项式 3 由根创建多项式 例root 5 3 4i 3 4i 是某个多项式的根p poly root 求相应的多项式的系数向量P1 poly2sym p 将多项式系数向量表示成符号多项式 多项式运算 1 求多项式的值 例p 1 11 55 125 a 1 2b 1 2 2 3 polyval p a polynomialvalue求多项式在1 2的值polyvalm p b 多项式在b的值 2 求多项式的根 例求多项式2x 4 5x 3 6x 2 x 9 0的所有根 p 2 5 6 1 9 roots p 得到多项式的根 3 factor 因式分解 例symsxfactor x 9 1 结果 ans x 1 x 2 x 1 x 6 x 3 1 又如 factor sym 100 把整数 进行素数分解 结果 2 2 5 2 4 expand s 多项式展开 s可为多项式 多项式向量和矩阵 例expand sym x 1 3 结果 ans x 3 3 x 2 3 x 1expand sym sin x y 结果 ans sin x cos y cos x sin y 5 collect s 对默认的变量合并同类项 collect s v 对变量v合并同类项 s可为符号多项式 多项式向量和矩阵例collect sym x 2 y y x x 2 2 y x collect sym x 2 y y x x 2 2 y x x collect sym x 2 y y x x 2 2 y x y 6 simple s 符号表达式简化 s可为符号多项式 多项式向量和矩阵 例f simple sym sin x 2 cos x 2 结果 f g simple sym x 3 3 x 2 3 x 1 结果 g x 1 3 7 多项式乘除运算分别用conv和deconv convolution deconvolution 例p1 2 5 6 1 9 p2 3 90 18 p conv p1 p2 为p1和p2所相应的多项式的乘积多项式的系数向量p3 deconv p p1 为p2p4 deconv p p2 为p1poly2sym p1 poly2sym p2 poly2sym p poly2sym p3 poly2sym p4 观看这几个多项式 polyfit x y n 其中x y为拟合数据 n为拟合多项式的阶数 例用最小二乘法拟合数据x 0 501 001 502 002 503 00y 1 752 453 814 808 008 60 x 0 5 1 1 5 2 2 5 3 y 1 75 2 45 3 81 4 80 8 00 8 60 a polyfit x y 2 用2次多项式拟合上组数据 a为拟合多项式的系数向量x1 0 5 0 05 3y1 a 1 x1 2 a 2 x1 a 3 plot x1 y1 画出拟合曲线的图形holdon 保留上面的图形和坐标 可在该坐标系中继续作图plot x y 用 号的形式画出被拟合的数据图形 求矩阵的特征值 eigenvalue 和特征向量 eigenvector 例a 7 3 2 3 4 1 2 1 3 x y eig a 所得结果x为a的特征向量矩阵 y为特征值矩阵说明 a必须是方阵 此时a x x y 三 符号运算 MATLAB进行符号运算的主要功能 符号表达式和符号矩阵的基本操作 符号矩阵的基本运算 符号微积分运算 符号线性方程求解 符号微分方程求解 特殊数学符号函数 符号函数图形等 符号表达式的生成创建符号函数 如f log x 创建符号方程 如g a x 2 b y 2 c 0 创建微分方程 如q Dy y x 或者 f sym log x g sym a x 2 b y 2 c 0 q sym Dy y x 说明 符号函数也可以用另一方法创建 该方法不能创建方程 symsx 用syms可以定义多个变量 变量间用空格分开f log x w sin x cos x 符号与数值之间的转换 1 Vpa函数 如digits 25 设置有效数字的精度为25位有效数字vpa pi 1 显示在上述digits函数设置下的精度的数值或者vpa pi 1 25 注vpa variableprecisionarithmetic 2 numeric函数 如numeric pi 2 a 1 numeric a 把a变为double型 相当于str2num a 3 double函数 转sym型为double型 double sym 2 a 1 double a 把a变为double型代码 说明 对sym型数据 上两者作用一样 例求函数f x x cos x 在x 2的值 解 symsxf x cos x f1 subs f 2 x 字符替代 在符号函数f中用2代替xf1 subs f x 1 给出f在x 1处的值 digits 20 vpa f1 numeric f1 double f1 例求方程3x2 ex 0的精确解和各种精度的近似解 解 s solve 3 x 2 exp x 0 vpa s 显示32位有效数字vpa s 6 显示6位有效数字symsxezplot 3 x 2 exp x 注 W LAMBERTW X 是w exp w x的解 符号函数运算复合函数运算 设z g y y f x compose g f 即为g f x 自变量的符号取为f函数的自变量符号 compose g f t 即为g f x 自变量的符号取t 反函数运算 finverse例symsx symsy symst 或者symsxytg sin y f 1 xcompose g f compose g f t finverse g finverse f 符号矩阵创立使用sym函数直接创建符号矩阵 例a sym 1 sin x cos x 2 2 x 1 x 2 或symsxa 1 sin x cos x 2 2 x 1 x 2 用创建子矩阵的办法创建符号矩阵 该方法不推荐 例a 1 sin x cos x 2 2 x 1 x 2 同列元素的位数必须一样 可用空可空格来补 例b a 1 x 2 将数值矩阵转化为符号矩阵a 2 3 sqrt 2 0 222 log 3 a为数值矩阵b sym a 把a转化为符号矩阵b 符号矩阵索引和修改b 2 2 矩阵的索引 显示矩阵b的第2行第2列元素 符号矩阵的修改b 2 2 log 9 矩阵的修改 b 2 2 修改为log 9 符号矩阵的运算 1 运算 2 矩阵转置 a 3 行列式运算 det a determinant的简写计算符号矩阵的行列式 4 求逆inv a 求矩阵a的逆 5 求矩阵的秩rank a 求矩阵a的秩 符号函数极限 只限于sym型函数 limit f x a 求表达式f在x a时的极限 limit f 求f在x 0时的极限 imit f x a left 求表达式f在x a时的左极限 limit f x a right 求表达式f在x a时的右极限 例 symsxlimit sin x x x 1 limit sin x x limit 1 1 x x x inf ef atan 1 1 x y limit f x 1 没极限y1 limit f x 1 left y2 limit f x 1 right f 1 x y1 limit f x 0 left y2 limit f x 0 right 符号积分 适于sym型 char型 1 int f x 计算符号表达式f 自由变量为x的不定积分 2 int f x a b 计算符号表达式f 自由变量为x 从a到b的定积分说明 符号表达式可以是符号函数 也可是符号矩阵 例symsxint sin x x int sin x x 0 1 int sin x x 0 1 说明 变量省略时默认对ASCII码值大的积分 有x对x积分 a sym 1 sin x cos x 2 2 x 1 x 2 int a x 符号函数求导 适于sym型和char型 1 diff f x 求表达式f 自由变量为x的导数 说明 diff a a为向量时 表示前项与后一项的差 2 diff f x n 求表达式f 自由变量为x的n阶导数 symsxf sin x 2diff f x 变量x省略时默认对x求导diff f x 2 x省略时默认对x求导 线性方程组的符号解法 linsolve 例a sym 10 1 0 1 10 2 0 2 10 b sym 9 7 6 x linsolve a b x为线性方程ax b的解 注 这里a b也可是double型 但得到的x为sym型 vpa x 转化为浮点近似解 32位有效数字 非线性方程 组 的符号解法 1 fsolve f x0 其中f为被求零点的函数 x0为初值 注 fsolve对sym型函数无效 可用于有函数文件 字符串 和inline定义的函数 类似命令还有 fzero 或用 fsolve f x0 foptions 2 slove 方程1 方程2 例 求解下面非线性方程组x1 0 7sinx1 0 2cosx2 0 x2 0 7cosx1 0 2sinx2 0解首先编写函数文件f m如下functiony fc x y 1 x 1 0 7 sin x 1 0 2 cos x 2 y 2 x 2 0 7 cos x 1 0 2 sin x 2 y y 1 y 2 在命令窗口中输入x0 0 502 0 51 x0为初始向量fsolve fc x0 作业 分别用solve和fsolve函数求sinx cosx x 0的解 并进行验证 作业 分别用solve和fsolve函数求方程组x 2 y 2 2 x 1 0 x 2 y 2 1 0的解 并进行验证 两个函数用法的区别是什么 方法1 x y solve x 2 y 2 2 x 1 0 x 2 y 2 1 0 方法2functiony fc x y 1 x 1 2 x 2 2 2 x 1 1 y 2 x 1 2 x 2 2 1 y y 1 y 2 x0 1 6 1 2 x fsolve fc x0 方法3f x 1 2 x 2 2 2 x 1 1 x 1 2 x 2 2 1 x0 0 6 0 x fsolve f x0 方法4f inline x 1 2 x 2 2 2 x 1 1 x 1 2 x 2 2 1 x0 1 6 1 2 x fsolve f x0 4 已知x x1 x2 xn f f1 x f2 x fn x 试求导数f x 即f对x的jacobian矩阵 提示 利用函数 jacobian f v 其中v为自变量向量 例 利用该雅可比函数求下面函数的导数以及在 1 2 3 点的导数值 F 3x cos xy 0 5 x2 80 y 0 1 2 sinz 1 06 e xy 20z 1 解symsx symsy symszf 3 x cos x y 0 5 x 2 80 y 0 1 2 sin z 1 06 exp x y 20 z 1 df jacobian f x y z b subs df x y z 1 2 3 b 1 2 3 c linsolve a b 常微分方程的符号解 dsolve 字符D代表对独立变量导数d dt Dn代表对独立变量的n阶导数 例求dy dt ay和dy dx x的解解dsolve Dy a y 得到通解 默认自变量为t dsolve Dy a y y 0 1 给定了初始条件 求特解 方程和初始条件用逗号分开 都用单引号引起来 y dsolve Dy x x 通解y dsolve Dy x x 1 2 x 特解 符号函数的二维图形 1 ezplot f 绘制f x 的图形 f为sym型 char型 inline型 function函数 此时用 f或 f x的默认范围为 2 2 如ezplot sin x ezplot f 0 10 可省 fplot f 0 10 不省 f为char型 inline型 2 ezplot f a b 绘制f x 的图形 x的范围为 a b 如ezplot sin x 0 9 四 图形处理 图形可视化是数学计算人员所喜欢和追求的一项技术 把结果用图形描述出来 便于理解 分析 二维绘图命令 1 plot y 若y是向量 就以向量的索引为横坐标 以向量的元素值为纵坐标 2 plot x y 一般来说是绘制向量y的图形 横坐标为x的值 纵坐标为y的值 x y的维数相同 3 plot x y 这里 表示用离散点显示 4 plot x1 y x2 y2 x1 y1的维数相同 x2 y2的维数相同 说明 在plot x y s 中图形设置选项s的规定 例x pi 0 1 piy sin x plot y holdon 保留上一个图形plot x y plot x y 1 r 还有大小 线宽控制 如 plot 1 1 ro markersize 50 plot 1 1 ro linewidth 49 例x 0 0 1 pi 2 pi y sin x z cos x plot x y k x z r 分别用虚黑线和点划红线显示两条曲线 polar r 画出极坐标函数r r 的图形例cita 0 0 1 pi 4 pi r cita sin cita 2 polar cita r 或c 0 0 1 6 28 r ones size c 保证c r同维polar c r 6 refline k b 画平面参考线 k为斜率 b为在y轴的截距 7 ezplot f x 画出f x 的图形 例ezplot sin x 结果是在 2 pi 2 pi 上画出图形 ezplot sin x 1 3 结果是在 1 3 上画出图形 f x 可为sym型 char型 inline型和function定义的函数 如 founctionf x f x 2 1 这里必须用 调用 y ezplot f 或y ezplot f 8 fplot f x a b 结果是在 a b 上画出图形 例fplot sin x 1 3 结果是在 1 3 上画出图形 f x 可为char型 inline型 三维图形命令 1 plot3 x y z x y z为同维向量时画空间曲线 例画出x sin t y cos t z t t 0 10 的图形 解 t 0 pi 50 10 pi z t x sin t y cos t plot3 x y z r holdon plot3 x y z 1 r 2 plot3 x y z 当z f x y x y 为xoy平面上的网格节点时 它可以画出空间曲面z f x y 的图形 3 mesh x y z 画出三维网格图 4 meshc x y z 画出三维网格与等高线图 5 meshz x y z 增加边界面屏蔽 6 surf x y z 与mesh函数不同的是把图形着色 surfc与meshc类似 例 x y meshgrid 2 0 1 2 2 0 1 2 z x 2 y 2 plot3 x y z holdonmeshc x y z 8 meshc x y z 16 mesh z 与mesh x y z 的区别类似于plot x 与plot x y 的区别 网格节点 7 ezplot3 x t y t z t a b 为参数在 a b 的范围画出x x t y y t z z t 对应的三维空间曲线 例 ezplot3 cos t sin t t 0 10 pi 8 ezmesh x u v y u v z u v a b c d 在a u b c v d的范围 画出参数方程x x u v y y u v z z u v 的对应的曲面 9 ezsurf ezsurf与ezmesh的区别类似于surf与mesh的区别 例 ezmesh r cos t r sin t r 2 0 2 pi 画出抛物面图形 图形处理技术 1 坐标轴控制函数axis v 对二维图形v a b c d 其中 a b 和 c d 分别为x轴和y轴的范围 对于三维图形v a b c d e f 分别给出x y和z轴的范围 2 平面坐标网格函数gridon off 作用是平面图形带有网格和取消网格 3 坐标轴标注xlabel 标注 ylabel 标注 4 标题标注title 标题 x pi 0 1 pi pi y sin x plot x y v 16 6 1 2 axis v gridon 显示网格 xlabel x axis ylabel y sinx title 正弦函数图像 5 图形保持holdon off holdon是启动图形保持功能 在已存在的一张图中添加曲线 holdoff是关闭图形保持功能 6 图例标注legend 标注1 标注2 例x 0 0 1 pi 2 pi y sin x z cos x plot x y holdonplot x z o plot x y z h legend y sinx z cosx y z sinx cosxholdoff 关闭图形保持 7 子图subplot m n p 其功能是把一个图形分成m n个小图形窗口 通过参数p调用各子窗口进行操作 x 0 0 1 pi 2 pi y sin x z cos x subplot 2 2 1 plot x y subplot 2 2 2 plot x z o subplot 2 2 3 plot x y z h subplot 2 2 4 plot x y z x 五 程序设计 MATLAB作为一种高级计算语言 不仅可以做如上所讲的那些工作 还可以像basic fortran c等其它高级计算机语言一样进行程序设计 即编制以m为扩展名的文本文件 简称M文件 M文件的形式 1 命令式 script 命令式文件就是命令行的简单叠加 MATLAB就会自动按顺序执行文件中的命令 这样就可以避免在命令窗口运行许多命令的麻烦和重复行工作 也便于修改 其可在命令窗口直接输入文件名运行 例 sinfig mx pi 0 1 pi pi y sin x plot x y holdon plot y x 函数式 function 他主要解决参数传递和函数调用问题 它的第一句以function语句为引导 不能直接运行 只能调用 例 f m文件名与函数名必须一致functionf x f 2 x 2 4 x 6在命令窗口中输入 f 0 f 10 可以看出结果 例 建立一个名字为f的函数文件 该函数为f cos2 x 试计算该函数在x 1 10的函数值 并给出离散点 x f x 的图形 大家一起讨论 例 一个函数文件可以定义个函数function y1 y2 y3 f x y1 sin x y2 cos x y3 tan x 3 数据文件 用save 文件名 变量1 变量2 或save文件名变量1变量2变量3创建 用load 文件名 或Load文件名调入到工作间 控制语句 1 循环语句 a for循环 例s 0 fork 1 1 10 初始值 步长和最大限值s s k end 循环结束标志 b while循环 例s 0 k 0 whilek 1end d if end语句 例fori 1 10ifi 1else f 0end在命令窗口中输入f 1 3 可以得到结果 f swith变量case1语句case2语句 otherwise语句end 例 fori 1 6switchicase1a 1case2a 2case3a 3case4a 4otherwiseb 0endend 例已知n 自己的真实学号 在xoy平面有点Ai i 0 Bi i n i 0 1 2 n 现要画连接AiBj的线段 i j 0 1 n 试给出其MATLAB程序 解现就学号为6 给出其程序如下 n 6 x 0 n y 0 n fori 1 7forj 1 7ifi jplot x i ones size y y xlabel x ylabel y title AiBj的连线 v 0 n 0 n axis v holdon elsea min x i x j b max x i x j X1 a 0 1 b a b Y1 n x i x j X1 x i 连接AiBj的直线plot X1 Y1 endendend 作业 在上题的基础上 再加上点Ci 0 i Di n i i 0 1 2 n 现要画连接AiBj和CiBj的线段 i j 0 1 n 试给出其MATLAB程序 把运行结果得到的图像 存放到WORD文件 文件名字取为 真实姓名 真实学号 然后发送到信箱 xtxyshx 六 主要命令汇总 1 常用信息help 在线帮助 显示在命令窗 helpwin 在线帮助 独立窗口显示 ver MATLAB及工具箱的版本信息 2 管理工作区命令who 显示当前变量 whos 显示当前变量具体信息 clear 从内存中清楚变量和函数 quit 退出MATLAB 3 管理命令和函数what 显示当前目录下的MATLAB文件 edit 编辑M文件 edit 建立编辑新文件 edit 文件名 编辑已有的文件 which 找出函数和文件的位置 type 显示M文件内容 Type 文件名 inmem 显示内存中的函数 4 操作系统命令dir 显示目录 pwd 显示当前工作目录 delete 删除文件 Delete 文件名 web 打开页面浏览器加载文件 5 数据类型double 双精度类型sym 符号型inline 内联对象char 字符数组或字符串 uint8 无符号8位整数 unsignedinteger char sym型变量 把sym型转化为char型sym char型变量 把char型转化为sym型char inline型 和inline char型 可相互转化 num2str 数字转化成字符串 6 数据基本操作max 最大元素 向量为数 矩阵为向量min 最小元素 类似max mean 求平均值 mean a a为向量时得到向量平均值 结果为一个数 a为矩阵时 进行每列平均 得到一个向量 sum 元素和 sum a a为向量时得到该向量各元素之和 结果为一个数 a为矩阵时 进行每列求和 得到一个向量 prod 元素积 prod a 当a为向量和矩阵时的情况 类似于max a cumsum 元素累和 cumsum a a可为向量 也可为矩阵 cumprod 元素累积 a可为向量 也可为矩阵 7 基本矩阵函数zeros 零矩阵函数 ones 全1矩阵 eye 单位矩阵 rand 随机数 向量 矩阵 linspace 线性等分向量 8 基本数组操作size 矩阵大小 length 数组长度 isempty 判断是不是空矩阵 isequal 判断数组是否相等 isequal a b isnumeric 判断是否为数值矩阵 reshape 矩阵重置 tril 抽取下三角部分 triu 抽取上三角部分 fliplr 左右方向翻转矩阵 flip 翻转 flipud 上下方向翻转矩阵 rot90 逆时针把矩阵旋转90度 find x i j find x 查找x非零元下标 9 专用变量和常量ans 最新答案 pi 圆周率 i j 复数单位 inf 无穷大 NaN 不定数 isnan 判断不定数 isinf 判断无穷大元素 isfinite 判断有限大元素 10 指数 对数函数exp e指数函数 pow2 以2为底的幂函数 sqrt 平方根函数 11 舍入函数和剩余函数fix 朝零方向舍入为整数 floor 朝负方向舍入为整数 ceil 朝正方向舍入为整数 round 四舍五入为整数 sign 符号函数 mod 无符号求余函数 mod 3 2 1rem 带符号求余函数 12 复数函数abs 求模 conj 求共轭函数 conjugate angle 相角函数 imag 复矩阵虚部 real 复矩阵实部 isreal 实矩阵判断函数 13 矩阵函数norm 矩阵或向量范数 normest 向量 矩阵2范数 rank 矩阵的秩 det 矩阵行列式的值 trace 矩阵的迹 主对角线元素之和 inv 矩阵逆 14 特征多项式 特征值poly 特征多项式 poly2sym 多项式表示 eig 特征值和特征向量 eigs 特征值 15 矩阵函数expm 矩阵指数 logm 矩阵对数 sqrtm 矩阵平方根 16 坐标转换cart2sph 转换直角坐标为球坐标 cart2pol 转换直角坐标为极坐标 pol2cart 转换极坐标为直角坐标 sph2cart 转换球坐标为直角坐标 17 坐标轴控制axis 控制坐标轴范围 gridon off 栅格线保持 取消 Gridminor 较小网格 holdon off 图形保持 取消 boxon off 图形四周都显示 常规坐标轴 axis 控制字符串 可以选择不同的字符串完成对坐标轴的操作 控制字符串有 1 auto 自动模式 使得图形的坐标范围满足图中一切图元素 2 axis 将当前坐标设置固定 使用hold命令后 图形仍以此作为坐标界限 3 manual 以当前的坐标限定绘制 4 tight 将坐标限控制在指定的数据范围内 5 equal 使坐标轴分度相等 6 off 取消对坐标轴的一切设置 包括系统的自动设置 7 on 恢复对坐标轴的一切设置 例1 x y meshgrid 0 0 5 10 z y sin x 2 cos y surf x y z v 20 10 20 10 10 50 坐标轴范围控制axis v 注意该语句必须在图形显示语句的后面说明 二维图形是类似的 例2 x y meshgrid 1 0 1 1 1 0 1 1 z x 2 y 2 surf x y z boxon 17 基本二维图形plot 线性绘图 loglog 双对数坐标图 semilogx 半对数 x 坐标图 semilogy 半对数 y 坐标图 polar 极坐标图 subplot 分割图窗refline slope intercept 加参考线18 图形注解legend 图形标签 xlable x轴标签 ylable y轴标签 title 图形题目 text 文字注解 19 特殊二维图形bar 条形图 barh 水平柱图 ezplot 符号函数图 fplot 绘制字符串指定的函数名的函数图 如fplot sin x 2 3 pie 饼图 plotmatrix 绘矩阵点图 stem 2维火柴杆图 stem3 3维火柴杆图 20 等高线图和向量图contour 等高线图 contour3 三维等高线图 quiver 向量图 例 x y meshgrid 2 2 2 1 15 1 z x exp x 2 y 2 px py gradient z 2 contour x y z holdonquiver x y px py holdoff 21 特殊三维图形comet3 三维彗星轨线 comet x y 画二维彗星线 t 10 pi pi 500 10 picomet3 sin t cos t t meshc x y z 画出三维网格与等高线图 类似sutfc meshz x y z 增加边界面屏蔽 stem3 三维火柴干图 例a rand 3 stem3 a 22 固体模型cylinder 生成圆柱 格式为 x y z cylinder r n r为母线半径 N为显示的母线条数mesh x y z 或surf x y z 显示单位高度柱面 t 1 pi pi 20 1 pi r 5 cos t x y z cylinder r 30 surf x y z sphere 生成单位球面 例 x y z sphere 40 40为子午线条数 sphere默认为20条 mesh x y z 或surf x y z 画球面axis equal 坐标轴刻度相同 例 x y z sphere 50 mesh x 1 y 2 z 2 画出以 1 2 2 为中心半径为1的球面 x y z sphere 50 mesh x y abs z 画出以 0 0 0 为中心半径为1的上半个球面 x y z sphere 50 mesh 2 x 2 y 2 abs z 画出以 0 0 0 为中心的半径为2上半个球面 x y z sphere 50 mesh 2 x 2 y 2 abs z 画出以 0 0 0 为中心的半径为2上半个球面 例 绕地球运动的飞行物 x y z sphere 50 mesh x y z holdonv 6 6 6 6 6 6 axis v axis off t 0 pi 1000 200 pi x 6 sin t y 2 cos t z zeros size t comet3 x y z 23 四维表现图对于三维图形自变量是二维的 对于三个自变量的函数w fx y z 其其图形应该是四维的 由于我们所处的空间和思维的局限性 在计算机屏幕上只能表现出三维空间 为了表现四维图像 可利用三维实体的四维切片色图 用三维实体上的颜色来描述函数值的变化情况 MATLAB中用slice函数来完成 1 slice x y z w sx sy sz 绘制向量sx sy sz中的点沿x y z轴方向的切片图 w的大小决定了每一点的颜色 2 slice x y z w x1 y1 z1 按数组x1 y1 z1切片 按坐标轴单位 3 slice w x1 y1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论