如图所示的 差分方程,用FORTRAN 程序代码如何写 返回小木虫查看更多
公式都有了,还写不出来,只能说你不会用fortran,其实我也不会哈哈
下面的语句用的中心差分,把一阶导数、二阶导数都写成了差分格式。 DO I=2,N-1 HX(I)=(H1(I+1)-H1(I-1))/(2*DX) ENDDO HX(1)=0 HX(N)=0 DO I=2,N-1 H2X(I)=(H1(I+1)-2*H1(I)+H1(I-1))/(DX*DX) ENDDO H2X(1)=0 H2X(N)=0
program Ne integer :: I,J, N, Ny real:: ne(J) real:: Hx(I) N=1000 Ny=1000 Dx=0.1 Dt=0.1 n0=5E+2 m=2.1 p=2 Te=5 q=0.6E-19 E=2 k=0.514E-9 v=n0*k Hx(0)=sqrt(8*Te/pm)*ne*(1-0.25) Hx(I)=-(q/m*v)*E(ne/(1-exp(q*E*Dx/Te)+ne/(1-exp(-q*E*Dx/Te)) open (unit=10,FILE='1.txt') DO I=2,N-1 DO J=2,Ny-1 HX(I)=(H1(I+1)-H1(I-1))/(2*DX) ne(J)=(ne(J+1)-ne(J-1))/(2*Dt) ne(J)=Hx(I)+R end do end do write (10,"('N=?,Ny=?')") ne(I) stop end 这个程序,
上面的程序错误在那里?
公式都有了,还写不出来,只能说你不会用fortran,其实我也不会哈哈
有公式和写代码是两回事。
下面的语句用的中心差分,把一阶导数、二阶导数都写成了差分格式。
DO I=2,N-1
HX(I)=(H1(I+1)-H1(I-1))/(2*DX)
ENDDO
HX(1)=0
HX(N)=0
DO I=2,N-1
H2X(I)=(H1(I+1)-2*H1(I)+H1(I-1))/(DX*DX)
ENDDO
H2X(1)=0
H2X(N)=0
program Ne
integer :: I,J, N, Ny
real:: ne(J)
real:: Hx(I)
N=1000
Ny=1000
Dx=0.1
Dt=0.1
n0=5E+2
m=2.1
p=2
Te=5
q=0.6E-19
E=2
k=0.514E-9
v=n0*k
Hx(0)=sqrt(8*Te/pm)*ne*(1-0.25)
Hx(I)=-(q/m*v)*E(ne/(1-exp(q*E*Dx/Te)+ne/(1-exp(-q*E*Dx/Te))
open (unit=10,FILE='1.txt')
DO I=2,N-1
DO J=2,Ny-1
HX(I)=(H1(I+1)-H1(I-1))/(2*DX)
ne(J)=(ne(J+1)-ne(J-1))/(2*Dt)
ne(J)=Hx(I)+R
end do
end do
write (10,"('N=?,Ny=?')") ne(I)
stop
end
这个程序,
上面的程序错误在那里?