课堂授课专题1:MATLAB语言基础_第1页
课堂授课专题1:MATLAB语言基础_第2页
课堂授课专题1:MATLAB语言基础_第3页
课堂授课专题1:MATLAB语言基础_第4页
课堂授课专题1:MATLAB语言基础_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

数学物理建模与计算机辅助设计 专题1 MATLAB语言基础 Page2 本专题主要内容与参考资料 主要内容Matlab语言和工作环境介绍Matlab语言的数据及运算Matlab语言的符号运算参考资料张志涌 Matlab教程 北京航天航空大学出版社薛定宇 高等应用数学问题的Matlab求解 清华大学出版社Matlab技术论坛 Page3 初步体验MATLAB的功能 例1 已知函数 如何求导及高阶导数 问题 求导过程很繁杂 容易出错 怎么办 思路 由分式求导公式 得出 逐次求导则可以得出 使用Matlab的符号运算功能 symsx diff sin x x 2 4 x 3 4 ans sin x x 2 4 x 3 4 cos x x 2 4 x 3 2 2 x 4 12 sin x x 2 4 x 3 3 2 x 4 2 12 sin x x 2 4 x 3 2 24 cos x x 2 4 x 3 4 2 x 4 3 48 cos x x 2 4 x 3 3 2 x 4 24 sin x x 2 4 x 3 5 2 x 4 4 72 sin x x 2 4 x 3 4 2 x 4 2 24 sin x x 2 4 x 3 3 Page4 初步体验MATLAB的功能 例2 如何编写一个能求出两个矩阵相乘的计算机通用子程序 C语言解决方案for i 0 j n i for j 0 j m j c i j 0 for k 0 k L k c i j c i j a i k b k i 使用Matlab语言的矩阵运算功能 C A B Page5 初步体验MATLAB的功能 例3 用四种方法描述cos x sin y 图形 Page6 初步体验MATLAB的功能 例4 Matlab的强大表现能力 Page7 MATLAB的发展历程 MATLAB由MATrix和LABoratory两词的词头合成 1980年美国的CleveMoler博士首先开发MATLAB 初衷是解决 线性代数 课程的矩阵运算问题 最初MATLAB用FORTRAN编写 1984年Moler与其合作者Little和SteveBangert成立MathWorks公司把MATLAB推向市场 采用C语言编写MATLAB的内核 新增了数据图视功能 版本历程 1993年4 0版本 1997年5 x版本问世 2000年推出6 0版本 2003年推出6 5版本 2004年7月推出的7 0版本 Page8 MATLAB的特点 MATLAB是一种直译式的高级语言比其它程序设计语言容易MATLAB的结合性易用性 可靠性通用性 专业性一般目的的应用 高深的科学技术应用MATLAB丰富多彩矩阵实验室 科学计算 图象处理 声音处理 Windows编程功能强大 风格超群 应用于各工程学科的研究领域MATLAB是美国大学工科生必修的计算机语言之一C FORTRAN ASSEMBLER MATLAB Page9 MATLAB的典型应用 数学计算 算法开发 数据采集 系统建模和仿真 数据分析和可视化 科学和工程绘图 应用软件开发 Page10 MATLAB的集成开发环境 命令窗口 历史命令 菜单栏 为提示符 在当前提示符后输入命令按Enter后 Matlab将给出结果 可调整窗口布局 编辑器 Page11 MATLAB的常用的命令 ans预设计算结果变量名 输入后显示上一次未指定变量名的计算结果whos变量查询函数 列出在Matlab工作空间中已经驻留的变量名清单clear清除所有定义过的变量名clc清屏type可显示指定文件的全部内容help显示当前帮助系统中所有主题help显示函数的使用方法 help 函数名 Page12 MATLAB的数据类型 Matlab数据类型主要包括数值11 23 1415926字符串AaChinaHelloworld 矩阵单元数组类型结构体类型根据属性名组织起来的不同类型数据的集合Matlab不要求事先声明要使用的变量Matlab不需要指定变量类型 Page13 MATLAB的变量和常量 变量命名规则由一个字母开头 后面可以为字母 数字 下划线区分大小写Abc ABc变量名长度不超过31个字符 31个字符之后将被忽略变量的作用域默认一切变量为局部变量 本M文件内有效关键字global定义全局变量 可以在多个M文件间有效Matlab预定义一些常量 Page14 MATLAB的算术运算 基本算术运算符号加法 减法 乘法 除法 乘方 开方sqrt基本算术运算符号的优先级 和sqrt 和 和 Page15 MATLAB的运算结果的显示 输出控制开关 258 369ans 95202 这里ans指当前计算结果 x 258 369 这里 控制不输出计算结果 x 258 369x 95202 计算结果赋给变量x xx 95202 输出变量x的值 可用于查询变量x的值输出格式控制format格式 x sqrt 2 x 1 4142 formatlong xx 1 41421356237310 Page16 MATLAB的向量的生成 向量的生成的三种方式1直接输入向量 a 123456789 b 1 2 3 4 5 6 7 8 9 用空格或逗号生成行向量 用分号生成列向量2利用冒号表达式基本形式 x x1 step xn a 1 2 12a 13579113线性等分向量生成基本格式y linspace x1 x2 n y linspace 0 100 6 y 020406080100 Page17 MATLAB的向量的运算 加减与数加减运算A BA BA bA b加减规则 1 长度相同 2 对应元素加减数加减规则 每个元素都加减同一个数数乘除运算A bA b运算规则 每个元素都乘除以同一个数带点乘除运算A BA B运算规则 1 长度相同 2 对应元素相乘除点积和叉积运算点积 c dot a b 返回A和B的数量点积 A和B须同维度叉积 c cross a b 返回A和B叉积 A和B维度必须同为3 A 1 2 3 B 3 4 5 C dot A B D cross A B Page18 MATLAB的矩阵的生成 生成矩阵的四种方式直接输入小矩阵 A 123 456 789 利用特殊矩阵生成函数生成矩阵 Page19 MATLAB的矩阵的生成 利用已有矩阵构建新矩阵矩阵的合并C1 AB 在水平方向合并矩阵A和BC2 A B 在竖直方向合并矩阵A和B a ones 2 3 a 111111 b zeros 2 3 b 000000 c1 ab c1 111000111000 c2 a b c2 111111000000 Page20 MATLAB的矩阵的生成 利用已有矩阵构建新矩阵 B 123 456 C repmat B 2 3 Page21 MATLAB的矩阵的运算 矩阵的四则运算矩阵加减运算 规则 矩阵同阶 维数相同 各维度长度对应相同 对应做加减 A 123 234 345 B 111 222 333 C A B 矩阵的乘法运算 规则 1 若A为i j阶 B必须为j k阶时A和B才能相乘 2 E B 555 C A E 矩阵的除法运算 分为左除 和右除 运算规则 1 左除 X A B是方程式AX B的解 2 右除 X B A是方程式XA B的解通常用矩阵的除法求解方程组的解 A 5128 658 9610 B 7 11 7 X A B Page22 MATLAB的矩阵的运算 矩阵的逆运算inv A 规则 矩阵为方阵 且行列式不为0 A 21 3 1 3107 124 2 10 15 B inv A 矩阵的行列式运算det A 规则 矩阵为方阵 C det A 矩阵的幂运算A n和A n规则 1 A n中A必须为方阵 相当于n个方阵A连乘 2 A n中A不必为方阵 结果为A中各元素取n次幂 D 1 2 3 4 5 6 7 8 9 E D 3 F D 3 Page23 MATLAB的矩阵元素的定位和获取 取出矩阵中某一个元素 a i j 取出矩阵某几行 列 元素 a x1 x2 a y1 y2 a x1 x2 y1 y2 矩阵对角元素抽取diag m diag m k diag v k 上三角矩阵和下三角矩阵抽取tril m tril m k triu m triu m k Page24 MATLAB的多项式运算 多项式的表示p x x3 5x2 6x 33 p 1 56 33 p 1 56 33 A poly2sym p A x 3 5 x 2 6 x 33求多项式的根roots roots p ans 5 0939 0 0470 2 5448i 0 0470 2 5448i求多项式的乘除conv 乘法 deconv 除法 p 123 q 4567 pq conv p q deconv pq q pq 41328343221 ans 123 求多项式的导数polyder Dpq polyder pq Dpq 2052846832 Page25 MATLAB的矢量化处理 何为 矢量化 问题尽量使用矩阵表述避免出现太多 两重或以上 的循环嵌套矢量化技术的目的在于改善程序的性能例1 将200 400矩阵data中大于0的元素清零例2 上万个点的计算 fori 1 200forj 1 400ifdata i j 0data i j 0 endendend cputime 0 0470 矢量化编程data data 0 0 cputime 0 0160 i 0 fort 0 01 10000i i 1 y i sin t end 矢量化编程t 0 01 10000 y sin t cputime 20秒 cputime 0 2340秒 Page26 MATLAB的矢量化处理 使用向量作索引X和V都为向量 X V X V 1 X V 2 X V n X 25811141720232629 V 426 X V ans 11517 X 4 X 2 X 6 x linspace 0 2 pi 1000 y sin x z y 1 0 y 0 5 1 0 y z1 z z1 abs z 0 5 1 0 plot x y r x z b x z1 g 从向量构建矩阵 A 10 A A ones 5 5 M repmat 1 5 1 3 A 10101010101010101010101010101010101010101010101010 M 111222333444555 Page27 MATLAB的矢量化处理 排序 设置和计数max最大元素min最小元素sort递增排序find查找非零 非NaN元素的索引值 例1 找出向量中最大元 返回其下标 a 5278912752578 Y I max a Y 525I 7 例2 向量元素排序 a 5278912752578 sort a ans 2577127889525 Page28 MATLAB的符号计算功能 符号运算与数值运算的区别数值运算必须先对变量赋值 再运算符号运算运算结果以标准的符号形式 公式 表达符号运算的特点运算对象可以是没赋值的符号变量可以获得任意精度的解 浮点算数运算 1 2 1 3ans 0 8333 符号运算 sym 1 2 1 3 ans 5 6 vpa 1 2 1 3 20 ans 83333333333333333333 Page29 MATLAB的符号计算功能 符号变量与符号表达式符号变量定义 symsabcsym a sym b 符号表达式定义 symsxyz f1 x y z f1 sym x y z Page30 MATLAB的符号计算功能 符号矩阵的创建 用Matlab函数sym创建矩阵命令格式 A sym A sym a 2 b 3 a 0 A a 2 b 3 a 0 符号矩阵的修改和转换符号矩阵的修改 用A1 subs A new old 来修改符号矩阵与数值矩阵的转换将数值矩阵转化为符号矩阵 函数调用格式 sym A 将符号矩阵转化为数值矩阵 函数调用格式 double A A 1 3 2 5 1 0 7 2 5 A 0 33332 50001 42860 4000 例 A2 subs A1 c b A2 a 2 c 3 a 4 c sym A ans 1 3 5 2 10 7 2 5 double A ans 0 33332 50001 42860 4000 Page31 MATLAB的符号计算功能 符号矩阵的运算7 0以后版本对符号表达式直接用 进行相应运算以前版本用函数symadd symsub symmul symdiv sympow做相应的运算符号运算函数inv逆矩阵transpose矩阵的转置simple符号矩阵简化simplify符号简化运算 f sym a b c d f a b c d g sym 2 a c b 3 d g 2 a c b 3 d f gans 2 a 2 b 2 a c 3 b d 2 a c b d c 2 3 d 2 f gans 2 a 2 c b c b 3 d 2 f sym cos x sin x g sym cos x sin x h f gh cos x sin x cos x sin x simplify h ans 2 cos x 2 1 simple h ans cos 2 x Page32 MATLAB的符号计算功能 符号微积分diff f 对缺省变量x求微分diff f v 对指定变量v求微分diff f v n 对指定变量v求n阶微分int f 对f表达式的缺省变量x求积分int f v 对f表达式的v变量求积分int f v a b 对f表达式的v变量在 a b 区间求定积分 F int int x exp x y x y F 1 y exp x y F diff sym x 3 3 x 2 y 5 x y 2 x 2 F 6 x 6 y Page33 MATLAB的符号计算功能 符号代数方程求解solve解一般的线性方程 非线性方程 代数方程和代数方程组当方程组不存在符号解且无其他自由参数 则给出数值解 例1 f ax2 bx c求解 f a x 2 b x c solve f 对缺省变量x求解ans 1 2 a b b 2 4 a c 1 2 1 2 a b b 2 4 a c 1 2 solve f b 对指定变量b求解ans a x 2 c x 例2 符号方程tan 2 x sin x 求解 f1 solve tan 2 x sin x f1 pi0atan 1 2 2 3 1 2 1 2 1 2 1 2 3 1 2 atan 1 2 2 3 1 2 1 2 1 2 1 2 3 1 2 atan 1 2 2 1 2 3 1 4 1 2 1 2 3 1 2 pi atan 1 2 2 1 2 3 1 4 1 2 1 2 3 1 2 pi double f1 ans 3 141600 8314i 0 8314i1

温馨提示

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

评论

0/150

提交评论