Fortran Coder

查看: 7828|回复: 6
打印 上一主题 下一主题

[微积分] 用泰勒展开式计算E**x的值

[复制链接]

23

帖子

9

主题

0

精华

熟手

F 币
124 元
贡献
79 点
跳转到指定楼层
楼主
发表于 2014-11-26 08:53:46 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
大家好,请教的问题如下:
{e}^{x}=1+x+\frac{{x}^{2}}{2!}+\frac{{x}^{3}}{3!}+\frac{{x}^{4}}{4!}+...
计算上面的问题,我写的代码如下:

[Fortran] 纯文本查看 复制代码
      PROGRAM MAIN
      IMPLICIT NONE
      REAL X,S
      INTEGER*8 N
      INTEGER I
      INTEGER,EXTERNAL :: FACT
      READ(*,*) N
      READ(*,*) X
      S=0
      DO 10 I=2,N
      S=S+X**I/FACT(I)
      WRITE(*,*) I,FACT(I),X**I,
10     CONTINUE
      S=S+X+1
      WRITE(*,*) S
      END
      RECURSIVE INTEGER FUNCTION FACT(N) RESULT(ANS)
      IMPLICIT NONE
      INTEGER,INTENT(IN) :: N
      IF(N>1) THEN
      ANS=N*FACT(N-1)
      RETURN
      END IF
      ANS=1
      RETURN
      END


出现的问题是:计算中fact(阶乘项)的值出现溢出的情况,这种问题如何解决呢?
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

23

帖子

9

主题

0

精华

熟手

F 币
124 元
贡献
79 点
沙发
 楼主| 发表于 2014-11-26 09:58:17 | 显示全部楼层
楚香饭 发表于 2014-11-26 09:19
分子分母都趋于无穷大,分母具有更高阶的无穷大,这种时候你可以用一个临时变量来取其商。例如下面代码的 t ...

多谢 多谢了!!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-7 09:16

Powered by Tencent X3.4

© 2013-2024 Tencent

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