首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB中的Double类型

MATLAB中的Double类型
EN

Stack Overflow用户
提问于 2017-07-12 03:09:34
回答 1查看 172关注 0票数 0

关于MATLAB的精度,我有两个问题。

1)对于浮点复数来说,双精度的数据类型是否具有最大的位数?

2)如何提高integral()的精度?在我看来,在E+15附近有一个上限(对于很大的数字)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-12 06:17:27

下面是一个比较doublesymbolic/vpa精度的示例脚本:

代码语言:javascript
复制
% Numeric approach
f_numeric = @(z) exp(z.^2);
Out_numeric = integral (f_numeric, 0, 1);

% Symbolic / vpa approach
syms x
f_symbolic(x) = exp(x^2);
Out_symbolic = int (f_symbolic, x, [0,1]);

% Comparison
fprintf('Numeric  : %0.30f\n', Out_numeric)
fprintf('Symbolic : %s\n'    , char   (vpa (Out_symbolic, 32)))
fprintf('Converted: %0.30f\n', double (vpa (Out_symbolic, 32))) % back to double

我机器上的输出(eps = 2.2204e-16):

代码语言:javascript
复制
Numeric  : 1.462651745907181499717353290180
Symbolic : 1.462651745907181608804048586857
Converted: 1.462651745907181499717353290180

更一般地说:

代码语言:javascript
复制
>> fprintf(' %0.32f\n %s\n', 1/3, char (vpa ('1/3', 32)))
 0.33333333333333331482961625624739
 0.33333333333333333333333333333333
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45042736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档