




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 前面我们介绍的都是数值计算,它的操作对象都有前面我们介绍的都是数值计算,它的操作对象都有确定的值,如果未对某个变量赋值而执行命令,确定的值,如果未对某个变量赋值而执行命令,MATLAB则会给出错误信息。例:则会给出错误信息。例: clear %清除所有变量清除所有变量 A=x*3 %x未赋值未赋值则会出现则会出现?Undefined function or Variable x如果看成符号运算,则不会出现错误信息。如果看成符号运算,则不会出现错误信息。 符号计算定义在符号变量的基础上,符号表达式计算前必须定义符号变量,否则出错。 符号计算是精确计算。符号运算不需要进行数值运算,不会出现截断误
2、差,因此符号运算是非常准确的,可以得出任意精度的数值解。 与数值计算的速度相比,符号运算的计算速度慢。 符号计算的运算符和基本数学函数与数值计算中的运算符和基本数学函数几乎完全相同。符号计算的特点符号计算的特点 符号运算可以实现微积分运算、表达式的化简以及求解代数方程和微分方程等; MATLAB具有专门的符号数学工具箱(Symbolic Math Toolbox),将符号运算结合到MATLAB的数值运算环境。MATLAB符号计算符号计算1.1 1.1 建立符号对象建立符号对象1建立符号变量建立符号变量MATLAB提供了两个建立符号对象的函数:提供了两个建立符号对象的函数:sym和和syms,两
3、个函数的用法不同。,两个函数的用法不同。(1) sym函数函数sym函数用来建立函数用来建立单个单个符号量,一般调用格式为:符号量,一般调用格式为:符号量名符号量名=sym(符号字符串符号字符串)该函数可以建立一个符号量,符号字符串可以是常该函数可以建立一个符号量,符号字符串可以是常量、变量、函数或表达式。量、变量、函数或表达式。一、一、 符号对象符号对象例如例如sym x;f=sin(x)+cos(x) 或者或者f=sym(sin(x)+cos(x) (2) syms函数函数函数函数sym一次只能定义一个符号变量,使用不方便。一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数
4、提供了另一个函数syms,一次可以定,一次可以定义多个符号变量。义多个符号变量。syms函数的一般调用格式为:函数的一般调用格式为:syms 符号变量名符号变量名1 符号变量名符号变量名2 符号变量名符号变量名n用这种格式定义符号变量时不要在变量名上加字符用这种格式定义符号变量时不要在变量名上加字符串分界符串分界符(),变量间用空格而不要用逗号分隔变量间用空格而不要用逗号分隔。2建立符号表达式建立符号表达式 含有符号对象的表达式称为符号表达式。符号含有符号对象的表达式称为符号表达式。符号表达式包括符号函数和符号方程。两者的区别表达式包括符号函数和符号方程。两者的区别在于前者不包括等号而后者必须
5、带等号,但它在于前者不包括等号而后者必须带等号,但它们的创建方式是相同的。建立符号表达式有以们的创建方式是相同的。建立符号表达式有以下下3种方法:种方法:(1)利用单引号来生成符号表达式。利用单引号来生成符号表达式。(2)用用sym函数建立符号表达式。函数建立符号表达式。(3) 使用已经定义的符号变量组成符号表达式。使用已经定义的符号变量组成符号表达式。 例1 创建符号表达式 程序1: f1=sym(a*x2+b*x+c) 或f1=a*x2+b*x+c 返回 f1 = a*x2+b*x+c 注:上面的语句只创建符号表达式,没有创建符号变量。 程序2: syms a b c x f1=a*x2+
6、b*x+c 返回 f1 = a*x2+b*x+c 两种创建方式的区别? 例2 创建符号矩阵 程序1: syms a b c d A=a b ;c d 运行结果: A = a, b c, d程序2:A=sym(a b ;c d)A =a b ;c d程序3:A=a b ;c d1.2 1.2 符号表达式运算符号表达式运算符号运算符符号运算符u基本运算符基本运算符运算符运算符“+”、“-”、“*”、“/”、“”、“”分别实现符号分别实现符号矩阵的加、减、乘、左除、右除、求幂运算。矩阵的加、减、乘、左除、右除、求幂运算。运算符运算符“.*”、“./”、“.”、“.”分别实现符号数组的乘、分别实现符号
7、数组的乘、左除、右除、求幂运算。左除、右除、求幂运算。运算符运算符“”“”、“.”分别实现符号矩阵的共轭转置非共轭分别实现符号矩阵的共轭转置非共轭转置。转置。u关系运算符关系运算符符号对象的比较中,没有符号对象的比较中,没有“大于大于”“”“小于小于”等概念,只有是等概念,只有是否等于的概念。否等于的概念。运算符运算符“=”、“=”比较比较“相等相等”、“不等不等”。当为真时,。当为真时,结果为结果为1;为假时,结果为;为假时,结果为0. 例3 程序: A=sym(a b ;c d); B=sym(sin(a) b ;c d); %B=sin(a) b;c d C=A+B D=A*B运行结果
8、C = a+sin(a), 2*b 2*c, 2*d D = a*sin(a)+b*c, a*b+b*d c*sin(a)+d*c, b*c+d21符号表达式的四则运算符号表达式的四则运算符号表达式的加、减、乘、除运算可分别由函数符号表达式的加、减、乘、除运算可分别由函数symadd、symsub、symmul和和symdiv来实现,幂运算可以由来实现,幂运算可以由sympow来实现。来实现。 例例 程序程序2:A=a b ;c d; %A=sym(a b ;c d); %B=sym(sin(a) b ;c d); B=sin(a) b;c d; %C=A+B C=symadd(A,B) %D
9、=A*B D=symmul(A,B)2符号表达式的提取分子和分母运算符号表达式的提取分子和分母运算若符号表达式是一个有理分式或可以展开为有理分式,可利用若符号表达式是一个有理分式或可以展开为有理分式,可利用numden函数来提取符号表达式中的分子或分母。其一般调用格式为:函数来提取符号表达式中的分子或分母。其一般调用格式为:n,d=numden(s)该函数提取符号表达式该函数提取符号表达式s的分子和分母,分别将它们存放在的分子和分母,分别将它们存放在n与与d中。中。例例 程序:程序: fh=sym(a/b);n,m=numden(fh) 运行结果运行结果n = a m = b 3符号表达式的因
10、式分解与展开符号表达式的因式分解与展开MATLAB提供了符号表达式的因式分解与展开的函数,函提供了符号表达式的因式分解与展开的函数,函数的调用格式为:数的调用格式为:factor(s):对符号表达式:对符号表达式s分解因式。分解因式。expand(s):对符号表达式:对符号表达式s进行展开。进行展开。collect(s):对符号表达式:对符号表达式s合并同类项。合并同类项。collect(s,v):对符号表达式:对符号表达式s按变量按变量v合并同类项。合并同类项。4符号表达式的化简符号表达式的化简MATLAB提供的对符号表达式化简的函数有:提供的对符号表达式化简的函数有:simplify(s)
11、:应用函数规则对:应用函数规则对s进行化简。进行化简。simple(s):调用:调用MATLAB的其他函数对表达式进行综合化的其他函数对表达式进行综合化简,并显示化简过程。简,并显示化简过程。程序:s=sym(cos(x)2-sin(x)2)f=factor(s)s = cos(x)2-sin(x)2 f = (cos(x)-sin(x)*(cos(x)+sin(x) s1 = 2*cos(x)2-1s2 = cos(2*x) 5符号表达式与数值表达式之间的转换符号表达式与数值表达式之间的转换利用函数利用函数sym可以将数值表达式变换成它的符号表达式。可以将数值表达式变换成它的符号表达式。函数
12、函数numeric或或eval可以将符号表达式变换成数值表达式。可以将符号表达式变换成数值表达式。例例4: 将符号变量与数值变量进行转换。将符号变量与数值变量进行转换。 程序:程序:a1=sym(2*sqrt(5)+pi)b1=double(a1)a2=vpa(a1,32)b2=numeric(a2) 运行结果运行结果a1 = 2*sqrt(5)+pi b1 = 7.6137 a2 = 7.6137286085893726312809907207421 b2 = 7.61371.3 1.3 符号矩阵符号矩阵 符号矩阵也是一种符号表达式,所以前面介绍的符号矩阵也是一种符号表达式,所以前面介绍的符
13、号表达式运算都可以在矩阵意义下进行。但应符号表达式运算都可以在矩阵意义下进行。但应注意这些函数作用于符号矩阵时,是分别作用于注意这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。矩阵的每一个元素。 由于符号矩阵是一个矩阵,所以符号矩阵还能进由于符号矩阵是一个矩阵,所以符号矩阵还能进行有关矩阵的运算。行有关矩阵的运算。MATLAB还有一些专用于符还有一些专用于符号矩阵的函数,这些函数作用于单个的数据无意号矩阵的函数,这些函数作用于单个的数据无意义。例如义。例如transpose(s):返回:返回s矩阵的转置矩阵。矩阵的转置矩阵。determ(s):返回:返回s矩阵的行列式值。矩阵的行列式值
14、。其实,曾介绍过的许多应用于数值矩阵的函数,如其实,曾介绍过的许多应用于数值矩阵的函数,如diag、triu、tril、inv、det、rank、eig等,也可等,也可直接应用于符号矩阵。直接应用于符号矩阵。例例5 创建符号矩阵 ,并求逆、对角线、行列式和秩。 qpnm程序如下:M=sym(m,n;p,q);%创建符号矩阵invM=inv(M)diagM=diag(M)detM=det(M)rankM=rank(M)返回结果invM = -q/(-m*q+n*p), n/(-m*q+n*p) p/(-m*q+n*p), -m/(-m*q+n*p) diagM = m q detM = m*q-
15、n*p rankM = 2二、二、 符号微积分符号微积分2.1 2.1 符号极限符号极限limit函数的调用格式为:函数的调用格式为:(1) limit(f,x,a):求符号函数:求符号函数f(x)的极限值。即计算的极限值。即计算当变量当变量x趋近于常数趋近于常数a时,时,f(x)函数的极限值。函数的极限值。(2) limit(f,a):求符号函数:求符号函数f(x)的极限值。由于没有的极限值。由于没有指定符号函数指定符号函数f(x)的自变量,则使用该格式时,的自变量,则使用该格式时,符号函数符号函数f(x)的变量为函数的变量为函数findsym(f)确定的默认确定的默认自变量,即变量自变量,
16、即变量x趋近于趋近于a。(3) limit(f):求符号函数:求符号函数f(x)的极限值。符号函数的极限值。符号函数f(x)的变量为函数的变量为函数findsym(f)确定的默认变量;没有确定的默认变量;没有指定变量的目标值时,指定变量的目标值时,系统默认变量趋近于系统默认变量趋近于0,即即a=0的情况。的情况。(4) limit(f,x,a,right):求符号函数:求符号函数f的极限值。的极限值。right表示变量表示变量x从右边趋近于从右边趋近于a。(5) limit(f,x,a,left):求符号函数:求符号函数f的极限值。的极限值。left表示变量表示变量x从左边趋近于从左边趋近于a
17、。例例6 求下列极限。求下列极限。极限极限1:syms a m x;f=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/(x+a);limit(f,x,a)ans =(1/2*a*exp(sin(a)+1/2*a-exp(tan(a)+1)/a极限极限2:syms x t;limit(1+2*t/x)(3*x),x,inf)ans =exp(6*t)极限极限3:syms x;f=x*(sqrt(x2+1)-x);limit(f,x,inf,left)ans =1/2极限极限4:syms x;f=(sqrt(x)-sqrt(2)-sqrt(x-2)/sqrt(x*x-4);
18、limit(f,x,2,right)ans =-1/22.2 2.2 符号导数符号导数diff函数用于对符号表达式求导数。该函数的一般调用格函数用于对符号表达式求导数。该函数的一般调用格式为:式为:diff(s):没有指定变量和导数阶数,则系统按:没有指定变量和导数阶数,则系统按findsym函函数指示的默认变量对符号表达式数指示的默认变量对符号表达式s求一阶导数。求一阶导数。diff(s,v):以:以v为自变量,对符号表达式为自变量,对符号表达式s求一阶导数。求一阶导数。diff(s,n):按:按findsym函数指示的默认变量对符号表达式函数指示的默认变量对符号表达式s求求n阶导数,阶导数
19、,n为正整数。为正整数。diff(s,v,n):以:以v为自变量,对符号表达式为自变量,对符号表达式s求求n阶导数。阶导数。例例7 求参数方程求参数方程 所确定的函数的导数。所确定的函数的导数。 )cos1()sin(tayttaxsyms a t;dx_dt=diff(a*(t-sin(t);dy_dt=diff(a*(1-cos(t);dy_dx=dy_dt/dx_dt返回结果:dy_dx = sin(t)/(1-cos(t) 2.3 2.3 符号积分符号积分符号积分由函数符号积分由函数int来实现。该函数的一般调用格式为:来实现。该函数的一般调用格式为:int(s):没有指定积分变量和积
20、分阶数时,系统按:没有指定积分变量和积分阶数时,系统按findsym函函数指示的默认变量对被积函数或符号表达式数指示的默认变量对被积函数或符号表达式s求不定积分。求不定积分。int(s,v):以:以v为自变量,对被积函数或符号表达式为自变量,对被积函数或符号表达式s求不定积求不定积分。分。int(s,v,a,b):求定积分运算。:求定积分运算。a,b分别表示定积分的下限和上分别表示定积分的下限和上限。该函数求被积函数在区间限。该函数求被积函数在区间a,b上的定积分。上的定积分。a和和b可可以是两个具体的数,也可以是一个符号表达式,还可以以是两个具体的数,也可以是一个符号表达式,还可以是无穷是无
21、穷(inf)。当函数。当函数f关于变量关于变量x在闭区间在闭区间a,b上可积时,上可积时,函数返回一个定积分结果。当函数返回一个定积分结果。当a,b中有一个是中有一个是inf时,函数时,函数返回一个广义积分。当返回一个广义积分。当a,b中有一个符号表达式时,函数中有一个符号表达式时,函数返回一个符号函数。返回一个符号函数。例例8 求下列积分。求下列积分。 dxedxxfxxxfx220221)2(;)(),6sin()6cos()()1( syms x;f=cos(x-pi/6)*sin(x+pi/6);s=int(f,x,0,pi*2)s1=double(s)返回结果:s = 1/2*3(1
22、/2)*pi s1 = 2.7207返回结果:ans = 1syms x;i1=int(1/(2*pi)(1/2)*exp(-x2/2),-inf,inf);double(i1)2.4 2.4 积分变换积分变换常见的积分变换有傅立叶变换、拉普拉斯变换和常见的积分变换有傅立叶变换、拉普拉斯变换和Z变换。变换。1傅立叶傅立叶(Fourier)变换变换在在MATLAB中,进行傅立叶变换的函数是:中,进行傅立叶变换的函数是:fourier(f,x,t):求函数:求函数f(x)的傅立叶像函数的傅立叶像函数F(t)。ifourier(F,t,x):求傅立叶像函数:求傅立叶像函数F(t)的原函数的原函数f(
23、x)。2拉普拉斯拉普拉斯(Laplace)变换变换在在MATLAB中,进行拉普拉斯变换的函数是:中,进行拉普拉斯变换的函数是:laplace(fx,x,t):求函数:求函数f(x)的拉普拉斯像函数的拉普拉斯像函数F(t)。ilaplace(Fw,t,x):求拉普拉斯像函数:求拉普拉斯像函数F(t)的原函数的原函数f(x)。3Z变换变换当函数当函数f(x)呈现为一个离散的数列呈现为一个离散的数列f(n)时,对数列时,对数列f(n)进行进行z变变换的换的MATLAB函数是:函数是:ztrans(fn,n,z):求:求fn的的Z变换像函数变换像函数F(z)。iztrans(Fz,z,n):求:求Fz
24、的的z变换原函数变换原函数f(n)。三、三、 级级 数数3.1 3.1 级数符号求和级数符号求和求无穷级数的和需要符号表达式求和函数求无穷级数的和需要符号表达式求和函数symsum,其调用,其调用格式为:格式为:symsum(s,v,n,m)其中其中s表示一个级数的通项,是一个符号表达式。表示一个级数的通项,是一个符号表达式。v是求和变是求和变量,量,v省略时使用系统的默认变量。省略时使用系统的默认变量。n和和m是求和的开始项是求和的开始项和末项。和末项。例例9 求下列级数之和。求下列级数之和。3.2 3.2 函数的泰勒级数函数的泰勒级数MATLAB提供了提供了taylor函数将函数展开为幂级
25、数,函数将函数展开为幂级数,其调用格式为:其调用格式为:taylor(f,v,n,a)该函数将函数该函数将函数f按变量按变量v展开为泰勒级数,展开到第展开为泰勒级数,展开到第n项项(即变量即变量v的的n-1次幂次幂)为止,为止,n的缺省值为的缺省值为6。v的缺省值与的缺省值与diff函数相同。参数函数相同。参数a指定将函数指定将函数f在自在自变量变量v=a处展开,处展开,a的缺省值是的缺省值是0。例例10 求函数在指定点的泰勒级数展开式。求函数在指定点的泰勒级数展开式。四、符号方程求解四、符号方程求解4.1 4.1 符号代数方程求解符号代数方程求解在在MATLAB中,求解用符号表达式表示的代数
26、方中,求解用符号表达式表示的代数方程可由函数程可由函数solve实现,其调用格式为:实现,其调用格式为:solve(s):求解符号表达式:求解符号表达式s的代数方程,求解变量的代数方程,求解变量为默认变量。为默认变量。solve(s,v):求解符号表达式:求解符号表达式s的代数方程,求解变量的代数方程,求解变量为为v。solve(s1,s2,sn,v1,v2,vn):求解符号表达式:求解符号表达式s1,s2,sn组成的代数方程组,求解变量分别组成的代数方程组,求解变量分别v1,v2,vn。例例11 解下列方程。解下列方程。4.2 4.2 符号常微分方程求解符号常微分方程求解在在MATLAB中,用大写字母中,用大写字母D表示导数。例如,表示导数。例如,Dy表示表示y,D2y表示表示y,Dy(0)=5表示表示y
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【教案版】小学二班级上册 球类活动2
- 2025年电气工程师中级面试实战指南及模拟题答案详解
- 2025年熔化焊接工艺考试宝典与模拟题集
- 2025年营养师中级考试指南与备考策略
- 2025年电子商务运营专家初级面试预测题与解析
- 2025年电子商务网络安全工程师面试秘籍与预测题
- 电力基础安全知识培训课件
- 2025年护士执业资格高级考试试题集及答题技巧
- 2025年烈士纪念设施保护单位招聘面试常见问题及答案
- 2025年山东省青岛李沧区中考化学二模试卷
- 乳腺钼靶诊断分级标准
- (完整版)数字信号处理教案(东南大学)
- 三腔二囊管置入及护理课件
- 人民代表大会的职权
- 广东省制药企业列表
- 北京市施工现场重污染天气应急预案
- 中等职业学校英语课程标准(2020年版)(word精排版)
- 医院消毒供应中心外来器械管理流程教材44课件
- 污水处理厂运行成本分析
- 四川中小学生健康体检表
- 空压机验证方案(拟定)
评论
0/150
提交评论