资源描述:
《第六章 符号计算new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第六章符号计算6.1符号对象的创建6.1.1符号对象的生成符号计算工具箱定义了一种新的MATLAB数据类型,叫做符号对象。在MATLAB内部,符号对象的数据存储格式是符号字符串。sym函数用于创建符号对象,包括符号常量、符号变量和符号表达式。【调用格式】f=sym(arg)把数值、字符串或者表达式arg转换为符号对象ff=sym(argn,flagn)把数值或者数值表达式argn转换为flagn格式的符号对象f=sym('argv',flagv)把字符串'argv'按照flagv的格式转换为符号对象symsargv
2、1argv2...定义argv1、argv2等为符号对象symsarg1arg2...flagv定义arg1、arg2等为flagv格式的符号对象【说明】1.对于数值或者数值表达式argn,flagn可以取以下值:'d'最接近的十进制浮点精度表示'e'带估计误差的有理表示'f'十六进制浮点数表示'r'最接近的有理表示,MATLAB的缺省表示方法2.对于字符串变量名argv,flagv可以取以下“限定”项:'positive'“正实数”符号变量'real'“实数”符号变量'unreal'“非实数”符号变量3.syms
3、是sym函数的简化书写方式,各符号对象之间只能用空格分开。6.1.2符号常量用sym函数可以定义符号常量对象,包括符号标量对象和符号常量数组对象,定义符号常量对象的同时也可以指定数值常量的表示方法。例6.1.1符号常量的定义>>a=[1/3,sqrt(5),pi+sqrt(2)];%定义数值数组>>s1=sym([1/3,sqrt(5),pi+sqrt(2)],'d');%用十进制方式表示符号常量>>s2=sym([1/3,sqrt(5),pi+sqrt(2)]);%用最接近的有理方式表示符号常量>>s3=sym(
4、'[1/3,sqrt(5),pi+sqrt(2)]');%绝对准确的符号数值表示,输入为字符串6.1.3符号变量与符号表达式1.定义符号变量和符号表达式例6.1.2符号变量和符号表达式的定义95>>x=sym('x','real');%定义实数符号变量x>>symyreal;%定义实数符号变量y>>z=x+i*y;%定义符号表达式对象z>>conj(z)%符号变量求共轭复转置>>f=z*conj(z);%符号表达式对象>>f=simple(f)%符号表达式对象化简f=x^2+y^2例6.1.3符号变量与符号矩阵>>
5、symsabc;%定义符号变量a,b,c>>A=[a,b,c;b,c,a;c,a,b];%定义符号矩阵A>>sum(A(:,1));%求矩阵A第一列的元素的和>>sum(A(1,:))==sum(A(:,2))%符号对象的关系运算>>det(A);%矩阵求行列式>>symsalphabeta;%定义符号变量alpha和beta>>A(1,3)=beta;%矩阵元素赋值>>A=subs(A,a,alpha)%符号表达式的替换操作,矩阵A中的a用alpha代替2.符号表达式中自变量的确定在数学表达式或者数学函数中,一般
6、都含有自变量。为了便于进行数学运算,通常要显示的指定表达式中的自变量,如果不指定自变量,MATLAB会根据上下文关系,识别表达式中默认的自变量(独立自由的符号变量)。识别表达式中自变量的基本原则是:按照字母表中靠近小写字母x的顺序识别,最靠近字母x的变量被第一个识别为自变量。MATLAB还提供了自变量识别函数findsym。【调用格式】findsym(exp)识别表达式exp中所有的自由符号变量findsym(exp,n)识别表达式exp中最靠近x的n个独立自由变量【说明】1.表达式可以是符号矩阵,此时变量识别是对
7、整个矩阵进行的。2.函数识别的是“独立的”“自由的”符号变量,符号常量或者非独立的符号变量无法被识别。3.识别次序是按照靠近x的远近进行的,区分大小写,总认为大写字母距离x的距离大于所有小写字母。例6.1.4符号表达式中自变量的识别>>symsabxXY;%定义符号变量>>k=sym(2.5);>>z=sym('c*sqrt(alpha)+y*sin(beta)');%定义符号表达式对象(变量)z>>exp=a*z*X+k*Y+b^x%定义符号表达式变量expexp=a*(c*alpha^(1/2)+y*sin(b
8、eta))*X+5/2*Y+b^x???>>k=sym(2.5);%定义符号常量k,无法被识别>>findsym(exp)%自动识别所有自由独立变量,k为常量,z为非独立>>findsym(exp,3)%识别exp中前3个靠近x的独立自由变量6.1.4符号数学函数在MATLAB中,可以定义表示数学函数的符号对象,既能建立具有详细运算关系的函数,又能建立抽象数