Level: BSc, MSci
Title: Mathematical computation
Supervisor:
Research Area: Algebra
Description:

Below, 'Java' means a general-purpose programming language such as Java, C, C++, Pascal, or Fortran. A Java project would involve programming at a much lower level than a Maple project and so would have a different flavour.


Implementing interactive "math apps" (Maple)

  • Maple supports embedded graphical user interface components that can be used to implement "math apps". There are a lot of these included in Maple and more available on the web as part of the Maplesoft Möbius Project. You will learn how to construct and program Maple math apps and implement one or more that illustrate aspects of mathematics that you have learnt earlier in your course. For example, you could implement a math app to display or investigate aspects of magic squares or Pythagorean triples (of integers that could be the side lengths of right-angled triangles) or the four-colour theorem (if they haven't already been done).

Complex contour integration (Maple)

  • Develop procedures to integrate along both open and closed contours (curves) in the complex plane automatically by computer, in particular by using residue calculus to evaluate integrals around closed contours. Particular issues to investigate are how to represent general integration contours on a computer, how to determine what singularities lie within a closed contour and how to determine the nature of a singularity. Display integrals (integrands and contours) graphically in the complex plane. Consider applications to real definite integration, integral transforms, etc.

Bareiss elimination (Maple or Java)

  • In Java, implement rational arithmetic. Implement Gaussian elimination for matrices over the real and rational numbers (R and Q) and compare the performance. Understand and implement Bareiss elimination over the integers Z, and compare its performance with Gaussian elimination regarding Z as a sub-ring of Q and R. In Maple, generalise to polynomials and rational functions. [13]

Resultant computation (Maple or Java)

  • A resultant is essentially the result of eliminating a variable between two polynomials. Discuss the theory and applications of resultants, and implement and test one or more algorithms to compute resultants. Investigate the advantages or otherwise of first performing a squarefree factorisation of the input polynomials (easier in Maple than Java). [13]

Computation of integer and rational polynomial roots (Maple or Java)

  • Understand and implement an algorithm using p-adic lifting. Consider possible extensions to systems of polynomials and approximation of real roots. [4]

Decomposition of polynomial and rational functions (Maple)

  • Understand and implement algorithms for expressing a polynomial or rational function as a composition of such functions. This involves some field theory. [5]

 

  1. Computer Algebra: Symbolic and Algebraic Computation. Second edition. Ed. by B. Buchberger, G. Collins, R. Loos, with R. Albrecht. Springer, New York, 1983.
  2. J. Davenport, Y. Siret and E. Tournier, Computer Algebra: systems and algorithms for algebraic computation. Academic Press, London, 1988.
  3. K. Geddes, S. Czapor and G. Labahn, Algorithms for Computer Algebra. Kluwer Academic Publishers, 1992.
  4. R. Loos, Computing rational zeros of integral polynomials by p-adic expansion, SIAM J. Computing 12 (1983) 286–293.
  5. R. E. Zippel, Rational function decomposition. In: Proc. of ISSAC ’91, ACM Press, 1991.
Further Reading:
Key Modules:

To be confirmed with the supervisor.

Other Information:
Current Availability: Yes