EVALUATIONMONITOR

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ

Οι συναρτήσεις στη γλώσσα της Wolfram  έχουν ρυθμιστεί έτσι ώστε συνήθως δεν χρειάζεται να γνωρίζουμε τον τρόπο με τον οποίο εργάζονται στο εσωτερικό. Ωστόσο, κυρίως για αριθμητικές συναρτήσεις που χρησιμοποιούν επαναληπτικούς αλγόριθμους, μερικές φορές είναι χρήσιμο να μπορούμε να παρακολουθήσουμε την εσωτερική εξέλιξη αυτών των αλγορίθμων.

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

Η σύνταξη της εντολής ειναι συνήθως: EvaluationMonitor :> expr.
Χρησιμοποιείται το σύμβολο  :>  αντί του  ->  ώστε να αποφευχθεί ο άμεση εκτέλεση της εντολής expr.

ΠΑΡΑΔΕΙΓΜΑΤΑ

ΠΑΡΑΔΕΙΓΜΑ 1

Εμφάνιση πληροφοριών σχετικά με κάθε υπολογιστική διαδικασία που χρησιμοποιείται για την εύρεση των ριζών μιας συνάρτησης:

n=0;
f[x_]:=Cos[x];
FindRoot[f[x],{x,8},EvaluationMonitor:> (n++;Print[{n,f[x]^2}])]

ΠΑΡΑΔΕΙΓΜΑ 2

Καταμέτρηση υπολογισμών:

FindRoot[x^2-5,{x,1},EvaluationMonitor:>Print["x = ",x" x^2 - 5 =",x^2-5]]

Όποτε η συνάρτηση expr εκτελείται, καταχωρούνται σε όλες τις μεταβλητές στον αριθμητικό υπολογισμό οι τρέχουσες τιμές.
Για τον λόγο αυτό μπορεί να χρησιμοποιηθεί αποτελεσματικά η εντολή  Block[{var1=val1, ...},expr].

Block[{c=0},{FindRoot[x^2-5,{x,1},EvaluationMonitor:>c++],c}]

ΠΑΡΑΔΕΙΓΜΑ 3

Συνδυασμός με εντολές Reap και Sow για την συλλογή των υπολογιστικών δεδομένων:

{res, data} = Reap[FindRoot[x^2-5,{x,1},EvaluationMonitor:>Sow[x-Sqrt[5]]]]

Εμφάνιση της υπεργραμμικής σύγκλισης της μεθόδου:

ListLogLogPlot[data[[1]]]