版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 MATLABMATLAB的符号运算5.1 5.1 符号对象的创建符号对象的创建5.2 5.2 基本的符号运算基本的符号运算5.3 5.3 符号微积分符号微积分5.4 5.4 符号方程的求解符号方程的求解5.1 5.1 符号对象的创建(定义)符号对象的创建(定义) MATLAB提供了一种数据类型提供了一种数据类型: 符号型数符号型数据据, 可以进行符号运算,是符号运算的对象,可以进行符号运算,是符号运算的对象,因此也把符号数据称为符号对象。因此也把符号数据称为符号对象。符号对象可以是符号变量、符号常量、符符号对象可以是符号变量、符号常量、符号表达式或符号矩阵。号表达式或符号矩阵。符号对象
2、要先定义,后引用。符号对象要先定义,后引用。如何定义符号变量、符号常量、符号表达如何定义符号变量、符号常量、符号表达式或符号矩阵?式或符号矩阵?用用sym函数、函数、syms函数可以将运算量定义函数可以将运算量定义为符号型数据。为符号型数据。 sym函数函数 syms函数函数(一)建立符号变量和符号常数(一)建立符号变量和符号常数1、sym函数函数主要功能:创建单个符号变量。主要功能:创建单个符号变量。调用形式:调用形式: 符号变量名符号变量名 = sym(= sym(符号字符串符号字符串) )将将符号字符串符号字符串创建为一个创建为一个符号变量符号变量,符号变量的,符号变量的值就是该符号字符
3、串,值就是该符号字符串,符号字符串符号字符串 可以是可以是常量、常量、变量、函数变量、函数或表达式。或表达式。注意注意:每次调用该函数,只能定义:每次调用该函数,只能定义一个一个符号变量。符号变量。使用方法举例使用方法举例a=sym(a=sym(a a) ) % %将将aa创建为符号变量,以创建为符号变量,以a a作为作为输出变量名输出变量名 a=a= a ab=sym(b=sym(b b) )x=sym(x=sym(x x) ) y=sym(y=sym(y y) ) 符号变量的名字不一定和字符串中的字母相同符号变量的名字不一定和字符串中的字母相同 例如:例如: m=sym(m=sym(y y
4、) ) SymSym函数可以定义函数可以定义符号常数符号常数: k1=sym(9);k2=sym(3); k1=sym(9);k2=sym(3); % %定义符号变量定义符号变量 r1=9;r2=3; r1=9;r2=3; % %定义数值变量定义数值变量 k1+sqrtk1+sqrt(k2) (k2) % %符号计算(精确的数学表达式)符号计算(精确的数学表达式) ansans = 9+3(1/2) = 9+3(1/2) r1+sqrt r1+sqrt(r2) (r2) % %数值计算(近似为一个有限小数)数值计算(近似为一个有限小数) ansans = 10.7321 = 10.7321 2
5、、syms函数函数 syms函数的功能与函数的功能与sym函数类似函数类似。但。但syms函数可以在一函数可以在一个语句中个语句中同时定义多个符号变量同时定义多个符号变量,其一般格式为:,其一般格式为: syms arg1 arg2 argN 将将 arg1, arg2, argN 定义为符号变量。定义为符号变量。例如:例如: syms a b c d x y使用方便、书写简洁、意义清楚,一般提倡使用使用方便、书写简洁、意义清楚,一般提倡使用syms创建创建符号变量。符号变量。(二)(二) 定义符号表达式定义符号表达式 符号表达式由符号变量、函数、算术运算符等符号表达式由符号变量、函数、算术运
6、算符等组成。符号表达式的书写格式与数值表达式相同。组成。符号表达式的书写格式与数值表达式相同。有三种定义方法:有三种定义方法:1.1. 用用symsym函数定义函数定义2.2. 用用symssyms函数定义函数定义( (用已定义的符号变量组用已定义的符号变量组成符号表达式成符号表达式) )3.3. 用单引号定义用单引号定义 f1=sym(3*x2-5*y+2*x*y+6) f1 = 3*x2-5*y+2*x*y+6 syms x y (必须先定义(必须先定义 x y ) f2=3*x2-5*y+2*x*y+6 f2 = 3*x2-5*y+2*x*y+6 f3=3*x2-5*y+2*x*y+6
7、f3 = 3*x2-5*y+2*x*y+6例如,将数学表达式例如,将数学表达式 定义为符号表达式定义为符号表达式 y= 1+sqrt(5*x)/2 y = 1+sqr(5*x)/2 f=sym(1+sqrt(5*x)/2) f = 1+sqrt(5*x)/2 syms x v=1+sqrt(5*x)/2 v = 1+1/2*5(1/2)*x(1/2)251x(三)定义符号矩阵(三)定义符号矩阵使用使用symsym和和symssyms函数可以创建符号矩阵,可以函数可以创建符号矩阵,可以直接输入或从数值矩阵转换。直接输入或从数值矩阵转换。例例2:创建一个符号矩阵两种方法:创建一个符号矩阵两种方法
8、m=sym(a,b;c ,d) m = a, b c, dsyms a b c dn= a, b ;c ,dn = a, b c, d 注意:注意:符号矩阵与普通矩阵的区别:符号矩阵与普通矩阵的区别: 命令窗口的显示形式不同;命令窗口的显示形式不同; 工作空间窗口显示的变量图标不工作空间窗口显示的变量图标不同。同。建立符号矩阵建立符号矩阵Z=sym( a3-b3,sin(alp)2+cos(alp)2;(15*x*y-3*x2)/(x-5*y),78);Z = a3-b3, sin(alp)2+cos(alp)2 (15*x*y-3*x2)/(x-5*y), 78syms a b x y al
9、p Z1= a3-b3,sin(alp)2+cos(alp)2;(15*x*y-3*x2)/(x-5*y),78Z1 = a3-b3, sin(alp)2+cos(alp)2 (15*x*y-3*x2)/(x-5*y), 78785315cossin22233yxxxybaz(四)符号表达式中符号(四)符号表达式中符号变量变量的确定的确定 在数学表达式中,一般习惯于使用排在字母表前面的字母在数学表达式中,一般习惯于使用排在字母表前面的字母作为变量的系数(常数),而用排在后面的字母(如作为变量的系数(常数),而用排在后面的字母(如x,y,zx,y,z)表示变量。例如:表示变量。例如: f=axf
10、=ax2 2+bx+c+bx+c 表达式中,将表达式中,将x x看作自变量,看作自变量,a,b,ca,b,c通常被认为是常数,用通常被认为是常数,用作变量的系数。作变量的系数。 i,j 通常表示虚数单位,在符号运算中不能用作自变量通常表示虚数单位,在符号运算中不能用作自变量 在在MATLABMATLAB中中引用符号表达式时,有符号常量和符号变量,如何确定谁引用符号表达式时,有符号常量和符号变量,如何确定谁是符号自变量呢?可以由用户可以指定;若用户没有指定符号变量,则自是符号自变量呢?可以由用户可以指定;若用户没有指定符号变量,则自动使用动使用findsym函数默认的变量作为函数的变量参数。函数
11、默认的变量作为函数的变量参数。findsym函数的函数的原则为:自变量为在字母顺序排列的位置上最接近原则为:自变量为在字母顺序排列的位置上最接近x的的小写小写字母(除了字母(除了i和和j之外)。如果式子中没有上述字母,则之外)。如果式子中没有上述字母,则x会被视为默认的自会被视为默认的自变量。如下表:变量。如下表:符号表达式符号表达式 默认自变量默认自变量a*x2+b*x+c x1/(4+cos(t) t4*x/y x2*a+b b2*i+4*j x查询符号表达式的默认自变量查询符号表达式的默认自变量 findsym函数可以查询表达式中使用的符号变量个数及变函数可以查询表达式中使用的符号变量个
12、数及变量名。量名。引用格式为:引用格式为: findsym( f, n)说明:说明:f 为用户定义的符号函数,为用户定义的符号函数, n为正整数,表示查询变量的个数。为正整数,表示查询变量的个数。 n值省略时表示查询符号函数中全部系统默认变量。值省略时表示查询符号函数中全部系统默认变量。【例例3 】查询符号函数】查询符号函数 中的系统默认变量。中的系统默认变量。syms a b n t x % 定义符号变量定义符号变量f=a*xn+b*t; % 给定符号表达式给定符号表达式findsym(f,1) % 在在f函数中查询函数中查询1个系统默认变量个系统默认变量ans= x 表示表示f函数中查询的
13、函数中查询的1个系统默认变量为个系统默认变量为x。findsym(f,2)ans= x, tfindsym(f,5)ans= x, t,n,b,a 以最接近以最接近x顺序排列的顺序排列的5个默认自变量个默认自变量findsym(f)ans=a,b,n,t,x 返回返回 f表达式中按字母顺序排列的全部自变量表达式中按字母顺序排列的全部自变量btaxfn5.2 基本的符号运算基本的符号运算1.1. 符号表达式的四则运算符号表达式的四则运算2.2. 2. 2. 符号表达式的因式分解、展开、分式符号表达式的因式分解、展开、分式3.3. 通分通分3. 3. 符号表达式的化简符号表达式的化简1. 1. 符
14、号表达式的四则运算符号表达式的四则运算symadd(f1,f2) f1+f2 symsub (f1,f2) f1-f2 symmul (f1,f2) f1*f2 symdiv (f1,f2) f1/f2sympow (f1,f2) f1f2f=2*x2+3*x-5g=x2-x+7symadd(f,g) ans = 3*x2+2*x+2symsub(f,g) ans = x2+4*x-12symmul(f,g) ans = (2*x2+3*x-5)*(x2-x+7)symdiv(f,g) ans = (2*x2+3*x-5)/(x2-x+7)sympow(f,3*x) ans =(2*x2+3*
15、x-5)(3*x)2. 2. 符号表达式的因式分解、展开、分式通分符号表达式的因式分解、展开、分式通分因式分解函数为因式分解函数为 factorfactor 调用格式为:调用格式为: factor(s) factor(s) 举例举例符号表达式的展开符号表达式的展开 函数为函数为 expand 调用格式为:调用格式为:expand (s) 举例举例同类项合并函数为同类项合并函数为 collect 调用格式为:调用格式为: collect(s,n) 举例举例 S为符号表达式,为符号表达式,n为要合并系数的自变量为要合并系数的自变量符号表达式的分式通分函数为符号表达式的分式通分函数为 numden
16、调用格式为:调用格式为: n,d=numden(s) 举例举例 n 为通分后的分子,为通分后的分子,d为分母为分母3. 3. 符号表达式的化简符号表达式的化简表达式的化简函数为表达式的化简函数为 simple、simplify 调用格式为调用格式为: simplify (s) 使用使用Maple的化简规则化简函数的化简规则化简函数 r,how=simple (s) 用多种方法寻找符号表达式用多种方法寻找符号表达式s的最简型,的最简型, r为返回的为返回的化简形式化简形式, how为化简过程使用的主要为化简过程使用的主要方法方法 举例举例【例例1】 对表达式对表达式 进行因式分解进行因式分解 s
17、yms x f=factor(x9-1) f= (x-1)*(x2+x+1)*(x6+x3+1) pretty(f) %按照类似书写习惯的方式显示按照类似书写习惯的方式显示 (x-1) (x2+x+1) (x6+x3+1) 【例例2】 对大整数对大整数12345678901234567890进行因式分解进行因式分解 factor(sym (12345678901234567890)19 xf【例例3】 展开表达式展开表达式 和和 syms x y f=(x+1)5; expand(f) ans= x5+5*x4+10*x3+10*x2+5*x+1 f=sin(x+y); expand(f) a
18、ns= sin(x)*cos(y)+cos(x)*sin(y)5) 1( xf)sin(yxf【例例4】 对表达式对表达式 分别将分别将自变量自变量x和和t的同类项合并的同类项合并 syms x t f=x*(x*(x-6)+12)*t; collect(f) ans= t*x3-6*t*x2+12*t*x collect(f,t) ans= x*(x*(x-6)+12)*ttxxxf)12)6(【例例5】 对表达式对表达式 进行通分进行通分 syms x y f=x/y+y/x; n,d=numden(f) n= x2+y2 d= y*xxyyxf【例【例6 6】对表达式对表达式 进行化简进
19、行化简 syms x f=sin(x)2+cos(x)2; simplify(f) simplify(f) ans ans= = 1 1【例【例7 7】将表达式将表达式 用嵌套形式表示。用嵌套形式表示。 syms x horner(x3-6*x2+11*x-6) ans = -6+(11+(-6+x)*x)*x)(cos)(sin22xxf611623xxxf2. 2. 符号表达式的替换符号表达式的替换 通过符号替换使表达式的输出形式简化,得到一个简单通过符号替换使表达式的输出形式简化,得到一个简单的表达式的表达式 符号表达式的替换函数有:符号表达式的替换函数有:subexprsubexpr
20、、 subssubs 调用格式:调用格式: y,sigma=subexpry,sigma=subexpr(s,sigma)(s,sigma) 用变量用变量sigmasigma的值的值替换替换表达式表达式s s中中重复出现的字符串重复出现的字符串,y y返回替换后的结果。返回替换后的结果。 调用格式:调用格式: r=subs(s,old,new)r=subs(s,old,new) 举例举例 用新的符号变量用新的符号变量newnew代替代替表达式表达式s s中的变量中的变量oldold,r r为返回为返回替换后的结果。替换后的结果。 【例【例8 8】分别用新变量替换表达式】分别用新变量替换表达式
21、a+b a+b 和表达式和表达式 中的变量中的变量 syms a b subs(a+b,a,5) ans= 5+b subs(cos(a)+sin(b),a,b,sym(alpha),2) ans= cos(alpha)+sin(2)sin()cos(baf1. 符号极限符号极限 函数函数limit用于求符号函数用于求符号函数f的极限。系统可以的极限。系统可以根据用户要求,计算变量从不同方向趋近于指定值根据用户要求,计算变量从不同方向趋近于指定值的极限值。该函数的格式及功能:的极限值。该函数的格式及功能: 5.3 符号微积分符号微积分 limit(f,x,a):求符号函数求符号函数f(x)的极
22、限值。即计算当变量的极限值。即计算当变量x趋近于常数趋近于常数a时,时, f(x)函数的极限值。函数的极限值。 limit(f,a):求符号函数求符号函数f(x)的极限值。由于没有指定符的极限值。由于没有指定符号函数号函数f(x)的自变量,则使用该格式时,符号函数的自变量,则使用该格式时,符号函数f(x)的变量为的变量为函数函数findsym(f)确定的默认自变量,即变量确定的默认自变量,即变量x趋近趋近于于a。limit(f):求符号函数求符号函数f(x)的极限值。符号函数的极限值。符号函数f(x)的变量的变量为函数为函数findsym(f)确定的默认变量;没有指定变量的目标值时,确定的默认
23、变量;没有指定变量的目标值时,系统默认变量趋近于系统默认变量趋近于0,即,即a=0的情况。的情况。limit(f,x,a,right):求符号函数求符号函数f的极限值。的极限值。right表表示变量示变量x从右边趋近于从右边趋近于a。limit(f,x,a,left):求符号函数求符号函数f的极限值。的极限值。left表示变表示变量量x从左边趋近于从左边趋近于a。【例【例1 1】求极限求极限symssyms x x; % %定义符号变量定义符号变量f=(xf=(x* *(exp(sin(x)+1)-2(exp(sin(x)+1)-2* *(exp(tan(x)-1)/sin(x)3(exp(t
24、an(x)-1)/sin(x)3; % %确定符号表达式确定符号表达式w=limit(f) %w=limit(f) %求函数的极限求函数的极限xeextgxxx3sin0sin) 1(2) 1(limw = -1/2w = -1/22. 符号微分符号微分3. diff函数用于对符号表达式求微分。该函数的一般引用格式函数用于对符号表达式求微分。该函数的一般引用格式为:为: diff(s,v,n) 其中:其中:s s为符号表达式,为符号表达式,n n为正整数,为正整数,v v为变量为变量。 说明:说明:diff(s,v,n)或)或diff(s,n,v)求符号表达式)求符号表达式s对于自变对于自变量
25、量v求求n阶阶微分。微分。diff(s)求符号表达式)求符号表达式s对于对于默认自变量默认自变量的的一阶一阶微分。微分。diff(s,v)求符号表达式)求符号表达式s对于自变量对于自变量v的的一阶一阶微分。微分。diff(s,n)求符号表达式)求符号表达式s对于对于默认自变量默认自变量求求n阶阶微分。微分。【例【例2】求下列函数】求下列函数: f=xx的导数和的导数和3次导数次导数 syms x %定义符号变量定义符号变量 f=xx diff(f) diff(f,3) 3符号积分符号积分 函数函数int可以实现符号表达式的积分。其引可以实现符号表达式的积分。其引用格式为:用格式为: int(s
26、 ,v,a,b) a、b表示定积分运算的下限和上限表示定积分运算的下限和上限。 int(s,v,a,b)求符号表达式)求符号表达式s对于自变量对于自变量v从从a到到b的的定积分。定积分。 int(s,a,b) 求符号表达式求符号表达式s对于默认自变量从对于默认自变量从a到到b的的定积分。定积分。 int(s) 求符号表达式求符号表达式s对于默认自变量的对于默认自变量的不定积分不定积分。 int(s,v) 求符号表达式求符号表达式s对于自变量对于自变量v 的的不定积分不定积分。 【例【例3 3】求下述积分。】求下述积分。求积分:求积分:syms xint(1/(1+x2) ans =atan(x
27、)dxx211【例【例4 4】定义一个符号函数定义一个符号函数 fxyfxy= =(a*x2+b*y2)/c2 ,分别求,分别求该函数对该函数对x、y的导数和对的导数和对x的积分。的积分。syms a b c x y %定义符号变量定义符号变量fxy=(a*x2+b*y2)/c2; %生成符号函数生成符号函数 diff(fxy,x) %符号函数符号函数fxy对对x求导数求导数ans =2*a*x/c2diff(fxy, y) %符号函数符号函数fxy对对y求导数求导数 ans =2*b*y/c2int(fxy, x) %符号函数符号函数fxy对对x求积分求积分ans =1/c2*(1/3*a*
28、x3+b*y2*x)4. 符号求和符号求和(级数求和级数求和) 表达式求和(级数求和)运算是数学中常见的表达式求和(级数求和)运算是数学中常见的一种运算。一种运算。 函数函数symsum可以实现表达式求和。该函数的引用时,应可以实现表达式求和。该函数的引用时,应确定级数的确定级数的通项式通项式s,变量的,变量的变化范围变化范围a和和b。该函数的引用格。该函数的引用格式为:式为: symsum(s, a,b)【例【例5 5】求级数的和】求级数的和: : 1/1 12 2+1/2+1/22 2+1/3+1/32 2+1/4+1/42 2+ + 找出通项式:找出通项式:syms k symsum(1
29、/k2,1,Inf) %k值为值为1到无穷大到无穷大ans =1/6*pi2其结果为:其结果为:1/1 12 2+1/2+1/22 2+1/3+1/32 2+1/4+1/42 2+ + = = 2/6121kk思考:1kk10021kk5. Taylor级数展开级数展开 Taylor级数展开由函数级数展开由函数taylor实现。其调用格式为:实现。其调用格式为:taylor(f): 计算表达式计算表达式f在默认自变量等于在默认自变量等于0处的处的5阶阶Taylor级级数展开式。数展开式。taylor(f,n,v): 计算表达式计算表达式f在默认自变量在默认自变量v=0处的处的n-1阶阶Tayl
30、or级数展开式。级数展开式。taylor(f,n,v,a): 计算表达式计算表达式f在默认自变量在默认自变量v=a处的处的n-1阶阶Taylor级数展开式。级数展开式。【例【例6 6】求表达式】求表达式 的的5 5阶阶TaylorTaylor级数展开式级数展开式syms syms x xf=1/(5+cosf=1/(5+cos(x)(x)r=taylorr=taylor(f)(f)r=r=1/6+1/721/6+1/72* *x2x2)cos(51xf 解代数方程(组)的函数为解代数方程(组)的函数为solvesolve格式为:格式为: solve(exprsolve(expr) ) solv
31、e(expr,var solve(expr,var) ) solve(expr1,expr2,.,exprN,var1,var2,.varN solve(expr1,expr2,.,exprN,var1,var2,.varN) ) solve(expr1,expr2,.,exprN solve(expr1,expr2,.,exprN) ) expr1,expr2,.,exprNexpr1,expr2,.,exprN为代数方程组,为代数方程组,var1,var2,.varNvar1,var2,.varN为未知数(自变为未知数(自变量)。量)。说明:说明:若不指明符号表达式若不指明符号表达式exp
32、r1,expr2,.,exprNexpr1,expr2,.,exprN的值,系统默认为的值,系统默认为0 0。例如给。例如给出一个表达式出一个表达式x2-3x2-3* *x-8,x-8,则系统将按则系统将按x2-3x2-3* *x-8=0 x-8=0进行运算;故应将等号右进行运算;故应将等号右侧的数值移过来。侧的数值移过来。5.4 符号方程的求解1. 1. 代数方程求解代数方程求解【例【例7 7】解代数方程:】解代数方程:a a* *x x2 2-b-b* *x-6=0 x-6=0symssyms a b x a b xsolve(asolve(a* *x2-bx2-b* *x-6) x-6)
33、 solve(asolve(a* *x2-bx2-b* *x x6)6) ansans = = 1/2/a 1/2/a* *(b+(b2+24(b+(b2+24* *a)(1/2)a)(1/2) 1/2/a 1/2/a* *(b-(b2+24(b-(b2+24* *a)(1/2)a)(1/2)即该方程有两个根即该方程有两个根: : x x1 1=1/2/a=1/2/a* *(b+(b2+24(b+(b2+24* *a)(1/2)a)(1/2); x x2 2=1/2/a=1/2/a* *(b-(b2+24(b-(b2+24* *a)(1/2) a)(1/2) 【例【例8 8】求解代数方程组求解代数方程组042051022zyxzyxzyxsyms x y xf=x2-y2+z-10;g=x+y-5*z;h=2*x-4*y+z;x,y,z=solve(f,g,h)s=solve(f,g,h);s.x, s.y, s.zx=-19/80+19/240*2409(1/2) -19/80-19/240*2409(1/2)y=-11/80+11/240*24
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论