《MATLAB语言及应用-第六章.ppt》由会员分享,可在线阅读,更多相关《MATLAB语言及应用-第六章.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第6章章 MATLAB符号计算符号计算6.1 符号计算基础符号计算基础6.2 符号导数及其应用符号导数及其应用6.3 符号积分符号积分6.4 级数级数6.5 代数方程的符号求解代数方程的符号求解6.6 常微分方程的符号求解常微分方程的符号求解第第6章章 MATLAB符号计算符号计算6.1 符号计算基础符号计算基础6.2 符号导数及其应用符号导数及其应用6.3 符号积分符号积分6.4 级数级数6.5 代数方程的符号求解代数方程的符号求解6.6 常微分方程的符号求解常微分方程的符号求解6.1 符号计算基础符号计算基础6.1.1 符号对象符号对象1.建立符号变量和符号常数建立符号变量和符号常数(1
2、)sym函数函数 sym函数用来建立单个符号量,例如,函数用来建立单个符号量,例如,a=sym(a)建立符号变量建立符号变量a,此后,用户可以在表达式中使用,此后,用户可以在表达式中使用变量变量a进行各种运算。进行各种运算。第第6章章 MATLAB符号计算符号计算例考察符号变量和数值变量的差别。例考察符号变量和数值变量的差别。在在 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%建立符号矩阵建立符
3、号矩阵AB=w,x;y,z%建立数值矩阵建立数值矩阵Bdet(A)%计算符号矩阵计算符号矩阵A的行列式的行列式det(B)%计算数值矩阵计算数值矩阵B的行列式的行列式第第6章章 MATLAB符号计算符号计算(2)syms函数函数syms函数的一般调用格式为:函数的一般调用格式为:syms var1 var2 varn 函数定义符号变量函数定义符号变量var1,var2,varn等。用这种格等。用这种格式定义符号变量时不要在变量名上加字符分界符式定义符号变量时不要在变量名上加字符分界符(),变量间用空格而不要用逗号分隔。,变量间用空格而不要用逗号分隔。第第6章章 MATLAB符号计算符号计算2.
4、建立符号表达式建立符号表达式符号表达式可以采用单引号或符号表达式可以采用单引号或sym/syms函数定义函数定义例用两种方法建立符号表达式。例用两种方法建立符号表达式。在在MATLAB窗口,输入命令:窗口,输入命令:U=sym(3*x2+5*y+2*x*y+6)%定义符号表达式定义符号表达式Usyms x y;%建立符号变量建立符号变量x、yV=3*x2+5*y+2*x*y+6%定义符号表达式定义符号表达式V2*U-V+6%求符号表达式的值求符号表达式的值第第6章章 MATLAB符号计算符号计算例计算例计算3阶范得蒙矩阵行列式的值。设阶范得蒙矩阵行列式的值。设A是一个由符号是一个由符号变量变量
5、a,b,c确定的范得蒙矩阵。确定的范得蒙矩阵。命令如下:命令如下:syms a b c;U=a,b,c;A=1,1,1;U;U.2%建立范得蒙符号矩阵建立范得蒙符号矩阵det(A)%计算计算A的行列式值的行列式值第第6章章 MATLAB符号计算符号计算例建立例建立x,y的一般二元函数。的一般二元函数。在在MATLAB命令窗口,输入命令:命令窗口,输入命令:syms x y;f=sym(f(x,y)第第6章章 MATLAB符号计算符号计算6.1.2 基本的符号运算基本的符号运算1.符号表达式运算符号表达式运算(1)符号表达式的四则运算符号表达式的四则运算例符号表达式的四则运算示例。例符号表达式的
6、四则运算示例。在在 MATLAB命令窗口,输入命令:命令窗口,输入命令:syms x y z;f=2*x+x2*x-5*x+x3%结果为最简形式结果为最简形式f=2*x/(5*x)%符号表达式的结果为最简形式符号表达式的结果为最简形式f=(x+y)*(x-y)%结果不是结果不是x2-y2,而是,而是(x+y)*(x-y)第第6章章 MATLAB符号计算符号计算(2)因式分解与展开因式分解与展开factor(S)对对S分解因式分解因式,S是符号表达式或符号矩阵。是符号表达式或符号矩阵。expand(S)对对S进行展开进行展开,S是符号表达式或符号矩阵。是符号表达式或符号矩阵。collect(S)
7、对对S合并同类项合并同类项,S是符号表达式或符号矩阵。是符号表达式或符号矩阵。collect(S,v)对对S按变量按变量v合并同类项,合并同类项,S是符号表达式或是符号表达式或符号矩阵。符号矩阵。第第6章章 MATLAB符号计算符号计算例例6.6 对符号矩阵对符号矩阵A的每个元素分解因式。的每个元素分解因式。命令如下:命令如下:syms a b x y;A=2*a2*b3*x2-4*a*b4*x3+10*a*b6*x4,3*x*y-5*x2;4,a3-b3;factor(A)%对对A的每个元素分解因式的每个元素分解因式第第6章章 MATLAB符号计算符号计算例例6.7 计算表达式计算表达式S的
8、值。的值。命令如下:命令如下:syms x y;s=(-7*x2-8*y2)*(-x2+3*y2);expand(s)%对对s展开展开collect(s,x)%对对s按变量按变量x合并同类项合并同类项(无同类项无同类项)factor(ans)%对对ans分解因式分解因式第第6章章 MATLAB符号计算符号计算练习:练习:1 展开符号表达式展开符号表达式 f1=(x+1)7和和 f2=cos(x+y)。expand(S)2 展开符号表达式展开符号表达式(x+3)(x+t)(y-1)和和(x-2)2(x+1)-x2。3 因式分解符号表达式因式分解符号表达式 x5-y5。factor(S)4 对符号
9、表达式对符号表达式(x-ex)(x+y)进行同类项合并。进行同类项合并。collect(S)5 按照不同方式合并表达式按照不同方式合并表达式(x2-aey)(axy+e2yx)。第第6章章 MATLAB符号计算符号计算(3)表达式化简表达式化简MATLAB提供的对符号表达式化简的函数有:提供的对符号表达式化简的函数有:simplify(S)应用函数规则对应用函数规则对S进行化简,它可以完成进行化简,它可以完成对指数、对数、三角函数等各种数学表达式的化简。对指数、对数、三角函数等各种数学表达式的化简。simple(S)调用调用MATLAB的其他函数对表达式进行综的其他函数对表达式进行综合化简,并
10、显示化简过程,返回表达式的最简形式。合化简,并显示化简过程,返回表达式的最简形式。第第6章章 MATLAB符号计算符号计算例化简例化简命令如下:命令如下:syms x y;s=(x2+y2)2+(x2-y2)2;simple(s)%MATLAB自动调用多种函数对自动调用多种函数对s进行化进行化简,并显示每步结果简,并显示每步结果练习:简化符号表达式练习:简化符号表达式sin2x-cos3x+sin2x。第第6章章 MATLAB符号计算符号计算2.符号矩阵运算符号矩阵运算transpose(S)返回返回S矩阵的转置矩阵。矩阵的转置矩阵。determ(S)返回返回S矩阵的行列式值。矩阵的行列式值。
11、colspace(S)返回返回S矩阵列空间的基。矩阵列空间的基。Q,D=eigensys(S)Q返回返回S矩阵的特征向量,矩阵的特征向量,D返回返回S矩阵的特征值。矩阵的特征值。第第6章章 MATLAB符号计算符号计算6.1.3 符号表达式中变量的确定符号表达式中变量的确定MATLAB中的符号可以表示符号变量和符号常数。中的符号可以表示符号变量和符号常数。findsym可以帮助用户查找一个符号表达式中的符可以帮助用户查找一个符号表达式中的符号变量。该函数的调用格式为:号变量。该函数的调用格式为:findsym(S,n)函数返回符号表达式函数返回符号表达式S中的中的n个符号变量,若没有指定个符号
12、变量,若没有指定n,则返回,则返回S中的全部符号变量。中的全部符号变量。在求函数的极限、导数和积分时,如果用户没有明确在求函数的极限、导数和积分时,如果用户没有明确指定自变量,指定自变量,MATLAB将按缺省原则确定主变量并将按缺省原则确定主变量并对其进行相应微积分运算。可用对其进行相应微积分运算。可用findsym(S,1)查找系查找系统的缺省变量,事实上,统的缺省变量,事实上,MATLAB按离字符按离字符x最最近原则确定缺省变量。近原则确定缺省变量。第第6章章 MATLAB符号计算符号计算第第6章章 MATLAB符号计算符号计算6.1 符号计算基础符号计算基础6.2 符号导数及其应用符号导
13、数及其应用6.3 符号积分符号积分6.4 级数级数6.5 代数方程的符号求解代数方程的符号求解6.6 常微分方程的符号求解常微分方程的符号求解6.2 符号导数及其应用符号导数及其应用函数的极限函数的极限limit函数的调用格式为:函数的调用格式为:limit(f,x,a)计算符号表达式计算符号表达式f在在xa条件下的极限条件下的极限limit(f,a)计算计算f在默认自变量趋于在默认自变量趋于a条件下的极限条件下的极限limit(f)计算计算f在默认自变量趋于在默认自变量趋于0条件下的极限条件下的极限limit函数的另一种功能是求单边极限,其调用格式为:函数的另一种功能是求单边极限,其调用格式
14、为:limit(f,x,a,right)或或 limit(f,x,a,left)第第6章章 MATLAB符号计算符号计算例求极限。例求极限。在在MATLAB命令窗口,输入命令:命令窗口,输入命令:syms a m x;f=(x(1/m)-a(1/m)/(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)-sqrt(a)-sqrt(x-a)/sqrt(x
15、*x-a*a);limit(f,x,a,right)%求极限求极限(4)第第6章章 MATLAB符号计算符号计算6.2.2 符号函数求导及其应用符号函数求导及其应用MATLAB中的求导的函数为:中的求导的函数为:diff(f,x,n)diff函数求函数函数求函数f对变量对变量x的的n阶导数。参数阶导数。参数x的用法同的用法同求极限函数求极限函数limit,可以缺省,缺省值与,可以缺省,缺省值与limit相同,相同,n的缺省值是的缺省值是1。第第6章章 MATLAB符号计算符号计算例求函数的导数。例求函数的导数。命令如下:命令如下:syms a b t x y z;f=sqrt(1+exp(x)
16、;diff(f)%求求(1)。未指定求导变量和阶数,按缺省规则处理。未指定求导变量和阶数,按缺省规则处理f=x*cos(x);diff(f,x,2)%求求(2)。求。求f对对x的二阶导数的二阶导数diff(f,x,3)%求求(2)。求。求f对对x的三阶导数的三阶导数第第6章章 MATLAB符号计算符号计算f1=a*cos(t);f2=b*sin(t);diff(f2)/diff(f1)%求求(3)。按参数方程求导公式求。按参数方程求导公式求y对对x的导的导数数(diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/(diff(f1)3%求求(3)。求。求y对对x的二阶
17、导数的二阶导数f=x*exp(y)/y2;diff(f,x)%求求(4)。z对对x的偏导数的偏导数diff(f,y)%求求(4)。z对对y的偏导数的偏导数第第6章章 MATLAB符号计算符号计算f=x2+y2+z2-a2;zx=-diff(f,x)/diff(f,z)%求求(5)。按隐函数求导公式求。按隐函数求导公式求z对对x的偏导数的偏导数zy=-diff(f,y)/diff(f,z)%求求(5)。按隐函数求导公式求。按隐函数求导公式求z对对y的偏导数的偏导数第第6章章 MATLAB符号计算符号计算例在曲线例在曲线y=x3+3x-2上哪一点的切线与直线上哪一点的切线与直线y=4x-1平行。平
18、行。命令如下:命令如下:x=sym(x);y=x3+3*x-2;%定义曲线函数定义曲线函数f=diff(y);%对曲线求导数对曲线求导数g=f-4;solve(g)%求方程求方程f-4=0的根,即求曲线何处的导数为的根,即求曲线何处的导数为4第第6章章 MATLAB符号计算符号计算练习:试对表达式练习:试对表达式f(x,y)=x3-5x2y+y2求一阶偏导和二阶求一阶偏导和二阶偏导。偏导。第第6章章 MATLAB符号计算符号计算第第6章章 MATLAB符号计算符号计算6.1 符号计算基础符号计算基础6.2 符号导数及其应用符号导数及其应用6.3 符号积分符号积分6.4 级数级数6.5 代数方程
19、的符号求解代数方程的符号求解6.6 常微分方程的符号求解常微分方程的符号求解6.3 符号积分符号积分不定积分不定积分在在MATLAB中,求不定积分的函数是中,求不定积分的函数是int,其调用格,其调用格式为:式为:int(f,x)int函数求函数函数求函数f对变量对变量x的不定积分。参数的不定积分。参数x可以缺省,可以缺省,缺省原则与缺省原则与diff函数相同。函数相同。第第6章章 MATLAB符号计算符号计算例求不定积分。例求不定积分。命令如下:命令如下:x=sym(x);f=(3-x2)3;int(f)%求不定积分求不定积分(1)f=sqrt(x3+x4);int(f)%求不定积分求不定积
20、分(2)g=simple(ans)%调用调用simple函数对结果化简函数对结果化简练习练习:计算积分:计算积分第第6章章 MATLAB符号计算符号计算6.3.2 符号函数的定积分符号函数的定积分定积分在实际工作中有广泛的应用。在定积分在实际工作中有广泛的应用。在MATLAB中,中,定积分的计算使用函数:定积分的计算使用函数:int(f,x,a,b)第第6章章 MATLAB符号计算符号计算例求定积分。例求定积分。命令如下:命令如下:x=sym(x);t=sym(t);int(abs(1-x),1,2)%求定积分求定积分(1)f=1/(1+x2);int(f,-inf,inf)%求定积分求定积分
21、(2)int(4*t*x,x,2,sin(t)%求定积分求定积分(3)f=x3/(x-1)100;I=int(f,2,3)%用符号积分的方法求定积分用符号积分的方法求定积分(4)double(I)%将上述符号结果转换为数值将上述符号结果转换为数值第第6章章 MATLAB符号计算符号计算例求椭球的体积。例求椭球的体积。命令如下:命令如下: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第第6章章 MATLAB符号计算符号计算6.3.3 积分变换积分变换1.傅立叶傅立叶(Fourier)变换变换在在MATLAB中,进行傅立
22、叶变换的函数是:中,进行傅立叶变换的函数是:fourier(fx,x,t)求函数求函数f(x)的傅立叶像函数的傅立叶像函数F(t)。ifourier(Fw,t,x)求傅立叶像函数求傅立叶像函数F(t)的原函数的原函数f(x)。第第6章章 MATLAB符号计算符号计算例求函数的傅立叶变换及其逆变换。例求函数的傅立叶变换及其逆变换。命令如下:命令如下:syms x t;y=abs(x);Ft=fourier(y,x,t)%求求y的傅立叶变换的傅立叶变换fx=ifourier(Ft,t,x)%求求Ft的傅立叶逆变换的傅立叶逆变换第第6章章 MATLAB符号计算符号计算2.拉普拉斯拉普拉斯(Lapla
23、ce)变换变换在在MATLAB中,进行拉普拉斯变换的函数是:中,进行拉普拉斯变换的函数是:laplace(fx,x,t)求函数求函数f(x)的拉普拉斯像函数的拉普拉斯像函数F(t)。ilaplace(Fw,t,x)求拉普拉斯像函数求拉普拉斯像函数F(t)的原函数的原函数f(x)。第第6章章 MATLAB符号计算符号计算例计算例计算y=x2的拉普拉斯变换及其逆变换的拉普拉斯变换及其逆变换.命令如下:命令如下:x=sym(x);y=x2;Ft=laplace(y,x,t)%对函数对函数y进行拉普拉斯变换进行拉普拉斯变换fx=ilaplace(Ft,t,x)%对函数对函数Ft进行拉普拉斯逆变换进行拉
24、普拉斯逆变换第第6章章 MATLAB符号计算符号计算3.Z变换变换对数列对数列f(n)进行进行z变换的变换的MATLAB函数是:函数是:ztrans(fn,n,z)求求fn的的Z变换像函数变换像函数F(z)iztrans(Fz,z,n)求求Fz的的z变换原函数变换原函数f(n)第第6章章 MATLAB符号计算符号计算例求数列例求数列 fn=e-n的的Z变换及其逆变换。变换及其逆变换。命令如下:命令如下:syms n zfn=exp(-n);Fz=ztrans(fn,n,z)%求求fn的的Z变换变换f=iztrans(Fz,z,n)%求求Fz的逆的逆Z变换变换第第6章章 MATLAB符号计算符号
25、计算第第6章章 MATLAB符号计算符号计算6.1 符号计算基础符号计算基础6.2 符号导数及其应用符号导数及其应用6.3 符号积分符号积分6.4 级数级数6.5 代数方程的符号求解代数方程的符号求解6.6 常微分方程的符号求解常微分方程的符号求解6.4 级数级数6.4.1 级数的符号求和级数的符号求和级数符号求和函数级数符号求和函数symsum,调用格式为:,调用格式为:symsum(a,n,n0,nn)第第6章章 MATLAB符号计算符号计算例求级数之和。命令如下:例求级数之和。命令如下:n=sym(n);s1=symsum(1/n2,n,1,inf)%求求s1s2=symsum(-1)(
26、n+1)/n,1,inf)%求求s2。未指定求和。未指定求和变量,缺省为变量,缺省为ns3=symsum(n*xn,n,1,inf)%求求s3。此处的求和变量。此处的求和变量n不能省略。不能省略。s4=symsum(n2,1,100)%求求s4。计算有限级数的和。计算有限级数的和第第6章章 MATLAB符号计算符号计算6.4.2 函数的泰勒级数函数的泰勒级数MATLAB中提供了将函数展开为幂级数的函数中提供了将函数展开为幂级数的函数taylor,其调用格式为:,其调用格式为:taylor(f,v,n,a)第第6章章 MATLAB符号计算符号计算例将多项式表示成例将多项式表示成x+1的幂的多项式
27、。的幂的多项式。命令如下:命令如下:x=sym(x);p=1+3*x+5*x2-2*x3;f=taylor(p,x,-1,4)第第6章章 MATLAB符号计算符号计算第第6章章 MATLAB符号计算符号计算6.1 符号计算基础符号计算基础6.2 符号导数及其应用符号导数及其应用6.3 符号积分符号积分6.4 级数级数6.5 代数方程的符号求解代数方程的符号求解6.6 常微分方程的符号求解常微分方程的符号求解代数方程的符号求解代数方程的符号求解线性方程组的符号求解线性方程组的符号求解MATLAB中提供了一个求解线性代数方程组的函数中提供了一个求解线性代数方程组的函数linsolve,其调用格式为
28、:,其调用格式为:linsolve(A,b)第第6章章 MATLAB符号计算符号计算6.5.2 非线性方程组的符号求解非线性方程组的符号求解求解非线性方程组的函数是求解非线性方程组的函数是solve,调用格式为:,调用格式为:solve(eqn1,eqn2,eqnN,var1,var2,varN)第第6章章 MATLAB符号计算符号计算例例6.28 解方程。解方程。命令如下:命令如下:x=solve(1/(x+2)+4*x/(x2-4)=1+2/(x-2),x)%解方程解方程(1)f=sym(x-(x3-4*x-7)(1/3)=1);x=solve(f)%解方程解方程(2)x=solve(2*
29、sin(3*x-pi/4)=1)%解方程解方程(3)x=solve(x+x*exp(x)-10,x)%解方程解方程(4)。仅。仅标出方程的左端标出方程的左端第第6章章 MATLAB符号计算符号计算第第6章章 MATLAB符号计算符号计算6.1 符号计算基础符号计算基础6.2 符号导数及其应用符号导数及其应用6.3 符号积分符号积分6.4 级数级数6.5 代数方程的符号求解代数方程的符号求解6.6 常微分方程的符号求解常微分方程的符号求解常微分方程的符号求解常微分方程的符号求解MATLAB的符号运算工具箱中提供了功能强大的求解的符号运算工具箱中提供了功能强大的求解常微分方程的函数常微分方程的函数
30、dsolve。该函数的调用格式为:。该函数的调用格式为:dsolve(eqn1,condition,var)该函数求解微分方程该函数求解微分方程eqn1在初值条件在初值条件condition下的特解。下的特解。参数参数var描述方程中的自变量符号,省略时按缺省原描述方程中的自变量符号,省略时按缺省原则处理,若没有给出初值条件则处理,若没有给出初值条件condition,则求方程的,则求方程的通解。通解。第第6章章 MATLAB符号计算符号计算dsolve在求微分方程组时的调用格式为:在求微分方程组时的调用格式为:dsolve(eqn1,eqn2,eqnN,condition1,conditio
31、nN,var1,varN)函数求解微分方程组函数求解微分方程组eqn1、eqnN在初值条件在初值条件conditoion1、conditionN下的解,若不给出初值下的解,若不给出初值条件,则求方程组的通解,条件,则求方程组的通解,var1、varN给出求解给出求解变量。变量。第第6章章 MATLAB符号计算符号计算例例6.30 求微分方程的通解。求微分方程的通解。命令如下:命令如下:y=dsolve(Dy-(x2+y2)/x2/2,x)%解解(1)。方程。方程的右端为的右端为0时可以不写时可以不写y=dsolve(Dy*x2+2*x*y-exp(x),x)%解解(2)y=dsolve(Dy-
32、x/y/sqrt(1-x2),x)%解解(3)第第6章章 MATLAB符号计算符号计算例例6.31 求微分方程的特解。求微分方程的特解。命令如下:命令如下:y=dsolve(Dy=2*x*y2,y(0)=1,x)%解解(1)y=dsolve(Dy-x2/(1+y2),y(2)=1,x)%解解(2)第第6章章 MATLAB符号计算符号计算例例6.32 求微分方程组的解。求微分方程组的解。命令如下:命令如下:x,y=dsolve(Dx=4*x-2*y,Dy=2*x-y,t)%解方解方程组程组(1)x,y=dsolve(D2x-y,D2y+x,t)%解方程组解方程组(2)第第6章章 MATLAB符号计算符号计算