美文网首页
Fortran傅里叶级数逼近

Fortran傅里叶级数逼近

作者: zoziha | 来源:发表于2020-08-30 11:19 被阅读0次

    1 傅里叶级数逼近

    1.1 Fortran源码

    program main
    
        dimension f(81), a(41), b(41)
        double precision f,a,b,c,h
    
        write(*,*)
        write(*,10)
        10  format(3x,'n',12x,'a(n)',16x,'b(n)')
        h=8*atan(1.)/81.0
        do i=1,81
          c=h*(i-0.5)
          f(i)=c*c
        end do
        n1=41
        n2=81
        call kfour(f,n1,n2,a,b)
        do i=1,n1
          k=i-1
          write(*,40) k,a(i),b(i)
        end do
        write(*,*)
        40  format(1x,i3,5x,d15.6,4x,d15.6)
        call firm(f,a,b)
    
    end program
    subroutine kfour(f,n1,n2,a,b)
    
        dimension f(n2),a(n1),b(n1)
        double precision f,a,b,c,s,t,c1,s1,u1,u2,u0
        real*8,parameter :: PI=4*atan(1.)
    
        t=2*PI/n2
        c=cos(t)
        s=sin(t)
        t=2.0/n2
        c1=1.0
        s1=0.0
            do i=1,n1
                u1=0.0
                u2=0.0
                do j=n2,2,-1
                    u0=f(j)+2.0*c1*u1-u2
                    u2=u1
                    u1=u0
                end do
                a(i)=t*(f(1)+u1*c1-u2)
                b(i)=t*u1*s1
                u0=c*c1-s*s1
                s1=c*s1+s*c1
                c1=u0
            end do
        return
    
    end subroutine
    subroutine firm(f,a,b)
    
        real*8 :: f(81),a(41),b(41),fo(81)
    
        h=8*atan(1.)/81.0
        fo=0
        do i=1,81
            c=h*(i-0.5)
            do j=2,41
                fo(i)=fo(i)+a(j)*cos((j-1)*c)+b(j)*sin((j-1)*c)
            end do
            fo(i)=fo(i)+0.5*a(1)
        end do
    
        do i=1,81
            write(*,100) h*(i-0.5),fo(i),f(i)
    100     format(3(ES12.3E3,2X))
        end do
    
    end subroutine
    

    1.2 对y=x^2进行傅里叶级数逼近

    傅里叶级数逼近1.png

    1.3 对p(t)=2p_{max}e^{-1.4\frac{t}{T}}sin\pi\frac{t}{T}\\ p_{max}\approx1.63\times 10^6\ V_0^{1.1}\ [\ \rm UINT:pa,m/s\ ]进行傅里叶级数逼近

    傅里叶级数逼近2.png

    相关文章

      网友评论

          本文标题:Fortran傅里叶级数逼近

          本文链接:https://www.haomeiwen.com/subject/kohjsktx.html