主题:-SQRT:DOMAIN ERROR的问题
whero_2000
[专家分:0] 发布于 2010-04-16 21:01:00
各位老师好!我的程序里有以下这两句:
ZZ=1.0+THETA*THETA
ZZ1=SQRT(ZZ)
可知ZZ一定是正数,但是为何在计算ZZ1的时候会出现以下的错误:
run-time error M6201:MATH
-sqrt:DOMAIN error
请各位老师指教!怎么解决这个问题呢??[em18]
回复列表 (共4个回复)
沙发
asymptotic [专家分:16630] 发布于 2010-04-16 23:26:00
数值计算,并不等价于理论分析。
学会调试。
板凳
whero_2000 [专家分:0] 发布于 2010-04-17 13:33:00
谢谢asymptotic老师,能不能说的详细些啊
3 楼
asymptotic [专家分:16630] 发布于 2010-04-17 16:44:00
看看如下代码在您的编译器中,执行会出现什么问题?其实,你应该学会搜索,将出错信息贴到 Google 就会出来一大堆相似的提问。
program main
implicit none
real:: x, y, z
x = 2.5E30
y = 1.0 + x * x
z = sqrt(y)
write(*, *) z
y = -1.0
z = sqrt(y)
write(*, *) z
stop
end program main
4 楼
wangxn06 [专家分:0] 发布于 2010-07-01 21:21:00
对无穷大开方不会提示上面那样的错误吧
我来回复