FORTRAN数值分析04 numerov算法

这段代码展示了Numerov算法的实现,用于数值求解常微分方程初值问题。程序首先读取初始条件,然后利用CPU时间计算并输出运行时间。尽管未提供完整解释,但可以看出算法的核心部分在于迭代更新变量y。最后,虽然注释提到会对比实际解,但实际比较部分被注释掉了。
摘要由CSDN通过智能技术生成
program numerov
    implicit none
    real f(10000000)
    real y(10000000)
    real reallyy(10000000)
    real,parameter :: h = 0.01
    real w0
    real w1
    real y0
    real dy0
    real yn
    real fn
    real w2
    integer count 
    integer i,j,k,p 
    real time_begin
    real time_end



    write(*,*)'input y0'
    read(*,*) y0
    y(1) = y0 
    
    write(*,*)'input dy0'
    read(*,*) dy0
    y(2) = y(1) + h * dy0

    call cpu_time(time_begin)

    do j = 1,10000000
        f(j) = 1
    end do 
    
    w0 = y0 * (1 + h**2/12 * f(1))
    w1 = y(2) * (1 + h**2/12 * f(2))
    yn = y(2)
    fn = f(1)

    do i=2,10000000
        w2 = 2 * w1 - w0 - h**2 * fn * yn
        fn = f(i)
        yn = w2 / (1 + h**2/12 * fn)
        y(i) = yn 
        w0 = w1
        w1 = w2
    end do 

    call CPU_time(time_end)

    !do k=1,100
        !write(*,*) y(k)
        !reallyy(k) = cos(h*k) + 2 * sin(h*k)
        !write(*,*) abs(reallyy(k) - y(k))
    !end do    
    
    write(*,*)time_end - time_begin
    read(*,*)
end program

上代码,关于numerov算法的话

之后会补上的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

River Chandler

谢谢,我会更努力学习工作的!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值