C. Λογισμικό του Μαθήματος «Αριθμητική Ανάλυση ΙΙ»

  1. Το πρακτικό ή εφαρμοσμένο μέρος της αριθμητικής ανάλυσης αφορά στην υλοποίηση των διαφόρων μεθόδων σε έναν υπολογιστή. Αυτό, όπως είναι γνωστό, μπορεί να πραγματοποιηθεί μέσω προγραμματισμού των αντίστοιχων αλγόριθμων σε μια γλώσσα υψηλού επιπέδου, όπως: BASIC, C, Fortran, FreeBASIC, Pascal, Python κ.λπ. (βλ. list of programming languages και comparison of programming languages). Αποτελεί γενική πεποίθηση ότι:


    «Την αριθμητική ανάλυση την μαθαίνει κανείς καλύτερα με την εκτέλεση συγκεκριμένων αριθμητικών υπολογισμών πάνω σε ειδικά προβλήματα».

    Αναφορικά με αυτό χαρακτηριστικά αναφέρουμε τη ρήση του Αριστοτέλη (384–322 π.Χ.) ο οποίος έλεγε:


    «Τα πράγματα που πρέπει να κάνεις τα μαθαίνεις κάνοντάς τα»,

    καθώς και τη ρήση του:


    «Για να γίνει κανείς ικανός σ' οποιοδήποτε επάγγελμα τρία πράγματα χρειάζονται: φύση, μελέτη και πρακτική εξάσκηση».

    Με βάση τα παραπάνω, ενθαρρύνουμε τον εκπαιδευόμενο που έχει ευχέρεια στον προγραμματισμό, να επιχειρήσει να προγραμματίσει τους αλγορίθμους του μαθήματος σε μια γλώσσα της επιλογής του. Επίσης, να εκτελέσει τα προγράμματα αυτά σε έναν υπολογιστή ώστε να μελετήσει τη συμπεριφορά των αλγορίθμων για διάφορα δεδομένα εισόδου. Ο εκπαιδευόμενος, ο οποίος δεν έχει ευχέρεια στον προγραμματισμό, θα μπορούσε να χρησιμοποιήσει διάφορα δημοφιλή περιβάλλοντα επίλυσης προβλημάτων όπως τα: Maple, Mathcad, Mathematica, Matlab, Maxima, Octave, Photran, Scientific Workplace, SciLab, SPMATH καθώς και έτοιμα προγράμματα. Τέτοια προγράμματα υπάρχουν σε διάφορα συγγράμματα όπως στα:
    1. Burden R.L., Faires J.D., Numerical analysis, Brooks Cole Publishing Company, New York, 1997 — Προγράμματα σε C, Fortran, Pascal, Maple, Mathematica, Matlab,
    2. Forsythe G.E., Malcolm M.A., Moler C.B., Αριθμητικές μέθοδοι και προγράμματα για μαθηματικούς υπολογισμούς, Μετάφραση: Ακρίβης Γ.Δ. και Δουγαλής Β.Α., Πανεπιστημιακές εκδόσεις Κρήτης, Ηράκλειο, 1994 — Προγράμματα σε Fortran,
    3. Κιουστελίδης Ι.Β., Αριθμητική ανάλυση, Μια εισαγωγή με φυσικές και τεχνικές εφαρμογές και προγράμματα σε BASIC, Αθήνα, 1996 — Προγράμματα σε BASIC,
    4. Παπαγεωργίου Γ.Σ., Τσίτουρας Χ.Γρ., Αριθμητική ανάλυση με εφαρμογές σε Matlab και Mathematica, Εκδόσεις Συμεών, Αθήνα, 1997 — Προγράμματα σε Mathematica, Matlab,
    5. Παπαδάκης Κ., Εφαρμοσμένα Μαθηματικά και Mathematica, Εκδόσεις Α. Τζιόλα και Υιοί, Θεσσαλονίκη, 2012 — Προγράμματα σε Mathematica,
    6. Press W.H., Teukolsky S.A., Vetterling W.T., Flannery B.P., Numerical recipes, the art of scientific computing, (Third Edition), Cambridge University Press, New York, U.S.A., 2007 — Προγράμματα σε C, Fortran, Pascal, BASIC,
    καθώς και σε διάφορους ιστότοπους όπως ενδεικτικά αναφέρουμε τους Java Programs for Numerical Analysis, Numerical methods, Numerical methods for fortran programmers, Numerical recipes books on–line, Numerical recipes software.
  2. Εκτός από τα παραπάνω, μπορούν εύκολα να βρεθούν έτοιμα προγράμματα, που αφορούν τους αλγορίθμους του μαθήματος, στο διαδίκτυο (internet) σε περιοχές ελεύθερης πρόσβασης (public domain). Ο εκπαιδευόμενος μπορεί να ανακτήσει πληροφορίες για αυτά τα προγράμματα μέσω του ιστότοπου Netlib repository ή/και μέσω του ιστότοπου http://netlib.sandia.gov/master/readme.html. Για τον ίδιο σκοπό, ο εκπαιδευόμενος αντί της βιβλιοθήκης Netlib μπορεί να χρησιμοποιήσει εναλλακτικά τη βιβλιοθήκη Xnetlib library ώστε να ανιχνεύσει και να ανακτήσει το λογισμικό που επιθυμεί. Περισσότερες πληροφορίες υπάρχουν στα παρακάτω άρθρα:
    1. Dongarra J.J., Grosse E., Distribution of mathematical software via electronic mail, Comm. ACM, ,30 (1987), pp.403–407.
    2. Dongarra J.J., Rowan T., Wade R., Software distribution using Xnetlib, ACM Transactions on Mathematical Software, 21, No.1 (1995), pp.79–88.
    Τα προγράμματα που μπορούν να βρεθούν με τους παραπάνω τρόπους είναι αποδοτικά, ακριβή και αξιόπιστα, και έχουν πλήρως ελεγχθεί. Επίσης, περισσότερες πληροφορίες για λογισμικό και βιβλιοθήκες λογισμικού υπάρχουν στα:
    1. Dongarra J.J., Walker D.W., Software libraries for linear algebra computation on high performance computers, SIAM Review, 37, No.2 (1995), pp. 151–180.
    2. Köckler N., Numerical methods and scientific computing: Using software libraries for problem solving, Oxford University Press, New York, Ν.Υ., U.S.A., 1994.
  3. Εκτός των παραπάνω, ο εκπαιδευόμενος μπορεί να αντλήσει λογισμικό και από βιβλιοθήκες όπως:
    1. ACM (Association for Computing Machinery). Πρόκειται για μια βιβλιοθήκη πολύ υψηλής ποιότητας μαθηματικών προγραμμάτων σε Fortran 77, Fortran 90, C, C++, Matlab κ.λπ. Αποτελείται από μια συλλογή από περισσότερα από 900 προγράμματα, τα οποία αναπτύσσονται για περισσότερο από 50 χρόνια. Τα προγράμματα αυτά μπορούν να αντληθούν από τη διεύθυνση:

      http://www.acm.org/calgo

      ή εναλλακτικά από τη διεύθυνση:

      http://www.netlib.org/toms
    2. CMLIB (Core Mathematics LIBrary) του National Institute of Science and Technology (NIST). Αποτελείται από μια συλλογή από περίπου 750 δημόσιες περιοχές (public domains) υψηλής ποιότητας υποπρογραμμάτων σε Fortran, τα οποία μπορούν να αντληθούν πολύ εύκολα. Τα υποπρογράμματα σε αυτή τη βιβλιοθήκη επιλύουν πολλά προβλήματα μαθηματικών και στατιστικής. Επίσης, περιέχει αρκετά γνωστά και χρήσιμα προγράμματα όπως είναι τα: BLAS, EISPACK, FISHPACK, FCNPACK, FITPACK, LINPACK, QUADPACK κ.α. Η διεύθυνσή της στο διαδίκτυο είναι:

      http://gams.nist.gov
    3. CERN Library του Ευρωπαϊκού Οργανισμού Πυρηνικής Έρευνας (European Organization of Nuclear Research), η οποία συντηρείται από το Ευρωπαϊκό Εργαστήριο Φυσικής Σωματιδίων (European Laboratory for Particle Physics). Αυτή η βιβλιοθήκη είναι πρωταρχικά χρήσιμη για τους ερευνητές της φυσικής των υψηλών ενεργειών, αλλά περιέχει πάρα πολλές υπορουτίνες για την επίλυση διαφόρων μαθηματικών προβλημάτων. Με μερικούς περιορισμούς, η βιβλιοθήκη διατίθεται στη διεύθυνση:

      http://consult.cern.ch
    4. ESSL (Engineering and Scientific Subroutine Library) για χρήση σε IBM υπολογιστές. Η βιβλιοθήκη αυτή, αποτελείται από περίπου 450 μαθηματικές υπορουτίνες υψηλής ποιότητας για την επίλυση μαθηματικών και τεχνολογικών εφαρμογών. Η διεύθυνσή της στο διαδίκτυο είναι η:

      http://www.ibm.com
    5. IMSL (International Mathematical Software Library), η οποία αποτελείται από τις βιβλιοθήκες MATH, STAT και SFUN που αφορούν αντίστοιχα υπολογιστικά μαθηματικά, στατιστική και ειδικές συναρτήσεις. Αυτές οι βιβλιοθήκες περιέχουν 700 υποπρογράμματα υψηλής ποιότητας σε Fortran 77 και C. Τα προγράμματά της αναπτύσσονται για περισσότερο από 25 χρόνια. Επίσης, περιέχει βιβλιοθήκες για γραφικά, που έχουν αναπτυχθεί από τη Visual Numerics, Inc. Από τη Visual Numerics μπορούν να αντληθούν και άλλα μαθηματικά υποπρογράμματα, όπως τα PV-WAVE και Stanford Graphics. Η διεύθυνσή της στο διαδίκτυο είναι η:

      http://www.vni.com
    6. NAG (Numerical Algorithms Group). Η βιβλιοθήκη αυτή, αποτελείται από 1100 υποπρογράμματα σε Fortran 77/90 ή C, που αφορούν θέματα παρόμοια με αυτά της IMSL. Περιέχει επίσης υποπρογράμματα για γραφικά. Μερικά από τα προγράμματά της αναπτύσσονται για περισσότερο από 20 χρόνια. Η διεύθυνσή της στο διαδίκτυο είναι η ακόλουθη:

      http://www.nag.com
    7. LAPACK (Linear Algebra Package), η οποία αποτελεί μια βιβλιοθήκη υποπρογραμμάτων σε Fortran που ενσωματώνει βελτιωμένες εκδόσεις δύο παλαιών και πολύ γνωστών βιβλιοθηκών, των LINPACK και EISPACK, κυρίως για την ανάλυση και την επίλυση συστημάτων γραμμικών εξισώσεων. Η διεύθυνσή της στο διαδίκτυο είναι η εξής:

      http://www.netlib.org/lapack
  4. Επιπρόσθετα με τις παραπάνω βιβλιοθήκες, μερικές άλλες βιβλιοθήκες γενικών Μαθηματικών υποπρογραμμάτων είναι και οι ακόλουθες: BSCLIB, NSWC, NUMAL, NUMPAC, PORT, SLATEC, VECLIB και Scientific Desk.