zoukankan      html  css  js  c++  java
  • MATLAB符号运算(1)

    3章  符号运算

    3.1  算术符号操作

    命令  +-*.*\、.\、/./、^、.^、’、.’

    功能  符号矩阵的算术操作

    用法如下:

    A+BA-B  符号阵列的加法与减法。

    AB为同型阵列时,A+BA-B分别对对应分量进行加减;若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行加减。

    A*B   符号矩阵乘法。

    A*B为线性代数中定义的矩阵乘法。按乘法定义要求必须有矩阵A的列数等于矩阵B的行数。即:若An*k*Bk*m=(aij)n*k.*(bij)k*m=Cn*m=(cij)n*m,则,i=1,2,…,n;j=1,2,…,m。或者至少有一个为标量时,方可进行乘法操作,否则将返回一出错信息。

    A.*B   符号数组的乘法。

    A.*B为按参量A与B对应的分量进行相乘。AB必须为同型阵列,或至少有一个为标量。即:An*m.*Bn*m=(aij)n*m.*(bij)n*m=Cn*m=(cij)n*m,则cij= aij* bij,i=1,2,…,n;j=1,2,…,m。

    A\B    矩阵的左除法。

    X=A\B为符号线性方程组A*X=B的解。我们指出的是,A\B近似地等于inv(A)*B。若X不存在或者不唯一,则产生一警告信息。矩阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方程组必须是相容的。

    A.\B   数组的左除法。

    A.\B为按对应的分量进行相除。若AB为同型阵列时,An*m.\Bn*m=(aij)n*m.\(bij)n*m=Cn*m=(cij)n*m,则cij= aij\ bij,i=1,2,…,n;j=1,2,…,m。若若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。

    A/B    矩阵的右除法。

    X=B/A为符号线性方程组X*A=B的解。我们指出的是,B/A粗略地等于B*inv(A)。若X不存在或者不唯一,则产生一警告信息。矩阵A可以是矩形矩阵(即非正方形矩阵),但此时要求方程组必须是相容的。

    A./B    数组的右除法。

    A./B为按对应的分量进行相除。若AB为同型阵列时,An*m./Bn*m=(aij)n*m./(bij)n*m=Cn*m=(cij)n*m,则cij= aij/bij,i=1,2,…,n;j=1,2,…,m。若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。

    A^B    矩阵的方幂。

    计算矩阵A的整数B次方幂。若A为标量而B为方阵,A^B用方阵B的特征值与特征向量计算数值。若A与B同时为矩阵,则返回一错误信息。

    A.^B    数组的方幂。

    A.^B为按A与B对应的分量进行方幂计算。若AB为同型阵列时,An*m..^Bn*m=(aij)n*m..^(bij)n*m=Cn*m=(cij)n*m,则cij= aij^bij,i=1,2,…,n;j=1,2,…,m。若A与B中至少有一个为标量,则把标量扩大为与另外一个同型的阵列,再按对应的分量进行操作。

    A'      矩阵的Hermition转置。

    若A为复数矩阵,则A'为复数矩阵的共轭转置。即,若A=(aij)=(xij+i*yij),则。

    A.'      数组转置。

    A.'为真正的矩阵转置,其没有进行共轭转置。

    3-1

    >>syms a b c d e f g h;

    >>A = [a b; c d];

    >>B = [e f; g h];

    >>C1 = A.*B

    >>C2 = A.^B

    >>C3 = A*B/A

    >>C4 = A.*A-A^2

    >>syms a11 a12 a21 a22 b1 b2;

    >>A = [a11 a12; a21 a22];

    >>B = [b1 b2];

    >>X = B/A;  % 求解符号线性方程组X*A=B的解

    >>x1 = X(1)

    >>x2 = X(2)

    计算结果为:

    C1 =

        [ a*e, b*f]

        [ c*g, d*h]

    C2 =

        [ a^e, b^f]

        [ c^g, d^h]

    C3 =

        [ -(a*c*f+c*b*h-a*e*d-b*d*g)/(a*d-b*c),   (a*b*h-b^2*g+a^2*f-b*a*e)/(a*d-b*c)]

        [ -(-c*e*d+c*d*h+c^2*f-d^2*g)/(a*d-b*c),   (a*d*h+a*c*f-b*c*e-b*d*g)/(a*d-b*c)]

    C4 =

        [        -b*c, b^2-a*b-b*d]

        [ c^2-a*c-d*c,        -b*c]

     x1 =

         (-a22*b1+b2*a21)/(a12*a21-a11*a22)

     x2 =

        -(-a12*b1+a11*b2)/(a12*a21-a11*a22)

    3.2  基本运算

    命令1  合并同类项

    函数  collect

    格式  R = collect(S)    %对于多项式S中的每一函数,collect(S)按缺省变量x的次数合并系数。

    R = collect(S,v)   %对指定的变量v计算,操作同上。

    3-2

    >>syms x y;

    >>R1 = collect((exp(x)+x)*(x+2))

    >>R2 = collect((x+y)*(x^2+y^2+1), y)

    >>R3 = collect([(x+1)*(y+1),x+y])

    计算结果为:

    R1 =

         x^2+(exp(x)+2)*x+2*exp(x)

    R2 =

         y^3+x*y^2+(x^2+1)*y+x*(x^2+1)

    R3 =

         [ (y+1)*x+y+1,  x+y]

    命令2  列空间的基

    函数  colspace

    格式  B = colspace(A)   %返回矩阵B,其列向量形成由矩阵A的列向量形成的空间的坐标基,其中A可以是符号或数值矩阵。而size(colspace(A),2)等于rank(A)。即由A生成的空间维数等于A的秩。

    3-3

    >>syms  a b c

    >>A = sym([1,a;2,b;3,c])

    >>B = colspace(A)

    计算结果为:

       A =

           [ 1, a]

           [ 2, b]

           [ 3, c]

       B =

           [                1,                0]

           [                0,                1]

           [ -(3*b-2*c)/(-b+2*a),   (-c+3*a)/(-b+2*a)]

    命令 复合函数计算

    函数  compose

    格式  compose(f,g)   %返回复合函数f[g(y)],其中f=f(x),g=g(y)。其中符号x为函数f中由命令findsym(f) 确定的符号变量,符号y为函数g中由命令findsym(g) 确定的符号变量。

    compose(f,g,z)   %返回复合函数f[g(z)],其中f=f(x),g=g(y),符号xy为函数fg中由命令findsym确定的符号变量。

    compose(f,g,x,z)   %返回复合函数f[g(z)],而令变量x为函数f中的自变量f=f(x)。令x=g(z),再将x=g(z)代入函数f中。

    compose(f,g,x,y,z)   %返回复合函数f[g(z)]。而令变量x为函数f中的自变量f=f(x),而令变量y为函数g中的自变量g=g(y)。令x=g(y),再将x=g(y)代入函数f=f(x)中,得f[g(y)],最后用指定的变量z代替变量y,得f[g(z)]。

    3-4

    >>syms x y z t u v;

    >>f = 1/(1 + x^2*y); h = x^t; g = sin(y); p = sqrt(-y/u);

    >>C1 = compose(f,g)  % x=g=sin(y),再替换f中的变量x=findsym(f)。

    >>C2 = compose(f,g,t)  % x=g=sin(t),再替换f中的变量x=findsym(f)。

    >>C3 = compose(h,g,x,z)  % x=g=sin(z),再替换h中的变量x

    >>C4 = compose(h,g,t,z)  % 令t=g=sin(z),再替换h中的变量t

    >>C5 = compose(h,p,x,y,z)  % x=p(y)=sqrt(-y/u),替换h中的变量x,再将y换成z

    >>C6 = compose(h,p,t,u,z)  % 令t=p(u)=sqrt(-y/u),替换h中的变量t,再将u换成z

    计算结果为:

       C1 =

            1/(1+sin(y)^2*y)

       C2 =

            1/(1+sin(t)^2*y)

       C3 =

            sin(z)^t

       C4 =

            x^sin(z)

       C5 =

            ((-z/u)^(1/2))^t

       C6 =

            x^((-y/z)^(1/2))

    命令 符号复数的共轭

    函数  conj

    格式  conj(X)   %返回符号复数X的共轭复数

    3-5

        X=real(X) + i*imag(X),则conj(X)=real(X) - i*imag(X)

    命令5  符号复数的实数部分

    函数  real

    格式  real(Z)   %返回符号复数z的实数部分

    命令 符号复数的虚数部分

    函数  imag

    格式  imag(Z)  %返回符号复数z的虚数部分

    命令 余弦函数的整函数

    格式  Y = cosint(X)   %计算余弦函数在点X处的整函数值。其中X可以是数值矩阵,或符号矩阵。余弦函数的整函数定义为:,其中为Euler常数,=0.57721566490153286060651209 i=1,2,…,size(X)。Euler常数可以通过命令vpa('eulergamma')获得。

    3-6

    >>cosint(7.2) 

    >>cosint([0:0.1:1])

    >>syms x;

    >>f = cosint(x);

    >>diff(x)

    计算结果为:

    ans =

         0.0960

    ans =

        Columns 1 through 7 

             Inf   -1.7279   -1.0422   -0.6492   -0.3788   -0.1778   -0.0223

        Columns 8 through 11 

          0.1005    0.1983    0.2761    0.3374

    ans =

    1

    命令8  设置变量的精度

    函数  digits

    格式  digits(d)   %设置当前的可变算术精度的位数为整数d

          d = digits   %返回当前的可变算术精度位数给d

          digits      %显示当前可变算术精度的位数

    说明  设置有意义的十进制数值的、在Maple软件中用于做可变算术精度(命令为:vpa)计算的数字位数。其缺省值为32位数字。

    3-7

    >>z = 1.0e-16    % z为一很小的数

    >>x = 1.0e+2    % x为较大的数

    >>digits(14) 

    >>y1 = vpa(x*z+1)   % 大数1“吃掉”小数x*y

    >>digits(15)

    >>y2 = vpa(x*z+1)   % 防止“去掉”小数x*y

    计算结果为:

    z =

        1.0000e-016

    x =

        100

    y1 =

        1.0000000000000

    y2 =

        1.00000000000001

    命令9  将符号转换为MATLAB的数值形式

    函数  double

    格式  R = double(S)   %将符号对象S转换为数值对象R。若S为符号常数或表达式常数,double返回S的双精度浮点数值表示形式;若S为每一元素是符号常数或表达式常数的符号矩阵,double返回S每一元素的双精度浮点数值表示的数值矩阵R。

    3-8

    >>gold_ratio = double(sym('(sqrt(5)-1)/2'))    % 计算黄金分割率。

    >>T = sym(hilb(4))

    >>R = double(T)

    计算结果为:

    gold_ratio =

              0.6180

    T =

        [  1, 1/2, 1/3, 1/4]

        [ 1/2, 1/3, 1/4, 1/5]

        [ 1/3, 1/4, 1/5, 1/6]

        [ 1/4, 1/5, 1/6, 1/7]

    R =

        1.0000    0.5000    0.3333    0.2500

        0.5000    0.3333    0.2500    0.2000

        0.3333    0.2500    0.2000    0.1667

        0.2500    0.2000    0.1667    0.1429

    命令10  符号表达式的展开

    函数  expand

    格式  R = expand(S)   %对符号表达式S中每个因式的乘积进行展开计算。该命令通常用于计算多项式函数、三角函数、指数函数与对数函数等表达式的展开式。

    3-9

    >>syms x y a b c t

    >>E1 = expand((x-2)*(x-4)*(y-t))

    >>E2 = expand(cos(x+y))

    >>E3 = expand(exp((a+b)^3)) 

    >>E4 = expand(log(a*b/sqrt(c))) 

    >>E5 = expand([sin(2*t), cos(2*t)])

    计算结果为:

    E1 =

         x^2*y-x^2*t-6*x*y+6*x*t+8*y-8*t

    E2 =

         cos(x)*cos(y)-sin(x)*sin(y)

    E3 =

         exp(a^3)*exp(a^2*b)^3*exp(a*b^2)^3*exp(b^3)

    E4 =

         log(a*b/c^(1/2))

    E5 =

         [ 2*sin(t)*cos(t),    2*cos(t)^2-1]

    命令11  符号因式分解

    函数  factor

    格式  factor(X)   %参量x可以是正整数、符号表达式阵列或符号整数阵列。若X为一正整数,则factor(X)返回X的质数分解式。若x为多项式或整数矩阵,则factor(X)分解矩阵的每一元素。若整数阵列中有一元素位数超过16位,用户必须用命令sym生成该元素。

    3-10

    >>syms a b x y

    >>F1 = factor(x^4-y^4) 

    >>F2 = factor([a^2-b^2, x^3+y^3]) 

    >>F3 = factor(sym('12345678901234567890'))

    计算结果为:

    F1 =

          (x-y)*(x+y)*(x^2+y^2)

    F2 =

         [(a-b)*(a+b),  (x+y)*(x^2-x*y+y^2)]

    F3 =

         (2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541)

    命令12  符号表达式的分子与分母

    函数  numden

    格式  [N,D] = numden(A) 

    说明  将符号或数值矩阵A中的每一元素转换成整系数多项式的有理式形式,其中分子与分母是相对互素的。输出的参量N为分子的符号矩阵,输出的参量D为分母的符号矩阵。

    3-11

    >>syms x y a b c d;

    >>[n1,d1] = numden(sym(sin(4/5))) 

    >>[n2,d2] = numden(x/y + y/x)

    >>A = [a, 1/b;1/c d];

    >>[n3,d3] = numden(A)

    计算结果为:

    n1 =

         6461369247334093

    d1 =

         9007199254740992

    n2 =

         x^2+y^2

    d2 =

        y*x

    n3 =

        [ a, 1]

        [ 1, d]

    d3 =

        [ 1, b]

        [ c, 1]

    命令13  搜索符号表达式的最简形式

    函数  simple

    格式  r = simple(S)   %该命令试图找出符号表达式S的代数上的简单形式,显示任意的能使表达式S长度变短的表达式,且返回其中最短的一个。若S为一矩阵,则结果为整个矩阵的最短形式,而非是每一个元素的最简形式。若没有输出参量r,则该命令将显示所有可能使用的算法与表达式,同时返回最短的一个。

    [r,how] = simple(S)   %没有显示中间的化简结果,但返回能找到的最短的一个。输出参量r为一符号,how为一字符串,用于表示算法。

    3-12

    >>syms x

    >>R1 = simple(cos(x)^4+sin(x)^4)

    >>R2 = simple(2*cos(x)^2-sin(x)^2)

    >>R3 = simple(cos(x)^2-sin(x)^2)

    >>R4 = simple(cos(x)+(-sin(x)^2)^(1/2))

    >>R5 = simple(cos(x)+i*sin(x))

    >>R6 = simple( (x+1)*x*(x-1))

    >>R7 = simple(x^3+3*x^2+3*x+1)

    >> [R8,how] = simple(cos(3*acos(x)))

    计算的结果为:

    R1 =

         1/4*cos(4*x)+3/4

    R2 =

         3*cos(x)^2-1

    R3 =

         cos(2*x)

    R4 =

         cos(x)+i*sin(x)

    R5 =

         exp(i*x)

    R6 =

         x ^3-x

    R7 =

         (x+1)^3

    R8 =

         4*x^3-3*x

    how =

          expand

    命令14  符号表达式的化简

    函数  simplify

    格式  R = simplify(S) 

    说明  使用Maple软件中的化简规则,将化简符号矩阵S中每一元素。

    3-13

    >>syms x a b c

    >>R1 = simplify(sin(x)^4 + cos(x)^4) 

    >>R2 = simplify(exp(c*log(sqrt(a+b))))

    >>S = [(x^2+5*x+6)/(x+2),sqrt(16)];

    >>R3 = simplify(S)

    计算结果为:

    R1 =

         2*cos(x)^4+1-2*cos(x)^2

    R2 =

         (a+b)^(1/2*c)

    R3 =

         [ x+3,   4] 

    命令15  符号矩阵的维数

    函数  size

    格式  d = size(A)       %Am*n阶的符号矩阵,则输出结果d=[mn]

          [m,n] = size(A)    %分别返回矩阵A的行数于m,列数于n

          d= size(A, n)     %返回由标量n指定的A的方向的维数:n=1为行方向,n=2为列方向。

    3-14

    >>syms a b c d

    >>A = [a b c ; a b d; d c b; c b a];

    >>d = size(A)

    >>r = size(A, 2)

    计算结果为:

    d =

         4     3

    r =

         3

    命令16  代数方程的符号解析解

    函数  solve

    格式  g = solve(eq)   %输入参量eq可以是符号表达式或字符串。若eq是一符号表达式x^2 -2*x-1或一没有等号的字符串’x^2-2*x-1’,则solve(eq)对方程eq中的缺省变量(由命令findsym(eq)确定的变量)求解方程eq=0。若输出参量g为单一变量,则对于有多重解的非线性方程,g为一行向量。

    g = solve(eq,var)   %对符号表达式或没有等号的字符串eq中指定的变量var求解方程eq(var)=0

    g = solve(eq1,eq2,,eqn)   %输入参量eq1,eq2,…,eqn可以是符号表达式或字符串。该命令对方程组eq1,eq2,…,eqn中由命令findsym确定的n个变量如x1,x2,…,xn求解。若g为一单个变量,则g为一包含n个解的结构;若g为有n个变量的向量,则分别返回结果给相应的变量。

    g = solve(eq1,eq2,,eqn,var1,var2,,varn)   %对方程组eq1,eq2,…,eqn中指定的n个变量如var1,var2,,varn求解。

    注意:对于单个的方程或方程组,若不存在符号解,则返回方程(组)的数值解。

    3-15

    >>solve('a*x^2 + b*x + c') 

    >>solve('a*x^2 + b*x + c','b') 

    >>solve('x + y = 1','x - 11*y = 5') 

    >>A = solve('a*u^2 + v^2', 'u - v = 1', 'a^2 - 5*a +6')

    计算结果为:

    ans =

    [ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]

    [ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]

    ans =

    -(a*x^2+c)/x

    ans = 

        x: [1x1 sym]

        y: [1x1 sym]

    A = 

        a: [4x1 sym]

        u: [4x1 sym]

        v: [4x1 sym]

    命令17  以共同的子表达式形式重写一符号表达式

    函数  subexpr

    格式  [Y,SIGMA] = subexpr(X,SIGMA)

    [Y,SIGMA] = subexpr(X,'SIGMA') 

    说明  找出符号表达式 X中相同的子表达式,再结合命令pretty(X)将X中相同的、比较复杂的子字符串用符号%1,%2,…代替。而用命令pretty(Y)将X中相同的、比较复杂的子字符串用符号SIGMA代替。

    3-16

    >>t = solve('a*x^3+b*x^2+c*x+d = 0'); 

    >> [r,s] = subexpr(t,'s');

    >>pretty(t)

    >>pretty(r)

    计算结果为:(略)

    命令18  特征多项式

    函数  poly

    格式  p = poly(A)p = poly(A, v) 

    说明  若A为一数值阵列,则返回矩阵A的特征多项式的系数,且有:命令poly(sym(A))近似等于poly2sym(poly(A))。其近似程度取决于舍入误差的大小。若A为一符号矩阵,则返回矩阵A的变量为x的特征多项式。若带上参量v,则返回变量为v的特征多项式。

    3-17

    >>A = hilb(4); 

    >>p = poly(A)

    >>q = poly(sym(A))

    >>s = poly(sym(A),z)

    计算结果为:

    p =

        1.0000   -1.6762    0.2652   -0.0017    0.0000

    q =

        x^4-176/105*x^3+3341/12600*x^2-41/23625*x+1/6048000

    s =

        -176/105*z^3+3341/12600*z^2-41/23625*z+1/6048000+z^4

    命令19  将多项式系数向量转化为带符号变量的多项式

    函数  poly2sym

    格式  r = poly2sym(c)r = poly2sym(c, v)  

    说明  将系数在数值向量c中的多项式转化成相应的带符号变量的多项式(按次数的降幂排列)。缺省的符号变量为x

    若带上参量v,则符号变量用v显示。poly2sym使用命令sym的缺省转换模式(有理形式)将数值型系数转换为符号常数。该模式将数值转换成接近的整数比值的表达式,否则用2的幂指数表示。若x有一数值值,且命令sym能将c的元素精确表示,则eval(poly2sym(c))的结果与polyval(c,x)相同。

    3-18

    >>r1 = poly2sym([1 2 3 4]) 

    >>r2 = poly2sym([.694228, sqrt(2), sin(pi/3)]) 

    >>r3 = poly2sym([1 0 1 -1 2], y)

    计算结果为:

       r1 =

           x^3+2*x^2+3*x+4

       r2 =

           6253049924220329/9007199254740992*x^2+x*2^(1/2)+1/2*3^(1/2)

       r3 =

           y^4+y^2-y+2

    命令20  将复杂的符号表达式显示成我们习惯的数学书写形式

    函数  pretty

    格式  pretty(S)    %用缺省的线型宽度79显示符号矩阵s中每一元素

          pretty(S,n)   %用指定的线型宽度n显示

    3-19

    >>A = sym(pascal(3));

    >>B = eig(A)

    >>pretty(B,50)  % 多看几次结果,会发现该命令显示的特点

    >>syms x

    >>y=log(x)/sqrt(x);

    >>dy = diff(y)

    >>pretty(dy) 

    计算结果为:

    B =

         [         1]

         [ 4+15^(1/2)]

         [ 4 -15^(1/2)]

    [    1    ]

    [         ]

    [      1/2]

    [4 + 15   ]

    [         ]

    [      1/2]

    [4 - 15   ]

    dy =

        1/x^(3/2)-1/2*log(x)/x^(3/2)

     1          log(x~)

    ----  - 1/2   -------

      3/2          3/2

    x~          x~

    命令21  从一符号表达式中或矩阵中找出符号变量

    函数  findsym

    格式  r = findsym(S)   %以字母表的顺序返回表达式S中的所有符号变量(注:符号变量为由字母(除了ij)与数字构成的、字母打头的字符串)。若S中没有任何的符号变量,则findsym返回一空字符串。

    r = findsym(S,n)  %返回字母表中接近xn个符号变量

    3-20

    >>syms a x y z t alpha beta

    >>1 = findsym(sin(pi*t*alpha+beta))

    >>S2 = findsym(x+i*y-j*z+eps-nan)

    >>S3 = findsym(a+y,pi)

    计算结果为;

       S1 =

            pi, alpha, beta, t

       S2 =

           NaN, x, y, z

       S3 =

           a, y

    命令22  函数的反函数

    函数  finverse

    格式  g = finverse(f)   %返回函数的反函数。其中f为单值的一元数学函数,如f=f(x)。若f的反函数存在,设为g,则有g[f(x)] = x。

    g = finverse(f,u)  %若符号函数f中有几个符号变量时,对指定的符号自变量v计算其反函数。若其反函数存在,设为g,则有g[f(v)] = v。

    3-21

    >>syms x p q u v;

    >>V1 = finverse(1/((x^2+p)*(x^2+q))) 

    >>V2 = finverse(exp(u-2*v),u)

    计算结果为:

       Warning: finverse(1/(x^2+p)/(x^2+q)) is not unique.

       > In D:\MATLABR12\toolbox\symbolic\@sym\finverse.m at line 43

       V1 =

           1/2/x*2^(1/2)*(x*(-x*q-x*p+(x^2*q^2-2*x^2*q*p+x^2*p^2+4*x)^(1/2)))^(1/2)

       V2 =

           2*v+log(u)

    命令23  嵌套形式的多项式的表达式

    函数  horner

    格式  R = horner(P)   %P为一符号多项式的矩阵,该命令将矩阵的每一元素转换成嵌套形式的表达式R。

    3-22

    >>syms x y

    >>H1 = horner(2*x^4-6*x^3+9*x^2-6*x-4) 

    >>H2 = horner([x^2+x*y;y^3-2*y])

    计算结果为:

       H1 =

           -4+(-6+(9+(-6+2*x)*x)*x)*x

       H2 =

           [  x^2+x*y]

           [ (-2+y^2)*y]

    命令24  符号表达式求和

    函数  symsum

    格式  r = symsum(s)     %对符号表达式s中的符号变量k(由命令findsym(s)确定的)从0k-1求和

    r = symsum(s,v)    %对符号表达式s中指定的符号变量v0v-1求和

    r = symsum(s,a,b)   %对符号表达式s中的符号变量k(由命令findsym(s)确定的)从ab求和

    r = symsum(s,v,a,b)   %对符号表达式s中指定的符号变量vab求和

    3-23

    >>syms k n x

    >>r1 = symsum(k^3) 

    >>r2 = symsum(k^2-k) 

    >>r3 = symsum(sin(k*pi)/k,0,n) 

    >>r4 = symsum(k^2,0,10) 

    >>r5 = symsum(x^k/sym('k!'), k, 0,inf)   %为使k!通过MATLAB表达式的检验,必须把它作为一符号表达式。

    计算结果为:

    r1 = 

        1/4*k^4-1/2*k^3+1/4*k^2

    r2 =

        1/3*k^3-k^2+2/3*k

    r3 =

         -1/2*sin(k*(n+1))/k+1/2*sin(k)/k/(cos(k)-1)*cos(k*(n+1))-1/2*sin(k)/k/(cos(k)-1)

    r4 =

         385

    r5 =

         exp(x)

    命令25  广义超几何函数

    函数  hypergeom

    格式  hypergeom(n, d, z)   %该命令为广义超几何函数F(n,d,z),即已知的Barnes扩展超几何函数,记做jFk,其中j=length(n),k=length(d)。对于标量a,bchypergeom([a,b],c, z)Gauss超几何函数2F1(a,b;c,z)。

    说明  超几何函数的定义为:,  其中

    3-24

    >>syms a z n

    >>H1 = hypergeom([],[],z)

    >>H2 = hypergeom(1,[],z) 

    >>H3 = hypergeom(1,2,'z') 

    >>H4 = hypergeom([1,2],[2,3],'z')

    >>H5 = hypergeom(a,[],z) 

    >>H6 = hypergeom([],1,-z^2/4)

    >>H7 = hypergeom([-n, n],1/2,(1-z)/2) 

    计算结果为:

    H1 =

         exp(z)

    H2 =

        -1/(-1+z)

    H3 =

        (exp(z)-1)/z

    H4 =

        -2*(-exp(z)+1+z)/z^2

    H5 =

        (1-z)^(-a)

    H6 =

        besselj(0,z)

    H7 =

        hypergeom([n, -n],[1/2],1/2-1/2*z)

  • 相关阅读:
    Android开发-MediaRecorder使用
    ScrollView嵌套ListView只显示一行的解决方法
    Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
    Dialog向Activity传递数据
    Android WebView使用深入浅出
    Android四大基本组件介绍与生命周期
    Java泛型的应用
    Java final关键字特点
    Java static关键字特点
    Java匿名内部类
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2330563.html
Copyright © 2011-2022 走看看