24小时热门版块排行榜    

查看: 805  |  回复: 8

zouji1983

金虫 (正式写手)

[求助] Fortran error求助

Fortran error: run-time error M6201:MATH-logOMAIN error
我的Log表达式是这样的:
f(x)=1.72992961d9*log(abs(x))-1.72992961d9*log(abs(1-x))-1.182988286d10*(1-2*x)+2.75714286d9*(6*x-6*x**2-1)+3.083731429d9*(24*x**2-10*x-16*x**3+1)-1d11*(xc-phi1*x)/phi2 + 9.229804981d10
X一定不是负数或者0啊,还有什么原因啊?谢谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weiwei43

至尊木虫 (正式写手)

一定是数据超界了,你简单手算一下,看看哪部分超界了。
2楼2012-11-27 11:10:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zouji1983

金虫 (正式写手)

引用回帖:
2楼: Originally posted by weiwei43 at 2012-11-27 11:10:43
一定是数据超界了,你简单手算一下,看看哪部分超界了。

谢谢!不好意思,想问一下,数据超界了是什么意思?
3楼2012-11-27 16:38:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zouji1983

金虫 (正式写手)

引用回帖:
2楼: Originally posted by weiwei43 at 2012-11-27 11:10:43
一定是数据超界了,你简单手算一下,看看哪部分超界了。

怎么检查呢?
4楼2012-11-27 17:01:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

weiwei43

至尊木虫 (正式写手)

引用回帖:
4楼: Originally posted by zouji1983 at 2012-11-27 17:01:59
怎么检查呢?...

整数,实数都是有范围的,超过这个范围就是超界。
一定是你那个计算结果太大了,或者太小了超界了。
你可以把某个值(最好是变量极值)带入表达式,手算一下是不是超界了。
5楼2012-11-28 08:39:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (著名写手)

感谢参与,应助指数 +1
本帖仅楼主可见
6楼2012-11-28 15:35:32
已阅   申请程序强帖   回复此楼   编辑   查看我的主页

zouji1983

金虫 (正式写手)

引用回帖:
6楼: Originally posted by snooper007 at 2012-11-28 15:35:32
你用iIF语句判别啊

谢谢大家的帮助!我的变量X的范围是0.2~0.999,by the way, 怎么用if来判别呢?
7楼2012-11-28 18:01:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (著名写手)

本帖仅楼主可见
8楼2012-11-28 23:33:02
已阅   申请程序强帖   回复此楼   编辑   查看我的主页

zouji1983

金虫 (正式写手)

引用回帖:
8楼: Originally posted by snooper007 at 2012-11-28 23:33:02
变量X的范围是0.2~0.999, 有可能使得log(abs(1-x)出现domain  error
你用双精度试验一下...

但实际上我定义的X就是双精度的实数啊
9楼2012-11-29 21:47:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zouji1983 的主题更新
信息提示
请填处理意见