数学建模社区-数学中国

标题: 可变精度算法简介 [打印本页]

作者: 森之张卫东    时间: 2015-7-26 19:25
标题: 可变精度算法简介
命令1  可变精度算法
函数  vpa
格式  R = vpa(A)   %用可变精度算法来计算A中的每一元素,使其成为有d位精确度的十进制数。其中d为命令digits设置的当前位数。R中的每一元素为一符号表达式。
R = vpa(A,d)或R = vpa A d   %用参量d指定的位数(而非命令digits设置的位数)来表示A中的每一元素。R中的每一元素为一符号表达式。
例3-58
>>digits(25)
>>q = vpa(sym(sin(pi/6)))
>>p = vpa(pi)
>>gold_ratioi = vpa('(sqrt(5)-1)/2')
>>vpa pi 75
>>A = vpa(gallery(5),8)
>>B = vpa(hilb(3),5)
计算结果为:
q =
    .5000000000000000000000000
p =
    3.141592653589793238462643
gold_ratioi =
          .6180339887498948482045870
ans =
     3.14159265358979323846264338327950288419716939937510582097… 494459230781640629
A =
    [     -9.,     11.,    -21.,     63.,   -252.]
    [     70.,    -69.,    141.,   -421.,   1684.]
    [   -575.,    575.,  -1149.,   3451., -13801.]
    [   3891.,  -3891.,   7782., -23345.,  93365.]
    [   1024.,  -1024.,   2048.,  -6144.,  24572.]
B =
    [     1., .50000, .33333]
    [ .50000, .33333, .25000]
    [ .33333, .25000, .20000]

命令2  符号表达式的C语言代码

函数  ccode
格式  ccode(s)   %返回C语言的、用于计算符号表达式s的语句段落
例3-59
>>syms x
>>s = taylor(exp(x));
>>ccode(s)
计算结果为:
ans =
      t0 = 1.0+x+x*x/2.0+x*x*x/6.0+x*x*x*x/24.0+x*x*x*x*x/120.0;
注:t0为 在x=0附近的计算公式(Taylor展式)。






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