±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 2894  |  »Ø¸´: 20

kimileegdut

¾èÖú¹ó±ö (СÓÐÃûÆø)

[ÇóÖú] Äæ¾ØÕóÔËËã ÒÑÓÐ2È˲ÎÓë

ÇóÖú¸÷λ´óÉñ£¬±¾ÈË×î½üÔÚ±àдһ¸ö³ÌÐò£¬Éæ¼°µ½Äæ¾ØÕóÔËË㣬¶øÇÒ¾ØÕóάÊýºÜ´ó£¨100*100£©£¬²ÉÓÃÁËÎ÷¶ûÂü-ĪÀïÉú¹«Ê½ÇóÄæ¾ØÕ󣬵«ÊǺóÐø¼ÆËã½á¹ûÓÐÎó£¬ÓÚÊÇÑéËãÄæ¾ØÕóµÄÕýÎ󣬷¢ÏÖÔ­À´µÄ¾ØÕóºÍÄæ¾ØÕóÏà³Ë²»Îªµ¥Î»Õó£¬ÏëÇë½Ìһϸ÷λǰ±²£¬ÕâÖÖÇé¿öÇóÄæ¾ØÕóÓ¦¸ÃÔõô´¦Àí£¿
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
»ØÌûÖ§³Ö ( ÏÔʾ֧³Ö¶È×î¸ßµÄǰ 50 Ãû )

pippi6

Ìú¸Ëľ³æ (ÖøÃûдÊÖ)

¹¤³ÌºÍ¿ÆÑ§ÊýÖµ¼ÆËã×Éѯ

ÎÒÊÔÁËһϣ¬gaussr_inverse Ó¦¸Ã¹¤×÷¡£ Äæ¾ØÕóºÍÔ­¾ØÕóµÄ³Ë»ýÓ뵥λ¾ØÕóµÄ×î´ó²îֵΪ  2.442490654175344E-015¡£


subroutine  InverseMatrix
  implicit none
  integer, parameter :: nn=100,m=20
  integer :: i,j,k,imax,jmax
  real*8,dimension(nn,nn) :: a,b,c,e
  real*8 :: s,dm,d

  open(20,file='coeff.dat')
  read(20,*) a
  close(20)
  b=a

  ! e us unit matrix
  e=0
  do i=1,nn
     e(i,i)=1
  end do
  c=e

  ! c is inversed matrix
  call gaussr_inverse(b,nn,nn,c,nn,nn)

  ! b=a*c, and check if maximal derivation from unit matrix e

  dm=0
  do i=1,nn
     do j=1,nn
        s=0
        do k=1,nn
           s=s+a(i,k)*c(k,j)
        end do
        b(i,j)=s

        d=b(i,j)-e(i,j)
        if(abs(d) > abs(dm) ) then
           dm=d
           imax=i
           jmax=j
        end if
     end do
  end do

  ! print first 20x20 sub-block of b just to get a sense
  write(6,1) b(1:m,1:m)
1 format('b='/(<m>e11.3))

  print*,' imax=',imax,' jmax=',jmax,' dm=',dm
  print*,' b(imax,jmax)=',b(imax,jmax)
!  print*,' a(nn,nn)=',a(nn,nn)
!  print*,' a(nn-1,nn)=',a(nn-1,nn)

end subroutine InverseMatrix

» ±¾ÌûÒÑ»ñµÃµÄºì»¨£¨×îÐÂ10¶ä£©

8Â¥2015-05-13 21:27:12
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
ÆÕͨ»ØÌû

pippi6

Ìú¸Ëľ³æ (ÖøÃûдÊÖ)

¹¤³ÌºÍ¿ÆÑ§ÊýÖµ¼ÆËã×Éѯ

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï
¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
kimileegdut: ½ð±Ò+20, ¡ïÓаïÖú 2015-05-11 11:49:44
ÊÔÊÔÕâ¸ö È«ÃæÑ¡Ö÷ÔªµÄgaussÏûÈ¥¡£²»Ðеϰ¡£°ÑÄãµÄÊý¾Ý´«ÉÏÀ´


!flag
subroutine gaussr_inverse(a,n,np,b,m,mp)
  implicit none
  integer :: n,np,m,mp,i,j,k,irow,icol,l
  real*8 a(np,np),b(np,mp),pivinv,cc
  real*8, allocatable, dimension( :: dum
  real*8 big
  integer, allocatable, dimension( :: ipiv,indxr,indxc
  real*8, allocatable, dimension( :: c1

  allocate(ipiv(1:n),indxr(1:n),indxc(1:n),dum(1:max(n,m)),c1(1:n))
  ipiv=0

  !     row normalization (implicite pivoting)
  do i=1,n
     c1(i)=1/sqrt(sum(abs(a(i,1:n))**2))
     a(i,1:n)=a(i,1:n)*c1(i)
     b(i,1:m)=b(i,1:m)*c1(i)
  end do

  do i=1,n

     !     Full pivoting, however, not necessarily starting from 1st col
     big=0.d0
     do j=1,n
        if(ipiv(j)==1)cycle
        do k=1,n
           if (ipiv(k)==1) cycle
           if (abs(a(j,k)) <= big) cycle
           big=abs(a(j,k))
           irow=j
           icol=k
        end do
     end do

     !     ipiv(icol)=1 means the column icol has been selected once
     ipiv(icol)=ipiv(icol)+1
     if (irow.ne.icol) then

        !     exchange a(irow, with a(icol,
        !     so a(irow,irow) is the selected pivot
        dum(1:n)= a(irow,1:n)  
        a(irow,1:n)= a(icol,1:n)  
        a(icol,1:n)=dum(1:n)

        dum(1:m)= b(irow,1:m)  
        b(irow,1:m)= b(icol,1:m)  
        b(icol,1:m)=dum(1:m)
     endif

     !     bookkeeping row- and column-indices
     indxr(i)=irow
     indxc(i)=icol
     if (abs(a(icol,icol))==0.d0) pause 'singular matrix.'
     pivinv=1.d0/a(icol,icol)
     a(icol,icol)=1.d0
     a(icol,1:n)=a(icol,1:n)*pivinv
     b(icol,1:m)=b(icol,1:m)*pivinv

     do l=1,n
        if(l==icol)cycle  ! only for row l not equal to icol
        cc=a(l,icol)
        a(l,icol)=0.d0    ! clever design
        a(l,1:n)=a(l,1:n)-a(icol,1:n)*cc
        b(l,1:m)=b(l,1:m)-b(icol,1:m)*cc
     end do
  end do

  do l=1,n
     if(indxr(l) == indxc(l)) cycle
     dum(1:n)=a(1:n,indxr(l))
     a(1:n,indxr(l))=a(1:n,indxc(l))
     a(1:n,indxc(l))=dum(1:n)
  end do

  do i=1,n
     a(1:n,i)=a(1:n,i)*c1(i)
  end do

  deallocate(ipiv,indxr,indxc,dum,c1)
end subroutine gaussr_inverse
2Â¥2015-05-10 08:27:12
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

kimileegdut

¾èÖú¹ó±ö (СÓÐÃûÆø)

ÒýÓûØÌû:
2Â¥: Originally posted by pippi6 at 2015-05-10 08:27:12
ÊÔÊÔÕâ¸ö È«ÃæÑ¡Ö÷ÔªµÄgaussÏûÈ¥¡£²»Ðеϰ¡£°ÑÄãµÄÊý¾Ý´«ÉÏÀ´


!flag
subroutine gaussr_inverse(a,n,np,b,m,mp)
  implicit none
  integer :: n,np,m,mp,i,j,k,irow,icol,l
  real*8 a(np,np),b(np,mp), ...

ok,ÎÒÏÈÊÔÊÔ£¬Ð»Ð»£¡
3Â¥2015-05-11 11:47:39
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

kimileegdut

¾èÖú¹ó±ö (СÓÐÃûÆø)

·ÖÏíÒ»¸öÇóÄæ¾ØÕóµÄ´úÂë


SUBROUTINE INVERMAT(AA,N,AV)
!
!³ÌÐò˵Ã÷£ºÀûÓÃÎ÷¶ûÂü-ĪÀïÉú(Sherman-Morrison)
!          ¹«Ê½Çó·½Õó[A]µÄÄæ¾ØÕó£¬Äܹ»¿Ë·þ¾ØÕóÔªËØÓÉÓڽײî½Ï´óÒýÆðµÄÀ§ÄÑ.
!          [A]´æ·ÅÔÚÊý×éAA(N,N),Äæ¾ØÕó´æ·ÅÔÚÊý×éAV(N,N)ÖÐ.
!
!
!¶¨ÒåÊý¾ÝÀàÐÍ£º×¢Òâ²ÉÓÃË«¾«¶È¸¡µãÊý
REAL(kind=8),DIMENSION(N,N)::AA,TA,AV
REAL(kind=8),DIMENSION(N)::VT,WK,DD
!
!
    DO i=1,N
      DO j=1,N
        TA(i,j)=AA(i,j)
      END DO
    END DO
!
!
    DO i=1,N
      DD(i)=1.D0
      IF(TA(i,i).NE.0.) DD(i)=SQRT(ABS(TA(i,i)))
      DO j=1,N
        TA(i,j)=TA(i,j)/DD(i)
        TA(j,i)=TA(j,i)/DD(i)
        AV(i,j)=0.D0
      END DO
      AV(i,i)=1.D0
      TA(i,i)=TA(i,i)-1.D0
      WK(i)=1.D0
    END DO
!
    LJK=0
30  ISW=0
    DO i=1,N
      IF(WK(i).LE.1.E-40) GOTO 40
      DO j=1,N
        VT(j)=0.D0
        DO k=1,N
          VT(j)=VT(j)+TA(i,k)*AV(k,j)
        END DO
      END DO
      VTA=1.D0+VT(i)
      IF(ABS(VTA).LE.1.E-40) GO TO 70
      WK(i)=0.
      DO j=1,N
        HH=AV(j,i)
        DO k=1,N
          AV(j,k)=AV(j,k)-HH*VT(k)/VTA
        END DO
      END DO
      GO TO 40
70    ISW=ISW+1
    END DO
40  CONTINUE
!
    IF(ISW.EQ.LJK) GO TO 80
    LJK=ISW
    GO TO 30
80  CONTINUE
    DO i=1,N
      DO j=1,N
        AV(i,j)=AV(i,j)/DD(i)/DD(j)
      END DO
    END DO
!
!
RETURN
END SUBROUTINE INVERMAT
4Â¥2015-05-11 18:03:28
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

kimileegdut

¾èÖú¹ó±ö (СÓÐÃûÆø)

ÒýÓûØÌû:
2Â¥: Originally posted by pippi6 at 2015-05-10 08:27:12
ÊÔÊÔÕâ¸ö È«ÃæÑ¡Ö÷ÔªµÄgaussÏûÈ¥¡£²»Ðеϰ¡£°ÑÄãµÄÊý¾Ý´«ÉÏÀ´


!flag
subroutine gaussr_inverse(a,n,np,b,m,mp)
  implicit none
  integer :: n,np,m,mp,i,j,k,irow,icol,l
  real*8 a(np,np),b(np,mp), ...

ÄãºÃ£¬ÎÒÊÔÁËһϣ¬»¹ÊDz»Ì«¶Ô£¬ÎÒ°ÑÊý¾Ý´«ÉÏÀ´£¬Âé·³Äã°ïÎÒ¿´Ò»Ï£¬Ð»Ð»£¡

» ±¾Ìû¸½¼þ×ÊÔ´Áбí

  • »¶Ó­¼à¶½ºÍ·´À¡£ºÐ¡Ä¾³æ½öÌṩ½»Á÷ƽ̨£¬²»¶Ô¸ÃÄÚÈݸºÔð¡£
    ±¾ÄÚÈÝÓÉÓû§×ÔÖ÷·¢²¼£¬Èç¹ûÆäÄÚÈÝÉæ¼°µ½ÖªÊ¶²úȨÎÊÌ⣬ÆäÔðÈÎÔÚÓÚÓû§±¾ÈË£¬Èç¶Ô°æÈ¨ÓÐÒìÒ飬ÇëÁªÏµÓÊÏ䣺xiaomuchong@tal.com
  • ¸½¼þ 1 : ϵÊý¾ØÕóG
  • 2015-05-13 15:20:05, 150.39 K
5Â¥2015-05-13 15:21:11
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

pippi6

Ìú¸Ëľ³æ (ÖøÃûдÊÖ)

¹¤³ÌºÍ¿ÆÑ§ÊýÖµ¼ÆËã×Éѯ

ÒýÓûØÌû:
5Â¥: Originally posted by kimileegdut at 2015-05-13 15:21:11
ÄãºÃ£¬ÎÒÊÔÁËһϣ¬»¹ÊDz»Ì«¶Ô£¬ÎÒ°ÑÊý¾Ý´«ÉÏÀ´£¬Âé·³Äã°ïÎÒ¿´Ò»Ï£¬Ð»Ð»£¡...

ʲô¸ñʽ£¿100*100£¿
6Â¥2015-05-13 16:34:58
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

kimileegdut

¾èÖú¹ó±ö (СÓÐÃûÆø)

ÒýÓûØÌû:
6Â¥: Originally posted by pippi6 at 2015-05-13 16:34:58
ʲô¸ñʽ£¿100*100£¿...

µ¥¾«¶È£¬ÊÇÁíÍâµÄ³ÌÐò¼ÆËãÖ®ºó°´±ê×¼¸ñʽÊä³öµÄ£¬100*100
7Â¥2015-05-13 20:19:10
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

kimileegdut

¾èÖú¹ó±ö (СÓÐÃûÆø)

Ëͺ컨һ¶ä
ÒýÓûØÌû:
8Â¥: Originally posted by pippi6 at 2015-05-13 21:27:12
ÎÒÊÔÁËһϣ¬gaussr_inverse Ó¦¸Ã¹¤×÷¡£ Äæ¾ØÕóºÍÔ­¾ØÕóµÄ³Ë»ýÓ뵥λ¾ØÕóµÄ×î´ó²îֵΪ  2.442490654175344E-015¡£


subroutine  InverseMatrix
  implicit none
  integer, parameter :: nn=100,m=20
  inte ...

ºÃµÄ£¬ºÜ¸ÐлÄã°¡£¡¿ÉÄÜÊÇÎÒµ÷ÓÃ×Ó³ÌÐòµÄʱºòÐβκÍʵ²ÎûÓжÔÓ¦ÉÏ£¡gaussr_inverse µÄÐβαí¸÷¸ö±äÁ¿ÊÇ´ú±íʲô£¿
9Â¥2015-05-14 09:48:38
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

kimileegdut

¾èÖú¹ó±ö (СÓÐÃûÆø)

Ëͺ컨һ¶ä
ÒýÓûØÌû:
8Â¥: Originally posted by pippi6 at 2015-05-13 21:27:12
ÎÒÊÔÁËһϣ¬gaussr_inverse Ó¦¸Ã¹¤×÷¡£ Äæ¾ØÕóºÍÔ­¾ØÕóµÄ³Ë»ýÓ뵥λ¾ØÕóµÄ×î´ó²îֵΪ  2.442490654175344E-015¡£


subroutine  InverseMatrix
  implicit none
  integer, parameter :: nn=100,m=20
  inte ...

ÄãºÃ£¬ÎÒ»¹ÓиöÎÊÌâÏëÇë½ÌÒ»ÏÂÄú£¬¾ÍÊÇÉÏÃæ¼ÆËãb=a*cµÄʱºò£¬ÎªÊ²Ã´²»Ö±½ÓÓþØÕóÏà³ËÓï¾äb=matmul(a,c),¶øÊ¹ÓÃÁËÑ­»·£¿
10Â¥2015-05-14 10:47:47
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ kimileegdut µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©¿Æ¼¼´óѧ085601²ÄÁϹ¤³ÌÓ¢Ò»Êý¶þ³õÊÔ×Ü·Ö335Çóµ÷¼Á +8 Ë«ÂíβƦÀϰå2 2026-04-02 9/450 2026-04-02 14:45 by 5896
[¿¼ÑÐ] 309Çóµ÷¼Á +8 ´ô¹½²»ÊÇ´÷·ò 2026-04-02 8/400 2026-04-02 14:30 by oooqiao
[¿¼ÑÐ] 085600 295·ÖÇóµ÷¼Á +16 W55j 2026-03-30 19/950 2026-04-02 13:22 by chran16
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£© +5 ÏàÐűػá¹ââÍòÕ 2026-03-31 6/300 2026-04-02 10:16 by guoweigw
[¿¼ÑÐ] ʳƷѧ˶362Çóµ÷¼Á +3 xuanxianxian 2026-04-01 3/150 2026-04-01 21:05 by °¡Àî999
[¿¼ÑÐ] 0710ÉúÎïѧ¿¼Ñе÷¼Á +3 Àî¶àÃ×lee. 2026-03-27 4/200 2026-04-01 16:21 by zzchen2000
[¿¼ÑÐ] 350Çóµ÷¼Á +7 °¢¼Ñ¡« 2026-03-31 7/350 2026-04-01 16:12 by yanflower7133
[¿¼ÑÐ] Çóµ÷¼Á +4 ͼ¼ø212 2026-03-30 5/250 2026-04-01 15:32 by ͼ¼ø212
[¿¼ÑÐ] ²ÄÁÏר˶322·Ö +9 ¹þ¹þ¹þºðºðºð¹þ 2026-04-01 9/450 2026-04-01 14:30 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 288×ÊÔ´Óë»·¾³×¨Ë¶Çóµ÷¼Á£¬²»ÏÞרҵ£¬ÓÐѧÉϾÍÐÐ +25 lllllos 2026-03-30 26/1300 2026-04-01 09:52 by Ò»Ö»ºÃ¹û×Ó?
[¿¼ÑÐ] ¸´ÊÔµ÷¼Á +7 Ë«ÂíβƦÀϰå2 2026-03-31 7/350 2026-03-31 19:49 by Dyhoer
[¿¼ÑÐ] 0703»¯Ñ§ +20 ÄÝÄÝninicgb 2026-03-27 20/1000 2026-03-31 13:33 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] ÄϾ©´óѧ»¯Ñ§µ÷¼Á +11 ¾°Ëæ·ç 2026-03-29 16/800 2026-03-31 10:14 by herarysara
[¿¼ÑÐ] ¼ª´óÉúÎïѧ326·ÖÇóµ÷¼Á +3 sunnyupup 2026-03-31 3/150 2026-03-31 09:28 by longlotian
[¿¼ÑÐ] 22408 359·Öµ÷¼Á +4 Qshers 2026-03-27 8/400 2026-03-31 08:53 by Qshers
[¿¼ÑÐ] 370Çóµ÷¼Á +3 080700µ÷¼Á 2026-03-30 3/150 2026-03-31 01:09 by A_Zhe
[¿¼ÑÐ] 293Çóµ÷¼Á +3 ĩδmm 2026-03-30 5/250 2026-03-30 17:23 by Íõ±£½Ü33
[¿¼ÑÐ] 0703 »¯Ñ§ Çóµ÷¼Á£¬Ò»Ö¾Ô¸É½¶«´óѧ 342 ·Ö +7 Shern¡ª- 2026-03-28 7/350 2026-03-30 16:31 by nothingͶ¸åÖÐ
[¿¼ÑÐ] 356Çóµ÷¼Á +3 gysy?s?a 2026-03-28 3/150 2026-03-29 00:33 by 544594351
[¿¼ÑÐ] 340Çóµ÷¼Á +5 jhx777 2026-03-27 5/250 2026-03-28 04:18 by fmesaito
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û