Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Ο λόγος που ρωτάω είναι πχ γιατί έχω βρει ολοκληρώματα που δεν τα έλυνε το sympy και τα έλυνε το mathematica κτλ. 

Θυμάσαι μήπως κάποια συγκεκριμένα;

Δημοσ.

Από αυτό το paper ήταν. Πρέπει να δω που το έχω όμως.

 

Ήταν ορισμένα ολοκληρώματα με συμβολικά όμως όρια. Ουσιαστικά υπολόγιζε κάτι εμβαδα, και όταν ολοκλήρωνε κατά X (ή Υ) το έβγαζε οκ. Όταν όμως ολοκλήρωνε και κατά την άλλη πλευρά κόλωνε. Το mathematica τα έβγαζε αλλά φυσικά σε διαφορετική μορφή από αυτήν που είχε το paper. Πάντως όσο τα είχα τσεκάρει ήταν σωστά.

Δημοσ.

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

 

Έχω την υποψία ότι δεν είναι και τόσο δύσκολο. Όχι ότι είναι και trivial, αλλά για επίπεδο διδακτορικού δεν το κόβω.

Κάποτε είχα αρχίσει να φτιάχνω κάτι παρόμοιο. Αν καταφέρω τις επόμενες μέρες να το ξεθάψω, θα επανέλθω.

Δημοσ.

Κατ' αρχήν ευχαριστώ όλους για τις απαντήσεις

 

 

Matlab;

Είναι, κυρίως, για αριθμητικά προβλήματα. Σε αυτήν την περίπτωση τα Maple/Mathematica θα ήταν σαφώς καλύτερα.

 

Με άλλα λόγια, αν κατάλαβα καλά, δεν ψάχνεις για μια τέτοια γλώσσα, αλλά θέλεις να φτιάξεις μία.

Σωστά;

Όχι. Θέλω κάτι όπως στο παράδειγμα την με την Prolog που περιέγραψα.

 

Δεν νομίζω ότι έχει αλλάξει κάτι από εδώ.

 

Από πρακτικής πλευράς δεν τίθεται ζήτημα ότι η χρήση ενός εμπορικού CAS (πχ Mathematica/Mapple) είναι η καλύτερη επιλογή.

 

Από πλευράς δυνατότητας παρέμβασης εννοείται ότι κάτι open source όπως το sympy είναι η καλύτερη επιλογή. Βέβαια το πόσο εύκολο θα είναι να παρέμβεις είναι άλλου παπα ευαγγέλιο. Τα μαθηματικά που απαιτούνται είναι hard-core.

 

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

Έχω την αίσθηση ότι "το πας μακριά" :) 

Σίγουρα δεν σκοπεύω (θα ήταν πρακτικώς αδύνατον) να κάνω δικό μου CAS. Έχω την αίσθηση, όμως, ότι αν συγκεκριμενοποιήσει κάποιος ένα πρόβλημα, με μορφή πεπερασμένων και αυστηρών κανόνων, ίσως να μπορέσει να "διδάξει" το σύστημα -π.χ. (πιθανόν) σε γλώσσα όπως ήταν η Prolog ή κάποια Lisp. Απλά έχω πολλά χρόνια να ασχοληθώ με το θέμα και, επιπλέον, ούτε γνωρίζω τις εξελίξεις ούτε έχω μεγάλη εμπειρία.

 

Το octave που ειναι και δωρεαν.

Είναι κυρίως για αριθμητικά και κατώτερο π.χ. του Sage. 


Θυμάσαι μήπως κάποια συγκεκριμένα;

Νομίζω, π.χ. ότι τα καταχρηστικά ολοκληρώματα μόνο το Mathematica τα επιλύει (συνήθως μέσω θεωρίας ολοκληρωτικών υπολοίπων).


Έχω την υποψία ότι δεν είναι και τόσο δύσκολο. Όχι ότι είναι και trivial, αλλά για επίπεδο διδακτορικού δεν το κόβω.

Κάποτε είχα αρχίσει να φτιάχνω κάτι παρόμοιο. Αν καταφέρω τις επόμενες μέρες να το ξεθάψω, θα επανέλθω.

Θα με ενδιέφερε πολύ -αν εννοούμε το ίδιο πράγμα.


Python:
http://sympy.org/en/index.html

 

edit: Σορρυ,τώρα είδα οτι την αναφέρεις.Τι θες να κάνεις και δεν το έχει η sympy ;

Μελέτη σε exterior differential systems. :)


Μόνο Matlab. Και αυτό το χρησιμοποιώ περαστισιακά όχι για τρελά πράγματα. Σε σχέση με το Matlab είναι πολύ νέα. Το GIAC/XCAS υστερεί πολύ στο GUI. ΑΛΛΑ υποστηρίζει "άπειρα" ψηφία και άρα ακρίβεια! Αν δεν κάνω λάθος το Matlab όχι. Το Matlab περιέχει γενικά πολλά καλούδια (παραλληλοποίηση εφαρμογών σε GPU). Το GIAC/XCAS ξεκίνησε από ένα άτομο και αν δεν κάνω λάθος ακόμη αυτός το συντηρεί και έχει αρκετές συνεισφορές και υποστήριξη από επιστημονικές κοινότητες. Είναι παιδί ακόμη. To PARI/GP είναι άλλο φρούτο. Κανένα από αυτά δεν προσπαθεί να ανταγωνιστεί τα θηρία. Προσπαθούν να προσφέρουν κάτι εξειδικευμένο (όπως συμβαίνει ειδικά με το PARI/GP) και δωρεάν.

 

Δεν έχω ασχοληθεί με mathematica/sympy (αν και έχω ακούσει λίγα γι' αυτά). Παίζει να μη σε κάλυψα ιδιαίτερα γιατί η υπολογιστική άλγεβρα δεν είναι το κύριο ενδιαφέρον μου οπότε δεν έχω και εμπειρία με όλα αυτά τα εργαλεία. Έτσι όπως το βλέπω όμως τα δύο που πρότεινα, αξίζουν μία δοκιμή. Όχι επειδή το πρότεινα, αλλά επειδή είναι αξιόλογες προσπάθειες από τους δημιουργούς τους. Έστω ένα check-άρισμα των συναρτήσεων που προσφέρουν.

Όσον αφορά το GUI δεν θα μπορούσαν να συνδεθούν π.χ. με GnuEmacs;

Δημοσ.

Η Mathematica σίγουρα επαρκεί για αυτό που θες να κάνεις. Η εκμάθηση της είναι εύκολη αν γνωρίζεις προγραμματισμό, κυρίως functional προγραμματισμό. Δεν γνωρίζω τον ορισμό του Ω*(Μ) αλλά δεν είναι δύσκολο να γράψεις ένα (συμβολικό) τελεστή d στην Mathematica. Αν μας δώσεις μια πολύ απλοποιημένη μορφή αυτού που θες να κάνεις, ίσως μπορέσω να σε βοηθίσω.

 

Να ξέρεις όμως ότι η Mathematica είναι ακριβή!

Δημοσ.

Η Mathematica σίγουρα επαρκεί για αυτό που θες να κάνεις. Η εκμάθηση της είναι εύκολη αν γνωρίζεις προγραμματισμό, κυρίως functional προγραμματισμό. Δεν γνωρίζω τον ορισμό του Ω*(Μ) αλλά δεν είναι δύσκολο να γράψεις ένα (συμβολικό) τελεστή d στην Mathematica. Αν μας δώσεις μια πολύ απλοποιημένη μορφή αυτού που θες να κάνεις, ίσως μπορέσω να σε βοηθίσω.

 

Να ξέρεις όμως ότι η Mathematica είναι ακριβή!

 

Γι' αυτό πρότεινα XCAS.

 

 

Όσον αφορά το GUI δεν θα μπορούσαν να συνδεθούν π.χ. με GnuEmacs;

Δεν έχω ασχοληθεί με Emacs. Όσον αφορά το GIAC/XCAS, η GIAC είναι οι βιβλιοθήκη και το XCAS το GUI. Πρέπει σίγουρα να στείλεις κάποιο e-mail στον maintainer. Κοίταξε, όταν λέω ότι είναι προβληματικό δεν εννοώ ότι δε δουλεύεται, απλά τρώει τα κολληματάκια του. Σε windows δεν παρατήρησα τόσα κολλήματα.

Δημοσ.

Η Mathematica σίγουρα επαρκεί για αυτό που θες να κάνεις. Η εκμάθηση της είναι εύκολη αν γνωρίζεις προγραμματισμό, κυρίως functional προγραμματισμό. Δεν γνωρίζω τον ορισμό του Ω*(Μ) αλλά δεν είναι δύσκολο να γράψεις ένα (συμβολικό) τελεστή d στην Mathematica. Αν μας δώσεις μια πολύ απλοποιημένη μορφή αυτού που θες να κάνεις, ίσως μπορέσω να σε βοηθίσω.

 

Να ξέρεις όμως ότι η Mathematica είναι ακριβή!

Γνωρίζω πολύ καλά περί Mathematica, μιας και την χρησιμοποιούσα για χρόνια...

 

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

α) Common Lisp

β) Scheme

(αν και ανήκουν στην ίδια κατηγορία, αλλά με διαφορετική "νοοτροπία" στον πυρήνα του)

γ) Prolog

 

Ευχαριστώ και πάλι.

Δημοσ.

Εγώ ξέρω Common Lisp και γράφω και ένα tutorial πάνω στην γλώσσα που ελπίζω να ποστάρω εδώ κάποια στιγμή. Ακόμα δεν έχω καταλάβει τι θες να κάνεις. Εκτός αν υπάρχει κάποιο σχετικό library, δεν νομίζω ότι κάποια από τις γλώσσες αυτές είναι κατάλληλη. Η CL είναι multi-paradigm με εξαιρετικό OO. (CLOS). Έχει δυναμικά features αλλά δεν ξέρω αν ψάχνεις για runtime αλλαγές.

 

edit: Βάζω εδώ το tutorial, αλλά ακόμα δεν είναι έτοιμο. Απλά μπορείς να πάρεις μια γεύση για το πως θα κάνεις configure το σύστημα σου για να αρχίσεις να δουλεύεις με Common Lisp.

cl-tut.pdf

Δημοσ.

Εγώ ξέρω Common Lisp και γράφω και ένα tutorial πάνω στην γλώσσα που ελπίζω να ποστάρω εδώ κάποια στιγμή. Ακόμα δεν έχω καταλάβει τι θες να κάνεις. Εκτός αν υπάρχει κάποιο σχετικό library, δεν νομίζω ότι κάποια από τις γλώσσες αυτές είναι κατάλληλη. Η CL είναι multi-paradigm με εξαιρετικό OO. (CLOS). Έχει δυναμικά features αλλά δεν ξέρω αν ψάχνεις για runtime αλλαγές.

 

edit: Βάζω εδώ το tutorial, αλλά ακόμα δεν είναι έτοιμο. Απλά μπορείς να πάρεις μια γεύση για το πως θα κάνεις configure το σύστημα σου για να αρχίσεις να δουλεύεις με Common Lisp.

 

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

α) να "εκπαιδεύσω" το σύστημα (ήτοι, αποθήκευση κάποιων κανόνων)

β) χρήση των κανόνων για εξαγωγή αποτελέσματος για συγκεκριμένα δεδομένα

 

δηλαδή, κατ'αναλογία είναι σαν να θέλω να "διδάξω στο σύστημα" τους κανόνες παραγωγίσεως μιας συναρτήσεως και έπειτα να ζητήσω την παράγωγο μιας δοθείσης συναρτήσεως.

 

Συνεπώς, προτείνεις Common Lisp. Έχεις κάποια ιδιαίτερη προτίμηση; (π.χ. Closure CL, CMUCL, ECL, GCL); Ρωτάω γιατί (αν δεν κάνω λάθος), αυτές μόνο έχει η διανομή μου (Fedora 20).

 

A... μόλις είδα ότι αναφέρεις το SBCL (steel bank -αν δεν κάνω λάθος). Άρα, να υποθέσω ότι, από τις ανωτέρω προτιμάς την CMUCL... 

Δημοσ.

Αν δεν μπορείς να βάλεις SBCL όπως λέω στο tutorial, τότε βάλε CMUCL. Νομίζω τα δυναμικά features της Common Lisp την κάνουν κατάλληλη για αυτό που θες να κάνεις. Δες και τη CL-STORE βιβλιοθήκη, που επιτρέπει serialization. (Δηλαδή να αποθηκεύεις definitions/instances σε αρχεία και να τα ξαναδιαβάζεις σε καινούργιο session). Λογικά θα χρειαστείς αυτό το feature.

Δές και εδώ για implementation comparison,

http://www.cliki.net/Common%20Lisp%20implementation

Δημοσ. (επεξεργασμένο)

Αν δεν μπορείς να βάλεις SBCL όπως λέω στο tutorial, τότε βάλε CMUCL. Νομίζω τα δυναμικά features της Common Lisp την κάνουν κατάλληλη για αυτό που θες να κάνεις. Δες και τη CL-STORE βιβλιοθήκη, που επιτρέπει serialization. (Δηλαδή να αποθηκεύεις definitions/instances σε αρχεία και να τα ξαναδιαβάζεις σε καινούργιο session). Λογικά θα χρειαστείς αυτό το feature.

Ο package manager μου δείχνει ότι η silver bank (μόλις διάβασα για αυτό το όνομα! :P ) υπάρχει στα repositories. Υπάρχει κάποιος ιδιαίτερος λόγος που την προτιμάς έναντι των άλλων common lisp υλοποιήσεων; Φυσικά αναφέρομαι σε open source επιλογές πάντα.

Επεξ/σία από Dracon.74
Δημοσ.

Δεν υπάρχει κάποιος σοβαρός λόγος. Προτείνω SBCL γιατί αυτή μου πρότειναν και εμένα παλιότερα. SBCL/CMUCL δουλεύουν καλύτερα με SLIME νομίζω. Δεν κατέχω απο δικηγορικά (licences)!

Δημοσ.

Δεν υπάρχει κάποιος σοβαρός λόγος. Προτείνω SBCL γιατί αυτή μου πρότειναν και εμένα παλιότερα. SBCL/CMUCL δουλεύουν καλύτερα με SLIME νομίζω. Δεν κατέχω απο δικηγορικά (licences)!

:)

 

Μιλάμε για compiler και όχι interpreter σωστά; Αν, πάντως, σκεφτείς και άλλους συνδέσμους για εκμάθηση ... :)

 

A, επίσης να ρωτήσω αν υπάρχει κάποιου είδους binding με LaTeX για εξαγωγή καλύτερων (οπτικώς) αποτελεσμάτων;

 

Σε ευχαριστώ πάρα πολύ!

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...