资源描述:
《matlab符号计算12》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3部分MATLAB符号计算2011-8-31本部分内容3.1符号计算基础3.2微分运算3.3积分运算3.4泰勒级数3.5积分变换3.6方程求解3.7符号函数画图3.1符号计算基础3.1.1符号对象符号表达式是代表数字、函数、算子和变量的MATLAB字符串,或者字符串组;符号运算是使用已知的规则和给定符号恒等式求解符号方程的实践;符号变量和非符号变量区别:非符号变量参与计算之间必须赋值;而符号变量无须赋值。1建立符号变量和符号常数(1)sym函数S=sym(A)sym函数用来建立单个符号变量,例如,a=sym(‘a’)建立符号
2、变量a,此后,用户可以在表达式中使用变量a进行各种运算。如果A是一个数值、数值矩阵或数值表达式,可不加‘’号,其输出是将数值对象转化为符号对象如pi=sym(2*pi);a=sym(3/4)符号变量和数值变量的差别???例3.1考察符号变量和数值变量的差别。在MATLAB命令窗口,输入命令:a=sym('a');b=sym('b');c=sym('c');d=sym('d');%定义4个符号变量w=10;x=5;y=-8;z=11;%定义4个数值变量A=[a,b;c,d]%建立符号矩阵AB=[w,x;y,z]%建立数值矩阵Bd
3、et(A)%计算符号矩阵A的行列式det(B)%计算数值矩阵B的行列式例3.2比较符号常数与数值变量在代数运算时的差别。在MATLAB命令窗口,输入命令:pi1=sym(‘pi’);k1=sym(‘8’);k2=sym(‘2’);k3=sym(‘3’);%定义符号常数pi2=pi;r1=8;r2=2;r3=3;%定义数值变量pi1/3%计算符号表达式值pi2/3%计算数值表达式值sqrt(k1)%计算符号表达式值sqrt(r1)%计算数值表达式值sqrt(k3+sqrt(k2))%计算符号表达式值sqrt(r3+sqrt(r2
4、))%计算数值表达式值(2)syms函数syms用于定义多个符号变量。syms函数的一般调用格式为:symsvar1var2…varn函数定义符号变量var1,var2,…,varn等。用这种格式定义符号变量时不要在变量名上加字符分界符(‘),变量间用空格而不要用逗号分隔。(3)符号常量数值常量如果作为函数命令sym()的输入参量,即建立了一个符号对象---符号常量可以用class()函数来检测数据的类似。例如:a=1/8;classa=class(a)classa=doubleb=‘1/8’;classb=class(a)c
5、lassb=charc=sym(1/8);classc=class(a)classc=symd=sym(‘1/8’);classd=class(a)classd=sym2.建立符号表达式例3.3用2种方法建立符号表达式。在MATLAB窗口,输入命令:U=sym('3*x^2+5*y+2*x*y+6')%定义符号表达式Usymsxy;%建立符号变量x、yV=3*x^2+5*y+2*x*y+6%定义符号表达式V2*U-V+6%求符号表达式的值例3.4计算3阶范得蒙矩阵行列式的值。设A是一个由符号变量a,b,c确定的范得蒙矩阵。命令
6、如下:symsabc;U=[a,b,c];A=[[1,1,1];U;U.^2]%建立范得蒙符号矩阵det(A)%计算A的行列式值(1)符号表达式的代数运算与矩阵运算基本一致M=sym(‘a+b’);N=sym(‘b+c’);M+N(2)符号矩阵的基本运算命令transpose(A)符号矩阵的转置determ(A)符号矩阵的行列式计算inv(A)符号矩阵的求逆rank(A)符号矩阵的求秩eig符号矩阵的特征值、特征向量求解3.1.2基本的符号运算(3)符号与数值的转换(★)Numeric,eval:将符号常数转换为数字或计算表达
7、式的函数;Sym2poly:将符号多项式变换为等价系数向量。Poly2sym:要求用户指定用于表达式的变量(x,y等)例3.6f=sym(‘2*x^2+7*x+9’)n=sym2poly(f)f1=poly2sym([123],’t’)(4)因式分解与展开factor(S):对S分解因式,S是符号表达式或符号矩阵。expand(S):对S进行展开,S是符号表达式或符号矩阵。collect(S):对S合并同类项,S是符号表达式或符号矩阵。collect(S,v):对S按变量v合并同类项,S是符号表达式或符号矩阵。例3.7对符号矩
8、阵A的每个元素分解因式。命令如下:symsabxy;A=[2*a^2*b^3*x^2-4*a*b^4*x^3+10*a*b^6*x^4,3*x*y-5*x^2;4,a^3-b^3];factor(A)%对A的每个元素分解因式例3.8计算表达式S的值。命令如下:symsxy;s