matlab中计算exp(800)出现inf,怎麼解决这个问题?

试了一下,exp(709)还可以算出结果8.2184e+307来,到exp(710)就开始显示inf。这是什麽问题?要怎麼解决?

第1个回答  2011-03-22
数值太大,溢出了数据的存储长度。建议先将比较大的数除以一个比较大的数,后面再乘回来。
第2个回答  2011-03-22
假如要算exp(800),先用MATLAB算出exp(709)=8.2184e+307,exp(91)=3.3174e+039,在用笔算把两数乘起来,就算出exp(800)=(8.2184*3.3174)e+346
第3个回答  2011-03-23
太大了,已经超出double型的表示范围了,要不用符号表示
vpa('exp(800)')追问

像這種太大的數據,有別的數據類型可以存儲么?

本回答被提问者采纳
第4个回答  2011-03-23
参数太大了,溢出了,exp(400)*exp(400)分别算。
相似回答