回 帖 发 新 帖 刷新版面

主题:-SQRT:DOMAIN ERROR的问题

各位老师好!我的程序里有以下这两句:
        ZZ=1.0+THETA*THETA
        ZZ1=SQRT(ZZ)
可知ZZ一定是正数,但是为何在计算ZZ1的时候会出现以下的错误:
run-time error M6201:MATH
-sqrt:DOMAIN error
请各位老师指教!怎么解决这个问题呢??[em18]

回复列表 (共4个回复)

沙发

数值计算,并不等价于理论分析。
学会调试。

板凳

谢谢asymptotic老师,能不能说的详细些啊 

3 楼

看看如下代码在您的编译器中,执行会出现什么问题?其实,你应该学会搜索,将出错信息贴到 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 楼

对无穷大开方不会提示上面那样的错误吧

我来回复

您尚未登录,请登录后再回复。点此登录或注册