




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章MATLAB科学计算 5 1符号对象和符号表达式5 2微积分运算5 3线性代数运算5 4数据分析5 55 6可视化数学分析 5 1符号对象和符号表达式 5 1 1符号对象的生成和使用指令格式 f sym arg 把表达式arg转换为符号对象f sym argn flagn 把表达式arg转换为flagn格式的符号对象argv sym argv flgv 按flagv指定的要求把表达式 argv 定义为符号对象argvsyms argv1 argv2 argvk 把字符arg1 arg2 argk定义为基本符号对象arg是数值及其表达式时 flag可取选项 d 最接近的十进制浮点精确表示 e 带估计误差的有理表示 f 十六进制浮点表示 r 最接近有理表示 缺省设置arg是字符时 flag可取选项 positive 限定argv为正实数符号变量 real 限定argv为实数符号变量 unreal argv为非实数符号变量 5 1符号对象和符号表达式 5 1 2符号计算中的运算符和基本函数运算符 矩阵运算符 数组运算符 关系运算符 只有 函数运算 三角函数 双曲函数及其反函数指数函数 对数函数 只有log 没有log2 log10复数函数 conj real imag abs 没有求相角的指令矩阵代数指令 diag triu tril inv det rank rref null colspace poly expm eig svd特例 U S V svd A 如果A矩阵含有非常数的自由变量 只能使用S svd A 如果A不含有自由变量 U S V svd A 将可以给出32位精度的数值形式的符号解 5 1符号对象和符号表达式 5 1 3识别符号对象类别与自由变量确定识别符号对象类别 符号对象类别识别 class sym 符号对象大小判别 size sym 符号大小属性获取 whossym自由变量确定findsym expr 确认表达式expr中所有自由符号变量findsym expr n 从表达式expr中确认出靠x最近的N个独立自由变量 5 1符号对象和符号表达式 5 1 4符号表达式与符号函数的操作符号表达式的操作 collect expr v 对expr表达式中指定的符号对象v的同幂项系数进行合并expand expr 对expr表达式进行展开factor expr 对expr表达式进行因式分解horner expr 把多项式expr分解为嵌套形式 n d numden expr 提取表达式expr的分母与分子simplify expr 对表达式expr进行化简simple expr 把expr转换为最简形式pretty expr 以习惯的书写方式显示expr表达式符号函数的操作 g finverse f v 对函数f v 求反函数g v g finverse f 对缺省自变量求反函数gfg compose f g v w t 对f v 和v g w 求复合函数fg f g w fg compose f g 依缺省自变量对f和g求复合函数fg f g 缺省自变量由findsym自动确定 5 1符号对象和符号表达式 5 1 5置换及其应用自动执行的子表达式置换 RS ssub subexpr S ssub 运用符号变量ssub置换子表达式 重写S为RS被置换的子表达式是机器自动寻找的置换原则与pretty指令相同通用置换指令 RES subs ES old new 用new置换ES中的old后产生RESRES subs ES new 用new置换ES中的自由变量后产生RESRES subs ES 用当前内存中已知值置换ES中所有可能的同名变量后产生RESold可取串表达式 符号变量 元胞数组 数值变量subs指令可以嵌套 5 1符号对象和符号表达式 5 1 6符号数值精度控制与计算向双精度数值转换的double指令对符号运算结果采用double指令时所产生的误差是准确的符号结果转换为数值时产生的 而不是整个运算过程中积累而成完全由数值计算所得结果精度较差任意精度的符号数值digits 显示当前采用的数值计算的误差digits n 设置今后数值计算以n位相对精度进行xs vpa x 在digits指定精度下给出x的数值型符号结果xsxs vpa x n 在n位相对精度下给出x的数值型符号结果xs 5 1符号对象和符号表达式 5 1 7符号对象与其他数据对象间的转换符号 数值 字符串间的转换 数值型符号结果 符号常数 符号表达式 数值 字符串表达式 ASCII码 str2numstr2doublesscanf int2strnum2strmat2strsprintf double vpa vpa char sym char double sym double 5 1符号对象和符号表达式 5 1 7符号对象与其他数据对象间的转换符号多项式 系数向量 字符串多项式转换 符号多项式 数值系数向量 字符串多项式 易读型表达式 poly2str char sym pretty poly2sym sym2poly 5 2微积分运算 5 2 1极限问题的求解一元函数的极限L limit fun x x0 求x x0时函数fun的极限L limit fun x x0 left 或 right 求x x0时函数fun的单侧极限L limit fun 默认x 0时求函数fun的极限若x0为 则可以用inf直接表示多元函数的极限 L limit limit f x x0 y y0 求函数x x0 y y0时函数f的极限L limit limit f y y0 x x0 求函数y y0 x x0时函数f的极限如果x0或y0不是确定的值 而是另一个变量的函数 则求极限的次序不可交换数值解法 要求函数f x 的极限 可以将自变量x用x eps代入f x 直接计算如果x为 则同样可以用inf作为x的值直接计算 5 2微积分运算 5 2 2函数的导数一元函数的导数 y diff fun x 求函数fun关于x的一阶导数y diff fun x n 求函数fun关于x的n阶导数多元函数的偏导数 fp diff diff f x m y n 求函数f的m n阶混合偏导数fp diff diff f y n x m 求函数f的m n阶混合偏导数J jacobian y x 求向量函数y对x的偏导数组成的Jacobi矩阵 5 2微积分运算 5 2 3函数的积分积分的解析解 Intf int f v 求f对指定变量v的不定积分Intf int f v a b 求f对变量v的定积分a b分别是定积分的上下限 可以是任何合法表达式多重积分 int int f x y y a b x c d 交互式近似积分 aint rsums fx fx必须是以x为自变量的一元函数积分在 0 1 区间上进行数值积分 矩形法 梯形法 Simpson法 Romberg法数值积分指令 q quadl fun a b tol trace p1 p2 fun可以是字符串 内联函数 函数句柄A b是积分的下限和上限 都是确定的数值前三个参数是必须的 后面的参数可以缺省tol是控制绝对误差的标量 缺省为10 6p1 p2等是向被积函数传递的参数S dblquad fun a b c d tol method 计算二重积分S triplequad fun a b c d e f tol method 计算三重积分 5 2微积分运算 5 2 4数值导数 3 2M文件类型与运行机制 3 2 5P码文件语法分析过程和伪代码一个M文件首次被调用时 MATLAB首先对该M文件进行语法分析 并把生成的相应内部伪代码文件存放在内存中再次调用该M文件时 将直接调用该文件在内存中的P码文件 而不会对原码文件重复进行语法分析P码文件与原码文件有相同的文件名 但扩展名是 pP码文件运行速度高于原码文件如果存在同名的P码和原码文件 那么当该文件名被调用时 被执行的肯定是P码文件P码文件的预生成pcodeFunName 在当前目录上生成FunName ppcodeFunName inplace 在FunName m所在目录上生成FunName p 3 2M文件类型与运行机制 3 2 6MATLAB的搜索过程如果MATLAB在一个文件中遇到指令cow其搜索过程如下 检查cow是否为一个变量名 如果不是 执行下一步检查cow是否内建函数 假如不是 执行下一步检查cow是不是cow所在的M文件中的一个子函数 如果不是 再往下执行检查cow是不是cow所在的M文件中的一个私有函数 假如不是 再往下执行检查cow是不是当前目录上的文件 假如不是 再往下执行检查搜索路径上是否有cow存在MATLAB将使用最先找到的那个cow如果一直找不到cow MATLAB就给出错误信息 3 3MATLAB程序控制流 3 3 1for循环控制结构格式 说明 x 循环变量 依次取array各列commands 循环体重复执行次数由array的列数决定for循环结构可以嵌套array可以是任何合法的MATLAB数组循环不会因为在循环体内对循环变量重新设置新值而中断为了得到高效代码 应尽量提高代码的向量化程度 而避免使用循环结构为了得到高效代码 在循环指令之前应尽量对数组进行预定义 forx array commands end 3 3MATLAB程序控制流 3 3 2while循环结构格式 说明 commands 循环体首先检测expression的值 如其为逻辑真 则执行循环体内的命令 直到expression的值为逻辑假时退出循环如果expression的值是数组 则只有在数组中所有元素均为真时才执行循环体while循环与for循环的区别是执行循环体的次数能否预先确定如果expression的值为空数组 则MATLAB认为表达式值为假 而不执行循环体 whileexpression commands end 3 3MATLAB程序控制流 3 3 3if else end分支结构格式 一种选择两种选择多种选择说明表达式有时由多个逻辑子表达式组成 MATLAB将尽可能少地检测这些子表达式的值if指令判决和break指令的配合使用 可以强制终止for循环和while循环 ifexpression commands end ifexpression commands else commands end ifexpression1 commands elseifexpression2 commands else commands end 3 3MATLAB程序控制流 3 3 4switch case结构格式 说明 ex应为标量或字符串检测值testk类型可以是标量或字符串 也可以是元胞数组与C语言不同 在执行完每个case块后 MATLAB会自动跳出switch结构 无需使用break指令 switchexcasetest1 commands casetest2 casetestk commands otherwise commands end 3 3MATLAB程序控制流 3 3 5try catch结构格式说明 只有当执行命令组1出现错误后 命令组2才会被执行可调用lasterr函数查询出错原因如果lasterr的运行结果是一个空串 则表明命令组1被成功执行当执行命令组2时又出错 MATLAB将终止该结构 try commands1 catch commands2 end 3 3MATLAB程序控制流 3 3 6其它常用指令1 return 强制结束执行函数并把控制转出2 input 将控制权 暂时 交给用户v input message 将用户键入内容赋给vv input message s 将用户键入内容作为字符串赋给v3 keyboard 将控制权交给键盘用户可以输入各种合法指令用户输入return指令后控制权交还给程序4 v yesinput Prompt Default Possib 5 pause 暂停执行文件 等待用户按任意键继续6 break 使包含该指令的while for循环终止7 continue 结束当前循环 开始下一次循环8 error和warning指令 error message 显示出错信息 终止程序warning message 显示警告信息 程序继续运行errortrap 错误发生后 程序继续执行与否的双位开关 3 4函数类型与使用方法 3 4 1输入输出参数检测检测指令 nargin 在函数体内 用于获取实际输入参数数目nargout 在函数体内 用于获取实际输出参数数目nargin fun 获取fun指定函数的标称输入参数数目nargin fun 获取fun指定函数的标称输出参数数目inputname n 在函数体内使用 给出第n个输入参数的实际调用变量名说明 在函数体内使用nargin nargout的目的是与程序流控制指令配合 对于不同数目的输入输出参数 函数可以完成不同的任务nargin nargout inputname本身都是函数 而不是变量 因此用户不能使用赋值指令对它们进行处理 3 4函数类型与使用方法 3 4 2变长度输入输出参数格式varargin 变长度输入参数列表varargout 变长度输出参数列表变长度参数必须放在普通参数之后varargin varargout本身都是元胞数组 编写M函数文件时 它们每个元胞应当作一个普通输入参数处理M函数文件被调用时 函数输入变量首先依先后次序逐个对应分配给输入参数列表中那些被明确定义的普通输入参数 然后把剩余的输入变量依次逐个分配到varargin元胞数组的元胞中 因此varargin元胞数组的长度取决于分配到的输入变量数varargout的工作机理 规则与varargin相同 function outputs varargout funname inputs varargin 3 4函数类型与使用方法 3 4 3跨空间变量传递跨空间计算串表达式的值evalin ws ex 跨空间计算串表达式值 ws 可取两个值 base 和 caller 当 ws 取 base 时 从基本工作空间获得变量值当 ws 取 caller 时 从主调函数工作空间获得变量值evalin ws ex1 ex2 跨空间计算替代串表达式值先从所在函数空间获取变量值 用eval exp1 计算原串表达式 若该计算失败 再从 ws 指定的工作空间获取变量值 再通过eval ex2 计算替代串表达式跨空间赋值assign ws VN x 跨空间向变量VN赋值 3 4函数类型与使用方法 3 4 4主函数和子函数主函数和子函数的定义 MATLAB允许一个M函数文件包含多个函数代码 其中第一个出现的函数称为主函数 该文件中的其他函数称为子函数 保存时所用函数文件名与主函数文件名相同 外部程序只能对主函数进行调用子函数的性质在M函数文件中 主函数的位置不可改变 但子函数的排列次序可以任意改变子函数只能被处于同一文件的主函数或其他子函数调用在M函数文件中 子函数的优先级仅次于内建函数同一文件的主函数 子函数的工作空间彼此独立help lookfor等指令都不能直接提供关于子函数的任何帮助信息子函数的帮助操作 helpprimefun subfun 3 4函数类型与使用方法 3 4 5私有函数与重载函数 3 4函数类型与使用方法 3 4 6串演算函数 3 4函数类型与使用方法 3 4 7函数句柄函数句柄的创建和观察函数句柄创建 利用 符号 或利用转换函数str2func被创建句柄的函数文件必须在当前视野范围内如果函数不在当前视野内 所创建的函数句柄无效此时MATLAB既不会发布 出错 信息 也不会警告定义函数句柄时 所指定的函数名不应包括路径信息 也不应该包括扩展名函数句柄内涵观察 functionsfunctions函数只能接受 1 1 函数句柄数组 并返回一个单构架 包含若干个域 以记录函数的各种信息 3 4函数类型与使用方法 函数句柄的用法通过函数句柄执行相应函数的计算无效函数句柄 3 4函数类型与使用方法 3 4 8嵌套函数在函数体内部定义的函数 包含M文件的基本元素 以end表示结束可以在一个函数内部定义多个嵌套函数 也可以使用多重嵌套函数可以调用自己函数体中的嵌套函数 但不能调用嵌套函数内部更深层次的嵌套函数同级函数可以相互调用 也可以调用比自己低一级的嵌套函数嵌套函数拥有自己的工作空间 但是它有权限访问其所嵌套地方的所有函数的工作空间被主函数赋值的变量可以被主函数中任意一个嵌套函数访问 嵌套函数的变量值也可以被任何包含它的函数访问由嵌套函数返回的变量不包含在外部函数中使用函数句柄可以使得在函数的作用域之外也可以访问这个函数 但是函数的句柄必须在函数作用域内被创建嵌套函数在同一个M文件中与其他函数共享非全局变量 3 4函数类型与使用方法 3 4 9内联函数与匿名函数 3 4函数类型与使用方法 3 4 10函数使用方法 3 5数据I O与文件操作 2 3 3元胞数组内容的调取调取一个元胞 使用圆括号 得到元胞调取一个元胞的内容 使用大括号调取元胞内的子数组同时调取多个元胞内容 deal 2 3元胞数组及其运算 2 3 4元胞数组与其它类型的转换把数值数组转换为元胞数组C num2cell A
温馨提示
- 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至2030中国PE微粉蜡市场需求量预测及前景动态研究报告
- 近视推拿培训课件
- 2025年国企运维岗笔试题目及答案
- 中华人民共和国治安管理处罚法2025修订版测试题及答案
- 新学期教学工作会议上校长讲话:把功夫下在课堂里把心思放在学生上把质量落到细节中
- DB42T 1655-2021 湖北省建设项目文物影响评估报告编制规范
- 2021年安徽省初中学业水平考试语文试卷及答案
- 目标管理与执行力培训课件
- 《抽象函数》 教学课件
- 西藏民主改革60周年模板课件
- 住院病历书写质量评估标准
评论
0/150
提交评论