数学建模社区-数学中国

标题: Matlab符号基本运算—5 [打印本页]

作者: 森之张卫东    时间: 2015-7-20 19:14
标题: Matlab符号基本运算—5
命令21  从一符号表达式中或矩阵中找出符号变量
函数  findsym
格式  r = findsym(S)
  %以字母表的顺序返回表达式S中的所有符号变量(注:符号变量
为由字母(除了i与j)与数字构成的、字母打头的字符串)。若S中没有任何的符号变量,
则findsym返回一空字符串。
r = findsym(S,n)  %返回字母表中接近x的n个符号变量
例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=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)确定的)
从0到k-1求和
r = symsum(s,v)    %对符号表达式s中指定的符号变量v从0到v-1求和
r = symsum(s,a,b)   %对符号表达式s中的符号变量k(由命令findsym(s)确定的)
从a到b求和
r = symsum(s,v,a,b)   %对符号表达式s中指定的符号变量v从a到b求和
例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,b与c,hypergeom([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)






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5