SOTAVerified

Μεταφορά κωδίκων της MATLAB σε προγράμματα C++ για την επίλυση Κανονικών Διαφορικών Εξισώσεων Porting MATLAB routines to C++ for the numerical integration of Ordinary Differential Equations

2015-10-01ΘΕΟΔΩΡΑΚΟΠΟΥΛΟΣ ΑΧΙΛΛΕΑΣ ηλεκτρολόγος μηχ. και μηχ. υπολογιστών 2015Unverified0· sign in to hype

Θεοδωρακόπουλος Αχιλλέας-Κωνσταντίνος Βασιλείου

Unverified — Be the first to reproduce this paper.

Reproduce

Abstract

Στο πλαίσιο της διπλωματικής αυτής εργασίας επιχειρείται ο συγκερασμός της αξιοπιστίας και των δυνατοτήτων που παρέχει η ώριμη ρουτίνα ολοκλήρωσης προβλημάτων αρχικών συνθηκών ode15s του MATLAB με την ταχύτητα που προσφέρει η C++. Για το σκοπό αυτό δημιουργήθηκε σε γλώσσα C++ ένα αλγοριθμικά πιστό αντίγραφο της ode15s και των λοιπών αναγκαίων ρουτίνων, συμπεριλαμβάνοντας όλες τις παρεχόμενες δυνατότητες. Η επιλογή του ολοκληρωτή ode15s έναντι του δημοφιλέστερου ode45 εδράζει στη δυνατότητα του πρώτου να αντιμετωπίζει άκαμπτα προβλήματα και παράλληλα να επιδεικνύει υψηλή επίδοση ακόμη κι όταν χρησιμοποιείται σε μη άκαμπτα προβλήματα. Ο κώδικας έχει δομηθεί με τρόπο που διευκολύνει την προσθήκη νέων ολοκληρωτών του MATLAB όπως η ode45, ode113 κοκ. Τhis M.Sc. thesis attempts to unify the reliability and capabilities of ode15s, a mature initial value problem integration routine offered by MATLAB, with the high-speed properties of the C++ programming language. In this direction, ode15s and all relevant routines required were ported in C++ yielding an algorithmically identical C++ version of ode15s, which includes all functionality available in MATLAB. The choice of ode15s over the more popular ode45 is justified by the ability of the former to integrate stiff problems while exhibiting only a slight performance impact when applied to non-stiff problems. The source code has been structured to facilitate the addition of other MATLAB integrators such as ode45, ode113 etc.

Tasks

Reproductions