在数学运算中,运算的结果如果是一个数值,可以称这类运算为数值运算;如果运算结果为表达式,在MATLAB中称为符号运算,符号计算是对未赋值的符号对象(可以是常数、变量、表达式)进行运算和处理。MATLAB具有符号数学工具箱(SymbolicMath Toolbox),将符号运算结合到MATLAB的数值运算环境。符号数学工具箱是建立在Maple软件基础上的。

(一)  符号变量建立符号变量和符号常数

建立符号变量的方法有两种,应用,应用sym与syms函数,通常应用sym建立符号表达式,应用syms同时定义多个符号变量。

(1)函数:sym

 功能:用来建立单个符号量

 语法形式:sym(‘表达式或变量’)

 举例

  1. a = sym('a');     %定义符号变量a,下同
    b = sym('b')
    c = sym('c')
    d = sym('d') %至此定义了4个符号变量
    w = 10;x = 5;y = -8;z = 11; A = [a,b;c,d] %建立符号矩阵A
    B = [w,x;y,z] %建立数值矩阵B
    C = det(A); %计算符号矩阵A的行列式
    D = det(B); %建立数值矩阵B的行列式

由上述结果我们不难看出,在符号运算中是以表达式形式呈现结果的,而在数值运算中是以数值表示结果的。

(2)函数:syms

 功能:定义多个符号变量

 语法:syms Var1 Var2 ……Varn

 说明:函数定义符号变量var1,var2,……,Varn等。在用这种格式定义符号变量时无需在变量名上加字符分解符(‘’),变量间用空格而不要用逗号分隔,要用空格来分隔。

例2:应用syms函数定义符号变量

  1. syms x y %同时定义x,y为符号变量
    A = [sin(x) sin(y);cos(x) cos(y)]

(二)基本的符号运算

1基本符号运算函数

在MATLAB中,有很多应用于符号运算的函数,常用的函数如下表所示:

函数名

功能

用法举例

sym

字符串或数值到符号的切换

sym(‘a+b’)

expand

展开

syms  x

s = (-7*x^2-8*y^2)*(-x^2+3*y^2);

expand(s)

collect(s,x)

factor(ans)

g = simple(ans)

collect

合并同类项

factor

因式分解

simplify

simple

化简

sym2poly(S)

转化S为多项式系数向量

syms x;f=’2*x^2+3*x-5’;

n = sym2poly(f)

poly2sym(n)

poly2sym(c)

转换多项式系数向量c为符号多项式

2符号表达式运算

(1)符号表达式的四则运算

  1. syms x y z; %定义x,y,z为符号变量
    f1 = 2*x+x^2*x-5*x+x^3
    f2 = 2*x/(5*x)
    f3 = (x+y)*(x-y)</span>

 (2)因式分解与多项式展开

函数1:factor

功能:分解因式

语法:factor(s)

说明:s是符号表达式或符号矩阵

函数2:collect

功能:合并同类项

语法:collect(s)

collect(s,x)

说明:对s按符号变量x进行同类项合并,s是符号表达式或符号矩阵。

举例:对表达式因式分解

f = sym('2*(x-1)/(x^2+2*x-3)'); %输入表达式

F = factor(f) %对符号表达式f进行因式分解

f = sym('2*(x-1)/(x^2+2*x-3)'); %输入表达式

  1. F = factor(f)  %对符号表达式f进行因式分解</span>

(3)表达式化简

MATLAB提供的对符号表达式化简函数为simplify。

函数:simplify

功能:对表达式进行化简

语法:simplfy(S)

f=cos(x)^2+sin(x)^2

simplify(f)  
  :simplify和simple是Matlab符号数学工具箱提供的两个简化函数,区别如下:

simplify的调用格式为:simplify(S);对表达式S进行化简。
simple是通过对表达式尝试多种不同的方法(包括simplify)进行化简,以寻求符号表达式S的最简形式。
调用方式为:
[r,how]=simple(S);r为返回的简化形式,how为化简过程中使用的一种方法。how有以下几种形式:
(1)simplify 函数对表达式进行化简;
(2)radsimp函数对含根式的表达式进行化简;
(3)combine 函数将表达式中以求和、乘积、幂运算等形式出现的项进行合并;
(4)collet合并同类项
(5)factor函数实现因式分解
(6)convert函数完成表达式形式的转换

参考文献

[1] 刘加海,严冰等主编. MATLAB可视化科学计算[M]:浙江: 浙江大学出版社,2014.6

[2] 薛定宇,陈阳泉主编.高等应用数学问题的MATLAB求解[M]:第二版.北京: 清华大学出版社,2015.6

MATLAB的符号运算基础的更多相关文章

  1. matlab基本语法和运算基础

    转载自:http://blog.csdn.net/robertcalm/article/details/51582253 matlab语法比较随意,但正如其全名 matrix &laborat ...

  2. MATLAB符号运算 分类: 图像处理 2015-07-31 22:53 3人阅读 评论(0) 收藏

    1.符号运算 使用MATLAB可以进行多项式乘除运算,也可以进行因式分解. 例1. 多项式乘除运算(x+3)3 >> syms x; >> expand((x+3)^3) an ...

  3. MATLAB符号运算

    1.符号运算 使用MATLAB可以进行多项式乘除运算,也可以进行因式分解. 例1. 多项式乘除运算(x+3)3 >> syms x;>> expand((x+3)^3) ans ...

  4. MATLAB符号对象与符号运算

    序言 符号对象(Symbolic Objects 不同于普通的数值计算)是Matlab中的一种特殊数据类型,它可以用来表示符号变量.表达式以及矩阵,利用符号对象能够在不考虑符号所对应的具体数值的情况下 ...

  5. 使用octave符号运算求解不定积分、微分方程等(兼容matlab)

    1.求解1/(1+cos(x))^2的不定积分. 在和学生讨论一道物理竞赛题的时候,出现了这个函数的积分求解需求.查积分表也可写出答案.但是可以使用octave的符号运算工具箱来做. syms x; ...

  6. java位运算和无符号运算

    计算机在底层使用的是二进制补码进行运算. 计算规则: 正数的原码.反码.补码是其二进制本身. 负数的原码首先计算其二进制数,然后最高位使用1表示负数,反码是最高位不变其它位取反,补码是在反码的基础上进 ...

  7. var、符号运算、条件语句、三元(目)运算、自加和自减

    1.var  a=“hello world” a 这个变量是字符串了,对于里面的每一个字母来说,他是字节,里面有11个字节,(包括空格),字节总数用length表示 2.符号运算 + 字符串拼接 . ...

  8. MATLAB——matlab特殊符号表【转载】

    链接来源: matlab特殊符号表 http://blog.sina.com.cn/s/blog_4a09187801014xg9.html Character Sequence Symbol Cha ...

  9. Matlab 符号运算

    root(p):多项式求根.多项式等于0时对应方程的根. 例:,则输入p=[5 4 3 2 1]; root(p) 注:多项式系数都是按幂指数递减形式的. poly([a,b,c]):求已知根为a,b ...

随机推荐

  1. 关于CSS reset的思考

    关于CSS reset的思考 在现在的网站设计中使用reset.css用重置整个站点的标签的CSS属性的做法很常见,但有时候我们已经为了reset而reset,我们经常看到这样的reset代码 div ...

  2. WinForm媒体播放器

    媒体播放控件(Windows Media Player )的常用属性和方法,并且利用它设计一个简单的媒体应用程序——媒体播放器.该媒体播放器可以播放 wav.avi.mid 和 mp3 等格式的文件. ...

  3. 捆绑(Bundle)

    捆绑(Bundle) 本文介绍 MVC 4 提供的一个新特性:捆绑(Bundle),一个在  View 和 Layout 中用于组织优化浏览器请求的 CSS 和 JavaScript 文件的技术. 本 ...

  4. Day1:T1 模拟 T2 拓扑排序

    T1:模拟 自己第一天的简直跟白痴一样啊...模拟都会打错.. 当时貌似在更新最大值的时候打逗比了... if((sum[x]==max && x<maxh) || sum[x] ...

  5. 用PowerShell代替批处理吧!

    这篇文章主要介绍了用PowerShell代替批处理吧!本文讲解了批处理文件的历史.Windows NT 和 Cmd.exe.Windows Script 主机.进入 Windows PowerShel ...

  6. 将SQL获取的信息传递到Email中

    将SQL获取的信息传递到Email中 最近在为公司财务开发一个邮件通知时遇到了一个技术问题.原来我设计SSIS的是每天将ERP系统支付数据导出到财务支付平台后 Email 通知财务,然后财务到支付平台 ...

  7. txt文件保存问题

    今天终于解决了文件的保存问题,之前删除文件,再保存,发现删除的内容还是在文件中. 这是因为保存内容时,是将数组内容一行一行覆盖原来的内容,没有覆盖到的还是保存在文件内. 我用的是CFile类 所以直接 ...

  8. tar命令,重定向,正则表达式,添加删除用户,tr命令,sort排序

    rpm包仅用于 redhat suse redflag 若是源代码包的话,那就都适用linux下面的备份,差不多就是用tar打包 tar命令用途:制作归档文件,释放归档文件格式:tar [选项]... ...

  9. python 中文字数统计/分词

    因为想把一段文字分词,所以,需要明确一定的词语关系. 在网上随便下载了一篇中文小说.随便的txt小说,就1mb多.要数数这1mb多的中文到底有多少字,多少分词,这些分词的词性是什么样的. 这里是思路 ...

  10. Facebook开源的基于SQL的操作系统检测和监控框架:osquery daemon详解

    osqueryd osqueryd(osquery daemon)是可以定期执行SQL查询和记录系统状态改变的驻守程序. osqueryd能够根据配置手机归档查询结果,并产生日志. 同时也可以使用系统 ...