The Sage Project: Unifying Free Mathematical Software to Create a Viable Alternative to Magma, Maple, Mathematica and MATLAB
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Developing Scientific Computing Software: Current Processes And
DEVELOPING: SGIENffl&Pifli|ii^Mp| CURRENT PROCESSES" WMWiiiiia DEVELOPING SCIENTIFIC COMPUTING SOFTWARE MASTER OF APPLIED SCIENCE(2008) McMaster University COMPUTING AND SOFTWARE Hamilton, Ontario TITLE: Developing Scientific Computing Software: Current Processes and Future Directions AUTHOR: Jin Tang, M.M. (Nanjing University) SUPERVISOR: Dr. Spencer Smith NUMBER OF PAGERS: xxii, 216 n Abstract Considerable emphasis in scientific computing (SC) software development has been placed on the software qualities of performance and correctness. How ever, other software qualities have received less attention, such as the qualities of usability, maintainability, testability and reusability. Presented in this work is a survey titled "Survey on Developing Scien tific Computing Software, which is apparently the first conducted to explore the current approaches to SC software development and to determine which qualities of SC software are in most need of improvement. From the survey. we found that systematic development process is frequently not adopted in the SC software community, since 58% of respondents mentioned that their entire development process potentially consists only of coding and debugging. Moreover, semi-formal and formal specification is rarely used when developing SC software, which is suggested by the fact that 70% of respondents indicate that they only use informal specification. In terms of the problems in SC software development, which are dis covered by analyzing the survey results, a solution is proposed to improve the quality of SC software by using SE methodologies, concretely, using a modified Parnas' Rational Design Process (PRDP) and the Unified Software Development Process (USDP). A comparison of the two candidate processes is provided to help SC software practitioners determine which of the two pro cesses fits their particular situation. -
The Guide to Available Mathematical Software Problem Classification System
The Guide to Available Mathematical Software Problem Classification System Ronald F. Boisvert, Sally E. Howe and David K. Kahaner November 1990 U.S. DEPARTMENT OF COMMERCE National Institute of Standards and Technology Gaithersburg, MD 20899 100 U56 //4475 1990 C.2 NATIONAL, INSrrnJTE OF STANDARDS & TECHNOLOGY / THE GUIDE TO AVAILABLE MATHEMATICAL SOFTWARE PROBLEM CLASSIFICATION SYSTEM Ronald F. Boisvert Sally E. Howe David K. Kahaner U.S. DEPARTMENT OF COMMERCE National InstHute of Standards and Technology Center for Computing and Applied Mathematics Gaithersburg, MO 20899 November 1990 U.S. DEPARTMENT OF COMMERCE Robert A. Mosbacher, Secretary NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY John W. Lyons, Director 2 Boisvert, Howe and Kahaner own manuals or on-line documentation system. In order to determine what software is avail- able to solve a particular problem, users must search through a very large, heterogeneous collection of information. This is a tedious and error-prone process. As a result, there has been much interest in the development of automated advisory systems to help users select software. Keyword search is a popular technique used for this purpose. In such a system keywords or phrases are assigned to each piece of software to succinctly define its purpose, and the set of aU such keywords axe entered into a database. Keyword-based selection systems query users for a set of keywords and then present a fist of software modules which contain them. A major difficulty with such systems is that users often have trouble in providing the appropriate keywords for a given mathematical or statistical problem. There is such a wealth of alternate mathematical and statistical terminology that it would be a rare occurrence for two separate knowledgeable persons to assign the same set of keywords to a given software module. -
Performance Analysis of Effective Symbolic Methods for Solving Band Matrix Slaes
Performance Analysis of Effective Symbolic Methods for Solving Band Matrix SLAEs Milena Veneva ∗1 and Alexander Ayriyan y1 1Joint Institute for Nuclear Research, Laboratory of Information Technologies, Joliot-Curie 6, 141980 Dubna, Moscow region, Russia Abstract This paper presents an experimental performance study of implementations of three symbolic algorithms for solving band matrix systems of linear algebraic equations with heptadiagonal, pen- tadiagonal, and tridiagonal coefficient matrices. The only assumption on the coefficient matrix in order for the algorithms to be stable is nonsingularity. These algorithms are implemented using the GiNaC library of C++ and the SymPy library of Python, considering five different data storing classes. Performance analysis of the implementations is done using the high-performance computing (HPC) platforms “HybriLIT” and “Avitohol”. The experimental setup and the results from the conducted computations on the individual computer systems are presented and discussed. An analysis of the three algorithms is performed. 1 Introduction Systems of linear algebraic equations (SLAEs) with heptadiagonal (HD), pentadiagonal (PD) and tridiagonal (TD) coefficient matrices may arise after many different scientific and engineering prob- lems, as well as problems of the computational linear algebra where finding the solution of a SLAE is considered to be one of the most important problems. On the other hand, special matrix’s char- acteristics like diagonal dominance, positive definiteness, etc. are not always feasible. The latter two points explain why there is a need of methods for solving of SLAEs which take into account the band structure of the matrices and do not have any other special requirements to them. One possible approach to this problem is the symbolic algorithms. -
A Comparison of Six Numerical Software Packages for Educational Use in the Chemical Engineering Curriculum
SESSION 2520 A COMPARISON OF SIX NUMERICAL SOFTWARE PACKAGES FOR EDUCATIONAL USE IN THE CHEMICAL ENGINEERING CURRICULUM Mordechai Shacham Department of Chemical Engineering Ben-Gurion University of the Negev P. O. Box 653 Beer Sheva 84105, Israel Tel: (972) 7-6461481 Fax: (972) 7-6472916 E-mail: [email protected] Michael B. Cutlip Department of Chemical Engineering University of Connecticut Box U-222 Storrs, CT 06269-3222 Tel: (860)486-0321 Fax: (860)486-2959 E-mail: [email protected] INTRODUCTION Until the early 1980’s, computer use in Chemical Engineering Education involved mainly FORTRAN and less frequently CSMP programming. A typical com- puter assignment in that era would require the student to carry out the following tasks: 1.) Derive the model equations for the problem at hand, 2.) Find an appropri- ate numerical method to solve the model (mostly NLE’s or ODE’s), 3.) Write and debug a FORTRAN program to solve the problem using the selected numerical algo- rithm, and 4.) Analyze the results for validity and precision. It was soon recognized that the second and third tasks of the solution were minor contributions to the learning of the subject material in most chemical engi- neering courses, but they were actually the most time consuming and frustrating parts of computer assignments. The computer indeed enabled the students to solve realistic problems, but the time spent on technical details which were of minor rele- vance to the subject matter was much too long. In order to solve this difficulty, there was a tendency to provide the students with computer programs that could solve one particular type of a problem. -
SNC: a Cloud Service Platform for Symbolic-Numeric Computation Using Just-In-Time Compilation
This article has been accepted for publication in a future issue of this journal, but has not been fully edited. Content may change prior to final publication. Citation information: DOI 10.1109/TCC.2017.2656088, IEEE Transactions on Cloud Computing IEEE TRANSACTIONS ON CLOUD COMPUTING 1 SNC: A Cloud Service Platform for Symbolic-Numeric Computation using Just-In-Time Compilation Peng Zhang1, Member, IEEE, Yueming Liu1, and Meikang Qiu, Senior Member, IEEE and SQL. Other types of Cloud services include: Software as a Abstract— Cloud services have been widely employed in IT Service (SaaS) in which the software is licensed and hosted in industry and scientific research. By using Cloud services users can Clouds; and Database as a Service (DBaaS) in which managed move computing tasks and data away from local computers to database services are hosted in Clouds. While enjoying these remote datacenters. By accessing Internet-based services over lightweight and mobile devices, users deploy diversified Cloud great services, we must face the challenges raised up by these applications on powerful machines. The key drivers towards this unexploited opportunities within a Cloud environment. paradigm for the scientific computing field include the substantial Complex scientific computing applications are being widely computing capacity, on-demand provisioning and cross-platform interoperability. To fully harness the Cloud services for scientific studied within the emerging Cloud-based services environment computing, however, we need to design an application-specific [4-12]. Traditionally, the focus is given to the parallel scientific platform to help the users efficiently migrate their applications. In HPC (high performance computing) applications [6, 12, 13], this, we propose a Cloud service platform for symbolic-numeric where substantial effort has been given to the integration of computation– SNC. -
Axiom / Fricas
Axiom / FriCAS Christoph Koutschan Research Institute for Symbolic Computation Johannes Kepler Universit¨atLinz, Austria Computer Algebra Systems 15.11.2010 Master's Thesis: The ISAC project • initiative at Graz University of Technology • Institute for Software Technology • Institute for Information Systems and Computer Media • experimental software assembling open source components with as little glue code as possible • feasibility study for a novel kind of transparent single-stepping software for applied mathematics • experimenting with concepts and technologies from • computer mathematics (theorem proving, symbolic computation, model based reasoning, etc.) • e-learning (knowledge space theory, usability engineering, computer-supported collaboration, etc.) • The development employs academic expertise from several disciplines. The challenge for research is interdisciplinary cooperation. Rewriting, a basic CAS technique This technique is used in simplification, equation solving, and many other CAS functions, and it is intuitively comprehensible. This would make rewriting useful for educational systems|if one copes with the problem, that even elementary simplifications involve hundreds of rewrites. As an example see: http://www.ist.tugraz.at/projects/isac/www/content/ publications.html#DA-M02-main \Reverse rewriting" for comprehensible justification Many CAS functions can not be done by rewriting, for instance cancelling multivariate polynomials, factoring or integration. However, respective inverse problems can be done by rewriting and produce human readable derivations. As an example see: http://www.ist.tugraz.at/projects/isac/www/content/ publications.html#GGTs-von-Polynomen Equation solving made transparent Re-engineering equation solvers in \transparent single-stepping systems" leads to types of equations, arranged in a tree. ISAC's tree of equations are to be compared with what is produced by tracing facilities of Mathematica and/or Maple. -
Arxiv:2102.02679V1 [Cs.LO] 4 Feb 2021 HOL-ODE [10], Which Supports Reasoning for Systems of Ordinary Differential Equations (Sodes)
Certifying Differential Equation Solutions from Computer Algebra Systems in Isabelle/HOL Thomas Hickman, Christian Pardillo Laursen, and Simon Foster University of York Abstract. The Isabelle/HOL proof assistant has a powerful library for continuous analysis, which provides the foundation for verification of hybrid systems. However, Isabelle lacks automated proof support for continuous artifacts, which means that verification is often manual. In contrast, Computer Algebra Systems (CAS), such as Mathematica and SageMath, contain a wealth of efficient algorithms for matrices, differen- tial equations, and other related artifacts. Nevertheless, these algorithms are not verified, and thus their outputs cannot, of themselves, be trusted for use in a safety critical system. In this paper we integrate two CAS systems into Isabelle, with the aim of certifying symbolic solutions to or- dinary differential equations. This supports a verification technique that is both automated and trustworthy. 1 Introduction Verification of Cyber-Physical and Autonomous Systems requires that we can verify both discrete control, and continuous evolution, as envisaged by the hy- brid systems domain [1]. Whilst powerful bespoke verification tools exist, such as the KeYmaera X [2] proof assistant, software engineering requires a gen- eral framework, which can support a variety of notations and paradigms [3]. Isabelle/HOL [4] is a such a framework. Its combination of an extensible fron- tend for syntax processing, and a plug-in oriented backend, based in ML, which supports a wealth of heterogeneous semantic models and proof tools, supports a flexible platform for software development, verification, and assurance [5,6,7]. Verification of hybrid systems in Isabelle is supported by several detailed li- braries of Analysis, including Multivariate Analysis [8], Affine Arithmetic [9], and arXiv:2102.02679v1 [cs.LO] 4 Feb 2021 HOL-ODE [10], which supports reasoning for Systems of Ordinary Differential Equations (SODEs). -
Performance Analysis of Effective Symbolic Methods for Solving Band Matrix Slaes
EPJ Web of Conferences 214, 05004 (2019) https://doi.org/10.1051/epjconf/201921405004 CHEP 2018 Performance Analysis of Effective Symbolic Methods for Solving Band Matrix SLAEs 1, 1, Milena Veneva ∗ and Alexander Ayriyan ∗∗ 1Joint Institute for Nuclear Research, Laboratory of Information Technologies, Joliot-Curie 6, 141980 Dubna, Moscow region, Russia Abstract. This paper presents an experimental performance study of imple- mentations of three symbolic algorithms for solving band matrix systems of linear algebraic equations with heptadiagonal, pentadiagonal, and tridiagonal coefficient matrices. The only assumption on the coefficient matrix in order for the algorithms to be stable is nonsingularity. These algorithms are implemented using the GiNaC library of C++ and the SymPy library of Python, considering five different data storing classes. Performance analysis of the implementations is done using the high-performance computing (HPC) platforms “HybriLIT” and “Avitohol”. The experimental setup and the results from the conducted computations on the individual computer systems are presented and discussed. An analysis of the three algorithms is performed. 1 Introduction Systems of linear algebraic equations (SLAEs) with heptadiagonal (HD), pentadiagonal (PD) and tridiagonal (TD) coefficient matrices may arise after many different scientific and engi- neering problems, as well as problems of the computational linear algebra where finding the solution of a SLAE is considered to be one of the most important problems. On the other hand, special matrix’s characteristics like diagonal dominance, positive definiteness, etc. are not always feasible. The latter two points explain why there is a need of methods for solving of SLAEs which take into account the band structure of the matrices and do not have any other special requirements to them. -
Aldor Generics in Software Component Architectures
Aldor Generics in Software Component Architectures (Spine title: Aldor Generics in Software Component Architectures) (Thesis Format: Monograph) by Michael Llewellyn Lloyd Graduate Program in Computer Science Submitted in partial fulfillment of the requirements for the degree of Masters Faculty of Graduate Studies The University of Western Ontario London, Ontario October, 2007 c Michael Llewellyn Lloyd 2007 THE UNIVERSITY OF WESTERN ONTARIO FACULTY OF GRADUATE STUDIES CERTIFICATE OF EXAMINATION Supervisor Examiners Dr. Stephen M. Watt Dr. David Jeffrey Supervisory Committee Dr. Hanan Lutfiyya Dr. Eric Schost The thesis by Michael Llewellyn Lloyd entitled Aldor Generics in Software Component Architectures is accepted in partial fulfillment of the requirements for the degree of Masters Date Chair of the Thesis Examination Board ii Abstract With the introduction of the Generic Interface Definition Language(GIDL), Software Component Architectures may now use Parameterized types between languages at a high level. Using GIDL, generic programming to be used between programming modules written in different programming languages. By exploiting this mechanism, GIDL creates a flexible programming environment where, each module may be coded in a language appropriate to its function. Currently the GIDL architecture has been implemented for C++ and Java, both object-oriented languages which support com- pile time binding for generic types. This thesis examines an implementation of GIDL for the Aldor language, an imperative language with some aspects of functional pro- gramming, particularly suited for representing algebraic types. In particular, we ex- periment with Aldors implementation of runtime binding for generic types, and show how GIDL allows programmers to use a rich set of generic types across language barriers. -
A Quick Guide to Gnuplot
A Quick Guide to Gnuplot Andrea Mignone Physics Department, University of Torino AA 2020-2021 What is Gnuplot ? • Gnuplot is a free, command-driven, interactive, function and data plotting program, providing a relatively simple environment to make simple 2D plots (e.g. f(x) or f(x,y)); • It is available for all platforms, including Linux, Mac and Windows (http://www.gnuplot.info) • To start gnuplot from the terminal, simply type > gnuplot • To produce a simple plot, e.g. f(x) = sin(x) and f(x) = cos(x)^2 gnuplot> plot sin(x) gnuplot> replot (cos(x))**2 # Add another plot • By default, gnuplot assumes that the independent, or "dummy", variable for the plot command is "x” (or “t” in parametric mode). Mathematical Functions • In general, any mathematical expression accepted by C, FORTRAN, Pascal, or BASIC may be plotted. The precedence of operators is determined by the specifications of the C programming language. • Gnuplot supports the same operators of the C programming language, except that most operators accept integer, real, and complex arguments. • Exponentiation is done through the ** operator (as in FORTRAN) Using set/unset • The set/unset commands can be used to controls many features, including axis range and type, title, fonts, etc… • Here are some examples: Command Description set xrange[0:2*pi] Limit the x-axis range from 0 to 2*pi, set ylabel “f(x)” Sets the label on the y-axis (same as “set xlabel”) set title “My Plot” Sets the plot title set log y Set logarithmic scale on the y-axis (same as “set log x”) unset log y Disable log scale on the y-axis set key bottom left Position the legend in the bottom left part of the plot set xlabel font ",18" Change font size for the x-axis label (same as “set ylabel”) set tic font ",18" Change the major (labelled) tics font size on all axes. -
Python Data Plotting and Visualisation Extravaganza 1 Introduction
View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by The Python Papers Anthology The Python Papers Monograph, Vol. 1 (2009) 1 Available online at http://ojs.pythonpapers.org/index.php/tppm Python Data Plotting and Visualisation Extravaganza Guy K. Kloss Computer Science Institute of Information & Mathematical Sciences Massey University at Albany, Auckland, New Zealand [email protected] This paper tries to dive into certain aspects of graphical visualisation of data. Specically it focuses on the plotting of (multi-dimensional) data us- ing 2D and 3D tools, which can update plots at run-time of an application producing or acquiring new or updated data during its run time. Other visual- isation tools for example for graph visualisation, post computation rendering and interactive visual data exploration are intentionally left out. Keywords: Linear regression; vector eld; ane transformation; NumPy. 1 Introduction Many applications produce data. Data by itself is often not too helpful. To generate knowledge out of data, a user usually has to digest the information contained within the data. Many people have the tendency to extract patterns from information much more easily when the data is visualised. So data that can be visualised in some way can be much more accessible for the purpose of understanding. This paper focuses on the aspect of data plotting for these purposes. Data stored in some more or less structured form can be analysed in multiple ways. One aspect of this is post-analysis, which can often be organised in an interactive exploration fashion. One may for example import the data into a spreadsheet or otherwise suitable software tool which allows to present the data in various ways. -
Sage Tutorial (Pdf)
Sage Tutorial Release 9.4 The Sage Development Team Aug 24, 2021 CONTENTS 1 Introduction 3 1.1 Installation................................................4 1.2 Ways to Use Sage.............................................4 1.3 Longterm Goals for Sage.........................................5 2 A Guided Tour 7 2.1 Assignment, Equality, and Arithmetic..................................7 2.2 Getting Help...............................................9 2.3 Functions, Indentation, and Counting.................................. 10 2.4 Basic Algebra and Calculus....................................... 14 2.5 Plotting.................................................. 20 2.6 Some Common Issues with Functions.................................. 23 2.7 Basic Rings................................................ 26 2.8 Linear Algebra.............................................. 28 2.9 Polynomials............................................... 32 2.10 Parents, Conversion and Coercion.................................... 36 2.11 Finite Groups, Abelian Groups...................................... 42 2.12 Number Theory............................................. 43 2.13 Some More Advanced Mathematics................................... 46 3 The Interactive Shell 55 3.1 Your Sage Session............................................ 55 3.2 Logging Input and Output........................................ 57 3.3 Paste Ignores Prompts.......................................... 58 3.4 Timing Commands............................................ 58 3.5 Other IPython