已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB 数模培训数模培训 第 天第 天 主要任务 主要任务 1 基本操作 2 程序设计 3 数据输入 第一部分第一部分 基本介绍基本介绍 1 窗口 包括 命令窗口 用于输入命令 为命令输入提示符 命令历史窗口 记录输入的命令 工作间管理窗口 显示当前计算机内存中 Matlab 变量的名称 当前路径窗口 显示当前用户所在的路径 2 常用的操作命令 clc 清除工作窗 clear 清除内存变量 hold 保持图形命令 quit 退出 save 保存内存变量到指定文件 3 常用函数 三角函数 sin cos tan cot asin acos atan acot exp 指数函数 log 自然对数 imag 复矩阵虚部 real 复矩阵实部 round 四舍五入 mod 有符号求余 rem 无符号求余 sign 符号函数 sqrt 平方根 abs 模 4 简单的数学运算 练习 练习 设 计算 3 1 vu uv vu 2 cos 第二部分第二部分 数值计算功能数值计算功能 数值的计算 主要包括向量 矩阵 数组的生成与计算 向量及其运算向量及其运算 向量的生成 在命令窗口中直接输入向量 如 a 1 2 3 4 a 1 2 3 4 等差元素向量的生成 如生成一个向量 b 1 3 5 7 9 b 1 2 9 b 1 3 5 7 9 其中 为起始值 为公差 为终止值 向量的基本运算向量的基本运算 加 减 向量中每个元素的加 减 例如 a 1 2 b 3 5 a b ans 4 7 点积 dot 叉积 cross 和混合积 例 1 求ba dot a b ans 13 叉积 要求变量维数至少三维 例 求 6 5 4 3 2 1 baba cross a b ans 3 6 3 例 求 2 1 5 c cba c 5 1 2 dot a cross b c ans 15 矩阵及其运算 矩阵及其运算 2 3 1 矩阵的生成矩阵的生成 直接法 例 3 如生成一个三阶矩阵 987 654 321 A A 1 2 3 4 5 6 7 8 9 表示一行中元素的分隔 表示分 行 A 1 2 3 4 5 6 7 8 9 2 向量法 矩阵可以看成由多个向量的组合 如果向量内各数据之间成等差数列 则可利用冒号表达式建立一个向量 如例利用冒号表达式建立一个向量 如例 3 冒号表达式可以产生一个行向量 一般格式是 冒号表达式可以产生一个行向量 一般格式是 e1 e2 e3 其中其中 e1 为初始值 为初始值 e2 为步长 为步长 e3 为终止值 为终止值 如生成向量 1 2 3 则可表示为 1 1 3 矩阵 A 可表示为 A 1 1 3 4 1 6 7 1 9 2 3 2 矩阵的运算矩阵的运算 矩阵与矩阵的加 减 法 指矩阵各元素之间的加 减 法 矩阵必须具有相 同的阶 加法用 减法用 数乘用 例 求 31 42 43 21 BABA A3 A 1 2 3 4 B 2 4 1 3 A B ans 3 6 4 7 3 A ans 3 6 9 12 矩阵与矩阵的乘法 运算符号 如果 A 是一个阶矩阵 D 是一个sm 阶矩阵 则为阶矩阵 ns BA nm 例 求 654 321 43 21 DADA A 1 2 3 4 D 1 2 3 4 5 6 A D ans 9 12 15 19 26 33 矩阵与矩阵的除法 一般情况下 A B 表示 A X B 的解 而 B A 表示 x A B 的解 例 求及 33 26 19 15 12 9 6 5 4 3 2 1 4 3 2 1 DBADXA 的解 DBY A 1 2 3 4 B 1 2 3 4 5 6 D 9 12 15 19 26 33 X A D X 1 0000 2 0000 3 0000 4 0000 5 0000 6 0000 Y D B Y 1 0000 2 0000 3 0000 4 0000 矩阵的特征参数运算 矩阵的乘方 sqrtm矩阵的开方 expm矩阵的指数运算 logm矩阵的对数运算 det矩阵的行列式 inv矩阵的逆 rank矩阵的秩 trace矩阵的迹 eig 或 eigs矩阵的特征值和特征向量 norm计算矩阵的范数 例 求 43 21 A 1 A A 1 2 3 4 inv A ans 2 0000 1 0000 1 5000 0 5000 例 求矩阵 A 的特征值和特征向量 用法一 E eig A 生成有矩阵 A 的特征值所组成的一个列向量 用法二 V D eig A 生成两个矩阵 V 表示以矩阵 A 的特征向量作为列向量组 成的矩阵 D 表示由矩阵 A 的特征值作为主对角线元素构成的对角矩阵 E eig A E 0 3723 5 3723 V D eig A V 0 8246 0 4160 0 5658 0 9094 D 0 3723 0 0 5 3723 例 求矩阵 A 的 范数 计算 A 的无穷范数 norm A 2 ans 5 4650 norm A inf ans 7 矩阵的分解 三角分解 lu 非奇异矩阵 如果其顺序主子式均不为零 则存在 nnA 唯一的单位下三角 L 和上三角阵 U 使得 ULA 用法 L U lu A 例 10 求矩阵 A 的三角分解 L U lu A L 0 3333 1 0000 1 0000 0 U 3 0000 4 0000 0 0 6667 正交分解 qr 如果 A 非奇异 则存在正交矩阵 Q 和上三角矩阵 R 满足 用法 Q R qr A RQA 例 求 A 的正交分解 Q R qr A Q 0 3162 0 9487 0 9487 0 3162 R 3 1623 4 4272 0 0 6325 特殊矩阵的生成 生成空矩阵 zeros生成 矩阵 eye生成单位矩阵 ones生成全 矩阵 diag生成对角矩阵 rand生成服从 0 1 分布的随机矩阵 randn生成服从正态分布的随机矩阵 vander生成范德蒙德矩阵 例 生成 行 列的零矩阵 zeros 3 5 ans 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 例 生成向量的范德蒙德矩阵 5 3 1 v 用法 A vander v 其中 jn ivjiA A 1 3 5 A vander v A 1 1 1 9 3 1 25 5 1 例 生成一个取值在 之间的 行 列随机矩阵 分析 rand 3 可生成 0 1 之间的矩阵 而 之间的差为 因此 rand 3 可 之间的随机矩阵 需要生成 5 10 之间的随机矩阵 需要将矩阵 5 rand 3 向右平移 个单位 即 5 5 rand 3 5 5 rand 3 数组及其运算数组及其运算 2 4 数组的生成 可通过自定义或利用 matlab 函数生成 例如 建立数组 A 1 2 3 4 5 可直接在 matlab 命令行中定义 A 1 2 3 4 5 对于一些特殊的矩阵 如随机数据构成的矩阵 可利用相应的函数生成 例 随机生成一个 数组 A rand 1 10 2 4 2 数组的运算数组的运算 数组的运算主要包括数组的排序 数值运算 关系运算和逻辑运算等数组的运算主要包括数组的排序 数值运算 关系运算和逻辑运算等 1 数组的排序 数组的排序 函数 sort 默认情况下对按升序排序 用法 sort X 对数组 X 中的元素按升序排列 dsort 降序 例 对 X 进行排列 2 5 7 3 1 X x 1 3 7 5 2 sort x ans 1 2 3 5 7 2 数值运算 数值运算 数组运算符有矩阵运算符前面加一点 来表示 数值运算包括 加 减 乘 除 乘方 数组的加法 减法 与矩阵相同 因 此运算符 既可以被矩阵接受也可以被数组接受 例 求数组 A 于 B 的乘积 4 3 2 3 2 1 BA A 1 2 3 B 2 3 4 A B ans 2 6 12 关系运算 关系运算 关系运算包括 小于 小于等于 大于等于 等于 不等于 比较两个元素大小时 结果为 1 表示关系式为真 结果为 0 表示关 系式为假 如 A 1 2 B 1 3 A B 0 4 逻辑运算逻辑运算 逻辑运算有三种 与 3 2 5 8 6 4 9 5 3 10 5 7 第 2 种为通过文件输入 当数据量很大时 可以由多个人分别输入数据 形成一个 TXT 文件 然后通过调用文件得到相应数据 如将上面数据通过文件传入 Matlab 过程如下 1 利用 windows 自带的记事本写入一个叫 data1 txt 的文件如下 data1 txt 1 2 3 4 5 6 3 2 5 8 6 4 9 5 3 10 5 7 并将上述 data1 txt 文件存放在你的工作目录中 2 在 Matlab 中建立一个 M 文件 不妨设为 testdata M 则只要在 M 文件中调用 data1 txt 并赋值给相应的矩阵 比如 A 格式如下 function testdata A load data1 txt 练习 数据输入 第第 2 天 主要任务天 主要任务 1 字符串操作 2 多项式求解 3 数据拟合 第五部分第五部分 字符串字符串 一个字符串是由单引号单引号括起来的简单文本 在字符串里的每一个字符是数组中的一个 元素 字符串的存储给每一个字符分配 8 个字节 与其他的数据类型保持一致 内容包括 字符串的设置 字符串的操作两部分 3 字符串设定字符串设定 只需用单引号 将设定的字符串引注即可 例 设定字符串 str 为 this is a string str this is a string 另外 字符串内的单引号由两个连续的单引号来表示 例 如要表示 It s a string str It s a string str It s a string 字符串操作字符串操作 包括字符串元素的读取 连接 比较 查找 替换 转换等 字符串元素的读取 字符串元素的读取 因为字符串是数组 可用数组操作工具进行读取 例 19 读取字符串 str 的第 6 个元素 str 6 ans a 例 20 读取字符串 str 的第 5 13 字符 str 5 13 ans a string 2 字符串连接等操作 字符串连接等操作 例 连接字符串 str1 This is 和字符串 str2 a sting str1 This is str2 a string strcat str1 str2 ans This is a string 由于 Matlab 是采用 C 语言开发的 因此它的字符串操作与 C 语言基本相同 函数名函数用途函数名函数用途 strcat连接字符串strvcat垂直连接字符串 strcmp比较字符串大小strncmp比较字符串的前 n 个字符 findstr在其他字符串中查找该字符串strjust证明字符数组 strmatch查找可能匹配的字符串strrep用其他字符串代替该串 deblank删除字符串内的空格blacks生成空的字符串 iscellstr字符串的单元检验stringsStrings 函数的帮助 3 字符串比较字符串比较 字符串的比较主要由两个函数 strcmp 实现 其中 strcmp 比较两个字符串是否相等 当相等时 返回值为 1 否则返回 0 Strncmp 比较两个字符串前 n 个字符是否相等 当 相等时 返回值为 1 否则返回 0 例 22 words1 situate words2 situp N strcmp word1 word2 N 0 4 字符串的查找 替换字符串的查找 替换 Matlab 提供 finstr strfind 等函数来实现查找和替换功能 findstr 会根据所给字符串 中的字符来查找 返回字符的位置 如 例 23 在 s How much wood would a woodchuck chuck 中查找字符 a s How much wood would a woodchuck chuck a1 findstr s a a1 21 strfind text pattern 只能在 text 中查找 pattern 并返回第一个相同字符的位置 例 24 在 a 中查找字符串 s How much wood would a woodchuck chuck b1 strfind a s b1 返回结果为空 表示在 a 中不存在与 s 相同的字符串 5 转换 在 matlab 中 可利用 num2str int2str str2num str2double 等函数实现字符串和数值 之间的转换 例 25 将数值 2 转换成字符 2 a num2str 2 a 2 输出结果中 a 为字符型变量 练习 1 将字符串 s1 this is a string 中的字符 a 替换成 A 2 将数值矩阵转换成字符矩阵 43 21 B 第六部分第六部分 多项式多项式 包含多项式的表示 多项式的运算两部分 4 1 多项式的表示方法 多项式的表示方法 在 Matlab 中多项式可通过向量来表示 对于多项式 可以利用向量来表示 nn nn axaxaxaP 1 1 10 10n aaaP 例 26 利用 Matlab 表示多项式 1253 245 xxxP P 3 5 0 1 0 12 然后利用 poly2sym 函数将该向量转换为多项式 y poly2sym P y 3 x 5 5 x 4 x 2 12 4 2 多项式的运算多项式的运算 包括多项式求根 多项式的四则运算 多项式求导及积分等 4 2 1 求根求根 利用 roots 函数求根 例 27 求多项式的根7123 24 xxx p 1 0 3 12 7 p 1 0 3 12 7 roots p ans 0 7876 2 4351i 0 7876 2 4351i 2 0872 0 5121 4 多项式的四则运算多项式的四则运算 加法 加法 减法 如果两个多项式的阶相同 可直接进行加减运算 否则 需要将 低阶多项式前加 0 变为同阶多项式 例 两多项式 a 14 3 8 9 与多项式 b 2 4 5 相加 a 0 d ans 14 5 12 14 2 乘法乘法 使用函数 conv 对多相式进行相乘 例 将多项式 a 1 2 3 4 与 b 5 6 7 8 相乘 a 1 2 3 4 b 5 6 7 8 c conv a b c 5 16 34 60 61 52 32 3 除法除法 由 decon 函数来完成 求导与积分 求导函数 polyder 积分函数 polyint 例 对多项式 p 3 1 8 8 分别求导 p 3 1 8 8 q polyder p q 9 2 8 对 q 积分 p1 polyint q p1 3 1 8 0 练习 求多项式的所有根 xxxxxx 23456 6228 设 求的积分和导数 2 8 6 5 aa 第七部分第七部分 数据拟合数据拟合 练习 设有如下数据表 x00 511 522 533 5 y12 43 15 07111724 试用最小二乘法对上述表格所提供的数据进行拟合 第第 3 天天 主要任务主要任务 1 图形处理 2 解方程组 3 微分方程 第八部分第八部分 图形处理图形处理 此外 可利用 title 对图形加题标 利用 xlabel xlabel 给图形加坐标轴标注 text 函 数进行文本标注 legend 进行图形的图例标注 练习 绘制函数 其中 t etv 2 0 10 100 t 第九部分第九部分 解方程组解方程组 9 2 线性方程组线性方程组 例例 9 1 用直接解法求解下列线性方程组 用直接解法求解下列线性方程组 命令如下 命令如下 A 2 1 5 1 1 5 0 7 0 2 1 1 1 6 1 4 b 13 9 6 0 x A b 9 2 非线性方程数值求解非线性方程数值求解 9 2 1 单变量非线性方程求解单变量非线性方程求解 在在 MATLAB 中提供了一个中提供了一个 fzero 函数 可以用来求单变量非线性方程的根 该函数函数 可以用来求单变量非线性方程的根 该函数 的调用格式为 的调用格式为 z fzero fname x0 tol trace 其中其中 fname 是待求根的函数文件名 是待求根的函数文件名 x0 为搜索的起点 一个函数可能有多个根 但为搜索的起点 一个函数可能有多个根 但 fzero 函数只给出离函数只给出离 x0 最近的那个根 最近的那个根 tol 控制结果的相对精度 缺省时取控制结果的相对精度 缺省时取 tol eps trace 指定指定 迭代信息是否在运算中显示 为迭代信息是否在运算中显示 为 1 时显示 为时显示 为 0 时不显示 缺省时取时不显示 缺省时取 trace 0 例例 9 2 求求 f x x 10 x 2 0 在在 x0 0 5 附近的根 附近的根 步骤如下 步骤如下 1 建立函数文件建立函数文件 funx m function fx funx x fx x 10 x 2 2 调用调用 fzero 函数求根 函数求根 z fzero funx 0 5 z 0 3758 9 2 2 非线性方程组的求解非线性方程组的求解 对于非线性方程组对于非线性方程组 F X 0 用 用 fsolve 函数求其数值解 函数求其数值解 fsolve 函数的调用格式为 函数的调用格式为 X fsolve fun X0 option 其中其中 X 为返回的解 为返回的解 fun 是用于定义需求解的非线性方程组的函数文件名 是用于定义需求解的非线性方程组的函数文件名 X0 是求根过程是求根过程 的初值 的初值 option 为最优化工具箱的选项设定 最优化工具箱提供了为最优化工具箱的选项设定 最优化工具箱提供了 20 多个选项 用户可以多个选项 用户可以 使用使用 optimset 命令将它们显示出来 如果想改变其中某个选项 则可以调用命令将它们显示出来 如果想改变其中某个选项 则可以调用 optimset 函函 数来完成 例如 数来完成 例如 Display 选项决定函数调用时中间结果的显示方式 其中选项决定函数调用时中间结果的显示方式 其中 off 为不显示 为不显示 iter 表示每步都显示 表示每步都显示 final 只显示最终结果 只显示最终结果 optimset Display off 将设定将设定 Display 选项选项 为为 off 例例 9 3 求下列非线性方程组在求下列非线性方程组在 0 5 0 5 附近的数值解 附近的数值解 1 建立函数文件建立函数文件 myfun m function q myfun p x p 1 y p 2 q 1 x 0 6 sin x 0 3 cos y q 2 y 0 6 cos x 0 3 sin y 2 在给定的初值在给定的初值 x0 0 5 y0 0 5 下下 调用调用 fsolve 函数求方程的根 函数求方程的根 x fsolve myfun 0 5 0 5 optimset Display off x 0 6354 0 3734 9 3 函数极值函数极值 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 上的最大值 上的最大值 例例 9 4 求求 f x x3 2x 5 在在 0 5 内的最小值点 内的最小值点 1 建立函数文件建立函数文件 mymin m function fx mymin x fx x 3 2 x 5 2 调用调用 fmin 函数求最小值点 函数求最小值点 x fmin mymin 0 5 x 0 8165 第十部分第十部分 数值积分与数值微分数值积分与数值微分 10 1 常微分方程初值问题的数值解法常微分方程初值问题的数值解法 10 1 龙格 库塔法简介龙格 库塔法简介 基于龙格 库塔法 基于龙格 库塔法 MATLAB 提供了求常微分方程数值解的函数 一般调用格式为 提供了求常微分方程数值解的函数 一般调用格式为 t y ode23 fname tspan y0 t y ode45 fname tspan y0 其中其中 fname 是定义是定义 f t y 的函数文件名 该函数文件必须返回一个列向量 的函数文件名 该函数文件必须返回一个列向量 tspan 形式为形式为 t0 tf 表示求解区间 表示求解区间 y0 是初始状态列向量 是初始状态列向量 t 和和 y 分别给出时间向量和相应的状态向量 分别给出时间向量和相应的状态向量 例例 10 1 设有初值问题 设有初值问题 试求其数值解试求其数值解14 2 xxyy1 0 y 1 建立函数文件建立函数文件 funt m function ydot funt x y ydot y x 2 4 x 1 end 2 在命令窗口中输入在命令窗口中输入 x y ode45 funt 1 4 1 plot x y 10 2 数值积分数值积分 数值积分基本原理数值积分基本原理 求解定积分的数值方法多种多样 如简单的梯形法 辛普生求解定积分的数值方法多种多样 如简单的梯形法 辛普生 Simpson 法 牛顿 柯法 牛顿 柯 特斯特斯 Newton Cotes 法等都是经常采用的方法 它们的基本思想都是将整个积分区间法等都是经常采用的方法 它们的基本思想都是将整个积分区间 a b 分成分成 n 个子区间个子区间 xi xi 1 i 1 2 n 其中 其中 x1 a xn 1 b 这样求定积分问题就分解为求 这样求定积分问题就分解为求 和问题 和问题 1 变步长辛普生法 变步长辛普生法 基于变步长辛普生法 基于变步长辛普生法 MATLAB 给出了给出了 quad 函数来求定积分 该函数的调用格式为 函数来求定积分 该函数的调用格式为 I n quad fname a b tol trace 其中其中 fname 是被积函数名 是被积函数名 a 和和 b 分别是定积分的下限和上限 分别是定积分的下限和上限 tol 用来控制积分精度 缺用来控制积分精度 缺 省时取省时取 tol 0 001 trace 控制是否展现积分过程 若取非控制是否展现积分过程 若取非 0 则展现积分过程 取则展现积分过程 取 0 则不展则不展 现 缺省时取现 缺省时取 trace 0 返回参数 返回参数 I 即定积分值 即定积分值 n 为被积函数的调用次数 为被积函数的调用次数 例例 10 2 求定积分 求定积分 1 建立被积函数文件建立被积函数文件 fesin m function f fesin x f exp 0 5 x s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏南京证券校园招聘129人笔试历年参考题库附带答案详解
- 2025四川绵阳燃气集团有限公司延长能创公司质量工程师笔试历年参考题库附带答案详解
- 2025“才聚齐鲁成就未来”山东健康集团高校毕业生夏季校园招聘66人笔试历年参考题库附带答案详解
- 水中运动训练方法
- 法式装修设计说明
- 支原体肺炎处理方法
- 基于Keil的电子秒表设计
- 二下句子专项训练
- 消防员托班艺术课教案
- 消防员训练安全
- 2025年婴幼儿发展引导员理论考核试题及答案
- 2025秋大象版(2017)小学科学五年级上册期末测试卷附答案(共3套)
- 2025年消防工程师真题及答案
- 黑龙江省哈尔滨市第三十二中学2025-2026学年高二上学期11月期中考试语文试题(原卷版)
- 2025年浙江省住院医师规范化培训结业考核超声波训练题及答案
- 2025年四川省泸州市中考英语试卷
- 技术经纪人培训教程大纲
- 2025天津滨海传媒发展有限公司招聘13人笔试考试参考题库及答案解析
- 浙江工业大学辅导员考试题库
- 茶叶中提取咖啡因
- 会员卡管理方案
评论
0/150
提交评论