矩阵、数组和符号运算2new.ppt_第1页
矩阵、数组和符号运算2new.ppt_第2页
矩阵、数组和符号运算2new.ppt_第3页
矩阵、数组和符号运算2new.ppt_第4页
矩阵、数组和符号运算2new.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

第3讲矩阵 数组和符号运算2第3讲Matlab流程控制结构3 第3讲矩阵 数组和符号运算 掌握内容 1 了解MATLAB的符号变量 掌握MATLAB符号表达式 符号矩阵的两种创建方法 2 掌握MATLAB符号数学函数的创建 3 掌握符号矩阵的基本运算及MATLAB关于不同精度的控制方法 4 掌握符号微积分内容 包括求函数的极限 对符号表达式求导数和微分 符号积分 符号求和 傅立叶变换及其逆变换等 5 掌握各种符号方程的求解方法和函数命令 6 了解MATLAB可视化的符号函数分析界面及使用 7 初步了解MAPLE的符号资源 二 符号及运算 第3讲矩阵 数组和符号运算 抽象运算 公式推导 因式分解 求解代数方程或微分方程的精确解符号数学工具箱1 通过基本符号数学工具箱的专用函数 符号表达式和符号矩阵的操作 多项式的化简 展开和代入 线性代数 微积分 符号方程的求解 特殊的数学函数 2 通过maple m mpa m两个专门设计的M文件进行符号运算 3 通过MATLAB中的函数计算器 FunctionCaculator 第3讲矩阵 数组和符号运算 1 符号变量的创建a 符号矩阵定义函数sym函数S sym arg 从表达式arg创建一个sym对象Sx sym x x sym x real x sym x unreal 附加属性pi sym pi delta sym 1 10 第3讲矩阵 数组和符号运算 A 2 5 4 0 78 sqrt 23 3 0 33 0 3333 log 4 输入数值矩阵AA 0 40005 12821 59860 33000 33331 3863 FA sym A 将数值矩阵A转化为符号矩阵FAFA 2 5 200 39 sqrt 23 9 33 100 3333 10000 6243314768165359 2 52 不管数值矩阵的元素是以分数或是浮点数表示 转换后的符号矩阵都将以最接近有理式的形式给出 b 符号定义函数syms函数symsarg1arg2 symsabcxy 2 符号表达式和矩阵的创建a 字符串直接输入创建符号表达式和符号方程对空格很敏感 因此 在创建符号表达式或符号方程时 不要在字符间任意加空格符 符号计算中出现的数字也是当作符号处理的 f a x 2 b x c f a x 2 b x c f a x 2 b x c 0 f a x 2 b x c 0 第3讲矩阵 数组和符号运算 第3讲矩阵 数组和符号运算 这种方法输入符号矩阵与字符串矩阵的输入相似 但要保证在同一列中各元素字符串有同样的长度 在较短的字符串前后用空格符填充 这种方法要求符号矩阵每一行的两端都有方括号 而字符串矩阵仅在首尾有方括号 B 4 xx 2x x 35 x 3x a B 4 xx 2x x 35 x 3x a 第3讲矩阵 数组和符号运算 b 由sym命令创建 f sym a x 2 b x c f a x 2 b x c f1 sym a x 2 b x c 0 f1 a x 2 b x c 0 A sym 4 x x 2 x x 3 5 x 3 x a A 4 x x 2 x x 3 5 x 3 x a 第3讲矩阵 数组和符号运算 c 由syms命令创建 symsxabc f a x 2 b x cf a x 2 b x c symsxa B 4 xx 2x x 35 x 3x a B 4 x x 2 x x 3 5 x 3 x a 不能创建符号方程符号方程 equ1 a x b 0 基本运算四则运算两个符号矩阵的大小相等方可进行加减运算 符号矩阵和符号标量的加减运算按照数组运算规则进行 两个符号矩阵只有内积相等时才可以进行乘法运算 符号的乘方运算S p 若S为符号表达式 p可以为符号表达式或数值表达式 若S为符号矩阵 则p必须是整数 第3讲矩阵 数组和符号运算 3 符号矩阵的运算 第3讲矩阵 数组和符号运算 a sym 1 x 1 x 1 1 x 2 1 x 3 a 1 x 1 x 1 1 x 2 1 x 3 b sym x 1 x 2 0 b x 1 x 2 0 b aans x 1 x 1 1 x 1 x 2 1 x 2 1 x 3 a bans 6 x 2 x 3 7 x 2 3 2 x 2 x 1 2 x 3 6 2 x 3 10 x 2 14 x 1 2 x 3 2 x 2 3 2 x a bans x 2 x 1 x 2 2 0 a 2ans 1 x 2 1 x 1 x 2 1 x x 1 1 x 1 x 3 1 x 2 x 1 x 3 x 2 1 x 1 x 2 1 x 3 2 exp b ans exp x exp 1 exp x 2 1 b符号简化Matlab提供了多种化简符号表达式的方法 降幂排列法 collect 展开法 expand 重叠法 horner 因式分解法 factor 一般化简法 simplify 不定化简法 simple 分子分母形式法 numden 第3讲矩阵 数组和符号运算 1 降幂排列法collect 又称合并同类项 格式R collect S 对于多项式S中的每一函数 collect S 按缺省变量x的次数合并系数 R collect S v 对指定的变量v计算 操作同上 symsxy R1 collect exp x x x 2 R2 collect x y x 2 y 2 1 y R3 collect x 1 y 1 x y R1 x 2 exp x 2 x 2 exp x R2 y 3 x y 2 x 2 1 y x x 2 1 R3 y 1 x y 1 x y 已知表达式 将f按x进行降幂排列 将g按降幂排列 2 展开法格式R expand S 对符号表达式S中每个因式的乘积进行展开计算 该命令通常用于计算多项式函数 三角函数 指数函数与对数函数等表达式的展开式 E1 expand x 2 x 4 y t E2 expand cos x y E3 expand exp a b 3 E4 expand log a b sqrt c E1 x 2 y x 2 t 6 x y 6 x t 8 y 8 tE2 cos x cos y sin x sin y E3 exp a 3 exp a 2 b 3 exp a b 2 3 exp b 3 E4 log a b c 1 2 3 重叠法格式R horner P 若P为一符号多项式的矩阵 该命令将矩阵的每一元素转换成嵌套形式的表达式R symsxy H1 horner 2 x 4 6 x 3 9 x 2 6 x 4 H2 horner x 2 x y y 3 2 y H1 4 6 9 6 2 x x x xH2 x 2 x y 2 y 2 y 4 因式分解法 factor 格式factor s 符号表达式s的因式分解函数 说明 S为符号矩阵或符号表达式 常用于多项式的因式分解 将x9 1分解因式 symsx factor x 9 1 ans x 1 x 2 x 1 x6 x 3 1 5 一般化简法 simplify 格式R simplify S 说明 充分考虑符号表达式的各种运算 特殊函数的运算性质 经计算机比较后 给出认为表达式相对简单的一种化简方法 symsxabc R1 simplify sin x 4 cos x 4 R2 simplify exp c log sqrt a b S x 2 5 x 6 x 2 sqrt 16 R3 simplify S R1 2 cos x 4 1 2 cos x 2R2 a b 1 2 c R3 x 3 4 试编制程序 判断以下等式是否相等 6 不定化简法 simple simple s s是矩阵或表达式 给出最简形式 R how simple s R为返回的最简形 how为简化过程中使用的主要方法 最笨拙 但综合前面5种化简方法的优点 用户可以根据所列出的结果进行比较和筛选 将表达式s的长度化到最短 若还想让表达式符合人的书写习惯 可使用函数Pretty 不定化简法经常用的转化方法有 Combine trig 以三角函数的运算性质对主对角代数式进行化简 Convert exp 将代数式尽量转化为由exp x exp ix 表示的指数形式 Convert sincos 将代数式尽量转化为由sin x cos x 表示的式子 Congvert tan 将代数式尽量转化为由tan x 表示的式子 第3讲矩阵 数组和符号运算 因式分解 symsx factor x 9 1 ans x 1 x 2 x 1 x 6 x 3 1 符号矩阵展开 symsxy expand x 1 3 ans x 3 3 x 2 3 x 1 expand sin x y ans sin x cos y cos x sin y 同类项合并 symsxy collect x 2 y y x x 2 2 x x ans y 1 x 2 y 2 x分式通分 symsxy n d numden x y y x n x 2 y 2d y x 7 分子分母法 numden N D numden A 将符号或数值矩阵A中的每一元素转换成整系数多项式的有理式形式 其中分子与分母是相对互素的 输出的参量N为分子的符号矩阵 输出的参量D为分母的符号矩阵 symsxyabcd n1 d1 numden sym sin 4 5 n2 d2 numden x y y x A a 1 b 1 cd n3 d3 numden A n1 6461369247334093d1 9007199254740992n2 x 2 y 2d2 y xn3 a 1 1 d d3 1 b c 1 C 符号变量 表达式 的提取与代入 1 subexpr格式 Y SIGMA subexpr X SIGMA 说明找出符号表达式X中相同的子表达式 将X中相同的 比较复杂的子字符串用符号SIGMA代替 t solve a x 3 b x 2 c x d 0 r s subexpr t s pretty t pretty r 输入命令 并观察相同因子的提取 2 符号变量的代入格式subs S old new 用符号new代替表达式S中的符号oldSymsxysubs x y x 4 ans 4 ysymsabf subs cos a sin b a b sym alpha 2 f cos alpha sin 2 试将以下表达式中的变量x分别用y和m nt代替 f a x 2 b x c symsxyabcf a x 2 b x csf1 subs f x y sf2 subs f x m n t a 符号极限limit F x a 求当x a时表达式F的极限值limit F a 变量为由findsym定义的默认变量limit F x a right limit F x a left 右 左极限值 Limit F a 0 求系统默认变量 0时表达式F的极限值 symsxath limit sin x x ans 1 limit 1 2 t x 3 x x inf ans exp 6 t limit 1 x x 0 right ans inf 6 符号微积分Matlab自变量确定原则 除i j外 字母位置最接近x的小写字母为自变量 如果表达式中没有变量 x会被视为默认的变量 由函数findsym可一找到默认变量 练习 求下列函数极限 symsxhf sin x h sin x hlimit f h 0 cos x b 符号积分int S 不定积分int S v int S a b 定积分int S v a b 第3讲矩阵 数组和符号运算 a b为 inf时为广义积分 symsxx1alphaut A cos x t sin x t sin x t cos x t A cos x t sin x t sin x t cos x t int A t ans 1 x sin x t cos x t x cos x t x 1 x sin x t int x1 log 1 x1 0 1 ans 1 4 练习 计算以下积分结果 symsxy 1 4 x 2 2 x 3 z int y inf inf double z Ans 0 9472 r symsum s 对符号表达式s中的符号变量k 由命令findsym s 确定的 从0到k 1求和r symsum s v 对符号表达式s中指定的符号变量v从0到v 1求和r symsum s a b 对符号表达式s中的符号变量k 由命令findsym s 确定的 从a到b求和r symsum s v a b 对符号表达式s中指定的符号变量v从a到b求和 symskn simplify symsum k ans 1 2 k 2 1 2 k simplify symsum k 2 0 n ans 1 3 n 3 1 2 n 2 1 6 n simplify symsum k 2 0 10 ans 385 c 级数 1 级数求和函数 练习 试求以下级数和 symskf k 2symsum f k 0 10 385 1 积分变换 1 傅立叶变换及其逆变换B 对函数进行傅立叶逆变换的计算公式为 7 高级符号运算功能 1 积分变换 1 傅立叶变换及其逆变换A 对函数进行傅立叶变换的计算公式为 函数 fourier 函数 ifourier A 傅立叶变换fourier格式 F fourier f 对自变量为x的表达式f x 进行变换 返回值为F F fourier f v 指定变换结果为变量v的函数 F fourier f u v 指定对函数表达式作关于变量u的傅立叶变换 F w int f x exp i w x x inf inf F v int f x exp i v x x inf inf F v int f u exp i v u u inf inf 例 对以下函数求傅立叶变换 symsxy exp x 2 pretty fourier y 1 22piexp 1 4w b 对函数L s 进行拉普拉斯反变换 计算公式为 1 拉普拉斯变换及其反变换A 对函数f x 进行拉普拉斯变换 计算公式为 函数 laplace 函数 ilaplace A Laplace变换L laplace F xs F为待进行拉普拉斯变换的代数表达式 默认变量为t 函数返回默认自变量为s L laplace F z xz 指定返回结果为自变量z的函数 L laplace F w z wz 要求F对自变量w进行拉普拉斯变换 返回值的自变量为z 第3讲矩阵 数组和符号运算 L s int F t exp s t t 0 inf L z int F x exp z x x 0 inf L z int F w exp z w w 0 inf 试对函数进行拉普拉斯变换 并将所得结果表示为变量v的函数 symsxswz laplace sin x ans 1 s 2 1 laplace sin x w ans 1 w 2 1 laplace sin x w ans w s 2 w 2 laplace sin x w w z ans x z 2 x 2 symsxtsvF sin x t 2 t L1 laplace F s v L1 sin x t 2 t v 已知某控制系统的微分方程其中T 0 5s K 10 设初始条件为0 试求系统单位阶跃响应曲线 symssktGs k 1 t s Gs1 subs Gs k t 10 0 5 G Gs1 1 sy ilaplace G figure ezplot y 05 xlabel t ylabel y t title 系统单位阶跃响应 legend 20 exp t sinh t legend y t 20 exp t sinh t 符号运算练习之拉普拉斯应用举例 B Laplace反变换F ilaplace L L为待进行拉普拉斯反变换的代数表达式 默认变量为s 函数返回默认自变量为t 如果L L t 则返回结果为F x F ilaplace L y 指定返回F为自变量y的函数 积分对s进行F ilaplace L y x 要求对自变量y求L的反拉普拉斯变换 返回值的自变量为x 第3讲矩阵 数组和符号运算 F t int L s exp s t s c i inf c i inf F y int L y exp s y s c i inf c i inf F y int L y exp x y y c i inf c i inf 试求以下函数的拉普拉斯反变换 并把L3 L4表示为变量x的函数 symsstwxyF1 ilaplace 1 s 1 F2 ilaplace 1 t 2 1 F3 ilaplace t 5 2 x F4 ilaplace y y 2 w 2 y x F1 exp t F2 sin x F3 4 3 x 3 2 pi 1 2 F4 cos w x 练习线性系统冲击响应 编写求任意高阶连续常系数线性系统脉冲响应的程序 解 任意阶次的连续线性系统可用下列微分方程表述 写成传递函数形式为其特性可用系统传递函数的分子分母系数向量b和a来表示 传递函数反变换的求法 如果分母系数多项式没有重根 则可以把两个多项式之比分解成n个一阶部分分式之和 即 其中p1 p2 pn是分母多项式的n个根 而r1 r2 rn是则对应于这n个根的留数 一阶分式的反变换可以查表得到 容易写出冲击响应的公式如下 可见只要求出根向量p和留数向量r 线性方程的解就得到了 求根是代数问题 当阶次很高时 代数方程没有解析解 可喜的是MATLAB提供了用数值方法求根和留数的函数residue m 它的调用格式为 r p residue b a 课堂练习 给出系统的传递函数为求系统的脉冲响应h t 如右图所示 求解1 a input 多项式分母系数向量a 取poly 0 1 2 5 b input 多项式分子系数向量b 取 1 7 1 r p residue b a 求留数disp 解析式h t r i exp p i t k input 是否要求波形 是 键入1 否 键入0 ifk 1dt input dt 取0 05 tf input tf 取5 设定时间数组t 0 dt tf h zeros 1 length t h的初始化fori 1 length a 1 根数为a的长度减1h h r i exp p i t 叠加各根分量endFigure plot t h gridelse end 求解2 symssGs s 2 7 s 1 s s 1 s 2 s 5 G Gs 1y ilaplace G figure ezplot y 05 xlabel t ylabel y t title 系统单位脉冲响应 如何求解系统阶跃响应 求解3 s tf s G tf 171 1817100 subplot 3 1 1 impulse G 脉冲响应subplot 3 1 2 step G 阶跃响应subplot 3 1 3 G1 G s 2 impulse G1 斜坡响应 练习 阅读下列程序写出功能 symssGs s 2 7 s 1 s s 1 s 2 s 5 G Gs 1G1 Gs 1 sG2 Gs 1 s 2y ilaplace G y1 ilaplace G1 y2 ilaplace G2 figure subplot 3 1 1 ezplot y 07 subplot 3 1 2 ezplot y1 01500 subplot 3 1 3 ezplot y2 0300 课堂练习 给出以下程序执行结果S1 sym 1 234 S2 sym 1 234 F3 123f S3 sym F3 F4 123 456 789 S4 sym F4 给出以下程序执行结果1 234617 500F3 123f ErrorusingF4 123 456 789 Errorin Sym f 中 f不能是字符矩阵或者非法的表达式 三 Matlab流程控制结构 分支结构 if 分支结构 switch for循环while循环嵌套结构程序规范 分支结构 if if判断条件1执行语句1elseif判断条件2执行语句2elseif判断条件3执行语句3else执行语句n 1end 只要表达式内所有元素为真 则执行命令串 执行时 依次检查各表达式 只执行第一个表达式为真的命令串 接下来的关系式不检验 跳过其余的if else end 分支结构 if if判断条件1执行语句1elseif判断条件2执行语句2elseif判断条件3执行语句3else执行语句n 1end iftemp 10 disp cold elseiftemp 20 disp cool elseiftemp 27 disp warm elseiftemp 31 disp hot elsedisp toohot end 分支结构 switch switch表达式case表达式1语句段1case 表达式2 表达式3 表达式m 语句段2otherwise语句段nend sco input Pleaseinputthescore n switchfloor sco 10 case 9 10 t A case8t B case7t C case6t D case 0 1 2 3 4 5 t E otherwisedisp Invalidscore enddisp thecoreis t 输入一个百分制成绩 要求输出成绩等级A B C D E 其中 90 100分为A 80 89分为B 70 79分为C 60 69分为D 60分一下为E 要求 用switch语句实现 for循环 循环结构for end循环格式1 for循环变量 初值 增量 终值语句段end格式2 for循环变量 向量语句段end for循环举例1 for循环变量 循环值循环操作end s 0 fork 1 100 s s 1 k 2 end fork helloworld fprintf c k pause 0 1 end fork magic 3 k 1end 向量功能 for循环练习 两种格式 求S 1 2 100 S 0 forx 1 1 100S S x endS S 0 v 1 100 forx vS S x endS while循环 while循环条件 逻辑表达式 循环操作endwhile1 if循环条件 break end循环操作end n input n whilen 1 ifmod n 2 1 n n 3 1 break elsen n 2 break endend 表达式内的元素为真 练习 用循环结构求解 s 0 fori i 100s s i end s 0 i 1 whilei 100s s i i i 1 end Sum 1 100 用满足的最小m值 s 0 m 0 while s 10000 m m 1 s s m end 求解级数求和 tici 1 100000 s sum 1 2 i 1 3 i toc tics 0 fori 100000s s 1 2 i 1 3 iendtoc 比较速度 y 0 i 1 while1f 1 2 i 1 y y f ify 3break endi i 1end 求y 3时的最大n的值 并求此时n值和

温馨提示

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

评论

0/150

提交评论