资源描述:
《matlab 7符号计算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七章MATLAB的符号计算与数值运算的区别※数值运算中必须先对变量赋值,然后才能参与运算。※符号运算无须事先对独立变量赋值,运算结果以标准的符号形式表达。符号计算的特点运算以推理解析的方式进行,因此不受计算误差积累问题困扰;符号计算给出完全正确的解析解,当解析解不存在时,会给出数值解;符号计算指令的调用比较简单,与教科书上的公式相近;计算所需时间比数值计算要多很多;常用的符号计算软件有Maple、Mathmatica、MathCAD等。Matlab的符号运算Matlab符号运算是通过符号数学工具箱(SymbolicMathToolbox)来实现的。Matlab符号数学工具箱是建立在功能
2、强大的Maple软件的基础上的,当Matlab进行符号运算时,它就请求Maple软件去计算并将结果返回给Matlab。Matlab符号运算的功能Matlab的符号数学工具箱可以完成几乎所有的符号运算功能。主要包括:符号表达式的运算、复合、化简等可变精度运算,即支持以指定的精度返回结果符号矩阵的运算符号微积分符号代数方程求解符号微分方程求解符号作图一、符号计算基础在进行符号运算时,必须先定义基本的符号量,可以是符号常量、符号变量。符号对象含有符号对象的表达式称为符号表达式。符号矩阵/数组:元素为符号表达式的矩阵/数组。(一)定义符号变量符号变量要先定义,后引用。可以用sym函数、syms函
3、数将运算量定义为符号型数据。引用符号运算函数时,用户可以指定函数执行过程中的变量参数;若用户没有指定变量参数,则使用findsym函数默认的变量作为函数的变量参数。1、sym函数sym函数的主要功能是创建符号变量,以便进行符号运算,也可以用于创建符号表达式或符号矩阵。用sym函数创建符号变量的一般格式为:x=sym(‘x’)a=sym('a')a是符号变量b是符号常量b=sym(1/3)【例】作符号计算:a,b,x,y均为符号运算量。在符号运算前,应先将a,b,x,y定义为符号运算量a=sym(‘a’);%定义‘a’为符号运算量,输出变量名为ab=sym(‘b’);x=sym(‘x’);
4、y=sym(‘y’);[x,y]=solve(a*x-b*y-1,a*x+b*y-5,x,y)%以a,b为符号常数,x,y为符号变量即可得到方程组的解:x=3/ay=2/b【例】已知一复数表达式z=x+i*y,试求其共轭复数,并求该表达式与其共轭复数乘积的多项式。为了使乘积表达式x^2+y^2非负,这里,把变量x和y定义为实数。x=sym('x','real');y=sym('y','real');z=x+i*y;%定义复数表达式conj(z);%求共轭复数expand(z*conj(z))%求表达式与其共轭复数乘积的多项式ans=x^2+y^2若要去掉’x’的属性,可以使用下面语句x=
5、sym(‘x’,’unreal’)将’x’创建为纯格式的符号变量。符号常量的精度a=sym(1/3+sqrt(2))b=sym(‘1/3+sqrt(2)’)转化为最接近的“有理”表示最精确的符号常数符号数值精度控制把符号常数转化为16位相对精度的浮点数值对象。设置数值计算以n位相对精度进行在digits指定的精度下,给出x的数值型符号结果xs在n位相对精度下,给出x的数值型符号结果xsdouble(x)digits(n)xs=vpa(x,n)xs=vpa(x)数值型符号结果数值符号常数vpasymdoublevpadouble2、syms函数syms函数的功能与sym函数类似。syms函
6、数可以在一个语句中同时定义多个符号变量,其一般格式为:symsarg1arg2…argN用于将arg1,arg2,…,argN等变量创建为符号型变量。各变量间须用空格分开。先使用syms定义符号变量,再按普通书写形式创建符号表达式:symsaxbf=a*x+b3、创建符号表达式用sym命令创建符号表达式:f=sym(a*x+b)4、创建符号矩阵(数组)将数值矩阵转化成符号矩阵:B=[2/3,sqrt(2);5.2,log(3)];C=sym(B)A=sym('[1+x,sin(x);5,exp(x)]')使用sym函数直接生成:先使用syms定义符号变量,再按普通书写形式创建符号矩阵(数
7、组):symsabxyC=[a,b;x,y]5.生成符号函数将表达式中的自变量定义为符号变量后,赋值给符号函数名,即可生成符号函数。例如有一数学表达式:其用符号表达式生成符号函数fxy的过程为:symsabcxy%定义符号运算量fxy=(a*x^2+b*y^2)/c^2%生成符号函数生成符号函数fxy后,即可用于微积分等符号计算。【例】定义一个符号函数fxy=(a*x2+b*y2)/c2,分别求该函数对x、y的导数和对x的积分。sy