【MATLAB】符号数学计算(三):符号的精度计算

符号计算的一个非常显著的特点是,由于计算中不会出现舍入误差,从而可以得到任意精度的数值解。

(要计算精确,就要牺牲计算时间和储存空间)

符号工具箱中有三种不同类型的算术运算:

  • 数值类型:MATLAB的浮点算术运算。
  • 有理数类型:Maple的精确符号运算。
  • VPA类型:Maple的任意精度算术运算。

(1)函数命令digits

调用格式:digits(d):调用该函数后的近似解的精度变成d位有效数字。(d的默认值是32)

(2)函数命令vpa

调用格式:vpa(A,d):求符号解A的近似解,该近似解的有效位数由参数d来指定。

(如果不指定d,则按照digits(d)指令设置的有效位数输出)

(3)函数命令double

调用格式:double(A):把符号矩阵或任意精度的表示的矩阵A转换为双精度矩阵。

>> sym x;
>> f=sym('2*x^2+3*x-4');
>> s=solve(f)
 
s =
 
   41^(1/2)/4 - 3/4
 - 41^(1/2)/4 - 3/4
 
>> digits(4)
>> vpa(s)%在不设置vpa第二个参数时,就按照digits设定的来
 
ans =
 
 0.8508
 -2.351
 
>> vpa(s,6)
 
ans =
 
 0.850781
 -2.35078

猜你喜欢

转载自blog.csdn.net/csdn___csdn/article/details/81157501