24小时热门版块排行榜    

查看: 3050  |  回复: 15
当前主题已经存档。

guoguoxia

铜虫 (初入文坛)

[交流] 【求助】matlab里两个相等的数相减为什么不等于0呢

自己编了一个小程序,调试时一个本应该为零的结果总是不等于零。认真检查中间的过程,没有发现错误。最后把每一个数拆开发现,运算中两个表达式计算出来的结果完全相等,但是它俩的差值却不等于零。请问这是什么原因造成的。这两个数都是通过矩阵中的元素运算得出来的。另:我将俩数相除,结果等于1。
MATLAB接触不多,还请各位帮忙解答一下,谢谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
wuguocheng(金币+1,VIP+0): 谢谢参与讨论 9-7 14:20
Could you please post your code here?
2楼2009-09-07 11:00:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sitonyl

铁杆木虫 (文坛精英)

★
wuguocheng(金币+1,VIP+0): 我想也是这样的 9-7 14:20
计算精度问题。
zz
3楼2009-09-07 11:13:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guoguoxia

铜虫 (初入文坛)

程序比较长,数据也很多,截其中一部分吧,具体数据就不写出来了
就是很简单的矩阵运算,求解一个四元方程,得到的解回带回去就不等于0.

     b(1,1)=-U1(1,5);                                                         
     b(2,1)=-U12(1,5);                                                        
     b(3,1)=-U123(1,5);                                                      
     b(4,1)=-U123(3,5);                                                      
                                                                              
                                                                              
     A(1,1)=U1(1,2);                                                         
     A(2,1)=U12(1,2);                                                         
     A(3,1)=U123(1,2);                                                        
     A(4,1)=U123(3,2);                                                        
                                                                              
     A(1,2)=U1(1,4);                                                         
     A(2,2)=U12(1,4);                                                         
     A(3,2)=U123(1,4);                                                        
     A(4,2)=U123(3,4);                                                        
                                                                              
     A(2,3)=U2(1,4);                                                         
     A(3,3)=U3(1,1)*U2(1,4)+U3(1,2)*U2(2,4)+U3(1,3)*U2(3,4)+U3(1,4)*U2(4,4);  
     A(4,3)=U3(3,1)*U2(1,4)+U3(3,2)*U2(2,4)+U3(3,3)*U2(3,4)+U3(3,4)*U2(4,4);  
                                                                              
     A(3,4)=U3(1,4);                                                         
     A(4,4)=U3(3,4);                                                         

     X1=A\b;   

     XL(1,1)=A(3,1)*X1(1,1)+A(3,2)*X1(2,1)+A(3,3)*X1(3,1)+A(3,4)*X1(4,1)-b(3,1)

涉及到的就是这一小部分,都是很简单的运算。
XL(1,1)应该等于0,但结果却不是。
单独计算了A(3,1)*X1(1,1)+A(3,2)*X1(2,1)+A(3,3)*X1(3,1)+A(3,4)*X1(4,1)和b(3,1),两者结果相等,但是相减后就不等于0了。

情况就是这样的,非常简单的情况,但是却一直得不到正确结果。谢谢解答!
4楼2009-09-07 11:14:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guoguoxia

铜虫 (初入文坛)

★
kuhailangyu(金币+1,VIP+0):欢迎常来 9-9 11:07
应该不单纯是精度问题,因为实应为0的差值,却是一个和原数差不多数量级的很大的数
5楼2009-09-07 11:17:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
wuguocheng(金币+1,VIP+0): 谢谢你的细心解答 9-7 14:21
MATLAB如何定义变量类型的我不是很清楚。如果在FORTRAN里遇到类似的问题,则很可能上是在不同的程序段(如子程序和主程序之间)对应变量的类型定义不同所致。
6楼2009-09-07 14:09:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aaron1988

木虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
wuguocheng(金币+2,VIP+0): 谢谢 9-8 21:59
eps问题...(help eps能查到)
因为matlab用的是floating point.....默认的是eps=2.26e-16
也就是说实际上的1跟电脑储存的1的差距
你可以试下1+eps-1等于什么...................................(2.26e-16)
但是2+eps-2等于..................................................(0)
因为对2来说他的eps是eps(2)=2*eps>eps...
当我们计算a+b要是b是小于a的eps的话...我们可以做a+b=a来看(b=0)
就好象我们平时做计算的时候,要是a>>b的话...那么a+b约等于a
7楼2009-09-08 21:34:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snipher950

木虫 (正式写手)

★
wuguocheng(金币+1,VIP+0): 谢谢参与交流 10-23 09:34
确实就是精度问题。
8楼2009-09-08 21:42:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

eleleme

新虫 (初入文坛)

★
wuguocheng(金币+1,VIP+0): 谢谢参与交流 10-23 09:34
计算精度问题
9楼2009-09-09 09:22:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

猎手传奇

木虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+1,VIP+0):谢谢交流!欢迎常来。 10-23 09:32
wuguocheng(金币+1,VIP+0): 谢谢参与交流 10-23 09:34
你可以看看这两个数的数量级,有可能是在小数点后很多位才能看出来差距。而单独显示的只是前几位。
10楼2009-10-23 09:23:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 guoguoxia 的主题更新
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[职场人生] 40+中年人失业后,还能找到好工作吗? +9 xqy2009 2026-10-13 11/550 2026-10-15 16:37 by beefly
[有机交流] 用NBS溴化时溶剂除了CCl4外还有什么 +3 18834002860 2026-10-12 6/300 2026-10-15 14:30 by 长沙摩尔信息科�
[基金申请] 申请科研项目纯靠实力能成功吗? 200+7 David1982 2026-10-13 11/550 2026-10-15 10:30 by zyqchem
[硕博家园] 极限拉扯,如何抉择 +11 Isak0320 2026-10-12 15/750 2026-10-14 21:55 by 猫鱼不是鱼
[论文投稿] 二审4个多月了还是Awaiting Reviewer Scores 10+3 纳斯达克ML 2026-10-11 4/200 2026-10-14 17:30 by babero
[有机交流] OpenAI又攻克数学难题了,离AI做有机合成还有多远? +8 wangyl_123 2026-10-10 13/650 2026-10-14 15:12 by zuesli
[教师之家] 课题组会帮你通过考核么? +4 好运来~9527 2026-10-10 7/350 2026-10-13 08:41 by xli1984
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:34 by XQNyDCa1Tk5n
[公派出国] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:26 by XQNyDCa1Tk5n
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:15 by XQNyDCa1Tk5n
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 22:11 by XQNyDCa1Tk5n
[教师之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:06 by XQNyDCa1Tk5n
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 14:25 by VOMexwnDzOFZ
[教师之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 (EPI+-1)(金币-50) +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 14:05 by VOMexwnDzOFZ
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:51 by VOMexwnDzOFZ
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:45 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:54 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:34 by VOMexwnDzOFZ
[考博] 招收博士生一名 +3 mandolin 2026-10-10 3/150 2026-10-11 10:21 by 不是山谷!
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 qR2AdCWTVtkw 2026-10-09 4/200 2026-10-11 03:14 by M0zrYVSAnxpE
信息提示
请填处理意见