fortran 90 - جامعة بابل | university of babylon fortran 90 lecturer : rafel hekmat hameed...

5
ϭ FORTRAN 90 Lecturer : Rafel Hekmat Hameed University of Babylon Subject : Fortran 90 College of Engineering Year : Second B.Sc. Mechanical Engineering Dep . . S S p p e e c c i i a a l l F F o o r r m m s s o o f f M M a a t t r r i i c c e e s s A square matrix is said to be upper triangular when all the elements below the diagonal are zero. The matrix below is an upper triangular matrix. In an upper triangular matrix, not all elements above the diagonal need to be non-zero. A square matrix is said to be lower triangular , when all the elements above the diagonal are zero. The matrix below is a lower triangular matrix. In a lower triangular matrix, not all elements below the diagonal need to be non-zero. A square matrix is said to be diagonal , if all elements are zero, except those in the diagonal. The matrix below is a diagonal matrix.

Upload: lytuyen

Post on 13-Apr-2018

251 views

Category:

Documents


9 download

TRANSCRIPT

  • FORTRAN 90

    LLeeccttuurreerr :: RRaaffeell HHeekkmmaatt HHaammeeeedd UUnniivveerrssiittyy ooff BBaabbyylloonn

    SSuubbjjeecctt :: FFoorrttrraann 9900 CCoolllleeggee ooff EEnnggiinneeeerriinngg

    YYeeaarr :: SSeeccoonndd BB..SScc.. MMeecchhaanniiccaall EEnnggiinneeeerriinngg DDeepp..

    SSSpppeeeccciiiaaalll FFFooorrrmmmsss ooofff MMMaaatttrrriiiccceeesss

    A square matrix is said to be upper triangular when all the elements below the diagonal are zero. The matrix below is an upper triangular matrix.

    In an upper triangular matrix, not all elements above the diagonal need to be non-zero.

    A square matrix is said to be lower triangular, when all the elements above the diagonal are zero. The matrix below is a lower triangular matrix.

    In a lower triangular matrix, not all elements below the diagonal need to be non-zero.

    A square matrix is said to be diagonal, if all elements are zero, except those in the diagonal. The matrix below is a diagonal matrix.

  • A diagonal matrix is called a where k is a scalar.

    A scalar matrix with2 2, 33 , and 44

    The transpose of a matrixwhen the rows and

    A symmetric matrixmatrix A is the samebelow.

    DDDeeettteeerrrmmmiiinnnaaannEvery square matrix has a value called a

    matrices have defined determinants.

    The determinant of a 2x2diagonals.

    A diagonal matrix is called a scalar matrix, if a11 = a22 = . The matrix D below is a scalar matrix with k

    A scalar matrix with k=1 , is called an identity matrix . Shown below are4 identity matrices.

    transpose of a matrix A, denoted as AT, is the matrix

    columns of matrix A are interchanged.

    symmetric matrix A , is one such that AT=A , that is, the transpose of a

    is the same as A . An example of a symmetric matrix is shown

    annntttsss Every square matrix has a value called a determinant

    ices have defined determinants.

    2 square matrix is the difference of the products of the

    = a33 = = ann = k The matrix D below is a scalar matrix with k=4.

    . Shown below are

    , is the matrix that is obtained are interchanged.

    , that is, the transpose of a . An example of a symmetric matrix is shown

    determinant, and only square

    square matrix is the difference of the products of the

  • The "down" diagonal is in red and the "diagonals are always subtracted from the than a 2 x 2 matrix become a little determinant but the same rules apply. When finding the determinant of a columns to the right side of the matrix like so

    A fortran 90 program to find the determinant of

    Program determinant

    Integer, parameter::n

    Integer, dimension (n,m):: a

    Read(*,*) ((a(I,j),j=1,n)

    Do i=1,n ; do j

    a(i,n+j)=a(I,j) ; enddo

    do i=1,n ;det1=1

    do j=1,n

    det1=det1*a(j,i+j-1) ;

    det=det+det1-det2 ;

    write(*,6) "determinant

    " diagonal is in red and the "up" diagonal is in blue. The diagonals are always subtracted from the down diagonals. Matrices that are larger

    matrix become a little more complicated when finding the but the same rules apply. Let's find

    determinant of a 3 x 3 matrix it is helpful to write the first two columns to the right side of the matrix like so

    program to find the determinant of 33 matrix

    Program determinant ; implicit none

    n=3, m=5

    dimension (n,m):: a ; Integer:: i, j, det1, det

    ),i=1,n)

    do j=1,n-1

    enddo ; enddo

    1 ; det2=1

    ; det2=det2*a(j,2*n-j-i+1) ;enddo

    ; enddo

    determinant=", det ;6 format(2x,a,2x,i8);

    " diagonal is in blue. The up diagonals. Matrices that are larger

    more complicated when finding the

    matrix it is helpful to write the first two

    matrix.

    det2, det

    ;enddo

    end

  • If the matrix has more than three columns, then the determinant be determined, as illustrated by example below

    3 6 8 6 4 7 7 7 3 1 5 2 5 2 4 3

    Det A =

    Det A= (-138*-9) ( -180*-9) = -378

    IMPLICIT NONE

    INTEGER ,DIMENSION (4,4)::A

    INTEGER,DIMENSION (1:3,1:3)::B

    INTEGER::I, J, N

    DATA A/3,4,3,5,6,7,1,2,8,7,5,4,6,7,2,3/

    DO N=4, 2 ,-1

    DO I=1, N-1

    DO J=1,N-1

    B(I,J)=A(1,1)*A(I+1,J+1)-A(1,J+1)*A(I+1,1)

    ENDDO ; ENDDO

    A=

  • DO I=1,N-1

    DO J=1,N-1

    A(I,J)=B(I,J)

    ENDDO;ENDDO

    DO I=1,N-1

    PRINT*,(B(I,J),J=1,N-1)

    ENDDO

    PRINT *, ' ******************************************* '

    ENDDO

    END