爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 20299|回复: 22

[求助] fortran中的立方根怎么算?

[复制链接]

新浪微博达人勋

发表于 2012-5-8 22:59:33 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
          急急急!大家快来可怜可怜我呀,我算x的立方根,按理说,我写的是x**(1.0/3.0),可是结果就是出不来呀{:soso_e135:},
快把我急坏了,出现的错误就是这样 360截图20120504103534046.jpg ,求高手呀!!!
360截图20120504105106062.jpg
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-5-8 23:25:49 | 显示全部楼层
本帖最后由 cnphoenix 于 2012-5-8 23:26 编辑

用 ( 1.0/3.0 ) 表示1/3
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-5-8 23:36:34 | 显示全部楼层
本帖最后由 言深深 于 2012-5-8 23:37 编辑

楼上有理1/3是整型运算,直接变成0,1.0/3就可以了。
不过楼主的问题,彷佛不在这儿,你的问题在于开根号的里面出现不大于0的数。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-5-8 23:56:42 | 显示全部楼层
搂住能输出这句话每个变量的数值出来看下么,一次的即可
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-5-9 09:28:17 | 显示全部楼层
编程警示:永远不要试图对一个负数进行实数幂运算。

楼主的问题我个人认为:先加一个判断,如果底数大于零,就用 exp(1.0/3*log(real(。。。)))来代替原来的语句;如果底数小于零,则在前面加负号,即 -exp(1.0/3*log(abs(real(。。。))))
’。。。‘为你括号里的东西

你自己试试,希望起作用
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-5-9 09:37:42 | 显示全部楼层

抛开他的环境不说,判断加负号还不如直接用abs求绝对值呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-5-9 10:22:40 | 显示全部楼层
mofangbao 发表于 2012-5-9 09:37
抛开他的环境不说,判断加负号还不如直接用abs求绝对值呢

直接加绝对值会影响结果吧,负数开立方是负的啊?这个怎么解决?请教啦
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2012-5-9 10:34:14 | 显示全部楼层
残月 发表于 2012-5-9 10:22
直接加绝对值会影响结果吧,负数开立方是负的啊?这个怎么解决?请教啦

额。。。我错了,哈哈

点评

那方法我试验过了,肯定能用,估计有点繁琐,哈哈,还有估计计算量要比整数幂的多很多,精度也低,也是没办法的事,至少我不知道怎么解决,呵呵,请教清风了 ,哈哈。  发表于 2012-5-9 10:38
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2012-5-9 17:34:23 | 显示全部楼层
两种方法:一、可以试试将(1.0/3.0),直接取为0.333,你可以自己调整保留位数,只要精度在可以接受的范围内。
二、麻烦一点,需要专门编个子程序,但是也比较简单。假设一个数x,x的立方是要开根的数,x即为要求的数,设定x的步长为0.001,或者其他,根据你对结果精度的要求,立方之后,求差,差在一个你设定的范围内,此时x即为结果。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 0
发表于 2012-5-9 17:39:04 | 显示全部楼层
虫儿飞 发表于 2012-5-9 17:34
两种方法:一、可以试试将(1.0/3.0),直接取为0.333,你可以自己调整保留位数,只要精度在可以接受的范围内 ...

哈哈,你的方法是数值方法求解方程的吧?这样的话如果保持高精度,计算机过程可能比较长
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表