Papers by Michael Monagan
Communications in computer and information science, 2020
Leslie matrices may be used to model the age distribution of a population as well as population g... more Leslie matrices may be used to model the age distribution of a population as well as population growth. The dominant eigenvalue tells us the long term population growth and the corresponding eigenvector tells us the long term age distribution. Because the model is so simple, and it does not require any knowledge of physics or chemistry or biology, it's ideal for presenting in a first course on Linear Algebra as the main application of eigenvalues and eigenvectors. In this paper we present the Leslie age distribution model and provide accompanying exercises suitable for students. We use Maple for both numerical calculations and symbolic calculations. We include some data for real populations that instructors may use for classroom presentation or for assignments.
Algorithms which compute modulo triangular sets must respect the presence of zero-divisors. We pr... more Algorithms which compute modulo triangular sets must respect the presence of zero-divisors. We present Hensel lifting as a tool for dealing with them. We give an application: a modular algorithm for computing GCDs of univariate polynomials with coefficients modulo a radical triangular set over Q. Our modular algorithm naturally generalizes previous work from algebraic number theory. We have implemented our algorithm using Maple's recden package. We compare our implementation with the procedure RegularGcd in the RegularChains package.
HAL (Le Centre pour la Communication Scientifique Directe), Jul 4, 2016
We present two results, the first on the distribution of the roots of a polynomial over the ring ... more We present two results, the first on the distribution of the roots of a polynomial over the ring of integers modulo n and the second on the distribution of the roots of the Sylvester resultant of two multivariate polynomials. The second result has application to polynomial GCD computation and solving polynomial diophantine equations. Résumé. Nous présentons deux résultats: le premier concerne la distribution des racines d'un polynôme sur l'anneau des entiers modulo n et le deuxième concerne la distribution des racines du déterminant de Sylvester de deux polynômes multivariés. Ceci est utile pour le calcul de PGCD et la résolution des équations diophantiennes polynomiales.
Packages for Discrete Mathematics
The Maple Programming Language
Springer eBooks, 1992
We have already seen many examples of two key elements of Maple’s programming language, the expre... more We have already seen many examples of two key elements of Maple’s programming language, the expression statement (a command or expression) and the assignment statement.
Measuring and improving performance
Springer eBooks, 1992
As any Maple user can easily observe, a complicated Maple computation can take seconds, minutes, ... more As any Maple user can easily observe, a complicated Maple computation can take seconds, minutes, or more. Symbolic computation can often require a lot of computer memory as well. Computer memory requirements are dictated not only by the length of the answer (the number of terms, number of symbols, or the number of digits in numbers), but also the size of the expressions generated in intermediate steps before the final result. If you are concerned about a Maple computation taking ”too long” or ”too much memory”, the first step to trying to remedy the situation is to find out how much time or memory the computation takes. In this section we discuss ways you can monitor how these resources are being consumed.
arXiv (Cornell University), Jan 6, 2016
We consider the problem of computing the monic gcd of two polynomials over a number field L = Q(α... more We consider the problem of computing the monic gcd of two polynomials over a number field L = Q(α1,. .. , αn). Langemyr and McCallum have already shown how Brown's modular GCD algorithm for polynomials over Q can be modified to work for Q(α) and subsequently, Langemyr * Supported by NSERC of Canada and the MITACS NCE of Canada.
Graphisches Programmieren mit Maple
Springer eBooks, 1996
Maple enthalt eine grose Sammlung von Befehlen zur Generierung zwei- und dreidimensionaler Zeichn... more Maple enthalt eine grose Sammlung von Befehlen zur Generierung zwei- und dreidimensionaler Zeichnungen. Fur mathematische Ausdrucke konnen Sie Bibliotheksfunktionen wie plot und plot3d verwenden oder eine der vielen spezialisierten Graphikroutinen der Pakete plots und plottools, des Pakets DEtools (zum Arbeiten mit Differentialgleichungen) und des Pakets stats (fur statistische Daten). Die Eingaben an diese Befehle sind typischerweise eine oder mehrere Maple-Formeln, Operatoren oder Funktionen mit Informationen uber Definitionsbereiche und moglicherweise Wertebereiche. In allen Fallen ermoglichen die Graphikbefehle das Setzen von Optionen zum Spezifizieren von Attributen wie Anderung des Farbverlaufs, Schattierung und Darstellung der Achsen.

Journal of Symbolic Computation, May 1, 1997
This paper describes how computer algebra systems can be used to help students understand mathema... more This paper describes how computer algebra systems can be used to help students understand mathematical algorithms. Since one can write programs in these systems, one way to help the students is to show them complete programs and try to show them what the programs do. However, programs are like black boxes; you see what goes in and what comes out. To understand the program you need to show the steps that it makes because most students need to see a worked example in detail in order to see what an algorithm is doing before they understand how it works. Another problem with programs is that programs force you to be explicit about details; you must formulate the termination conditions, estimate degree bounds, specify domains of variables, etc. These details often get in the way of illustrating the basic algorithm. The premise of this article is that interactive worksheets and notebooks, which are now available in several computer algebra systems, sometimes provide a better alternative than programs as a teaching aid. In a worksheet or notebook, we can present an algorithm by following the sequence steps done. If part of the algorithm is difficult to express as a single command, or difficult to program, the results can be "typed in" instead. Other parts which may be difficult to formalize in a program, may be very obvious from looking at the output. To illustrate this, we have presented five algorithms as worksheets which we have used for teaching undergraduate mathematics and computer science classes.
On sparse interpolation over finite fields
ACM Communications in Computer Algebra, Jan 28, 2011
A maple library for high performance sparse polynomial arithmetic
ACM Communications in Computer Algebra, Sep 1, 2007
We have developed a library for sparse polynomial arithmetic to supplement Maple's intern... more We have developed a library for sparse polynomial arithmetic to supplement Maple's internal routines. Along the way we identified three common sources of inefficiency in existing implementations.

Journal of Symbolic Computation, Feb 1, 1998
The design of user interfaces for computer algebra systems and theorem-proving systems is quite a... more The design of user interfaces for computer algebra systems and theorem-proving systems is quite a challenge. Everyone who uses our symbolic computation systems wants a nice graphical user interface (GUI), with tools for keeping track of the current session, and also converting a session into a publishable form. The difficulties are in part because of the complexity of the mathematics that we are doing in these systems, the symbolic computation systems themselves, and the manipulations one might want to be able to do with them. For example, in theorem proving we would like to be able to direct the choices that algorithms make. In computer algebra systems, we would like to call other software for purely numerical problems. Consequently, there are many technical problems involved. They include how to display large mathematical formulae, how to display proofs of theorems which have been generated mechanically, how to communicate mathematical formulae between systems and their GUIs, how to input two-dimensional objects such as mathematical formulae, how to interact with an algorithm to guide it to a solution, how to manage a large derivation, and how to manipulate expressions in ways other than using commands. For example, most computer algebra systems provide a command for solving an equation for a given variable x. Some systems allow the user to select x with the mouse, then drag it to the right-hand side of the equations, meaning isolate x and causing an invocation to the system to solve the equation for x. Future systems will surely provide alternatives for user input other than keyboard and mouse-based input. Perhaps we will just say "solve for x". This special issue, which is dedicated to the problems in the design of GUIs and protocols for symbolic computation systems (and more generally, scientific computation), begins with an extensive survey of computer algebra system GUIs up to and including 1994. It is followed by a paper on the general design of GUIs, and a paper on the design of a GUI for a mathematics system for calculus students. The fourth paper looks at efficient ways to exchange data, both symbolic and numeric, between systems. Finally, we have two papers on GUIs for theorem-proving systems. Many people have contributed to this special issue. We would especially like to thank the referees.
ACM Communications in Computer Algebra, Jan 28, 2011
A motivating problem about Φ n (z) Definition 1. The n th cyclotomic polynomial, Φ n (z), is the ... more A motivating problem about Φ n (z) Definition 1. The n th cyclotomic polynomial, Φ n (z), is the monic polynomial whose φ(n) roots are the n th primitive roots of unity.

Calculating really big cyclotomic polynomials (abstract only)
ACM Communications in Computer Algebra, Jul 25, 2008
The following twelve poster abstracts were presented at the ANTS-8 poster session.1 ANTS-8 was he... more The following twelve poster abstracts were presented at the ANTS-8 poster session.1 ANTS-8 was held at the Banff Centre in Banff, Alberta Canada, May 17–22, 2008. The conference website, where many of the posters can be viewed online, is http://ants.math. ucalgary.ca/. Calculating Really Big Cyclotomic Polynomials Andrew Arnold and Michael Monagan, Simon Fraser University, ada26@ sfu.ca The nth cyclotomic polynomial, Φn(z), is the monic polynomial whose φ(n) distinct roots are the nth complex primitive roots of unity. That is, Φn(z) = ∏ 0≤k<n gcd(k,n)=1 (z − e 2πi n ) The first ten cyclotomic polynomials are as follows: Φ1(z) = z − 1 Φ6(z) = z − z + 1 Φ2(z) = z + 1 Φ7(z) = z 6 + z + z + z + z + z + 1 Φ3(z) = z 2 + z + 1 Φ8(z) = z 4 + 1 Φ4(z) = z 2 + 1 Φ9(z) = z 6 + z + 1 Φ5(z) = z 4 + z + z + z + 1 Φ10(z) = z 4 − z + z − z + 1 Poster session funding provided by Butler University. Special thanks to Teri Amberger and Amy Aldridge for their help in printing and shipping posters to Calgary, and also to Renate Scheidler.
arXiv (Cornell University), Sep 24, 2012
We present a new edge selection heuristic and vertex ordering heuristic that together enable one ... more We present a new edge selection heuristic and vertex ordering heuristic that together enable one to compute the Tutte polynomial of much larger sparse graphs than was previously doable. As a specific example, we are able to compute the Tutte polynomial of the truncated icosahedron graph using our Maple implementation in under 4 minutes on a single CPU. This compares with a recent result of Haggard, Pearce and Royle whose special purpose C++ software took one week on 150 computers.
Numerical Programming in Maple
Springer eBooks, 1998
Representing and manipulating expressions in symbolic mode; that is, in terms of variables, funct... more Representing and manipulating expressions in symbolic mode; that is, in terms of variables, functions, and exact constants, is a powerful feature of the Maple system. However, practical scientific computation also demands floating-point calculations which represent quantities by approximate numerical values. Typically, numerical computations are used for one of three reasons.
An Algorithm For Spliting Polynomial Systems Based On F4
We present algorithms for splitting polynomial systems using Gröbner bases. For zero dimensional ... more We present algorithms for splitting polynomial systems using Gröbner bases. For zero dimensional systems, we use FGLM to compute univariate polynomials and factor them, placing the ideal into general position if necessary. For positive dimensional systems, we successively eliminate variables using F4 and use the leading co-efficients of the last variable to split the system. We also present a known optimization to reduce the cost of zero-reductions in F4, an improvement for FGLM over the rationals, and an algorithm for quickly detecting redundant ideals in a decomposition.
ACM Communications in Computer Algebra, Dec 17, 2019
Table of Contents iv List of Tables vi List of Figures vii List of Algorithms viii
Uploads
Papers by Michael Monagan