回 帖 发 新 帖 刷新版面

主题:有个错误,我怎么都检查不出来

subroutine rk(a,b,f,n,y0)
        real*8 a,b,f,y0
    real*8 x,y,x0,h,k1,k2,k3,k4
    integer  i,n
    
    h=(b-a)/n
    x0=a
    do 100 i=1,n
      x=x0+h
      k1=f(x0,y0)
      k2=f(x0+0.5*h,y0+0.5*h*k1)
      k3=f(x0+0.5*h,y0+0.5*h*k2)
      k4=f(x0+h,y0+h*k3)
      y=y0+h*(k1+2*(k2+k3)+k4)/6
      x0=x
      y0=y
      write(*,*)x,y
100    continue

    end
c===============================
    function f(x,y)
    real*8 f,x,y
           f=x-y
    return
    end
c=================================
    program main

    external f
    real*8 a1,b1,y10
    integer n1
            n1=10
        a1=0.0
            b1=1.0
            y10=0.0
    
    
    call rk(a1,b1,f,n1,y10)
    end
            
这是龙格-库塔法求微分方程的程序,编译器提示倒数第二行“call rk(a1,b1,f,n1,y10)”有“匹配错误”。但我觉得是正确的。

回复列表 (共12个回复)

11 楼

lz惹众怒了,还不赶快自爆PP以谢罪

12 楼

哈哈,董兄该不会是在想着“菊花残,满腚伤”吧:)

我来回复

您尚未登录,请登录后再回复。点此登录或注册