1、1、学会符号变量和符号表达式的定义;2、能够使用符号运算解决一般的微积 分和方程求解问题。3.1 3.1 符号计算基础符号计算基础3.2 3.2 符号导数及应用符号导数及应用3.3 3.3 符号积分符号积分3.4 3.4 级数级数3.5 3.5 代数方程符号求解代数方程符号求解3.6 3.6 常微分方程符号求解常微分方程符号求解3.7 3.7 作业作业3.1 符号计算基础符号计算基础3.1.1 符号对象符号对象1 1、建立符号变量和符号常数、建立符号变量和符号常数(1)sym(1)sym函数:函数:symsym函数用来建立单个符号量;函数用来建立单个符号量;例如:例如:a=sym(a)建立符号
2、变量建立符号变量a,此后,用此后,用户可以在表达式中使用变量户可以在表达式中使用变量a进行各种运算。进行各种运算。例例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%建立数值矩阵建立数值矩阵Bdet(A)%计算符号矩阵计算符号矩阵A的行列式的行列式det(B)%计算数值矩阵计算数值矩阵B的行列式的行列式例
3、例3.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)%计算数值表达式值计算数值表达式值sqrt(k3+sqrt(k2)%计算符号表达式值计算符号表达式值sqrt(r3+sqrt(
4、r2)%计算数值表达式值计算数值表达式值(2)syms(2)syms函数函数 1)调用格式:调用格式:syms var1 var2 varn !注意:!注意:不要在变量名上加字符分界符不要在变量名上加字符分界符(),变量间用,变量间用空格而不要用逗号分隔。空格而不要用逗号分隔。说明:说明:定义符号变量定义符号变量var1,var2,varn;2.2.建立符号表达式建立符号表达式例例3.3用两种方法建立符号表达式。用两种方法建立符号表达式。方法方法1:U=sym(3*x2+5*y+2*x*y+3)%定义符号表定义符号表 达式达式U方法方法2:syms x y;%建立符号变量建立符号变量x、yV=
5、3*x2+5*y+2*x*y+3%定义符号表达式定义符号表达式V2*U-V+3%求符号表达式的值求符号表达式的值例例3.4建立建立x,y的一般二元函数。的一般二元函数。在在MATLABMATLAB命令窗口,输入命令:命令窗口,输入命令:syms x y;f=sym(f(x,y);3 3、默认自变量情况、默认自变量情况原则:原则:MATLAB按照数学常规决定谁是自变量。按照数学常规决定谁是自变量。例例3.5:默认自变量情况:默认自变量情况a*x2+b*x+c%默认自变量为默认自变量为x1/(4+cos(t)%默认自变量为默认自变量为t4*x/y%默认自变量为默认自变量为x2*a+b%默认自变量为
6、默认自变量为b2*I+4*j%默认自变量为默认自变量为x1)除了)除了i和和j之外之外,字母位置最接近字母位置最接近x的小写字母的小写字母;2)式子中没有上述字母)式子中没有上述字母,x被视为默认自变量。被视为默认自变量。3.1.2 基本的符号运算基本的符号运算(1)(1)符号表达式的四则运算符号表达式的四则运算例例3.6 符号表达式的四则运算示例。符号表达式的四则运算示例。syms x y z;f=2*x+x2*x-5*x+x3%符号表达式的结果为最符号表达式的结果为最 简形式简形式f=2*x/(5*x)%符号表达式的结果为最简形式符号表达式的结果为最简形式f=(x+y)*(x-y)%符号表
7、达式的结果不符号表达式的结果不 是是x2-y2 而是而是(x+y)*(x-y)1.1.符号表达式运算符号表达式运算(2)(2)因式分解与展开因式分解与展开1)factor(S):%对对S分解因式,分解因式,S是符号表达式是符号表达式 或符号矩阵或符号矩阵;2)expand(S):%对对S进行展开,进行展开,S是符号表达是符号表达 式或符号矩阵式或符号矩阵;3)collect(S):%对对S合并同类项,合并同类项,S是符号表是符号表 达式或符号矩阵达式或符号矩阵;4)collect(S,v):%对对S按变量按变量v合并同类项,合并同类项,S 是符号表达式或符号矩阵。是符号表达式或符号矩阵。例例3
8、.7 对符号矩阵对符号矩阵A的每个元素分解因式。的每个元素分解因式。syms a b x y;A=2*a2*b3*x2-4*a*b4*x3+10*a*b3*x4,3*x*y-5*x2;4,a3-b3;factor(A)%对对A的每个元素分解因式的每个元素分解因式Ans=?例例3.8 计算表达式计算表达式S的值。的值。syms x y;s=(-7*x2-8*y2)*(-x2+3*y2);expand(s)%对对s展开展开collect(s,x)%对对s按变量按变量x合并同类项合并同类项factor(ans)%对对ans分解因式分解因式(3)(3)表达式化简表达式化简1)simplify(S):应
9、用函数规则对应用函数规则对S S进行化简进行化简;2)simple(S):调用调用MATLAB的其他函数对表的其他函数对表达式进行综合化简,并显示化简过程。达式进行综合化简,并显示化简过程。例例3.9 化简化简syms x y;s=(x2+y2)2+(x2-y2)2;simple(s)%MATLAB自动调用多种函数对自动调用多种函数对 s进行化简,并显示每步结果进行化简,并显示每步结果2.2.符号矩阵运算符号矩阵运算 1)transpose(S):返回返回S矩阵的转置矩阵矩阵的转置矩阵;2)determ(S):返回返回S矩阵的行列式值矩阵的行列式值;3)colspace(S):返回返回S矩阵列
10、空间的基矩阵列空间的基;4)Q,D=eigensys(S):Q返回返回S矩阵的特征矩阵的特征向量,向量,D返回返回S矩阵的特征值。矩阵的特征值。3.1.3 符号表达式中变量的确定符号表达式中变量的确定1)MATLAB1)MATLAB中的符号可以表示符号变量和符号常中的符号可以表示符号变量和符号常数数;2)findsym2)findsym可以帮助用户查找一个符号表达式可以帮助用户查找一个符号表达式中的符号变量。中的符号变量。3)3)用用findsym(S,1)findsym(S,1)查找系统的缺省变量;查找系统的缺省变量;调用格式:调用格式:findsym(S,n)findsym(S,n)MAT
11、LAB按离字符按离字符x最近原则最近原则确定缺省变量。确定缺省变量。3.2 符号导数及其应用符号导数及其应用3.2.1函数的极限函数的极限1)1)函数:函数:limit limit (1)调用格式:调用格式:limit(f,x,a)%若若a0,且对,且对x求极限,可简写为求极限,可简写为limit(f)(2)limit函数的另一种功能是函数的另一种功能是求单边极限求单边极限;调用格式为:调用格式为:limit(f,x,a,right)%右趋近于右趋近于alimit(f,x,a,left)%左趋近于左趋近于a例例3.10 求极限。求极限。limit(1/x,x,0)%求求limit(1/x),x
12、趋于趋于0limit(1/x,x,0,left)%求求limit(1/x),x左趋于左趋于0limit(1/x,x,0,right)%求求limit(1/x),x右趋于右趋于0特例:特例:若求函数若求函数cos(x)的导数,按照导数定义有的导数,按照导数定义有syms t xlimit(cos(x+t)-cos(x)/t,t,0)Ans=?3.2.2 符号函数求导及其应用符号函数求导及其应用1)diff(f):1)diff(f):求求f f对预设独立变量的一次微分值对预设独立变量的一次微分值;2)diff(f,t)2)diff(f,t):求求f f对独立变量对独立变量t t的一次微分值;的一次
13、微分值;3)diff(f,n):3)diff(f,n):求求f f对预设独立变量的对预设独立变量的n n次微分值次微分值;4)diff(f,t,n)4)diff(f,t,n):求求f f对独立变量对独立变量t t的的n n次微分值。次微分值。注意:注意:微分函数微分函数diff也可以作用于符号矩阵,其结果是也可以作用于符号矩阵,其结果是对矩阵的每个元素进行微分运算。对矩阵的每个元素进行微分运算。例例3.11 求函数的导数。求函数的导数。syms a b t x y z;f=sqrt(1+exp(x);diff(f)%预设独立变量的一次微分值预设独立变量的一次微分值f=x*cos(x);diff
14、(f,x,2)%求求f对对x的二阶导数的二阶导数diff(f,x,3)%求求f对对x的三阶导数的三阶导数f=x*exp(y)/y2;diff(f,x)%z对对x的偏导数的偏导数diff(f,y)%z对对y的偏导数的偏导数f1=a*cos(t);f2=b*sin(t);diff(f2)/diff(f1)%按参数方程求导公式求按参数方程求导公式求y对对 x的导数的导数(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/(diff(f1)3%求求y对对x的二阶导数的二阶导数f=x2+y2+z2-a2;zx=-diff(f,x)/diff(f,z)%按隐函数求导公式求按隐
15、函数求导公式求z 对对x的偏导数的偏导数zy=-diff(f,y)/diff(f,z)%按隐函数求导公式求按隐函数求导公式求z 对对y的偏导数的偏导数例例3.12在曲线在曲线y=x3+3x-2上哪一点的切线与直线上哪一点的切线与直线y=4x-1平行。平行。x=sym(x);y=x3+3*x-2;%定义曲线函数定义曲线函数f=diff(y);%对曲线求导数对曲线求导数g=f-4;solve(g)%求方程求方程f-4=0的根,即求的根,即求 曲线何处的导数为曲线何处的导数为43.3 符号积分符号积分3.3.1不定积分不定积分(1)int(f)返回返回f对预设独立变量的积分值;对预设独立变量的积分值
16、;(2)int(f,t)返回返回f对独立变量对独立变量t的积分值;的积分值;(3)int(f,a,b)返回返回f对预设独立变量的积分值,对预设独立变量的积分值,积分区间为积分区间为a,b,a和和b为数值式;为数值式;(4)int(f,t,a,b)返回返回f对独立变量对独立变量t的积分值,的积分值,积分区间为积分区间为a,b,a和和b为数值式;为数值式;(5)int(f,m,n)返回返回f对预设变量的积分值,对预设变量的积分值,积分区间为积分区间为m,n,m和和n为符号式;为符号式;例例3.13 求不定积分求不定积分x=sym(x);f=(3-x2)3;int(f)%求不定积分求不定积分 f=s
17、qrt(x3+x4);int(f)%求不定积分求不定积分 g=simple(ans)%调用调用simple函数对结果化简函数对结果化简3.3.2 符号函数的定积分符号函数的定积分x=sym(x);t=sym(t);int(abs(1-x),1,2)%求定积分求定积分f=1/(1+x2);int(f,-inf,inf)%求定积分求定积分int(4*t*x,x,2,sin(t)%求定积分求定积分f=x3/(x-1)100;I=int(f,2,3)%用符号积分的方法求定积分用符号积分的方法求定积分double(I)%将上述符号结果转换为数值将上述符号结果转换为数值例例3.14 求定积分求定积分例例3
18、.15 求椭球的体积求椭球的体积syms a b c z;f=pi*a*b*(c2-z2)/c2;V=int(f,z,-c,c)V=4/3*pi*a*b*c例例3.16 轴的长度为轴的长度为10米,若该轴的线性密度计米,若该轴的线性密度计算公式是算公式是f(x)=3+0.3x千克千克/米米(其中其中x为距轴的端为距轴的端点距离点距离),求轴的质量。,求轴的质量。(1)符号函数积分符号函数积分syms x;f=3+0.3*x;m=int(f,0,10)(2)数值积分数值积分先建立一个函数文件先建立一个函数文件fx.m:function fx=fx(x)fx=3+0.3*x;再在再在MATLAB命
19、令窗口,输入命令:命令窗口,输入命令:m=quad(fx,0,10,1e-3)3.3.3积分变换积分变换1.傅立叶傅立叶(Fourier)变换变换1)fourier(fx,x,t)求函数求函数f(x)的傅立叶像函数的傅立叶像函数F(t);2)ifourier(Fw,t,x)求傅立叶像函数求傅立叶像函数F(t)的原函数的原函数f(x);例例3.17求函数的傅立叶变换及其逆变换。求函数的傅立叶变换及其逆变换。syms x t;y=abs(x);Ft=fourier(y,x,t)%求求y的傅立叶变换的傅立叶变换fx=ifourier(Ft,t,x)%求求Ft的傅立叶逆变换的傅立叶逆变换2.拉普拉斯拉
20、普拉斯(Laplace)变换变换 1)laplace(fx,x,t)求函数求函数f(x)拉普拉斯像函数拉普拉斯像函数F(t)2)ilaplace(fw,t,x)求拉普拉斯像函数求拉普拉斯像函数F(t)的原函的原函数数f(x)。例例3.18 计算计算y=x2的拉普拉斯变换及其逆变换。的拉普拉斯变换及其逆变换。x=sym(x);y=x2;Ft=laplace(y,x,t)%对函数对函数y进行拉普拉斯变换进行拉普拉斯变换fx=ilaplace(Ft,t,x)%对函数对函数Ft进行拉普拉斯逆进行拉普拉斯逆变换变换3.Z变换变换 1)ztrans(fn,n,z)求求fn的的Z变换像函数变换像函数F(z)
21、2)iztrans(Fz,z,n)求求Fz的的z变换原函数变换原函数f(n)例例3.19求数列求数列 fn=e-n的的Z变换及其逆变换。变换及其逆变换。syms n zfn=exp(-n);Fz=ztrans(fn,n,z)%求求fn的的Z变换变换f=iztrans(Fz,z,n)%求求Fz的逆的逆Z变换变换3.4 级数级数3.4.1 级数的符号求和级数的符号求和symsum(s,v,a,b):%自变量自变量v在在a,b之间取值之间取值 时,对通项时,对通项s求和。求和。例例3.20 分别求级数分别求级数1+1/2+1/3+1/k+和级数和级数1/2+1/(23)+1/(34)+1/(k(k+
22、1)+之和。之和。syms ksymsum(1/k,k,1,inf)%+1/2+1/3+1/k+symsum(1/(k*(k+1),k,1,inf)%1/2+1/(23)+1/(34)+1/(k(k+1)+3.4.2 函数的泰勒级数函数的泰勒级数 taylor(F,v,n):%求求F对自变量对自变量v的的taylor级数展级数展 开至开至n级。级。例例3.21求函数在指定点的泰勒展开式。求函数在指定点的泰勒展开式。x=sym(x);f1=(1+x+x2)/(1-x+x2);f2=sqrt(1-2*x+x3)-(1-3*x+x2)(1/3);taylor(f1,x,5)%求展开到求展开到x的的4
23、次幂时应择次幂时应择n=5taylor(f2,3)例例3.22将多项式表示成将多项式表示成x+1的幂的多项式。的幂的多项式。x=sym(x);p=1+3*x+5*x2-2*x3;f=taylor(p,x,-1,4)例例3.23求求sin(x)的幂次方小于的幂次方小于10次方的展开式。次方的展开式。syms xtaylor(sin(x),10)%求求sin(x)taylor级数展开级数展开Ans=?3.5 代数方程符号求解代数方程符号求解3.5.1线性方程组的符号求解线性方程组的符号求解1)函数函数linsolve;2)调用格式为:调用格式为:linsolve(A,b)例例3.24 求线性方程组
24、求线性方程组AX=b的解。的解。解方程组解方程组(1)的命令如下:的命令如下:A=34,8,4;3,34,3;3,3,8;b=4;3;2;X=linsolve(A,b)%调用调用linsolve函数求函数求(1)的解的解Ab%用另一种方法求用另一种方法求(1)的解的解解方程组解方程组(2)的命令如下:的命令如下:syms a11 a12 a13 a21 a22 a23 a31 a32 a33 b1 b2 b3;A=a11,a12,a13;a21,a22,a23;a31,a32,a33;b=b1;b2;b3;X=linsolve(A,b)%调用调用linsolve函数求函数求(2)的解的解XX=
25、Ab%用左除运算求用左除运算求(2)的解的解3.5.2 非线性方程组的符号求解非线性方程组的符号求解 1)函数函数solve;2)调用格式:调用格式:solve(eqn1,eqn2,eqnN,var1,var2,varN)例例3.25 解方程。解方程。x=solve(1/(x+2)+4*x/(x2-4)=1+2/(x-2),x)%解方程解方程(f=sym(x-(x3-4*x-7)(1/3)=1);x=solve(f)%解方程解方程(2)x=solve(2*sin(3*x-pi/4)=1)%解方程解方程(3)x=solve(x+x*exp(x)-10,x)%解方程解方程(4)。仅标出方程。仅标出
26、方程的左端的左端3.6常微分方程的符号求解常微分方程的符号求解1)函数函数dsolve;2)调用格式:调用格式:dsolve(eqn1,condition,var)说明:说明:该函数求解微分方程该函数求解微分方程eqn1eqn1在初值条件在初值条件conditioncondition下的特解。参数下的特解。参数varvar描述方程中的自变量符号,描述方程中的自变量符号,省略时按缺省原则处理,若没有给出初值条省略时按缺省原则处理,若没有给出初值条件件conditioncondition,则求方程的通解。,则求方程的通解。特别:特别:dsolve在求微分方程组时的调用格式为:在求微分方程组时的调用
27、格式为:dsolve(eqn1,eqn2,eqnN,condition1,conditionN,var1,varN)说明:说明:函数求解微分方程组函数求解微分方程组eqn1eqn1、eqnNeqnN在初值条在初值条件件conditoion1conditoion1、conditionNconditionN下的解,若下的解,若不给出初值条件,则求方程组的通解,不给出初值条件,则求方程组的通解,var1var1、varNvarN给出求解变量。给出求解变量。方法:方法:在函数在函数dsolvedsolve所包含的所包含的equationequation中,用中,用字母字母D D表示求微分,表示求微分,
28、D D的数字表示几重微分,的数字表示几重微分,D D后的变量为因变量。如后的变量为因变量。如DyDy表示一阶微分表示一阶微分项项y;D2yy;D2y表示二阶微分项表示二阶微分项y;y;并且默认并且默认所有这些变量都是对自变量所有这些变量都是对自变量t t求导。求导。例例3.26 求微分方程的通解。求微分方程的通解。dsolve(Dy=5)ans=5*t+C1dsolve(Dy=x,x)%求微分方程求微分方程y=x的通解,的通解,指定指定x为自变量为自变量ans 1/2*x2+C1dsolve(D2y=1+Dy)%求求y=1+y的通解的通解ans=-t+C1+C2*exp(t)dsolve(D2
29、y=1+Dy,y(0)=1,Dy(0)=0)%求求y=1+y的解的解,加初始条件加初始条件ans=-t+exp(t)例例3.27 求微分方程的通解。求微分方程的通解。y=dsolve(Dy-(x2+y2)/x2/2,x)%解解(1)。方程的右端为方程的右端为0时可以不写时可以不写y=dsolve(Dy*x2+2*x*y-exp(x),x)%解解(2)y=dsolve(Dy-x/y/sqrt(1-x2),x)%解解(3)例例3.28 求微分方程的特解。求微分方程的特解。y=dsolve(Dy=2*x*y2,y(0)=1,x)%解解(1)y=dsolve(Dy-x2/(1+y2),y(2)=1,x
30、)%解解(2)*常微分方程组求解常微分方程组求解例例3.29求微分方程组的解。求微分方程组的解。x,y=dsolve(Dx=yx,Dy=2x)%微分微分 方程组的通解方程组的通解X=exp(t)*C1+C2*exp(t)-C2-2-2*tY=C2+2*tx,y=dsolve(Dx=yx,Dy=2x,x(0)=0,y(0)=1)%加初始条件加初始条件X=?Y=?1 1、求极限求极限 和和xxaxaxlim2 2、设、设 ,求,求f f(t)(t)xxtgxln10limtxxxtf2)11()(lim3 3、求积分、求积分dxxx02)1(4 4、求、求y+ytgx=cosx的通解。的通解。5 5、解微分方程组、解微分方程组。1cosydxdzxzdxdy