Jared Whitehead and Adam Rich with Dr. Michael Dorff, Mathematics Department
Complex analysis is a fundamental course in mathematics required by some engineering and physical science disciplines. Since complex numbers are two dimensional – they have a real and imaginary part – visualizing their graphs, a very important part of practical and theoretical analysis, can be difficult. Complex valued functions of complex numbers can only be graphed in a space of four or more dimensions. To see the entire graph at once is not a feasible option for the human mind. Instead, analysts concern themselves with small sets of the plane and the effect that complex functions have on them. For example, the action of a certain function on a circle or line may be considered by viewing what the image of this set is under the action of the function. This cross-sectional type analysis requires several iterations to gain a true visual understanding of what a complex function actually does. Computers lend themselves naturally to the task. To begin their foray into the world of computer aided graphing of complex functions, the authors chose a relatively simple, yet extremely prevalent, class of functions called fractional linear, or Moebius, transformations.
The goal of this project was to develop a working Java-based platform that would allow the student to visualize the geometric properties of this particular class of functions. The end goal was to allow the student to specify a certain Moebius transformation and a geometric region (domain) in the complex plane; the Java Applet would then show (plot) the corresponding output or effect of the transformation on the geometric region. This would allow the student to quickly obtain a heuristic feel for this class of functions without delving into the technical and algebraically complicated methods of analysis that would be covered later in the course.
One of the primary objectives of this project was to maintain a user-friendly environment in the program. The idea was to keep the Applet simple enough that a five-minute demonstration by a professor would be sufficient for the students to begin working the program on their own. To this end, care was taken to ensure that the interface was kept simple and that unnecessary information or details were not included in the Applet’s presentation.
The project was divided into two primary tasks. The first was to design an optimal graphical user interface that would allow the student to adjust the shape of different domains and alter the Moebius function of choice. The second task involved writing classes for each type of geometric object (circle, line, half-plane, disk, etc.) and including functions that would describe the effect of the Moebius transformations on these domains for various parameters to be determined by the student. Both of these tasks were complementary and required the attention of both the authors.
Although this project was intended to affect the student’s understanding of complex analysis, the authors found that there was a significant amount of geometry to learn in writing while coding. Many of the geometric properties of the Moebius functions were considered while deciding how the Applet should portray their effect on various domains. While pursuing these areas, the authors expanded their own knowledge of the geometric significance of the parameters describing Moebius transformations, often rediscovering properties already known by complex analysts.
In the end it was determined that the simplest and most straightforward geometric techniques were the most applicable to this situation. The authors chose to define circles (and lines), and images of circles by the center (lines have a center at infinity), and one other point on the circle. Due to the properties of Moebius transformations, this allowed them to identify the image of such a domain rather easily. One difficulty that was address was dividing by zero, or dealing with the point at infinity. In order to avoid this problem, routines were written that checked each line or circle to ensure that infinity or zero were not involved, and if they were, special routines were written that dealt with them in a limiting manner.
This method of treating each shape as a unique object allows the processor to display the image of several domains at once, without significantly slowing or requiring large amounts of memory. In addition it appropriately deals with the point at infinity and its converse, zero. The authors found by trial and several errors that direct computation using the definition of complex valued numbers was not successful. Instead the use of the geometrical considerations allowed the Applet to run efficiently and smoothly.
Most of the work on the Applet was performed during the summer of 2004. A few bugs and problems were worked out in the following semester and the final project was presented by the Michael Dorff at the national meeting of the Mathematical Association of America in Atlanta, GA in January of 2005. For the presentation Professor Dorff described the need for such an interactive tool, and displayed some of the features unique to this Applet. Some interest by fellow mathematicians and educators was expressed at the conference, and contact information was exchanged with other authors of these so-called ‘mathlets’.
The major downfall of this project and the primary reason for its limited use to date was the programming language of choice. Java was chosen as the programming language because of its promise of cross-platform neutrality. It was observed rather deep into the project that the Applet did not run on all Windows-based machines utilizing Microsoft Internet Explorer. Microsoft’s Java Virtual Machine did not support the functions the author’s had used in developing the Applet. Microsoft does not package the Virtual Machine with IE any longer due to a settlement with Sun Microsystems, Java’s creator. Users wishing to run Java Applets on IE must use a third party Virtual Machine to use the Applet.
At the time this Applet was conceived and written MS Internet Explorer was the browser of choice and Java the most powerful platform-independent language for browser-based applications. This is no longer the case for both points. Other Mozilla type browsers, for which the Applet was originally written, like Firefox, have become increasingly more popular and available, making the Applet more accessible to the average student of complex analysis. Also, the universal support for JavaScript and the widespread usage of Dynamic HTML have nearly undone the need for Java-based Applets. Any retooling of the Applet in the future will involve JavaScript and DHTML as more versatile web-based application authoring options.
Although the authors’ goal of universal availability was not met, the other objectives of this project were completed, and the accessibility of the Applet has increased with time. The Applet is a significant tool to aid the understanding of fractional linear transformations, and an important beginning to a library of such web-based applications.