Try out NAG Library functions

Explore NAG maths and stats routines with interactive demos
Function ID
F07AAF
Name
nagf_lapack_dgesv
Description
Computes the solution to a real system of linear equations
Keywords
DGESV | real, nonsymmetric matrix | LU decomposition
This example solves the equations
Ax=b,  
where A is the general matrix
A=1.802.882.05-0.895.25-2.95-0.95-3.801.58-2.69-2.90-1.04-1.11-0.66-0.590.80  and  b=9.5224.350.77-6.22.  
The example data reflects that shown in the "Example" section of the routine documentation. You can change this here to try alternative inputs. The formatting will need to be kept as it is here, otherwise the program is likely to fail to run correctly.

Please note that incompatible data will however cause the example output to display an error message. These error messages are fully explained in the Routine document
    Program f07aafe

!     F07AAF Example Program Text

!     Mark 26 Release. NAG Copyright 2016.

!     .. Use Statements ..
      Use nag_library, Only: dgesv, nag_wp, x04caf
!     .. Implicit None Statement ..
      Implicit None
!     .. Parameters ..
      Integer, Parameter               :: nin = 5, nout = 6
!     .. Local Scalars ..
      Integer                          :: i, ifail, info, lda, ldb, n
!     .. Local Arrays ..
      Real (Kind=nag_wp), Allocatable  :: a(:,:), b(:)
      Integer, Allocatable             :: ipiv(:)
!     .. Executable Statements ..
      Write (nout,*) 'F07AAF Example Program Results'
      Write (nout,*)
!     Skip heading in data file
      Read (nin,*)
      Read (nin,*) n
      lda = n
      ldb = n
      Allocate (a(lda,n),b(ldb),ipiv(n))

!     Read A and B from data file

      Read (nin,*)(a(i,1:n),i=1,n)
      Read (nin,*) b(1:n)

!     Solve the equations Ax = b for x

!     The NAG name equivalent of dgesv is f07aaf
      Call dgesv(n,1,a,lda,ipiv,b,ldb,info)

      If (info==0) Then

!       Print solution

        Write (nout,*) 'Solution'
        Write (nout,99999) b(1:n)

!       Print details of factorization

        Write (nout,*)
        Flush (nout)

!       ifail: behaviour on error exit
!              =0 for hard exit, =1 for quiet-soft, =-1 for noisy-soft
        ifail = 0
        Call x04caf('General',' ',n,n,a,lda,'Details of factorization',ifail)

!       Print pivot indices

        Write (nout,*)
        Write (nout,*) 'Pivot indices'
        Write (nout,99998) ipiv(1:n)

      Else
        Write (nout,99997) 'The (', info, ',', info, ')',                      &
          ' element of the factor U is zero'
      End If

99999 Format ((3X,7F11.4))
99998 Format ((3X,7I11))
99997 Format (1X,A,I3,A,I3,A,A)
    End Program f07aafe
The NAG Library
The world’s largest collection of robust, documented, tested and maintained numerical algorithms.
Learn more here or contact us for purchasing information