第五章符号数学基础 Chapter 5: Foundation of Symbolic Mathematics 符号对象的创建( reating a symbolic object 创建符号变量和表达式( Creating a symbolic variable and expression 创建符号变量和表达式的两个基本函数:sym,yms x=sym(x”)创建一个符号变量x,可以是字符、字符串、表达式或字符 表达式。 *syms用于方便地一次创建多个符号变量,调用格式为: syms a be d 书写简洁意义清楚,建议使用。 例1:使用sym函数创建符号变量 a=sym(a) b=sym('hello) c=sym((1+sqrt(5)2”) y=sym(x^3+5*x^2+12*x+20) a b hello (1+sqrt(5))2 12*x+20 例2:用syms函数创建符号变量 syms a b e d 2.创建符号矩阵( Symbolic matrix Creating) 例1:创建一个循环矩阵。 syms a bc d n=la bc d;be d a;c d a b;d a bcl
第五章 符号数学基础 Chapter 5:Foundation of Symbolic Mathematics 一. 符号对象的创建(Creating a symbolic object) 1. 创建符号变量和表达式(Creating a symbolic variable and expression) 创建符号变量和表达式的两个基本函数:sym, syms *x=sym(‘x’) 创建一个符号变量 x,可以是字符、字符串、表达式或字符 表达式。 *syms 用于方便地一次创建多个符号变量,调用格式为: syms a b c d . 书写简洁意义清楚,建议使用。 例 1:使用 sym 函数创建符号变量. a=sym(‘a’) b=sym( ‘hello’) c=sym(( ‘(1+sqrt(5))/2’) y=sym( ‘x^3+5*x^2+12*x+20’) a = a b = hello C = (1+sqrt(5))/2 Y = x^3+5*x^2+12*x+20 例 2:用 syms 函数创建符号变量。 syms a b c d 2. 创建符号矩阵(Symbolic matrix Creating) 例 1:创建一个循环矩阵。 syms a b c d n=[a b c d;b c d a;c d a b;d a b c] n =
a, b, c, d [b, c, d [c,d, [d, a, b, c 例2:将3阶 Hilbert矩阵转换为符号矩阵。 h=hilb(3) hI=sym(h) h 1.00000.50000.3333 0.50000.33330.2500 0.33330.25000.2000 h1 1.1/2.1/3 [1/2,1/3,1/4] [1/3,1/4,1/5] 注意符号矩阵于数值矩阵的区别。 3.默认符号变量( Implied symbolic variable) 在 MATLAB的符号数学工具箱中,以最接近ⅹ的顺序排列默认自 变量的顺序,可利用 findsym函数对默认自变量进行查询 例1:求符号函数在不同自变量情况下的结果 创建符号变量x和n,建立函数f=x,然后分别求f对x和f对n的导 syms n diff(f %x作为自变量,求f对x的导数 diff(f, n) %n作为自变量,求f对n的导数 f ans n/x ANn
[ a, b, c, d] [ b, c, d, a] [ c, d, a, b] [ d, a, b, c] 例 2:将 3 阶 Hilbert 矩阵转换为符号矩阵。 h=hilb(3) h1=sym(h) h = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000 h1 = [ 1, 1/2, 1/3] [ 1/2, 1/3, 1/4] [ 1/3, 1/4, 1/5] 注意符号矩阵于数值矩阵的区别。 3. 默认符号变量(Implied symbolic variable) 在 MATLAB 的符号数学工具箱中,以最接近 x 的顺序排列默认自 变量的顺序,可利用 findsym 函数对默认自变量进行查询。 例 1: 求符号函数在不同自变量情况下的结果。 创建符号变量 x 和 n,建立函数 f=xn,然后分别求 f 对 x 和 f 对 n 的导 数. syms x n f=x^n diff(f) % x 作为自变量,求 f 对 x 的导数 diff(f,n) % n 作为自变量,求 f 对 n 的导数 f = x^n ans = x^n*n/x
ans g(x) 例2:查询符号函数中的默认自变量。 创建符号变量ab,n,ⅹ和t,建立函数fax"bt,然后求f的默认自变 量 syms a bn tx f=a*xn+b*t findsym(f, 1) findsym(f, 2) finds(f,5)%f表达式中按最接近x顺序排列的5个默认自变量 finden(n)%f表达式中按最接近字母顺序排列的全部自变量 a'*xn+b*t X x.t.n ba ans b. n. t 二.符号表达式的化简和替换( simplifying and replacing of Symbolic xpressions) 符号数学工具箱提供的符号表达式的因式分解、展开、合并、化简、 通分等操作: 1.符号表达式的化简 Simplifying of symbolic expression (1)因式分解( Factorization) 符号表达式的因式分解函数为 factor(S),可分解符号表达式S的 各个元素
ans = x^n*log(x) 例 2: 查询符号函数中的默认自变量。 创建符号变量 a,b, n, x 和 t ,建立函数 f=axn+bt,然后求 f 的默认自变 量。 syms a b n t x f=a*x^n+b*t findsym(f,1) findsym(f,2) findsym(f,5) % f 表达式中按最接近 x 顺序排列的 5 个默认自变量 findsym(f) % f 表达式中按最接近字母顺序排列的全部自变量 f = a*x^n+b*t ans = x ans = x,t ans = x,t,n,b,a ans = a, b, n, t, x >> 二. 符号表达式的化简和替换(simplifying and replacing of Symbolic xpressions) 符号数学工具箱提供的符号表达式的因式分解、展开、合并、化简、 通分等操作: 1. 符号表达式的化简(Simplifying of symbolic expression) (1).因式分解(Factorization) 符号表达式的因式分解函数为 factor(S), 可分解符号表达式 S 的 各个元素
例1:对表达式fx-1进行因式分解 syms x f-factorx 9-1) pretty(f f (X-1)*(x^2+x+1)*(x^6+x^3+1) 2 63 (X-1)(x+x+1)(x+x+1) 例2:对大整数12345678901234567890进行因式分解。 factor(sym(123456789012345678907) ans (2)*(3)2*(5)*(101)*(3803)*(3607)*(27961)*(3541) (2)符号表达式的展开( Expanding of symbolic expressions) 符号表达式的展开函数为 expand(S),此函数因数展开符号表达式 例:展开表达式f(x+1)5和f=sin(x+y) sy ms y f=(x+1)^5; expand(f f=sin(x+y) expand(n X^5+5*x^4+10*x^3+10*x^2+5*x+1 ans sin(x)*cos(y)+cos(x)*sin(y) (3).符号表达式的同类项合并( Similar team merging for symbolic expression) 符号表达式的同类项合并函数为 collect(S,n),此函数将符号表达 式中自变量的同次幂项的系数合并。 例:对于表达式fx(x(x-6)+12)t,分别将自变量x和t的同类项合并 syms x t
例 1: 对表达式 f=x9 -1 进行因式分解。 syms x f=factor(x^9-1) pretty(f) f = (x-1)*(x^2+x+1)*(x^6+x^3+1) 2 6 3 (x - 1) (x + x + 1) (x + x + 1) 例 2:对大整数 12345678901234567890 进行因式分解。 factor(sym(‘12345678901234567890’)) ans = (2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541) (2)符号表达式的展开(Expanding of symbolic expressions) 符号表达式的展开函数为 expand(S), 此函数因数展开符号表达式 S. 例: 展开表达式 f=(x+1)5 和 f=sin(x+y) syms x y f=(x+1)^5; expand(f) f=sin(x+y); expand(f) ans = x^5+5*x^4+10*x^3+10*x^2+5*x+1 ans = sin(x)*cos(y)+cos(x)*sin(y) (3).符号表达式的同类项合并(Similar team merging for symbolic expression) 符号表达式的同类项合并函数为 collect(S,n),此函数将符号表达 式中自变量的同次幂项的系数合并。 例:对于表达式 f=x(x(x-6)+12)t, 分别将自变量 x 和 t 的同类项合并。 syms x t
f=x*(x*(x-6)+12)*t collect(f) collect(f, t) t*x^3-6*t*x^2+12*t*x ans x*(x*(x-6)+12)*t COLLECT Collect coefficients COLLECT(S, v) regards each element of the symbolic matrix s as a polynomial in v and rewrites S in terms of the powers of v COLLECT(S)uses the default variable determined by FINDSYM (4).符号表达式的化简( Simplifying of symbolic expression) 符号表达式的两个化简函数: simplify, simple, simplify:化简函数可用于化简各种表达式 例1:对表达式f=sin(x)+cos2(x)进行化简 SVns X f=sin(x)2+cos(x) 2; simplify(f Ir,how= simple(S)函数可寻找符号表达式S的最简型,r为返回的 简化形式,how为化简过程中使用的主要方法, simple函数综合使用了下 列化简方法: simplify函数对表达式进行化简 eradsimp函数对含根式(surd的表达式进行化简 combine函数对表达式中以求和、乘积、幂运算等形式出现的项 进行合并 collect合并同类项 factor函数实现因式分解 convert函数完成表达式形式的转换
f=x*(x*(x-6)+12)*t; collect(f) collect(f,t) ans = t*x^3-6*t*x^2+12*t*x ans = x*(x*(x-6)+12)*t COLLECT Collect coefficients. COLLECT(S,v) regards each element of the symbolic matrix S as a polynomial in v and rewrites S in terms of the powers of v. COLLECT(S) uses the default variable determined by FINDSYM. (4). 符号表达式的化简(Simplifying of symbolic expression) 符号表达式的两个化简函数:simplify, simple , simplify:化简函数,可用于化简各种表达式 例 1:对表达式 f=sin2 (x)+cos2 (x)进行化简. syms x f=sin(x)^2+cos(x)^2; simplify(f) ans = 1 [r,how]=simple(S) 函数可寻找符号表达式 S 的最简型, r 为返回的 简化形式,how 为化简过程中使用的主要方法,simple 函数综合使用了下 列化简方法: *simplify 函数对表达式进行化简 *radsimp 函数对含根式(surd)的表达式进行化简 *combine 函数对表达式中以求和、乘积、幂运算等形式出现的项 进行合并 *collect 合并同类项 *factor 函数实现因式分解 *convert 函数完成表达式形式的转换