有没有办法增加' realmax'在MATLAB?

时间:2015-05-21 20:01:28

标签: matlab

我机器上的realmax是:

  

1.7977e + 308

我知道我必须以避免长整数计算的方式编写代码,但有没有办法增加限制?
我的意思是像C

中的gmp库

1 个答案:

答案 0 :(得分:5)

您可能会发现vpa变量精度算术)有用:

  

R = vpa(A)使用变精度算术(VPA)计算A的每个元素至少d个精度的十进制数字,其中d是当前设置digits

     

R = vpa(A,d)使用至少d个有效(非零)数字,而不是digits的当前设置。

以下是如何使用它的示例:

>> x = vpa('10^500/20')
ans =
5.0e498

请注意:

  • 输出 x属于符号sym)类型。当然,您不应将其转换为double,因为它会超过realmax

    >> double(x)
    ans =
       Inf
    
  • 使用字符串输入以避免将大输入值评估为double。例如,这不起作用

    >> vpa(10^500/20)
    ans =
    Inf
    

    因为10^500被评估为double,提供inf然后被用作vpa的输入。