The Sage System

Total Page:16

File Type:pdf, Size:1020Kb

The Sage System Sage? Python Freedom! Community Development model Some useful features The Sage system Franco Saliola Nicolas M. Thiéry With slides from Franco Saliola, Florent Hivert, Dan Drake, William Stein, ... Université du Québec à Montréal Laboratoire de Mathématiques d'Orsay, Université Paris Sud Sage Days 30, Acadia University, 02/05/2011 _ α1 _ α2 _ α0 1/46 Sage? Python Freedom! Community Development model Some useful features Outline 1 Sage? 2 Python 3 Freedom! 4 Community 5 Development model 6 Some useful features 2/46 Sage? Python Freedom! Community Development model Some useful features Sage? 3/46 . and more! Sage? Python Freedom! Community Development model Some useful features Sage is a distribution of open source software Software included in Sage: ATLAS Automatically Tuned Linear Algebra Software BLAS Basic Fortan 77 linear algebra routines Bzip2 High-quality data compressor Cddlib Double Description Method of Motzkin Common Lisp Multi-paradigm and general-purpose programming lang. CVXOPT Convex optimization, linear programming, least squares Cython C-Extensions for Python F2c Converts Fortran 77 to C code Flint Fast Library for Number Theory FpLLL Euclidian lattice reduction FreeType A Free, High-Quality, and Portable Font Engine 4/46 . and more! Sage? Python Freedom! Community Development model Some useful features Sage is a distribution of open source software Software included in Sage: G95 Open source Fortran 95 compiler GAP Groups, Algorithms, Programming GD Dynamic graphics generation tool Genus2reduction Curve data computation Gfan Gröbner fans and tropical varieties Givaro C++ library for arithmetic and algebra GMP GNU Multiple Precision Arithmetic Library GMP-ECM Elliptic Curve Method for Integer Factorization GNU TLS Secure networking GSL Gnu Scientic Library JsMath JavaScript implementation of LaTeX 4/46 . and more! Sage? Python Freedom! Community Development model Some useful features Sage is a distribution of open source software Software included in Sage: IML Integer Matrix Library IPython Interactive Python shell LAPACK Fortan 77 linear algebra library Lcalc L-functions calculator Libgcrypt General purpose cryptographic library Libgpg-error Common error values for GnuPG components Linbox C++ linear algebra library Matplotlib Python plotting library Maxima computer algebra system Mercurial Revision control system MoinMoin Wiki 4/46 . and more! Sage? Python Freedom! Community Development model Some useful features Sage is a distribution of open source software Software included in Sage: MPFI Multiple Precision Floating-point Interval library MPFR C library for multiple-precision oating-point computations ECLib Cremona's Programs for Elliptic curves NetworkX Graph theory NTL Number theory C++ library Numpy Numerical linear algebra OpenCDK Open Crypto Development Kit PALP A Package for Analyzing Lattice Polytopes PARI/GP Number theory calculator Pexpect Pseudo-tty control for Python PNG Bitmap image support 4/46 . and more! Sage? Python Freedom! Community Development model Some useful features Sage is a distribution of open source software Software included in Sage: PolyBoRi Polynomials Over Boolean Rings PyCrypto Python Cryptography Toolkit Python Interpreted language Qd Quad-double/Double-double Computation Package R Statistical Computing Readline Line-editing Rpy Python interface to R Scipy Python library for scientic computation Singular fast commutative and noncommutative algebra Scons Software construction tool SQLite Relation database 4/46 Sage? Python Freedom! Community Development model Some useful features Sage is a distribution of open source software Software included in Sage: Sympow L-function calculator Symmetrica Representation theory Sympy Python library for symbolic computation Tachyon lightweight 3d ray tracer Termcap for writing portable text mode applications Twisted Python networking library Weave Tools for including C/C++ code within Python Zlib Data compression library ZODB Object-oriented database . and more! 4/46 Sage? Python Freedom! Community Development model Some useful features Sage is a distribution of mathematics software Arbitrary precision arith. GMP, MPFR, MPFI, NTL, . Algebra GAP, Maxima, Singular Algebraic geometry Singular, Macaulay2 (optional) Arithmetic geometry PARI, NTL, mwrank, ecm, . Symbolic computation Maxima, Sympy Exact linear algebra Linbox, IML Numerical calculations GSL, Scipy, Numpy Combinatorics Symmetrica, Lrcalc, PALP, Coxeter 3, Chevie Graph theory NetworkX, graphviz (optional) Group theory GAP . and more! 5/46 Sage? Python Freedom! Community Development model Some useful features Sage Demo Demo! 6/46 Sage? Python Freedom! Community Development model Some useful features Sage is a distribution of mathematics software > sage -gap ######### ###### ########### ### ############# ###### ############ #### ############## ######## ############# ##### ############### ######## ##### ###### ##### ###### # ######### ##### ##### ###### ###### ########## ##### ##### ####### ##### ##### #### ##### ###### ######## #### ##### ##### ############# ### #### ##### ####### #### #### ########### #### #### ##### ####### ##### ##### ###### #### #### ##### ####### ##### ##### ##### ############# ##### ##### ################ ##### ############# ###### ##### ################ ##### ############# ################ ################## ##### #### ############### ##### ##### ##### #### ############# ##### ##### ##### #### ######### ##### ##### ##### #### Information at: http://www.gap-system.org Try '?help' for help. See also '?copyright' and '?authors' Loading the library. Please be patient, this may take a while. GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> 7/46 Sage? Python Freedom! Community Development model Some useful features Sage is a distribution of mathematics software > sage -singular SINGULAR / Development A Computer Algebra System for Polynomial Computations / version 3-1-1 0< by: G.-M. Greuel, G. Pfister, H. Schoenemann \ Feb 2010 FB Mathematik der Universitaet, D-67653 Kaiserslautern \ > 8/46 Sage? Python Freedom! Community Development model Some useful features Sage is a distribution of mathematics software > sage -maxima Maxima 5.22.1 http://maxima.sourceforge.net using Lisp ECL 10.4.1 Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug reporting information. (%i1) 9/46 Sage? Python Freedom! Community Development model Some useful features Sage is a distribution of mathematics software > sage -gp GP/PARI CALCULATOR Version 2.4.3 (development svn-12623) amd64 running linux (x86-64/GMP-4.2.1 kernel) 64-bit version compiled: Apr 20 2011, gcc-4.4.3 (Ubuntu 4.4.3-4ubuntu5) (readline v6.1 enabled, extended help enabled) Copyright (C) 2000-2008 The PARI Group PARI/GP is free software, covered by the GNU General Public License, and comes WITHOUT ANY WARRANTY WHATSOEVER. Type ? for help, \q to quit. Type ?12 for how to get moral (and possibly technical) support. parisize = 8000000, primelimit = 500509 ? 10/46 Sage? Python Freedom! Community Development model Some useful features Sage is a distribution of mathematics software > sage -R R version 2.10.1 (2009-12-14) Copyright (C) 2009 The R Foundation for Statistical Computing ISBN 3-900051-07-0 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. Natural language support but running in an English locale R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > 11/46 Sage? Python Freedom! Community Development model Some useful features Sage combines the power of multiple software Demo! 12/46 Sage? Python Freedom! Community Development model Some useful features Sage includes a large native library Sage is also new code, providing new or improved functionality not previously available. 500k lines of code 2500 classes 27200 functions Rich mathematical content: categories, combinatorics, graphs, number theory, ... Many new algorithms 13/46 and to foster a friendly community of users and developers Sage? Python Freedom! Community Development model Some useful features Sage's mission To create a viable high-quality and open-source alternative to MapleTM, MathematicaTM, MagmaTM, and MATLABTM ... 14/46 Sage? Python Freedom! Community Development model Some useful features Sage's mission To create a viable high-quality and open-source alternative to MapleTM, MathematicaTM, MagmaTM, and MATLABTM ... and to foster a friendly community of users and developers 14/46 Feb. 2006: Sage 1.0 Sage Days 1, San Diego, 10 participants? Feb. 2010: Sage 4.4.2 Sage Days 20, Luminy (France), 120 participants Jan. 2011: Sage 4.6.1 10000 users? Funding (postdoc, workshops, hardware): NSF, ANR, CNRS, Universities and Institutes, Google, Microsoft Research, . Sage? Python Freedom! Community Development model Some useful features A short history of Sage 2002: Open Source Computer Algebra workshop in Lyon 1999-2005: William Stein writes over 25,000 lines of Magma code for his research, and realizes that Magma was a bad long term investment since he couldn't see or modify the internals Feb. 2005: Sage 0.1, a Python library linking together PARI, Maxima, Python, Singular, GAP. 15/46
Recommended publications
  • Plotting Direction Fields in Matlab and Maxima – a Short Tutorial
    Plotting direction fields in Matlab and Maxima – a short tutorial Luis Carvalho Introduction A first order differential equation can be expressed as dx x0(t) = = f(t; x) (1) dt where t is the independent variable and x is the dependent variable (on t). Note that the equation above is in normal form. The difficulty in solving equation (1) depends clearly on f(t; x). One way to gain geometric insight on how the solution might look like is to observe that any solution to (1) should be such that the slope at any point P (t0; x0) is f(t0; x0), since this is the value of the derivative at P . With this motivation in mind, if you select enough points and plot the slopes in each of these points, you will obtain a direction field for ODE (1). However, it is not easy to plot such a direction field for any function f(t; x), and so we must resort to some computational help. There are many computational packages to help us in this task. This is a short tutorial on how to plot direction fields for first order ODE’s in Matlab and Maxima. Matlab Matlab is a powerful “computing environment that combines numeric computation, advanced graphics and visualization” 1. A nice package for plotting direction field in Matlab (although resourceful, Matlab does not provide such facility natively) can be found at http://math.rice.edu/»dfield, contributed by John C. Polking from the Dept. of Mathematics at Rice University. To install this add-on, simply browse to the files for your version of Matlab and download them.
    [Show full text]
  • CAS (Computer Algebra System) Mathematica
    CAS (Computer Algebra System) Mathematica- UML students can download a copy for free as part of the UML site license; see the course website for details From: Wikipedia 2/9/2014 A computer algebra system (CAS) is a software program that allows [one] to compute with mathematical expressions in a way which is similar to the traditional handwritten computations of the mathematicians and other scientists. The main ones are Axiom, Magma, Maple, Mathematica and Sage (the latter includes several computer algebras systems, such as Macsyma and SymPy). Computer algebra systems began to appear in the 1960s, and evolved out of two quite different sources—the requirements of theoretical physicists and research into artificial intelligence. A prime example for the first development was the pioneering work conducted by the later Nobel Prize laureate in physics Martin Veltman, who designed a program for symbolic mathematics, especially High Energy Physics, called Schoonschip (Dutch for "clean ship") in 1963. Using LISP as the programming basis, Carl Engelman created MATHLAB in 1964 at MITRE within an artificial intelligence research environment. Later MATHLAB was made available to users on PDP-6 and PDP-10 Systems running TOPS-10 or TENEX in universities. Today it can still be used on SIMH-Emulations of the PDP-10. MATHLAB ("mathematical laboratory") should not be confused with MATLAB ("matrix laboratory") which is a system for numerical computation built 15 years later at the University of New Mexico, accidentally named rather similarly. The first popular computer algebra systems were muMATH, Reduce, Derive (based on muMATH), and Macsyma; a popular copyleft version of Macsyma called Maxima is actively being maintained.
    [Show full text]
  • Gforge-Lists-Mailman Apache2 0. Mailman 0. Gforge-Db-Postgresql
    llvm-2.8-dev mongodb-clients libfpdi-php lazarus-ide-gtk2 libecpg6 libtulip-ogl-dev gnome-mime-data 0. 0. 0. libparrot3.3.0 libwnck-3-0 0. 0. libjaxp1.3-java-gcj 0. libusbmuxd1 erlang-public-key 0. 1.93236714976 0. llvm-2.8 mongodb-dev libfpdf-tpl-php 0. libecpg-compat3 0. lazarus-ide libgemplugin-ruby1.8 0. 0. 2.24719101124 0. libtulip-dev 3.33333333333 0. 0. 0. 0. 0. 0. 0. 0. libgnomevfs2-0 gnome-desktop3-data 0. 0. 0. 1.68269230769 libopenr2-3 gir1.2-wnck-3.0 0. libxalan2-java-gcj 2.22222222222 libimobiledevice1 3.22580645161 erlang-inets 0. libgpg-error0 libblkid1 0.24154589372 libparrot-dev parrot llvm-2.8-runtime mongodb-server pnp4nagios-web libpgtypes3 libtulip-qt4-dev libnet-daemon-perl lazarus-src 0.0. 0. 0. 0. libgemplugin-ruby kdebase-workspace-data libecore-input1 0. libbft-dev libgtk2.0-common 0. 0. 0. 0.70949940875 0.749506903353 libeet-dev python-lazr.uri 0. 4.54674623473 0. cl-alexandria libxau6 0. pia freespacenotifier libksieve4 libtasn1-3 libgnutls26 0.45045045045 libwnck-3-common usbmuxd erlang-ssl libxerces2-java-gcj libgnomevfs2-common 0.0426257459506 0. gir1.2-gnomedesktop-3.0 fxload 0. dahdi-linux 0. 0. libcgns-dev 0. 0. 0. 0. mount initscripts sysvinit-utils 0. 0. reportbug libdbi-perl geant321-data 0.0394477317554 0.355029585799 0. 0. 4.07786302927 llvm-2.9 libecore-evas1 libecore-fb1 0. 0. 0.1574803149611.06709047565 libatk1.0-0 0. sugar-presence-service-0.90 0. 0. 0. 0. parrot-minimal mongrel 1.41899881751.45956607495 libgcrypt11 0. ksysguard kdebase-workspace-bin 0.
    [Show full text]
  • Gestión De Proyectos Software
    Proyecto Fin de Carrera AITForge: Gestión de Proyectos Software Autor: Antonio Domingo Lagares Alfaro Titulación: Ingeniero de Telecomunicación (Plan 98) Especialidad: Telemática Año: 2005 Tutor: Antonio Estepa Alonso AITForge: Gestión de Proyectos Software Índice de contenido 1 Prefacio..................................................................................................................6 2 Portales de Desarrollo Colaborativo......................................................................7 2.1 Introducción a los Entornos Colaborativos....................................................8 2.1.1 Hosting de Proyectos de Software Libre (FOSPHost)...........................9 2.1.2 ¿Software Libre y Software de Fuentes Abiertas?...............................10 2.1.3 Prácticas deseables en Software Libre................................................11 2.1.4 El nacimiento de una nueva filosofía de trabajo...................................13 2.1.5 Objetivos de los sistemas libres de FOSPHost....................................14 2.1.6 Principales características de los sistemas FOSPHost........................16 Características intrínsecas..........................................................................16 Características de utilidad...........................................................................17 Características de usabilidad......................................................................18 Características contextuales.......................................................................19 2.1.7
    [Show full text]
  • 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
    [Show full text]
  • Highlighting Wxmaxima in Calculus
    mathematics Article Not Another Computer Algebra System: Highlighting wxMaxima in Calculus Natanael Karjanto 1,* and Husty Serviana Husain 2 1 Department of Mathematics, University College, Natural Science Campus, Sungkyunkwan University Suwon 16419, Korea 2 Department of Mathematics Education, Faculty of Mathematics and Natural Science Education, Indonesia University of Education, Bandung 40154, Indonesia; [email protected] * Correspondence: [email protected] Abstract: This article introduces and explains a computer algebra system (CAS) wxMaxima for Calculus teaching and learning at the tertiary level. The didactic reasoning behind this approach is the need to implement an element of technology into classrooms to enhance students’ understanding of Calculus concepts. For many mathematics educators who have been using CAS, this material is of great interest, particularly for secondary teachers and university instructors who plan to introduce an alternative CAS into their classrooms. By highlighting both the strengths and limitations of the software, we hope that it will stimulate further debate not only among mathematics educators and software users but also also among symbolic computation and software developers. Keywords: computer algebra system; wxMaxima; Calculus; symbolic computation Citation: Karjanto, N.; Husain, H.S. 1. Introduction Not Another Computer Algebra A computer algebra system (CAS) is a program that can solve mathematical problems System: Highlighting wxMaxima in by rearranging formulas and finding a formula that solves the problem, as opposed to Calculus. Mathematics 2021, 9, 1317. just outputting the numerical value of the result. Maxima is a full-featured open-source https://doi.org/10.3390/ CAS: the software can serve as a calculator, provide analytical expressions, and perform math9121317 symbolic manipulations.
    [Show full text]
  • This Book Doesn't Tell You How to Write Faster Code, Or How to Write Code with Fewer Memory Leaks, Or Even How to Debug Code at All
    Practical Development Environments By Matthew B. Doar ............................................... Publisher: O'Reilly Pub Date: September 2005 ISBN: 0-596-00796-5 Pages: 328 Table of Contents | Index This book doesn't tell you how to write faster code, or how to write code with fewer memory leaks, or even how to debug code at all. What it does tell you is how to build your product in better ways, how to keep track of the code that you write, and how to track the bugs in your code. Plus some more things you'll wish you had known before starting a project. Practical Development Environments is a guide, a collection of advice about real development environments for small to medium-sized projects and groups. Each of the chapters considers a different kind of tool - tools for tracking versions of files, build tools, testing tools, bug-tracking tools, tools for creating documentation, and tools for creating packaged releases. Each chapter discusses what you should look for in that kind of tool and what to avoid, and also describes some good ideas, bad ideas, and annoying experiences for each area. Specific instances of each type of tool are described in enough detail so that you can decide which ones you want to investigate further. Developers want to write code, not maintain makefiles. Writers want to write content instead of manage templates. IT provides machines, but doesn't have time to maintain all the different tools. Managers want the product to move smoothly from development to release, and are interested in tools to help this happen more often.
    [Show full text]
  • Cross-Platform Environment for Application Life Cycle Management
    International Journal “Information Theories and Applications”, Vol. 24, Number 2, © 2017 177 CROSS-PLATFORM ENVIRONMENT FOR APPLICATION LIFE CYCLE MANAGEMENT Elena Chebanyuk, Oleksii Hlukhov Abstract: “Application Lifecycle Management (ALM) integrates and governs the planning, definition, design, development, testing, deployment, and management phases throughout the application lifecycle” [OMG, 2006]. This paper is devoted to designing of ALM for supporting all software development processes. A review of papers, making strong contribution for improving software development life cycle processes is represented. This review touches three branches of investigation, namely papers, related to: (1) improving of communication processes between stakeholders; (2) increasing effectiveness of some operations in software development life cycle processes; (3) developing fundamental methods and tools for performing different operations related to several software development life cycle. Then comparative analysis of such ALM environments as Visual Studio, Team Foundation Server, FusionForge, TeamForge, IBM Rational Team Concert, IBM Rational Software Architect, and IBM Rational Functional Tester, is performed. Comparison of different ALM environments’ functionality lets to formulate requirements for designing cross-platform ALM environment. Then the conceptual schema of cross-platform ALM based on Eclipse environment is proposed. All plugins’ functionalities were properly tested. Collaboration of plugins for supporting several software development tasks
    [Show full text]
  • Programming for Computations – Python
    15 Svein Linge · Hans Petter Langtangen Programming for Computations – Python Editorial Board T. J.Barth M.Griebel D.E.Keyes R.M.Nieminen D.Roose T.Schlick Texts in Computational 15 Science and Engineering Editors Timothy J. Barth Michael Griebel David E. Keyes Risto M. Nieminen Dirk Roose Tamar Schlick More information about this series at http://www.springer.com/series/5151 Svein Linge Hans Petter Langtangen Programming for Computations – Python A Gentle Introduction to Numerical Simulations with Python Svein Linge Hans Petter Langtangen Department of Process, Energy and Simula Research Laboratory Environmental Technology Lysaker, Norway University College of Southeast Norway Porsgrunn, Norway On leave from: Department of Informatics University of Oslo Oslo, Norway ISSN 1611-0994 Texts in Computational Science and Engineering ISBN 978-3-319-32427-2 ISBN 978-3-319-32428-9 (eBook) DOI 10.1007/978-3-319-32428-9 Springer Heidelberg Dordrecht London New York Library of Congress Control Number: 2016945368 Mathematic Subject Classification (2010): 26-01, 34A05, 34A30, 34A34, 39-01, 40-01, 65D15, 65D25, 65D30, 68-01, 68N01, 68N19, 68N30, 70-01, 92D25, 97-04, 97U50 © The Editor(s) (if applicable) and the Author(s) 2016 This book is published open access. Open Access This book is distributed under the terms of the Creative Commons Attribution-Non- Commercial 4.0 International License (http://creativecommons.org/licenses/by-nc/4.0/), which permits any noncommercial use, duplication, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, a link is provided to the Creative Commons license and any changes made are indicated.
    [Show full text]
  • They Have Very Good Docs At
    Intro to the Julia programming language Brendan O’Connor CMU, Dec 2013 They have very good docs at: http://julialang.org/ I’m borrowing some slides from: http://julialang.org/blog/2013/03/julia-tutorial-MIT/ 1 Tuesday, December 17, 13 Julia • A relatively new, open-source numeric programming language that’s both convenient and fast • Version 0.2. Still in flux, especially libraries. But the basics are very usable. • Lots of development momentum 2 Tuesday, December 17, 13 Why Julia? Dynamic languages are extremely popular for numerical work: ‣ Matlab, R, NumPy/SciPy, Mathematica, etc. ‣ very simple to learn and easy to do research in However, all have a “split language” approach: ‣ high-level dynamic language for scripting low-level operations ‣ C/C++/Fortran for implementing fast low-level operations Libraries in C — no productivity boost for library writers Forces vectorization — sometimes a scalar loop is just better slide from ?? 2012 3 Bezanson, Karpinski, Shah, Edelman Tuesday, December 17, 13 “Gang of Forty” Matlab Maple Mathematica SciPy SciLab IDL R Octave S-PLUS SAS J APL Maxima Mathcad Axiom Sage Lush Ch LabView O-Matrix PV-WAVE Igor Pro OriginLab FreeMat Yorick GAUSS MuPad Genius SciRuby Ox Stata JLab Magma Euler Rlab Speakeasy GDL Nickle gretl ana Torch7 slide from March 2013 4 Bezanson, Karpinski, Shah, Edelman Tuesday, December 17, 13 Numeric programming environments Core properties Dynamic Fast? and math-y? C/C++/ Fortran/Java − + Matlab + − Num/SciPy + − R + − Older table: http://brenocon.com/blog/2009/02/comparison-of-data-analysis-packages-r-matlab-scipy-excel-sas-spss-stata/ Tuesday, December 17, 13 - Dynamic vs Fast: the usual tradeof - PL quality: more subjective.
    [Show full text]
  • Teaching Dynamical Systems with Maxima 1. Mechanics For
    125 Teaching Dynamical Systems with Maxima Jaime E. Viliate University of Porto, Faculty of Engineering Rua Dr. Roberto Frias, Porto 42OO-~65, Portugal, villatec~fe.up.pt WWW home page: http://viliate.org/ We report on our experience in teaching a dynamical systems course to second year engineering students. The course has been taught with a hands-on ap proach, using a Computer Algebra System: Maxima. We have developed some additional programs to help students explore the dynamics of the systems, in a more intuitiva way and without losing too much time with computer program ming. The result has been very encouraging; students are better motivated using this approach, as compared to the more traditional methods that we used in the past. 1. Mechanics for Engineering students Our engineering students in the University of Porto have to take two courses in Physics during their first. or second year of studies. The first course is a course on Newtonian mechanics. When they attend that course, they have already taken one or two semesters of calculus, and during their high-school studies they must have already studied particle kinematics and dynamics. The main goal of the first course in physics is then to solve the equations of motion for some mechanical systems; for example, for a one-dimensional system the equations of motion are: (1) .F(x,v) (2) where x is the position, v the speed, m the mass and F is the total external force, which might depend on x and v. In general, equations 1 and 2 lead to a non-linear system.
    [Show full text]
  • Maxima by Example: Ch. 1, Getting Started ∗
    Maxima by Example: Ch. 1, Getting Started ¤ Edwin L. Woollett Contents 1 Getting Started 2 1.1 Introduction . 2 1.1.1 What is Maxima? . 2 1.2 Using the XMaxima Interface . 2 1.2.1 Using Console - Command Line Maxima . 3 1.2.2 Text Editors . 3 1.2.3 The Maxima Manual . 3 1.3 Expressions in Maxima . 4 1.3.1 Operators in Maxima . 4 1.3.2 Numbers in Maxima . 5 1.3.3 Variables in Maxima . 6 1.3.4 Constants in Maxima . 7 1.3.5 Rational Expressions in Maxima, rat(...) . 8 1.4 List Creation and Manipulation . 9 1.4.1 The Maxima List and the Lisp List . 10 1.4.2 cons, endcons, append . 10 1.4.3 makelist and map . 11 1.4.4 Anonymous Unnamed Function lamda . 14 1.4.5 Accessing List Elements Using part(...) or Bracket Pairs . 15 1.4.6 Creating a List of Fractional Values . 15 1.5 Data Files: Read, Write, Fit, and Plot . 15 1.5.1 le search . 15 1.5.2 le search maxima . 16 1.5.3 maxima-init.mac and maxima userdir . 17 1.5.4 Viewing a File with printle . 18 1.5.5 Creating a Data File using with stdout . 18 1.5.6 Creating a List from a Data File: read nested list . 18 1.5.7 Write List to Data File with write data . 19 1.5.8 Using Random Numbers to Create Noisy Data . 19 1.5.9 Using lsquares estimates for a Fit . 21 1.5.10 Nested List $ Matrix using apply and substpart .
    [Show full text]