matlab中epsilon,MATLAB – 计算机器epsilon

首先,在MATLAB中没有do关键字这样的东西,所以从你的代码中消除它.另外,不要将

eps用作实际变量.这是MATLAB中预定义的函数,它计算

machine epsilon,这也是您尝试计算的函数.通过创建一个名为eps的变量,您可以隐藏实际函数,因此MATLAB中需要使用它的任何其他函数都会出现意外行为,而这不是您想要的.

使用别的东西,比如macheps.此外,您的算法略有不正确.您需要在while循环中检查1.0(macheps / 2),而不是1.0 macheps.

换句话说,这样做:

macheps = 1;

while 1.0 + (macheps/2) > 1.0

macheps = macheps / 2;

end

这应该给你2.22 x 10 ^ { – 16},如果你在命令提示符下键入eps,它与MATLAB一致.要仔细检查:

>> format long

>> macheps

macheps =

2.220446049250313e-16

>> eps

ans =

2.220446049250313e-16

奖金

如果你不知道,机器epsilon是由浮点运算引起的相对误差的上限.换句话说,这将是真实浮点数与计算机上计算的最大差值之间的最大差异,因为用于存储浮点数的位数有限.

如果你还记得,浮点数不可避免地在你的计算机上表示为二进制位(或几乎任何数字).就IEEE 754 floating point standard而言,MATLAB假设所有数值都是double类型,它表示浮点数为64位.显然,您可以通过显式转换为其他类型来覆盖此行为.对于IEEE 754浮点标准,对于双精度类型数字,有52位代表数字的小数部分.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值