资源描述:
《matlab符号计算11》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章MATLAB符号计算5.1符号计算基础5.2符号导数及其应用5.3符号积分5.4级数5.5符号方程求解5.1符号计算基础5.1.1符号对象1.建立符号变量和符号常数(1)sym函数sym函数用来建立单个符号量,例如,a=sym('a')建立符号变量a,此后,用户可以在表达式中使用变量a进行各种运算。例5.1考察符号变量和数值变量的差别。在MATLAB命令窗口,输入命令:a=sym('a');b=sym('b');c=sym('c');d=sym('d');%定义4个符号变量w=10;x=5;y=-8;z=11;%定义4个
2、数值变量A=[a,b;c,d]%建立符号矩阵AB=[w,x;y,z]%建立数值矩阵Bdet(A)%计算符号矩阵A的行列式det(B)%计算数值矩阵B的行列式例5.2比较符号常数与数值在代数运算时的差别。在MATLAB命令窗口,输入命令:pi1=sym('pi');k1=sym('8');k2=sym('2');k3=sym('3');%定义符号变量pi2=pi;r1=8;r2=2;r3=3;%定义数值变量sin(pi1/3)%计算符号表达式值sin(pi2/3)%计算数值表达式值sqrt(k1)%计算符号表达式值sqrt(r1
3、)%计算数值表达式值sqrt(k3+sqrt(k2))%计算符号表达式值sqrt(r3+sqrt(r2))%计算数值表达式值(2)syms函数syms函数的一般调用格式为:symsvar1var2…varn函数定义符号变量var1,var2,…,varn等。用这种格式定义符号变量时不要在变量名上加字符分界符('),变量间用空格而不要用逗号分隔。2.建立符号表达式建立符号表达式有以下3种方法:(1)利用单引号来生成符号表达式。y='1/sqrt(2*x)'(2)用sym函数建立符号表达式。f=sym('cos(x^2-sin(2
4、*x))=0')(3)使用已经定义的符号变量组成符号表达式。5.1.2基本的符号运算1.符号表达式的四则运算符号表达式的四则运算和其他表达式的运算并无不同,但要注意,其运算结果依然是一个符号表达式。符号表达式的加、减、乘、除运算可分别由+-*/运算符号实现。2.符号表达式的提取分子和分母运算如果符号表达式是一个有理分式或可以展开为有理分式,可利用numden函数来提取符号表达式中的分子或分母。其一般调用格式为:[n,d]=numden(s)该函数提取符号表达式s的分子和分母,分别将它们存放在n与d中。3.因式分解与展开fact
5、or(s)对s分解因式,s是符号表达式或符号矩阵。expand(s)对s进行展开,s是符号表达式或符号矩阵。collect(s)对s合并同类项,s是符号表达式或符号矩阵。collect(s,v)对s按变量v合并同类项,s是符号表达式或符号矩阵。4.表达式化简MATLAB提供的对符号表达式化简的函数有:simplify(S)应用函数规则对S进行化简。simple(S)调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。5.符号表达式与数值表达式之间的转换利用函数sym可以将数值表达式变换成它的符号表达式。函数eval
6、可以将符号表达式变换成数值表达式。5.1.3符号表达式中变量的确定MATLAB中的符号可以表示符号变量和符号常数。findsym可以帮助用户查找一个符号表达式中的的符号变量。该函数的调用格式为:findsym(S,n)函数返回符号表达式S中的n个符号变量,若没有指定n,则返回S中的全部符号变量。在求函数的极限、导数和积分时,如果用户没有明确指定自变量,MATLAB将按缺省原则确定主变量并对其进行相应微积分运算。可用findsym(S,1)查找系统的缺省变量,事实上,MATLAB按离字符'x'最近原则确定缺省变量。5.1.4符号
7、矩阵transpose(S)返回S矩阵的转置矩阵。determ(S)返回S矩阵的行列式值。colspace(S)返回S矩阵列空间的基。5.2符号函数及其应用5.2.1函数的极限limit函数的调用格式为:limit(f,x,a)当x趋近于常数a的函数极限值limit(f,x)缺省a=0limit(f,a)缺省变量为函数findsym(f)确认的变量limit(f,x,a,'right')或limit(f,x,a,'left')例5.3求极限。在MATLAB命令窗口,输入命令:symsamx;f=(x^(1/m)-a^(1/m)
8、)/(x-a);limit(f,x,a)%求极限(1)f=(sin(a+x)-sin(a-x))/x;limit(f)%求极限(2)limit(f,inf)%求f函数在x→∞(包括+∞和-∞)处的极限limit(f,x,inf,'left')%求极限(3)f=(sqrt(x)