Project Links
Home Page
Project Report
(1024 KB)
26/06/2001
Finished Applet
21/02/2001
Post-Hasse
11/12/2000
Pre-Hasse
3/12/2000
Project Update
12/11/2000
Matrix Groups
27/10/2000
Example Applets
16/10/2000
Hello Applet
4/10/2000
|
Calculating Groups, Subgroups and Hasse Diagrams from the Orthogonal Group of 3×3 Matrices in Java
Summary
In this project I have constructed a Java Applet that you can access by clicking here. You can also view the full project report by clicking here (In PDF Format, File Size 1024 KB)
The purpose of the Applet is to allow a user to enter generators for a 3×3 matrix group. The only restriction on the generators is that they must be elements of the Orthogonal Group O(3) i.e. they must have determinant ±1. Once the user has entered some generators, the program can calculate the matrix group associated with the generators. It can also calculate all the subgroups associated with the group and display the Hasse diagram for the group-subgroup relationships. In a secure environment, this Hasse diagram can be exported to a Jpeg picture file.
Development
I developed the initial algorithms in DOS, moving on to a graphical interface when most of the algorithms had been finalised.
When this happened, I started to add the links you can see on the left, which show how the Applet was developed from the early stages of myself learning how to produce Applets, to producing the initial interface, to adding new features and (finally) to producing the finished program.
Sample Hasse Diagram (2 generators)
![[Sample Hasse Diagram]](hasse.gif)
Abstract (Taken from the Report)
The advent of the computer during the last century has certainly enriched the development of modern mathematics. Calculations that would take days to perform manually would be calculated in an instant by a computer. This lightning-like speed of execution has allowed the mathematician to concentrate on developing new theories and ideas, and to steer relatively clear of arduous and repetitive calculation. In this project, I have attempted to use the power of computing to tackle a mathematical problem, namely the calculation of groups and subgroups.
Group Theory on a Computer
In group theory, it is possible to present a group by specifying its generators and relations. By using the appropriate binary operation, we can recover the whole group from a presentation of this type. Having done this, a next task may be to find the subgroups of that particular group. A human performing this task, especially with a large group, would take a substantial amount of time to complete the task, even if armed with a toolbox full of results from Group Theory.
However, allow a computer to do the work, and you get the results in a fraction of the time. This allows the mathematician to concentrate on analysing the subgroups and to find out further information regarding the structure of the group. In short, the mathematician can now concentrate on tasks other than subgroup calculation.
In order to demonstrate how a computer can be used in this way, I concentrated on a particular branch of groups called matrix groups, and in particular the orthogonal group O(3) consisting of 3×3 matrices with determinant ±1. Using the Java programming language, I have produced a program that allows a user to enter some generators as described above. The program then takes these generators, finds the group formed by the operation of matrix multiplication, and finds all possible subgroups. The whole operation takes seconds to perform, a substantial improvement over traditional methods.
As a final assistance to the mathematician analysing a group, the program, once it has found all possible subgroups, can be asked to produce a Hasse diagram showing the group-subgroup relationships. This is a graph ordered by subgroup size with a link connecting two nodes if one node is a subgroup of the other (higher) node.
Implementation
During the development of the program, I used the Tetrahedral Group (the group of all orientation-preserving rotations and reflections of the Tetrahedron) as a litmus test to see if the computer could produce output matching the calculations produced by hand. In order to do this, I had to produce algorithms that calculated groups, subgroups and Hasse Diagrams; data structures that held the appropriate information in the memory of the computer; and a user interface to allow the user to enter input and view output. Only after these requirements had been satisfied, and thorough testing had been performed, was the program finalised, ready to churn out accurate output.
Project Supervisor: Dr. B.L. Davies.
|