1、函数sym一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数syms,一次可以定义多个符号变量。syms函数的一般调用格式为:syms 符号变量名1 符号变量名2 符号变量名n用这种格式定义符号变量时不要在变量名上加字符串分界符(),变量间用空格而不要用逗号分隔。2创建符号表达式和符号表达式的操作含有符号对象的表达式称为符号表达式。建立符号表达式有以下3种方法:(1)利用单引号来生成符号表达式。(2)用sym函数建立符号表达式。(3) 使用已经定义的符号变量组成符号表达式。对符号表达式f=sinx,g= 进行操作。(1).创建符号变量。使用sym命令创建符号表达式: f=sym
2、( sin(x) )f=sin(x) g=sym(y/exp(-2*t) g= y/exp(-2*t)syms命令创建符号表达式f,g: syms x y t f=sin(x) g=y/exp(-2*t)自由变量的确定。使用findsym确定符号表达式g的自由变量: findsym(g) %得出所有符号变量Ans=t,y findsym(g,1) %得出第1个符号变量ans=yfindsym(g,2) %按顺序得出两个符号变量y,t用常数替换符号变量。用行向量替换x,使符号对象f转变为行向量: x=0:10; f=sin(x); y=subs(f,x)符号对象与数值的转换.采用double,n
3、umeric 和eval将符号对象转换为数值:f=sin(x);f1=subs(f, 5 f1=sin(5)y1=double(f1)y1=-0.9589y2=eval(f1)y2=求反函数和复合函数。用finverse函数求f,g的反函数:finverse(f)asin(x) finverse(g) %对默认独立变量y求反函数y*exp(-2*t)finverse(g, t) %对符号变量t求反函数-1/2*log(y/t)用compose 函数求f,g的复合函数:compose(f,g) %计算f(g(x)sin(y/exp(-2*t)compose(f,g, z) %计算f(g(z)si
4、n(z/exp(-2*t)符号微积分和极限。对f和g用diff 求微分:diff(f)cos(x)diff(g) %对默认自由变量y求微分1/exp(t2)diff(g, ) %对符号变量t求微分-2*y/exp(t2)*t对f和g用int 求积分:int(f) %求不定积分-cos(x)int(g)1/2*y2/exp(-2*t)int(g, ) %对t求不定积分1/2*y/exp(-2*t),0,10) %对t 求定积分1/2*y*exp(20)-1/2*y 符号表达式的极限limit syms x a t ; limit(sin(x)/x)ans =1 limit(1 + a/x) x,
5、x,inf) %xinf条件下的极限exp(a) limit(1/x,x,0,left) %left极限的方向-InfTaylor级数展开 clear all syms x f=exp(x * sin(x); r = taylor(f,Order,12) r = - (1079*x10)/362880 - (11*x8)/560 + x6/120 + x4/3 + x2 + 13.符号矩阵的操作(1)创建符号矩阵。 使用sym函数直接创建符号矩阵a=sym( x x2;2*x cos(2*t) a= x, x2 2*x,cos(2*t)将数值矩阵转化为符号矩阵在MATLAB中,数值矩阵不能直接
6、参与符号运算,必需转化为符号符号矩阵。a=2/3,sqrt(2),0.222;1.4,1/0.23,log(3) a= 0.667 1,4142 0.2220 1.400 4.3478 1.0986 b=sym(a) b = 2/3, sqrt(2), 111/500 7/5, 100/23, 4947709893870346*2(-52)(2)符号矩阵的代数运算。符号矩阵大多数运算与矩阵相同,包括加法、减法,乘法*,除法(/、);矩阵的转置();矩阵的逆inv;幕运算();指数运算exp等。(3)对符号矩阵的微积分运算就是对符号矩阵的每一个元素进行微积分:a=2*x t2;t*sin(x)
7、exp(x)b=cos(x) 1/t;x2 sin(x)创建符号矩阵a,b,进行符号矩阵的相关运算,查看输出结果。对符号矩阵a求积分和微分,查看输出结果。4.符号方程的求解1)代数方程求解。 3x1-2x2+x3=8对方程组:x1+3x2+4x3=2 进行求解。 2x1-x2+3x3=7eq1=sym(3*x1-2*x2+x3=8);eq2=sym(x1+3*x2+4*x3=2eq3=sym(2*x1-x2+3*x3=7x1,x2,x3=solve(eq1,eq2,eq3) 执行后查看输出结果。 37/22, -23/22, 19/22(2)符号微分方程求解。MATLAB提供了dsolve命令
8、,用于对符号常微分方程进行求解。同学们可通过help 帮助来查看函数使用。解方程组:dy/dx z=cos(x) dz/dx +y=1y,z=dsolve(Dy-z=cos(x),Dz+y=1, xsimplify(z)y=cos(x)*c1+sin(x)*c2+1/2*cos(x)*x+1/2*sin(x)+1z=-sin(x)*c1+cos(x)*c2-1/2*sin(x)*x5.符号函数的可视化为了将符号函数的数值计算结果可视化,MATLAB提供了十来个绘图命令,可以很容易的将符号表达式图形化,这些命令的开头都是“ez”。同样,这些命令也可以用于字符串函数的绘图。(1)ezplot和ez
9、plot3命令ezplot(f) 绘制f(x)的函数图,这里f为代表数学表达式的包含单个符号变量x的字符串或符号表达式。X轴的近似范围为-2*pi,2*pi。 y=sym(-1/3*x3+1/3*x4 ezplot(y) %绘制函数y在-2*pi,2*pi中的图形,图1.1 图1.1极坐标下绘制二维曲线 close all syms t ezpolar(1+cos(t)ezplot3(x,y,z,tmin,tmax,animate) %绘制三维曲线说明:x,y,z分别为符号表达式x(t),y(t),z(t); tmin,tmax为t的范围,可省略;animate用来设置动画的的绘制曲线的过程,可省略。 x=sym(sin(t) z=sym(cos(t) ezplot3(x,y,z,0,10*pi,animate(2)ezmesh命令 syms x y ezmesh(x * exp(-x2 + -y2),-2.5,2.5,40,circ
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1