资源描述:
《MATLAB符号运算运用.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章MATLAB的符号运算符号计算是对未赋值的符号对象(可以是常数、变量、表达式)进行运算和处理。MATLAB具有符号数学工具箱(SymbolicMathToolbox),将符号运算结合到MATLAB的数值运算环境。符号数学工具箱是建立在Maple软件基础上的。3.1符号表达式的建立3.1.1创建符号常量符号常量是不含变量的符号表达式,用sym命令来创建符号常量。语法:sym(‘常量’)%创建符号常量例如:>>a=sym('sin(2)')a=sin(2)3.1.2创建符号变量和表达式1.使用sym命令创建
2、符号变量和表达式语法:sym(‘表达式’)%创建符号表达式符号变量名=sym(‘表达式’)%符号表达式赋给符号变量2.使用syms命令创建符号变量和符号表达式——syms用于创建多个符号变量语法:syms(‘arg1’,‘arg2’,…,参数)%把字符变量定义为符号变量symsarg1arg2…,参数%把字符变量定义为符号变量的简洁形式【例】使用syms命令创建符号变量和符号表达式。symsabcx%创建多个符号变量f2=a*x^2+b*x+c%创建符号表达式f2=a*x^2+b*x+csyms('a','
3、b','c','x')f3=a*x^2+b*x+c;%创建符号表达式3.1.3符号矩阵用sym和syms命令也可以创建符号矩阵。例如,>>A=sym('[a,b;c,d]')A=[a,b][c,d]>>symsabcdA=[ab;cd]A=[a,b][c,d]3.2符号表达式的代数运算符号运算与数值运算的区别主要有以下几点:符号运算不需要进行数值运算,不会出现截断误差,因此符号运算是非常准确的。符号运算可以得出完全的封闭解或任意精度的数值解。符号运算的时间较长,而数值型运算速度快。3.2.1符号表达式的代数运
4、算1.符号运算中的运算符(1)基本运算符运算符“+”,“-”,“*”,“”,“/”,“^”分别实现符号矩阵的加、减、乘、左除、右除、求幂运算。运算符“.*”,“./”,“.”,“.^”分别实现符号数组的乘、除、求幂,即数组间元素与元素的运算。运算符“′”,“.′”分别实现符号矩阵的共轭转置、非共轭转置。(2)关系运算符在符号对象的比较中,没有“大于”、“大于等于”、“小于”、“小于等于”的概念,而只有是否“等于”的概念。运算符“==”、“~=”分别对运算符两边的符号对象进行“相等”、“不等”的比较。当为“
5、真”时,比较结果用1表示;当为“假”时,比较结果则用0表示。2.函数运算(1)三角函数和双曲函数三角函数包括sin、cos、tan;双曲函数包括sinh、cosh、tanh;三角反函数除了atan2函数仅能用于数值计算外,其余的asin、acos、atan函数在符号运算中与数值计算的使用方法相同。(2)指数和对数函数指数函数sqrt、exp的使用方法与数值计算的完全相同;对数函数在符号计算中只有自然对数log(表示ln),而没有数值计算中的log2和log10。(3)复数函数复数的共轭conj、求实部real
6、、求虚部imag和求模abs函数与数值计算中的使用方法相同。但注意,在符号计算中,MATLAB没有提供求相角的命令。(4)矩阵代数命令MATLAB提供的常用矩阵代数命令有diag,triu,tril,inv,det,rank,poly,eig、expm等,它们的用法几乎与数值计算中的情况完全一样。【例】求矩阵的行列式值、非共轭转置和特征值。symsa11a12a21a22A=[a11a12;a21a22]%创建符号矩阵A=[a11,a12][a21,a22]det(A)%计算行列式ans=a11*a22-a1
7、2*a21A.'%计算非共轭转置ans=[a11,a21][a12,a22]eig(A)%计算特征值【例】符号表达式f=2x2+3x+4与g=5x+6的代数运算。f=sym('2*x^2+3*x+4')f=2*x^2+3*x+4g=sym('5*x+6')g=5*x+6f+g%符号表达式相加ans=2*x^2+8*x+10f*g%符号表达式相乘ans=(2*x^2+3*x+4)*(5*x+6)1.自由变量的确定原则小写字母i和j不能作为自由变量。符号表达式中如果有多个字符变量,则按照以下顺序选择自由变量:首先
8、选择x作为自由变量;如果没有x,则选择在字母顺序中最接近x的字符变量;如果与x相同距离,则在x后面的优先。大写字母比所有的小写字母都靠后。2.findsym函数如果不确定符号表达式中的自由符号变量,可以用findsym函数来自动确定。语法:findsym(f,n)%确定自由符号变量说明:f可以是符号表达式或符号矩阵;n为按顺序得出符号变量的个数,当n省略时,则不按顺序得出f中所有的符号变量。3.2.