Προγραμματισμός FORTRAN > Μαθήματα > Πράξεις και Συναρτήσεις Πινάκων
Αρχική-HomeΠαραδείγματαΕντολές-ΣυναρτήσειςΟδηγίες-FAQsΣυνδέσεις-Links

ΜΑΘΗΜΑ: ΠΡΑΞΕΙΣ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΠΙΝΑΚΩΝ

Οι πράξεις των μητρώων ακολουθούν τους κανόνες της Γραμμικής Άλγεβρας. Οι δείκτες των πινάκων, των αθροισμάτων ή των γινομένων των μαθηματικών τύπων, αντιστοιχούν στους δείκτες των μητρώων και των βρόγχων DO της Fortran.

Τα πολύπλοκα επιστημονικά προβλήματα απαιτούν πολλές σύνθετες πράξεις πινάκων. Για το λόγο αυτό, οι πιο συνηθισμένες έχουν ενταχθεί στις συναρτήσεις βιβλιοθήκης της γλώσσας.


αρχή

ΠΡΑΞΕΙΣ ΜΗΤΡΩΩΝ

Οι πράξεις των μητρώων ακολουθούν τους κανόνες της Γραμμικής Άλγεβρας. Οι δείκτες των πινάκων, των αθροισμάτων και των γινομένων των μαθηματικών τύπων, αντιστοιχούν στους δείκτες των μητρώων και των βρόγχων DO της Fortran.

Οι συνηθέστερες πράξεις πινάκων και η αντίστοιχη γραφή τους σε Fortran έχουν ως εξής:

Αλγεβρικοί Τύποι

Εντολές Fortran

Παρατηρήσεις

Πράξη πινάκων

Πράξη  στοιχείων
Για: i = 1, m  &  j = 1, n

do i= 1,m
  do j= 1,n

 

C = A

cij = aij

  c(i,j)=a(i,j)

Εξίσωση

C = A + B

cij = aij + bij

  c(i,j)=a(i,j)+b(i,j)

Πρόσθεση

C = A - B

cij = aij - bij

  c(i,j)=a(i,j)-b(i,j)

Αφαίρεση

C = d.A

cij = d .aij

  c(i,j)=d*a(i,j)

Πολλ. με αριθμό

C = AΤ

cij = aji

  c(i,j)=a(j,i)

Ανάστροφος

C = A x B

  do k= 1,l
  
  c(i,j)=c(i,j)+a(i,k)*b(k,j)
  end do

Πολλαπλασιασμός πινάκων

   

  end do
end do

 

Τα πολύπλοκα επιστημονικά προβλήματα απαιτούν και πάρα πολλές πράξεις πινάκων. Καθώς δεν είναι πρακτικό να γράφουμε για κάθε μια πράξη 5-10 γραμμές κώδικα με πολλαπλά DO, η σύγχρονες εκδόσεις της FORTRAN χειρίζονται τις πράξεις των πινάκων πιο αποτελεσματικά. Έτσι, όταν κάνουμε πράξεις με ολόκληρους πίνακες, μπορούμε να τους αναγράφουμε με το όνομά τους χωρίς δείκτες, και η Fortran αναλαμβάνει να κάνει τις πράξεις στοιχείο-στοιχείο (Elemental).

Π.χ., έστω οι A, B, C, D πίνακες ίδιας διάστασης (m x n), και οι q & r βαθμωτές ποσότητες που συμμετέχουν στη παρακάτω πράξη: A = B + q x C - r x ημ(D). Αντί των πολύπλοκων δεικτών και των πολλαπλών DO:

DO i = 1, n
  DO j = 1, m
    A(i,j) = B(i,j) + q*C(i,j) - r*SIN(D(i,j))
  END DO
END DO

η πράξη γράφεται πολύ απλά σε μια γραμμή, ως εξής:

A = B + q*C - r*SIN(D)

Επίσης, πολλές εντολές DO μπορούν να παραλειφθούν με τη χρήση ορίων στους δείκτες των πινάκων. Π.χ., οι δυο παρακάτω γραφές είναι ισοδύναμες:

DO i = 5, n-1
  A(i) = SQRT( B(i) / Pi )
END DO

ή

A(5:n-1) = SQRT( B(5:n-1)/Pi )


αρχή

ΣΥΝΑΡΤΗΣΕΙΣ ΒΙΒΛΙΟΘΗΚΗΣ ΓΙΑ ΜΗΤΡΩΑ

Οι βελτιώσεις στις πράξεις πινάκων συμπληρώνονται και από τις συναρτήσεις και τις υπορουτίνες της γλώσσας που διαθέτει στη βιβλιοθήκη της, ή, και αυτές που έχουν κατασκευάσει ειδικές εταιρείες λογισμικού (IMSL, NAG, κλπ.). Οι πιο συνηθισμένες από τις σύνθετες πράξεις πινάκων έχουν ενταχθεί στις συναρτήσεις βιβλιοθήκης της γλώσσας.

Μερικές από τις πλέον χρησιμοποιούμενες συναρτήσεις βιβλιοθήκης για πίνακες είναι οι:

DOT_PRODUCT(A,B), γινόμενο διανυσμάτων
MATMUL (A,B), πολλαπλασιασμός πινάκων
PRODUCT(A), γινόμενο των στοιχείων του πίνακα
SUM(A), άθροισμα των στοιχείων του πίνακα
TRANSPOSE(A), ανάστροφος ενός πίνακα
MAXVAL(A), μέγιστο τιμή (στοιχείο)
MAXLOC(A), θέση μέγιστου
MINVAL(A), ελάχιστη τιμή (στοιχείο)
MINLOC(A), θέση ελάχιστου
PACK(A), μετατροπή πίνακα σε διάνυσμα

Επιπλέον οι περισσότερες συναρτήσεις βιβλιοθήκης που συναντήσαμε σε προηγούμενα κεφάλαια έχουν τη δυνατότητα να εφαρμοστούν σε πίνακες στοιχείο-στοιχείο (elemental) όπως οι:

SQRT(A), τετραγωνική ρίζα
ABS(A), απόλυτο
SIN(A), ημίτονο
ASIN(A), τόξο ημίτονου
EXP(A), ea
LOG(A), loge(x) φυσικός λογάριθμος
LOG10(A), log10(x) δεκαδικός λογάριθμος
MAX(A), ο μέγιστος από τους αριθμούς
MIN(A), ο ελάχιστος από τους αριθμούς
MOD(A,B), το υπόλοιπο της διαίρεσης a modulo b.
LEN(A), το μήκος μια σειράς, δηλ., το πλήθος των χαρακτήρων της.


αρχή

Prev Μάθημα Next


Παραδείγματα

Ερωτήσεις


©2006 Δρ. Β. Χ. Μούσας, Επικ. Καθ., e-mail Τ.Ε.Ι. ΑθήναςΤμήμα Πολιτικών Έργων Υποδομής