能用fortran语言,用numerov算法写个解微分方程的例子吗
3条回答 默认 最新
- CSDN专家-深度学习进阶 2022-04-27 08:55关注
y''-y=x,(0<x<1,y(0)=0,y(1)=1)
IMPLICIT DOUBLE PRECISION(A-H,O-Z) DIMENSION RL(1:10000),A(1:10000),B(1:10000),C(1:10000),U(1:10000),RM(1:10000),F(1:10000),X(0:10000),Y(0:10000),P(1:10000) OPEN(3,FILE='IN.TXT') OPEN(1,FILE='OUT') READ(3,*)N,A1,B1 H=(B1-A1)/N DO I=0,N X(I)=A1+I*H END DO DO I=2,N-1 A(I)=1-(H**2)/12 END DO DO I=1,N-1 B(I)=-2*(1+5/12*(H**2)) END DO DO I=1,N-2 C(I)=1-(H**2)/12 END DO F(1)=(H**2)/12*(X(0)+10*X(1)+X(2)) F(N-1)=(H**2)/12*(X(N-2)+10*X(N-1)+X(N))-(1-(H**2)/12) DO I=2,N-2 F(I)=(H**2)/12*(X(I-1)+10*X(I)+X(I+1)) END DO DO I=2,N-1 RM(I)=A(I) END DO RL(1)=B(1) U(1)=C(1)/RL(1) DO I=2,N-1 RL(I)=B(I)-RM(I)*U(I-1) U(I)=C(I)/RL(I) END DO P(1)=F(1)/RL(1) DO I=2,N-1 P(I)=(F(I)-RM(I)*P(I-1))/RL(I) END DO Y(N-1)=P(N-1) DO I=2,N-1 Y(N-I)=P(N-I)-U(N-I)*Y(N-I+1) END DO W=2*(EXP(X(N-1000))-EXP(-X(N-1000)))/(EXP(1.000)-EXP(-1.000))-X(N-1000) !和解析解作对比 PRINT*,Y(N-1000),W END
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用