你现在的位置:

求助大神!!!fortran 牛顿迭代法亦可用于求方程的复根,试用复数算法编程计算实根和复根

来源:志趣文摘     时间: 2019-08-22
program Newton_iteration
IMPLICIT COMPLEX (C,Z)
DIMENSION ZO(50),LG(50)
WRITE(*,*)'A,B,H,EPS'
READ(*,*) A,B,H,EPS
CALL NEWTON(A,B,H,EPS,FX,FD,NR,ZO,LG)
DO 20 I=I,NR
20 WRITE(*,30)I,ZO(I),LG(I)
30 FORMAT(1X,I3,2F15.7,8X,I3)
END
SUBROUTINE CFUN(Z,FX,FD)
IMPLICIT COMPLEX (C,Z)
FX=Z*Z*Z-Z-1
FD=3*Z*Z-1
RETURN
END
SUBROUTINE NEWTON(A,B,H,EPS,FX,FD,NR,ZO,LG)
IMPLICIT COMPLEX (A-H,O-Z)
DIMENSION ZO(50),LG(50)
NR=0
Z=A-H
CALL CFUN(Z,YB,FD)
IF (CABS(YB).LE.1.0D-14) GO TO 20
10 Z=Z+H
IF (CABS(Z).GT.CABS(B+H)) RETURN
YA=YB
CALL CFUN(Z,YB,FD)
IF (CABS(YB).LE.1.0D-14) GO TO 20
IF(CABS(YB*YA).GT.0.0) GO TO 10
ZA=Z-H
ZB=Z
IT=0
Z=0.5*(ZA+ZB)
15 Z0=Z
CALL CFUN(Z,FX,FD)
Z=Z-FZ/FD
IT=IT+1
IF(IT.LE.30.AND.CABS(Z-ZO).GT.CABS(Z)*EPS) GO TO 15
20 NR=NR+1
ZO(NR)=Z
IF(ZO(NR).EQ.ZO(NR-1).AND.NR.NE.1) NR=NR-1
GO TO 10
END
Compiling Fortran...
E:\aa\aa\aa.f90
E:\aa\aa\aa.f90(46) : Error: This binary operation is invalid for this data type.
IF(IT.LE.30.AND.CABS(Z-ZO).GT.CABS(Z)*EPS) GO TO 15
---------------------------------------------^
E:\aa\aa\aa.f90(46) : Error: A scalar-valued expression is required in this context.
IF(IT.LE.30.AND.CABS(Z-ZO).GT.CABS(Z)*EPS) GO TO 15
-------------------^
Error executing df.exe.
aa.exe - 2 error(s), 0 warning(s)
应该怎么改,如果看不下去,发份子程序也行错误提示是CABS( ),可能是数组也可能是函数。
如果是数组需要先定义,需要赋值。
如果是函数,也需要用external声明。
如果这是改动后的程序,建议去改动前的源程序搜一下CABS。

每一节课的时间为45分钟. ※please tell us the truth at length.
每一节课的时间为45分钟. ※please tell us the truth at length.

in arabic countries,you must be careful with your ______. a.
in arabic countries,you must be careful with your ______. a.

in japan,people use landmarks(路标)instead of street names.
in japan,people use landmarks(路标)instead of street names.

there were fallen trees, broken windows and rubbish everywhere i
there were fallen trees, broken windows and rubbish everywhere i

[变形金刚塞伯坦之战|transformers the war for cybertron|prophet免
[变形金刚塞伯坦之战|transformers the war for cybertron|prophet免

错误提示是CABS( ),可能是数组也可能是函数。
如果是数组需要先定义,需要赋值。
如果是函数,也需要用external声明。
如果这是改动后的程序,建议去改动前的源程序搜一下CABS。

错误提示是CABS( ),可能是数组也可能是函数。
如果是数组需要先定义,需要赋值。
如果是函数,也需要用external声明。
如果这是改动后的程序,建议去改动前的源程序搜一下CABS。

上一篇:
下一篇: