Πίνακας περιεχομένων[Κρύβω][Προβολή]
Δεν υπάρχει καμία παραβίαση των μαθηματικών, είτε είστε φοιτητής πανεπιστημίου είτε εργάζεστε στην επιστήμη δεδομένων.
Κάποιος θα μπορούσε ακόμη και να υποστηρίξει ότι η επιστήμη των δεδομένων είναι ένας τύπος εφαρμοσμένων μαθηματικών/στατιστικής. NumPy, SciPy, Scikit-Μάθετε, να TensorFlow είναι μερικές μόνο από τις βιβλιοθήκες Python που ασχολούνται με τα μαθηματικά ποσοτικά.
Ωστόσο, υπάρχει μόνο ένας ανταγωνιστής για τη ρητή αντιμετώπιση των μαθηματικών συμβόλων: το SymPy.
Ας μάθουμε τα πάντα για το SymPy.
Τι είναι SymPy?
Το SymPy είναι μια συμβολική βιβλιοθήκη μαθηματικών Python. Φιλοδοξεί να είναι ένα πλήρες σύστημα υπολογιστικής άλγεβρας (CAS) διατηρώντας παράλληλα τον κώδικα όσο το δυνατόν πιο βασικό ώστε να είναι κατανοητός και εύκολα επεκτάσιμος.
Είναι πλήρως γραμμένο σε Python. Είναι απλό στη χρήση αφού βασίζεται μόνο στο mpmath, μια καθαρή βιβλιοθήκη Python για αυθαίρετη αριθμητική κινητής υποδιαστολής.
Ως βιβλιοθήκη, δημιουργήθηκε με ιδιαίτερη έμφαση στη χρηστικότητα. Η επεκτασιμότητα είναι κρίσιμη για το σχεδιασμό της διεπαφής προγράμματος εφαρμογής (API).
Ως αποτέλεσμα, δεν κάνει καμία προσπάθεια να βελτιώσει τη γλώσσα Python. Ο στόχος είναι οι χρήστες να μπορούν να το χρησιμοποιούν μαζί με άλλους Βιβλιοθήκες Python στη ροή εργασιών τους, είτε σε διαδραστικό περιβάλλον είτε ως προγραμματισμένο στοιχείο ενός μεγαλύτερου συστήματος.
Το SymPy, ως βιβλιοθήκη, δεν διαθέτει ενσωματωμένο γραφικό διεπαφή χρήστη (GUI). Η βιβλιοθήκη είναι:
- Δωρεάν, τόσο όσον αφορά την ομιλία όσο και την μπύρα, επειδή έχει άδεια με την άδεια BSD.
- Βασισμένο σε Python: Αναπτύχθηκε πλήρως σε Python και χρησιμοποιεί Python ως γλώσσα του.
- Ελαφρύ γιατί βασίζεται μόνο στο mpmath, ένα καθαρό Βιβλιοθήκη Python για αυθαίρετη αριθμητική κινητής υποδιαστολής, καθιστώντας την απλή στη χρήση.
- Μπορεί να ενσωματωθεί σε άλλα προγράμματα και να τροποποιηθεί με προσαρμοσμένες λειτουργίες εκτός από τη χρήση ως διαδραστικό εργαλείο.
Γιατί να χρησιμοποιήσετε το SymPy;
Το Sage, ένα σύστημα υπολογιστικής άλγεβρας, χρησιμοποιεί επίσης την Python ως γλώσσα προγραμματισμού. Το Sage, από την άλλη πλευρά, είναι τεράστιο και απαιτεί λήψη μεγαλύτερη από ένα gigabyte. Έχει το πλεονέκτημα ότι είναι ελαφρύ.
Εκτός από συμπαγές, δεν έχει άλλες εξαρτήσεις εκτός από την Python, επιτρέποντάς του να χρησιμοποιείται πρακτικά παντού.
Επιπλέον, οι στόχοι του Sage και του SymPy δεν είναι οι ίδιοι. Το Sage φιλοδοξεί να είναι ένα σύστημα μαθηματικών με πλήρη χαρακτηριστικά και το κάνει συνδυάζοντας όλα τα κύρια μαθηματικά συστήματα ανοιχτού κώδικα σε ένα.
Όταν χρησιμοποιείτε μια συνάρτηση Sage, όπως η ενσωμάτωση, καλεί ένα από τα πακέτα ανοιχτού κώδικα που περιέχει. Στην πραγματικότητα, είναι ενσωματωμένο στο Sage. Το SymPy, από την άλλη πλευρά, φιλοδοξεί να είναι ένα αυτόνομο σύστημα, με όλες τις λειτουργίες να υλοποιούνται σε αυτό το ίδιο.
Η ικανότητά του να λειτουργεί ως βιβλιοθήκη είναι ένα σημαντικό χαρακτηριστικό. Πολλά συστήματα άλγεβρας υπολογιστών προορίζονται για χρήση σε διαδραστικά περιβάλλοντα, αλλά είναι δύσκολο να αυτοματοποιηθούν ή να επεκταθούν.
Μπορεί να χρησιμοποιηθεί διαδραστικά στην Python ή να εισαχθεί στο δικό σας πρόγραμμα Python. Διαθέτει επίσης API για εύκολη επέκταση με τις δικές σας ρουτίνες.
Εγκατάσταση του SymPy
Απλώς χρησιμοποιήστε την παρακάτω εντολή για εγκατάσταση στο περιβάλλον σας.
Σύμβολα SymPy
Ας ξεκινήσουμε με αυτό τώρα! Το θεμελιώδες αντικείμενο του είναι ένα σύμβολο. Στο SymPy, μπορείτε να δημιουργήσετε ένα σύμβολο x γράφοντας:
Ο παραπάνω κώδικας δημιουργεί το σύμβολο x. Τα σύμβολα σε αυτό προορίζονται να μιμηθούν μαθηματικά σύμβολα που αντιπροσωπεύουν άγνωστες τιμές.
Ως αποτέλεσμα, ο ακόλουθος υπολογισμός φαίνεται παρακάτω:
Όπως φαίνεται παραπάνω, το σύμβολο x λειτουργεί παρόμοια με ένα άγνωστο ποσό. Αν θέλετε να φτιάξετε πολλά σύμβολα, γράψτε τα ως εξής:
Δημιουργήσατε δύο σύμβολα, y και z, την ίδια στιγμή σε αυτήν την περίπτωση. Αυτά τα σύμβολα μπορούν τώρα να προστεθούν, να αφαιρεθούν, να πολλαπλασιαστούν και να διαιρεθούν όπως θέλετε:
Λειτουργίες SymPy
1. συνάρτηση sympify().
Η μέθοδος sympify() μετατρέπει μια αυθαίρετη έκφραση σε έκφραση SymPy. Μετατρέπει τυπικά αντικείμενα Python, όπως ακέραιους αριθμούς.
Οι συμβολοσειρές μετασχηματίζονται στις εκφράσεις τους καθώς και σε ακέραιους αριθμούς κ.λπ.
2. συνάρτηση evalf().
Αυτή η συνάρτηση αξιολογεί μια καθορισμένη αριθμητική έκφραση με ακρίβεια κινητής υποδιαστολής έως και 100 ψηφίων.
Η συνάρτηση δέχεται επιπλέον ένα αντικείμενο λεξικού με αριθμητικές τιμές για σύμβολα ως δευτερεύον όρισμα. Σκεφτείτε την ακόλουθη φράση:
Η ακρίβεια κινητής υποδιαστολής έχει οριστεί σε 15 ψηφία από προεπιλογή. Ωστόσο, αυτό μπορεί να αλλάξει σε οποιονδήποτε αριθμό μεταξύ 1 και 100.
Η ακόλουθη εξίσωση αξιολογείται με ακρίβεια 20 ψηφίων.
3. Συνάρτηση Lambdify().
Το Lambdify είναι μια συνάρτηση που μετατρέπει τις εκφράσεις της σε συναρτήσεις Python. Η μέθοδος evalf() είναι αναποτελεσματική κατά την αξιολόγηση μιας έκφρασης σε ένα ευρύ φάσμα τιμών.
Το Lambdify λειτουργεί παρόμοια με μια συνάρτηση λάμδα, εκτός από το ότι μεταφράζει τα ονόματα SymPy στα ονόματα της παρεχόμενης αριθμητικής βιβλιοθήκης, η οποία είναι γενικά NumPy.
Από προεπιλογή, το Lambdify εφαρμόζεται σε μαθηματικές τυπικές εφαρμογές βιβλιοθήκης.
Χαρακτηριστικά
Μια χούφτα από τα πιο σημαντικά χαρακτηριστικά της βιβλιοθήκης παρατίθενται εδώ. υπάρχουν πολλά άλλα που δεν περιλαμβάνονται, αλλά μπορείτε να τα ελέγξετε εδώ.
1. Βασικές Δυνατότητες
- Βασική αριθμητική: +, -, *, / και ** υποστηρίζονται τελεστές (ισχύς)
- Μια πολυωνυμική επέκταση
- Ακέραιοι, ορθολογικοί και πλωτήρες με αυθαίρετη ακρίβεια
- Τριγωνομετρικές, υπερβολικές και εκθετικές συναρτήσεις, ρίζες, λογάριθμοι, απόλυτη τιμή, σφαιρικές αρμονικές, παραγοντικά και συναρτήσεις γάμμα, συναρτήσεις ζήτα, πολυώνυμα και ειδικές συναρτήσεις
- Σύμβολα που δεν είναι εναλλάξιμα
- Αντιστοίχιση μοτίβων
2. Λογισμός
- Ενσωμάτωση: Αυτή η μέθοδος χρησιμοποιεί το διευρυμένο ευρετικό Risch-Norman
- ΔΙΑΦΟΡΕΤΙΚΟΤΗΤΑ-διάκριση.
- Λειτουργίες ορίου
- Η σειρά του Laurent Taylor
3. Πολωνύμια
- ιδρύματα Gröbner
- Αποσύνθεση μερικών κλασμάτων
- Διαίρεση, gcd Τα αποτελέσματα είναι παραδείγματα βασικής αριθμητικής.
4. Συνδυαστική
- μεταθέσεις
- Κώδικες Gray και Prufer
- Συνδυασμοί, Διαμερίσματα, Υποσύνολα
- Πολυεδρικές, Ρούμπικ, Συμμετρικές και Άλλες Ομάδες μετάθεσης
5. Διακριτά Μαθηματικά
- Αθροίσματα
- Λογικές εκφράσεις
- Διωνυμικοί συντελεστές
- Θεωρία αριθμών
Εφαρμογές
1. Υπολογιστής κτιρίου
2. Συστήματα Άλγεβρας Υπολογιστών
Σε αντίθεση με άλλα Συστήματα Άλγεβρας Υπολογιστών, πρέπει να δηλώσετε με μη αυτόματο τρόπο συμβολικές μεταβλητές σε αυτό χρησιμοποιώντας τη συνάρτηση Symbol().
3. Λογισμός
Η ικανότητα ενός συμβολικού υπολογιστικού συστήματος να κάνει όλα τα είδη υπολογισμών συμβολικά είναι η κύρια δύναμή του.
Μπορεί να απλοποιεί προτάσεις, συμβολικά, να υπολογίζει παραγώγους, ολοκληρώματα και όρια, να λύνει εξισώσεις, να αλληλεπιδρά με πίνακες και να κάνει πολλά περισσότερα.
Για να σας ανοίξει η όρεξη, ιδού μια γεύση συμβολικής δύναμης.
Τι άλλο μπορείτε να κάνετε με το SymPy;
Αντί να ασχολείστε σε βάθος με πρόσθετα ζητήματα, επιτρέψτε μου να σας δώσω μια λίστα πόρων που θα σας βοηθήσουν να βελτιώσετε τις δεξιότητές σας:
- Πίνακες και Γραμμική Άλγεβρα: Μπορεί να λειτουργήσει με πίνακες και να εκτελεί βασικές πράξεις γραμμικής άλγεβρας. Η γλώσσα είναι παρόμοια με τη σύνταξη του NumPy. Ωστόσο, υπάρχουν αξιοσημείωτες διαφορές. Για να ξεκινήσετε, διερευνήστε μήτρες στην ΒΙΒΛΙΟΘΗΚΗ.
- Εκφραση: Αξιοποιεί ένα δέντρο έκφρασης, το οποίο είναι μια δομή που βασίζεται σε δέντρα, για να παρακολουθεί τις εκφράσεις. Κυτάζω δέντρα έκφρασης αν θέλετε να μάθετε περισσότερα για την εσωτερική τους λειτουργία.
- Παράγωγα και ολοκληρώματα: Μπορεί να επιτύχει τα περισσότερα από αυτά που θα μάθατε σε ένα εισαγωγικό μάθημα λογισμών (μείον τη σκέψη). Μπορείτε να ξεκινήσετε κοιτάζοντας τη λειτουργία μας διάκριση στο SymPy.
- Σχέση με το NumPy: Οι NumPy και SymPy είναι και οι δύο βιβλιοθήκες που σχετίζονται με τα μαθηματικά. Είναι, ωστόσο, ουσιαστικά διαφορετικά! Το NumPy λειτουργεί με αριθμούς, ενώ λειτουργεί με συμβολικές εκφράσεις.
- Απλοποιήσεις: Είναι αρκετά έξυπνο ώστε να απλοποιεί αυτόματα τις εκφράσεις. Ωστόσο, εάν θέλετε πιο λεπτό έλεγχο σε αυτό, δείτε το απλοποιήσεις.
Συμπέρασμα
Το SymPy είναι μια ισχυρή βιβλιοθήκη για συμβολικά μαθηματικά.
Μπορείτε να το χρησιμοποιήσετε για να δημιουργήσετε μεταβλητές και συναρτήσεις, καθώς και να επεκτείνετε και να απλοποιήσετε συμβολικά μαθηματικές προτάσεις και να λύσετε εξισώσεις, ανισώσεις, ακόμη και συστήματα εξισώσεων/ανισώσεων.
Μπορείτε να γράψετε τις συναρτήσεις τόσο στο κείμενο του σεναρίου όσο και απευθείας στο τερματικό (ή Σημειωματάρια Jupyter) για γρήγορη αξιολόγηση και καλύτερη γραφική απεικόνιση των υπολογισμών που έγιναν.
Είστε έτοιμοι να εξερευνήσετε περισσότερα από το SymPy; Ενημερώστε μας στα σχόλια.
Αφήστε μια απάντηση