数学建模社区-数学中国

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

作者: 森之张卫东    时间: 2015-7-19 22:44
标题: Matlab符号基本运算—2
命令6  符号复数的虚数部分

函数  imag

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

命令7  余弦函数的整函数

格式 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]












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