Localized V2 rewrite for this language is in progress. Showing English-first content for now.

Αβεβαιότητα

Πώς το Sounio αναπαριστά και (τελικά) propagates την αβεβαιότητα μέτρησης.

Αβεβαιότητα

Ο scientific κώδικας είναι γεμάτος μετρήσεις και οι μετρήσεις δεν είναι ποτέ ακριβείς. Το Sounio αντιμετωπίζει την αβεβαιότητα ως δεδομένο πρώτης κλάσης αντί για κάτι που παρακολουθείτε σε σχόλια ή spreadsheets.

Τι Λειτουργεί Σήμερα (Πραγματικότητα του Compiler)

Ο compiler επιβάλλει τον κανόνα “no silent unwrap” για Knowledge<T> (δείτε Knowledge<T>). Αυτό σας δίνει ένα αξιόπιστο boundary όπου η επιστημική πληροφορία απορρίπτεται σκόπιμα.

Πέρα από αυτό, η πλήρης αυτόματη propagation της αβεβαιότητας εξαρτάται από το πόσο χρησιμοποιείτε την επιστημική stdlib και ποια compiler features/backends είναι ενεργά.

Στη Spec / Intended Semantics

Το intended μοντέλο ακολουθεί τυπική πρακτική μετρολογίας (GUM-style propagation για ανεξάρτητες εισόδους):

  • Για c = a ± b:
    • u(c) = sqrt(u(a)^2 + u(b)^2)
  • Για c = a * b ή c = a / b (relative form):
    • u_rel(c) = sqrt(u_rel(a)^2 + u_rel(b)^2), όπου u_rel(x) = u(x) / x

Σε επίπεδο γλώσσας, ο στόχος είναι οι πράξεις πάνω σε Knowledge<T> να:

  • υπολογίζουν τη νέα point estimate
  • propagates την αβεβαιότητα
  • ενημερώνουν το confidence (όπου εφαρμόζεται)
  • κάνουν append το provenance

Πρακτική Καθοδήγηση

  • Κρατήστε τις τιμές ως Knowledge<T> όσο μπορείτε.
  • Όταν πρέπει να περάσετε σε “plain data”, χρησιμοποιήστε unwrap(reason) και καταγράψτε το γιατί.
  • Για domain code (PK/PD, neuroimaging, κ.λπ.), προτιμήστε stdlib modules που ήδη μοντελοποιούν αβεβαιότητα και provenance ρητά.

Επόμενο