matlab 中double和vpa有啥区别啊?

2024-12-25 23:20:16
推荐回答(2个)
回答1:

vpa精度后得到的是sym型,即符号变量,而符号变量不允许进行逻辑运算。
matlab控制运算精度用的是digits和vpa这两个函数
例如:
>> digits(5);
a=vpa(sqrt(2));
b=vpa(sqrt(3));
>> a>b
??? Undefined function or method 'gt' for input arguments of type 'sym'.
比较大小只能是字符型或者字符型,所以可以这么比较:
>> double(a)>double(b)

ans =

0
逻辑运算同理,例如:
>> a&b
??? Undefined function or method 'and' for input arguments of type 'sym'.

>> double(a)&double(b)

ans =

回答2:

前者是固定精确位数,后者是可以精确到你指定的位数