²é¿´: 1688  |  »Ø¸´: 10

brqhl_ing

Òø³æ (СÓÐÃûÆø)

[½»Á÷] ¡¾ÇóÖú¡¿fortran³ö´í ±àÒëͨ¹ý ÔËÐÐÒç³ö

subroutine  adams(t,h,m,y,n,z,f,d,eps,b,e,s,g,kp1,kp2)
        external f,rkt
        dimension y(n),d(n),z(n,m),b(4,n),e(n),s(n),g(n)
       real*8 kp1,kp2
        a=t
        do 10 i=1,n
10     z(i,1)=y(i)
       call f(t,y,n,d,kp1,kp2)
             do 20 i=1,n
20      b(1,i)=d(i)
        do 50 i=2,4
            if (i.le.m)then
              t=a+(i-1)*h
              call rkt(t,h,y,n,f,eps,d,e,s,g,kp1,kp2)
             do 30 k=1,n
30           z(k,i)=y(k)
             call f(t,y,n,d,kp1,kp2)
               do 40 k=1,n
40            b(i,k)=d(k)
             end if
50      continue
       do 100 i=5,m
             do 60 j=1,n
                   q=55*b(4,j)-59*b(3,j)+37*b(2,j)-9*b(1,j)
                   y(j)=z(j,i-1)+h*q/24.0
                   b(1,j)=b(2,j)
                   b(2,j)=b(3,j)
                   b(3,j)=b(4,j)
60         continue
            t=a+(i-1)*h                 
              call f(t,y,n,d,kp1,kp2)
              do 70 k=1,n
70           b(4,k)=d(k)
                  do 80 j=1,n
                     q=9*b(4,j)+19*b(3,j)-5*b(2,j)+b(1,j)
                     z(j,i)=z(j,i-1)+h*q/24.0
                       y(j)=z(j,i)
80                 continue
              do 90 k=1,n       
90             b(4,k)=d(k)
100     continue
       t=a
       return       
         end
             
                 
                 subroutine rkt(t,h,y,n,f,eps,d,b,c,g,kp1,kp2)
                 dimension y(n),d(n),a(4),b(n),c(n),g(n)
           real*8 kp1,kp2
                 h1=h
                 m=1
                 p=1+eps
                 x=t
                 do 10 i=1,n
10     c(i)=y(i)
20     if (p.ge.eps)then
            a(1)=h1/2.0
               a(2)=a(1)
                a(3)=h1
                a(4)=h1
                do 30 i=1,n
                 g(i)=y(i)
                  y(i)=c(i)
30             continue
               dt=h/m
               t=x
              do 80 j=1,m
                  call f(t,y,n,d,kp1,kp2)
                   do 40 i=1,n
40                b(i)=y(i)
                 do 60 k=1,3
                      do 50 i=1,n
                          y(i)=y(i)+a(k)*d(i)
                         b(i)=b(i)+a(k+1)*d(i)/3.0
50                   continue
                     tt=t+a(k)
                        call f(tt,y,n,d,kp1,kp2)
60                continue
                   do 70 i=1,n
70                    y(i)=b(i)+h1*d(i)/6.0
                    t=t+dt
80             continue
         p=0.0
         do 90 i=1,n
        q=abs(y(i)-g(i))
        if(q.gt.p) p=q
90     continue
          h1=h1/2.0
            m=m+m
            goto 20
       endif
        t=x
        return
        end


        program madams
c     -----------------------------------------------------------------------
c      this rpogram is used to solve a systwem of differential equagtion
c       by using adams method
c      -------------------------------------------------------------------
       external f
        dimension  y(11),d(11),z(11,500000),b(4,11),e(11),s(11),g(11)
        real*8 wucha,kp1,kp2,t,tao,variable,Parameters

      open(26,file='variable.dat')
        open(28,file='Parameters.dat')
      open(10,file='wucha.dat')
        h=0.001d0

        y(1)=0.01d0
        y(2)=0.02d0   
        y(3)=0.03d0

        y(4)=0.4d0
        y(5)=0.2d0   
        y(6)=0.8d0

        y(7)=0.8d0
        y(8)=2.5d0   
        y(9)=0.9d0
        y(10)=6d0
        y(11)=1d0


        m=500000
        n=11
        eps=0.00001d0
      
       do kp1=1.50d0,1.60d0,0.1d0
         do kp2=0.00d0,0.50d0,0.1d0
        call adams(a,h,m,y,n,z,f,d,eps,b,e,s,g,kp1,kp2)
        do i=1,m
           t=(i-1)*h
      detae=((z(1,i)-z(4,i))**2.0+(z(2,i)+z(5,i))**2.0+
     $        (z(3,i)-z(6,i))**2.0)**0.5
   
!     write(26,'(2f15.6)')t,detae
!     write(28,'(6f15.6)')t,z(7,i),z(8,i),z(9,i),z(10,i),z(11,i)
        if(detae>50)then
        write(10,*)kp1,kp2,1
      write(*,*)kp1,kp2,1
        goto 20
        elseif(detae>1.0d-3)then
        tao=t
        endif
        enddo
        if(tao<=50)then
        write(10,*)kp1,kp2,0
      write(*,*)kp1,kp2,0
        else
        write(10,*)kp1,kp2,1
      write(*,*)kp1,kp2,1
        endif
20      continue
       enddo
        enddo
       close(2)
         end


        subroutine f(t,y,n,d,kp1,kp2)
c     ----------------------------------------------------------------------
    !   real*8 kp1,kp2
       dimension  y(n),d(n)
        double precision ex,ey,ez,u1,kp1,kp2
cccccccccccccc
       ex=y(1)-y(4)
         ey=y(2)+y(5)
         ez=y(3)-y(6)

c        u1=ey-ez+y(8)*(y(1)+y(4))*ex-y(10)*(y(1)+y(4))*ey+4d0*y(11)*ez
c        u2=0d0

cc       u1=ey+y(8)*(y(1)+y(4))*ex-y(10)*(y(1)+y(4))*ey
cc       u2=-ex+4d0*y(11)*ex

          u1=ey+y(8)*(y(1)+y(4))*ex-y(10)*(y(1)+y(4))*ey+4d0*y(11)*ez
         u2=-ex
!         do kp1=0.00d0,10.0d0,0.01d0
!         do kp2=0.00d0,10.0d0,0.01d0
    !   kp1=2.0d0
    !  kp2=0.5d0
cccccccccccccc
       d(1)=y(2)-1d0*y(1)**3+3d0*y(1)**2-y(3)+3d0

         d(2)=1d0-5d0*y(1)**2-y(2)

         d(3)=0.006d0*(4d0*(y(1)+1.6d0)-y(3))

cccccccccccccccccccccccc
       d(4)=y(5)-y(7)*y(4)**3+y(8)*y(4)**2-y(6)+3d0+u1

         d(5)=y(9)-y(10)*y(4)**2-y(5)

         d(6)=y(11)*(4d0*(y(4)+1.6d0)-y(6))+u2
cccccccccccccccccccccccccccccccccc

        d(7)=-kp1*kp2*y(1)**3*ex

        d(8)=kp1*kp2*y(1)**2*ex

        d(9)=kp1*kp2*ey

        d(10)=-kp1*kp2*y(1)**2*ey

      d(11)=kp1*kp2*(4d0*(y(1)+1.6d0)-y(3))*ez
  !     enddo
!        enddo
         
        return
        end
¸ßÊÖ¿´¿´ Õâ¸ö³ÌÐò ³ö´íÁË ÎªÊ²Ã´  Òç³öÁË£¡£¡

»Ø¸´´ËÂ¥
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

snoopyzhao

ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)

¡ï
ÓàÔó³É(½ð±Ò+1):лл²ÎÓëÓ¦Öú£¡ 2010-09-15 13:32:14
ÎÒÕâÀïºÜ˳ÀûµØ½áÊøÁ˰¡£¬ºÇºÇ¡­¡­

ÎÒÓà gfortran ±àÒëµÄ¡­¡­
2Â¥2010-09-14 20:22:34
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

maomao1210

½ð³æ (ÕýʽдÊÖ)

¡ï
ÓàÔó³É(½ð±Ò+1):лл²ÎÓëÓ¦Öú£¡ 2010-09-15 13:32:24
do kp1=1.50d0,1.60d0,0.1d0
         do kp2=0.00d0,0.50d0,0.1d0
        call adams(a,h,m,y,n,z,f,d,eps,b,e,s,g,kp1,kp2)
        do i=1,m
           t=(i-1)*h
      detae=((z(1,i)-z(4,i))**2.0+(z(2,i)+z(5,i))**2.0+
     $        (z(3,i)-z(6,i))**2.0)**0.5
   
!     write(26,'(2f15.6)')t,detae
!     write(28,'(6f15.6)')t,z(7,i),z(8,i),z(9,i),z(10,i),z(11,i)
        if(detae>50)then
        write(10,*)kp1,kp2,1
      write(*,*)kp1,kp2,1
        goto 20
        elseif(detae>1.0d-3)then
        tao=t
        endif
        enddo
        if(tao<=50)then
        write(10,*)kp1,kp2,0
      write(*,*)kp1,kp2,0
        else
        write(10,*)kp1,kp2,1
      write(*,*)kp1,kp2,1
        endif
20      continue
       enddo
        enddo

ÔÚÑ­»·µÄʱºò£¬=((z(1,i)-z(4,i))**2.0+(z(2,i)+z(5,i))**2.0+
     $        (z(3,i)-z(6,i))**2.0
ÊÇÒ»¸öÎÞÇî´ó»òÕßÎÞÇîСµÄÊý×Ö£¬cvf²»Ê¶±ð£¬²»Óè¼ÆË㣬¾ÍÌáʾÒç³öÁË¡£

gfortran ±àÒë¼ÆËãµÄʱºò£¬¼´Ê¹ÊÇNaN Ò²»á¼ÌÐø¼ÆËã²»ÌáʾÈκδíÎó¡£
3Â¥2010-09-14 22:22:30
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

snoopyzhao

ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)

ÒýÓûØÌû:
ÔÚÑ­»·µÄʱºò£¬=((z(1,i)-z(4,i))**2.0+(z(2,i)+z(5,i))**2.0+
     $        (z(3,i)-z(6,i))**2.0
ÊÇÒ»¸öÎÞÇî´ó»òÕßÎÞÇîСµÄÊý×Ö£¬cvf²»Ê¶±ð£¬²»Óè¼ÆË㣬¾ÍÌáʾÒç³öÁË¡£

gfortran ±àÒë¼ÆËãµÄʱºò£¬¼´Ê¹ÊÇNaN Ò²»á¼ÌÐø¼ÆËã²»ÌáʾÈκδíÎó¡£

¶àлָ½Ì¡­¡­
4Â¥2010-09-14 22:43:47
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

maomao1210

½ð³æ (ÕýʽдÊÖ)

ÒýÓûØÌû:
Originally posted by snoopyzhao at 2010-09-14 22:43:47:


¶àлָ½Ì¡­¡­

snoopyzhao £¬ºÙºÙ£¬
ÎҲµģ¬ÎÒûÊÔ£¬¹þ¹þ£¬ÔÚËÞÉá²»·½±ãµ÷ÊÔ¡£¹þ¹þ¡£
5Â¥2010-09-14 22:57:57
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

zyj8119

ľ³æ (ÖøÃûдÊÖ)

SQRT·¶Î§´íÎ󣿾ÍÊÇSQRTµÄÊýÖµÀïÃæ³öÏÖÁ˸ºÊý£¿
ºÃºÃѧϰ£¬ÌìÌìÏòÉÏ¡£
6Â¥2010-09-15 08:54:13
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

maomao1210

½ð³æ (ÕýʽдÊÖ)

½¨ÒéÂ¥ÉϵĿ´¿´³ÌÐòÔÙ·¢ÑÔ£¬
ʵÊýµÄƽ·½ºÍÔõô¿ÉÄÜÊǸºÊý¡£
7Â¥2010-09-15 09:07:29
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

brqhl_ing

Òø³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
Originally posted by snoopyzhao at 2010-09-14 20:22:34:
ÎÒÕâÀïºÜ˳ÀûµØ½áÊøÁ˰¡£¬ºÇºÇ¡­¡­

ÎÒÓà gfortran ±àÒëµÄ¡­¡­

ÔËÐнá¹û³öÏÖNAN°¡  ÄãÄÇûÓУ¿
8Â¥2010-09-15 09:22:15
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

brqhl_ing

Òø³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
Originally posted by maomao1210 at 2010-09-14 22:22:30:
do kp1=1.50d0,1.60d0,0.1d0
         do kp2=0.00d0,0.50d0,0.1d0
        call adams(a,h,m,y,n,z,f,d,eps,b,e,s,g,kp1,kp2)
        do i=1,m
           t=(i-1)*h
      detae=((z(1,i)-z(4,i))**2.0+( ...

ÈçºÎ½â¾öÕâ¸öÎÊÌâÄØ
9Â¥2010-09-15 09:23:21
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

maomao1210

½ð³æ (ÕýʽдÊÖ)

¡ï
ÓàÔó³É(½ð±Ò+1):ÐÁ¿à£¡ 2010-09-15 13:33:10
ÒýÓûØÌû:
Originally posted by brqhl_ing at 2010-09-15 09:23:21:

ÈçºÎ½â¾öÕâ¸öÎÊÌâÄØ

΢·Ö·½³Ì×éµÄÄÇÒ»¿éÓеãÎÊÌ⣬
»òÕß ¸ø¶¨½â΢·Ö·½³Ì×éµÄ²ÎÊýÓÐÎÊÌâ¡£
»òÕßÕâ¿éȱÉÙһЩ¾ä×ÓÖ®Àà¡£
¾ßÌåÐèÒªÄã×Ô¼º×ÐϸÅŲ顣¡£¡£¡£
10Â¥2010-09-15 09:48:19
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ brqhl_ing µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[˶²©¼ÒÔ°] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 8rmuugja8q 2026-02-22 7/350 2026-02-23 09:44 by w4l55oybr1
[¿¼ÑÐ] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 khieu8v8m0 2026-02-22 8/400 2026-02-23 09:35 by w4l55oybr1
[ÂÛÎÄͶ¸å] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 khieu8v8m0 2026-02-22 8/400 2026-02-23 09:29 by w4l55oybr1
[¿¼ÑÐ] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +5 usprnugpzw 2026-02-21 11/550 2026-02-23 09:24 by w4l55oybr1
[½Ìʦ֮¼Ò] ΪʲôÖйú´óѧ¹¤¿Æ½ÌÊÚÃÇË®ÁËÄÇô¶àËùνµÄ¶¥»á¶¥¿¯£¬µ«»¹ÊÇ×ö²»³öÓîÊ÷»úÆ÷ÈË£¿ +5 »¶ÀÖËÌÒ¶Ýè 2026-02-21 8/400 2026-02-23 09:19 by »¶ÀÖËÌÒ¶Ýè
[²©ºóÖ®¼Ò] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 khieu8v8m0 2026-02-22 6/300 2026-02-23 07:59 by w4l55oybr1
[²©ºóÖ®¼Ò] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +6 3dfhjxgsh7 2026-02-22 9/450 2026-02-23 07:49 by w4l55oybr1
[¿¼²©] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 khieu8v8m0 2026-02-22 4/200 2026-02-23 06:46 by jsjzfl
[¹«Åɳö¹ú] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 khieu8v8m0 2026-02-22 5/250 2026-02-23 06:29 by w4l55oybr1
[˶²©¼ÒÔ°] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 khieu8v8m0 2026-02-22 8/400 2026-02-23 06:24 by w4l55oybr1
[¿¼²©] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +5 3dfhjxgsh7 2026-02-22 6/300 2026-02-23 02:04 by 5jlh3qtdvx
[½Ìʦ֮¼Ò] °æÃæ·Ñ¸Ã½»Âð +7 Æ»¹ûÔÚÄÄÀï 2026-02-22 8/400 2026-02-22 22:37 by otani
[»ù½ðÉêÇë] ÃæÉÏ¿ÉÒÔ³¬¹ý30Ò³°É£¿ +4 °¢À­¹±aragon 2026-02-22 4/200 2026-02-22 21:22 by ɽÎ÷Ðü¿ÕË¿ÕÐüÎ
[ÂÛÎÄͶ¸å] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +4 usprnugpzw 2026-02-21 6/300 2026-02-22 19:48 by w89i99eaeh
[¿¼ÑÐ] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 3dfhjxgsh7 2026-02-22 4/200 2026-02-22 16:52 by khieu8v8m0
[¹«Åɳö¹ú] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8 O5 51O 54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 usprnugpzw 2026-02-21 4/200 2026-02-22 16:27 by khieu8v8m0
[»ù½ðÉêÇë] ¡°ÈËÎÄÉç¿Æ¶øÂÛ£¬Ðí¶àѧÊõÑо¿»¹Ã»ÓдﵽÃñ¹úʱÆÚµÄˮƽ¡± +4 ËÕ¶«ÆÂ¶þÊÀ 2026-02-18 5/250 2026-02-22 16:07 by liangep1573
[»ù½ðÉêÇë] ʲôÊÇÈËÒ»Éú×îÖØÒªµÄ£¿ +4 ˲ϢÓîÖæ 2026-02-21 4/200 2026-02-22 11:44 by huagongfeihu
[»ù½ðÉêÇë] ½ñÄê´ºÍíÓм¸¸ö½ÚÄ¿ºÜ²»´í£¬µãÔÞ£¡ +11 ˲ϢÓîÖæ 2026-02-16 12/600 2026-02-21 21:14 by lq493392203
[»ù½ðÉêÇë] ÌåÖÆÄÚ³¤±²ËµÌåÖÆÄÚ¾ø´ó²¿·ÖÒ»±²×ÓÔڵײ㣬ÈçͬÄãÃÇÒ»Ñù´ó²¿·ÖÆÕͨ½ÌʦæÇÒÊÕÈëµÍ +9 ˲ϢÓîÖæ 2026-02-20 12/600 2026-02-21 10:39 by »¶ÀÖËÌÒ¶Ýè
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û