Matlab 浮点数 相等,Matlab浮点数累加误差

## Matlab浮点数累加误差引起的判断错误

第一次发文,记录一下,用词不当,还望指正。

在使用Matlab的过程中,进行了如下的一次循环,(Q_site=[0,2],sub_Q初始化为1),如果使用(Q_site[1,sub_Q]+0.1==i)直接判断二者是否相等,在i循环至0.5时,由于浮点数累加导致的误差,此时的if值为假,无法进入if语句,从而无法得到后续的正确结果。在浏览了相关博客之后,采用abs(i-(Q_site(1,sub_Q)+0.1))

for i=0:0.1:sum_span

if (abs(i-(Q_site(1,sub_Q)+0.1))<100*eps)&&(i>0)

value_of_shear(1,index)=value_of_shear(1,index-1)-0.1*Q_value(1,(sub_Q+1)/2);

if (Q_site(1,sub_Q)+0.1)+100*eps

Q_site(1,sub_Q)=Q_site(1,sub_Q)+0.1;

digit=digit+1;

else

if sub_Q

sub_Q=sub_Q+2;

end

end

signal=1;

sign=1;

end

end

标签:sub,0.1,浮点数,site,累加,Matlab

来源: https://blog.csdn.net/qq_51143272/article/details/111357257

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值