MATLAB R2018b学习笔记(15)

系列文章目录

第1章 MATLAB R2018b环境
第2章 MATLAB 数值计算
第3章 MATLAB符号计算
第4章 MATLAB计算的可视化和GUI设计
第5章 MATLAB程序设计
第6章 线性控制系统分析与设计
第7章 Simulink仿真环境
第8章 MATLAB高级应用



第三章、MATLAB符号计算


前言

本次内容主要介绍符号表达式的操作与转换,涉及内容如下:
1、符号表达式中自由变量的确定;
2、符号表达式的化简;
3、符号表达式的替换;
4、求反函数和复合函数
5、符号表达式的转换


15、符号表达式的操作与转换

15.1符号表达式中自由变量的确定

1.自由变量的确定原则
当符号表达式中含有多于1个的符号变量时,如“f=ax^2+bx+c" 和“f=x ^2+y ^2”,则只有1个变量是独立变量,其余的符号变量当作常量处理。
如果不指定哪1个变量是自由变量,MATLAB 将基于以下几个原则选择1个自由
变量。
(1)小写字母i和j不能作为自由变量。
(2)符号表达式中如果有多个符号变量,则按照以下顺序选择自由变量:
首先选择x作为自由变量:如果没有x,则选择在字母顺序中最接近x的字符变量:如果与x相同距离,则在x后面的优先。.
(3)大写字母比所有小写字母都靠后。
例如:
x^2+ax+b的自由符号变量是x;
a
(sin(t)+bcos(wt))的自由符号变量是w;
atheta的自由符号变量是theta;
i+a
j的自由符号变量是a.
2. symvar 函数
symvar函数用来决定表达式中的符号变量。
语法:symvar (EXPR) %确定自由符号变量
symvar函数列出表达式中除了i,j, pi, inf, nan, eps和函数名之外的符号变量,返回值是元胞数组。
在这里插入图片描述3. findsym 函数
如果不确定符号表达式中的自由符号变量,则可以用findsym函数自动确定。
语法: findsym(EXPR,n)
说明: EXPR可以是符号表达式或符号矩阵: n为按顺序得出符号变量的个数,当n省略时,则不按顺序得出EXPR中所有的符号变量。

15.2符号表达式的化简

符号表达式的书写有多种形式,MATLAB提供了一系列函数可以化简得出简单的符号表达式。
同一个数学函数的符号表达式可以表示成为3种形式,如以下的J(x)可以分别表示如下。
(1)多项式形式的表达方式: f(x)=x^3+6x ^2+11x-6
(2)因式形式的表达方式: f(x)=(x-1)(x-2)(x-3)
(3)嵌套形式的表达方式: fJ(x)=x(x(x-6)+11)-6
MATLAB提供了pretty 、collect、 expand、 horner 和factor函数,可以对符号表达式进行化简,如表3.2所示。
在这里插入图片描述1. simplifty 函数
simplify函数功能强大,利用各种形式的代数恒等式对符号表达式进行化简,包括求和、分解、积分、幂、三角、指数和对数函数等。
在这里插入图片描述2. simple 函数
simple函数给出多种简化形式,给出除了pretty 、cllct. expand、 factor、 simplify简化形式之外的radsimp、 combine、 combine(rig)、 convert 形式,并寻求包含最少数目字符的表达式简化形式。

15.3符号表达式的替换

可以通过符号替换实现符号表达式的化简,MATLAB提供了subexpr 函数用于替换子表达式,并使用subs替换符号变量,使表达式简洁易读。
1.subexpr 函数
符号表达式有时因为子表达式多次出现而显得烦冗,可以通过使用subexpr 函数替换子表达式来化简。
语法: subexpr(s,s1) %用符号变量s1置换s中的子表达式
subexpr函数对子表达式是自动寻找的,只有比较长的子表达式才被置换,比较短的子表达式,即使重复出现多次,也不被置换。
2. subs 函数
subs函数可用来进行对符号表达式中符号变量的替换。
语法:
subs(s)%用给定值替换符号表达式S中的所有变量
subs(s,new)%用new替换符号表达式s中的自由变量
subs(s,old,new)%用new替换符号表达式s中的old变量
在这里插入图片描述

15.4求反函数和复合函数

1.求反函数
对于函数f(x),若存在另一个函数g(.),使得g(f(x))=x成立,则函数g(.)称为函数f(x)的反函数。在MATLAB中,finverse 函数可以求得符号函数的反函数。
语法:finverse(f,v) %对指定自变量v的函数f(v)求反函数
说明:若v省略,则对默认的自由符号变量求反函数。

2.求复合函数
运用函数compose可以求符号函数f(x)和g(y)的复合函数。
语法:
compose(f,g) %求f(x)和g(y)的复合函数f(g(y))
compose(f,g,z)%求f(x)和g(y)的复合函数f(g(z))
语法:
compose(f,g,x,z)%以x为自变量构成复合函数f(g(z))
compse(f,g,x.y.z)%以x为自变量构成复合函数f(g(z))并用z 替换y
说明: x是f的自变量,y是g的自变量:当函数f有多个自变量时,可以通过设置以选择某个自变量构成复合函数。

15.5符号表达式的转换

1.符号表达式与多项式的转换
构成多项式的符号表达式f(x)可以与多项式系数构成的行向量进行相互转换,MATLAB提供了函数sym2poly和poly2sym用于实现相互转换。
(1) sym2poly 函数。sym2poly 函数用来将构成多项式的符号表达式转换为按降幂排列的行向量
局限性:只能对含有一个变量的表达式进行转换。
在这里插入图片描述(2) poly2sym 函数。poly2sym 函数与sym2poly函数相反,用来将按降幂排列的行向量转换为符号表达式。
在这里插入图片描述2.提取分子和分母
如果符号表达式是1个有理分式(两个多项式之比),可以利用numden函数提取分子或分母,还可以进行通分。
语法:[n,d]=numden(f)
说明: n为分子: d为分母: f为有理分式。
在这里插入图片描述


总结

文章内容来自MATLAB实用教程/郑阿奇主编,ISBN 978-7-121-29138-8。若有侵权行为,请联系我自行删除。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力努力再努力@李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值