文档介绍:第9章 MATLAB符号计算
符号对象
符号微积分
级数
符号方程求解
符号对象
建立符号对象
MATLAB提供了两个建立符号对象的函数:sym和syms,两个函数的用法不同。
(1) sym函数
sym函数用来建立单个符号量,一般调用格式为:
符号量名=sym('符号字符串')
该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。
应用sym函数还可以定义符号常量,使用符号常量进行代数运算时和数值常量进行的运算不同。下面的命令用于比较符号常量与数值常量在代数运算时的差别。
(2) syms函数
函数sym一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数syms,一次可以定义多个符号变量。syms函数的一般调用格式为:
syms 符号变量名1 符号变量名2 …符号变量名n
用这种格式定义符号变量时不要在变量名上加字符串分界符(‘),变量间用空格而不要用逗号分隔。
含有符号对象的表达式称为符号表达式。建立符号表达式有以下3种方法:
(1)利用单引号来生成符号表达式。
(2)用sym函数建立符号表达式。
(3) 使用已经定义的符号变量组成符号表达式。
符号表达式运算
符号表达式的加、减、乘、除运算可分别由函数symadd、symsub、symmul和symdiv来实现,幂运算可以由sympow来实现。
如果符号表达式是一个有理分式或可以展开为有理分式,可利用numden函数来提取符号表达式中的分子或分母。其一般调用格式为:
[n,d]=numden(s)
该函数提取符号表达式s的分子和分母,分别将它们存放在n与d中。
MATLAB提供了符号表达式的因式分解与展开的函数,函数的调用格式为:
factor(s):对符号表达式s分解因式。
expand(s):对符号表达式s进行展开。
collect(s):对符号表达式s合并同类项。
collect(s,v):对符号表达式s按变量v合并同类项。
MATLAB提供的对符号表达式化简的函数有:
simplify(s):应用函数规则对s进行化简。
simple(s):调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。
利用函数sym可以将数值表达式变换成它的符号表达式。
函数numeric或eval可以将符号表达式变换成数值表达式。
符号表达式中变量的确定
MATLAB中的符号可以表示符号变量和符号常量。findsym可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为:
findsym(s,n)
函数返回符号表达式s中的n个符号变量,若没有指定n,则返回s中的全部符号变量。
符号矩阵
符号矩阵也是一种符号表达式,所以前面介绍的符号表达式运算都可以在矩阵意义下进行。但应注意这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。
由于符号矩阵是一个矩阵,所以符号矩阵还能进行有关矩阵的运算。MATLAB还有一些专用于符号矩阵的函数,这些函数作用于单个的数据无意义。例如
transpose(s):返回s矩阵的转置矩阵。
determ(s):返回s矩阵的行列式值。
其实,曾介绍过的许多应用于数值矩阵的函数,如diag、triu、tril、inv、det、rank、eig等,也可直接应用于符号矩阵。