The 2001 *Mathematica* Developer Conference was an
invaluable resource for users and developers
who are interested in creating *Mathematica*-related
tools, products, courseware, or literature--or who wish to
offer services as a *Mathematica* trainer, consultant, or
evangelist.
Listed below are many of the presentations.
*(If you don't have your own copy of Mathematica,
you can download MathReader
to view
the talk notebooks.)*
**Button and Notebook Programming**
David Withoff, Wolfram Research, Inc.
Button programming is not difficult. It is almost always easy to add a
user-friendly button interface to existing programs, and many imaginative
programmers have developed applications that would be all but impossible
without buttons. This session will include a tutorial on the basic
mechanics of button programming and a tour of the impressive range of ways
in which button and notebook programming can be used to enhance your
applications.
*Mathematica* Notebook
**Graphing: A Package to Enhance Plots with Auxiliary Graphics**
Barry Cherkas, Hunter College (CUNY)
To enable students of calculus and precalculus to include auxiliary
graphics conveniently in their graphs--and thereby reduce the potential
for
confusion and misinterpretation that can result from relying solely on a
singular function's plot--it is important to have tools that generate
auxiliary graphics in accordance with standard mathematical conventions.
In this presentation, we describe three commands--`RationalGraph`,
`Graph`, and
`Graph1D` (synonym `InequalityGraph`)--that display the
auxiliary graphics
enhancements that are traditionally used when graphing functions with
singularities and when graphing inequalities in one dimension. These
commands make up the `'Graphing` package.
*Mathematica* Notebook
**Group Bases and Rubik's Cube**
Gerrard Liddell, University of Otago
Group bases are a key tool in computational finite group theory. The
ideas will be introduced in the case of Rubik's cube.
*Mathematica* Notebook (zipped)
**Learning Activity Modules in Chemical Engineering using
web***Mathematica*
Brian Higgins, University of California, Davis
Computing vapor-liquid equilibria is a common occurrence in many chemical
engineering operations. For ideal mixtures the calculations are fairly
routine. Unfortunately, many vapor liquid systems of industrial interest
form non-ideal mixtures and the calculations then require solving systems
of nonlinear equations. In this presentation we show how
web*Mathematica*
can be used to develop an online site that students can use to validate
VLE models using their own experimental data.
*Mathematica* Notebook
**Modelling, Analysis & Prototyping for Rapid
Manufacturing**
Christopher J. Purcell, Defence R&D Canada
A prototype *Mathematica* package for building finite element (FE)
models
was introduced in the 1997 Developer Conference. This package has
matured to the point where it has already been used in product
development. The package permits building parametric models, where the
FE database contains both numeric data and symbolic *Mathematica*
expressions which can be used to morph the model geometry. The package was
originally developed for sonar transducer modelling, but it is open and
extensible so that it can support a range of external solvers. Extensive
online documentation is now available from the Help Browser. An update on
the Model Maker package will be presented, with examples to illustrate
potential uses.
*Mathematica* Notebook
**Wolfram Education Group**
Paul Wellin, Wolfram Research, Inc.
In January of this year, Wolfram Research announced the creation and
launch of Wolfram Education Group, designed to provide *Mathematica*
training for individuals and corporations. Courses are offered by
certified instructors using materials developed at Wolfram Research,
sometimes in cooperation with outside developers. Two-day introductory
courses are now being offered throughout the United States, with plans to
expand the course offerings and locations in 2002. This talk will include
information on course development as well as certification of trainers.
*Mathematica* Notebook
**Applications of ***Mathematica* |
*CalculationCenter*
Jon McLoone, Wolfram Research, Inc.
Wolfram Research's new mid-market technical computing system,
*CalculationCenter*, offers an alternative platform for delivering
live
electronic books and technical calculations. With an emphasis on
ease-of-use and low price, *CalculationCenter* is aimed at a less
technically demanding market than *Mathematica*. This talk will
introduce
*CalculationCenter* and discuss ways in which *Mathematica*
developers might use this new channel.
*Mathematica* Notebook
**Creating a Button-Driven Application**
Al Hibbard, Central College
It is relatively easy to create a button to accomplish a routine task. It
is another matter to create buttons to perform more complicated tasks,
such as notebook modifications. This talk will focus on illustrating the
programming details of the buttons created by the Pivot package. This
package creates an interface for a non-technical user to perform the
Simplex Method while solving a linear programming problem. Except for
entering in the initial matrix, almost all the other steps are
accomplished by appropriately clicking on buttons. Explaining how these
buttons perform their complicated tasks will be the goal of this talk. In
particular, we will look at how to programmatically create and modify
notebooks, including creating a matrix of buttons on the fly.
*Mathematica* Notebook
**Implementation of Java Photo Editor**
Junzo Sato, University of Kumamoto
*J/Link* is not just a wrapper for *MathLink*, but also a
powerful application
development environment because of Java's variety of GUI components and
built-in event handling mechanism. *Digital Image Processing* is an
add-on
application package for *Mathematica*. It covers a vast area of
scientific
and engineering knowledge and works as a powerful engine for image
processing. The combination of a customizable front end application and
the *Digital Image Processing* package is therefore the ideal
environment
for research and education. The advantages of Java Photo Editor are
discussed in the talk.
*Mathematica* Notebook
**Java and the ***Digital Image Processing* Application
Package
Mariusz Jankowski, University of Southern Maine
The *Digital Image Processing* application package, a relatively
recent
addition to the *Mathematica* application library, enhances
*Mathematica* with
over 160 functions in the area of digital processing of images. The
introduction of the package supported by significant performance
improvements in Versions 4.0 and 4.1 have made *Mathematica* an
effective
platform for image processing and analysis. Now, thanks to the
introduction of *J/Link*, the *Mathematica* user gains direct
access to an
extensive native Java imaging functionality found in the Java 2D and Java
Advanced Imaging (JAI) application programming interfaces (APIs) and
excellent graphical user interface (GUI) design features thanks to Java
Swing.
*Mathematica* Notebook
*Mathematica* Inside: Software Development Made
Easy
Roman Maeder, MathConsult
The *Mathematica* kernel is uniquely suited as a computation server
and
control program inside batch-oriented, interactive, or web-based
applications. Its rich, interactive programming language allows for rapid
prototyping and its flexibility makes it easy to adapt to the environment
in which it will be deployed. With the recent expansion of
*Mathematica*'s
I/O capabilities and *MathLink*-based interfaces to backend databases
and
front ends, it is now possible to use *Mathematica* in many
applications in
place of more traditional, expensive solutions. Examples from the author’s
work in finance give an idea of the possibilities. The first application
is a batch-oriented program for term structure modeling. The second
example shows the integration of the *UnRisk PRICING ENGINE* with the
*Database Access Kit* and the *Mathematica Link for Excel*.
*Mathematica* Notebook
*The Mathematical Explorer*
Stan Wagon, Macalester College
Paul Wellin, Wolfram Research, Inc.
*The Mathematical Explorer* is a new Wolfram Research stand-alone
product
that uses *Mathematica* to introduce the general public to some
central
ideas of modern mathematics. Creating the product combined work across
several areas: the use of a custom kernel, the creation of packages for
advanced functions, and the integration of historical documents and images
relevant to the mathematics. For example, the chapter on the Four-Color
theorem includes a copy of the original 1852 document in which the theorem
was first presented, a discussion of the ideas of Kempe's false proof of
1879 and the correct proof of 1976, access to functions that create and
color maps, as well as images and biographies of many of the
mathematicians involved in this problem.
*Mathematica* Notebook
*Neural Networks*
Jonas Sjoberg
This presentation is an overview of the *Neural Networks*
application package. Topics discussed include people in the neural
networks field, typical problems, tools, and examples.
*Mathematica* Notebook
*UnRisk*
Andreas Binder, MathConsult GmbH
The *UnRisk PRICING ENGINE* is an application package for the
numerical
valuation of financial derivatives. For most of the actively traded
financial instruments, closed-form solutions are not available and
numerical schemes have to be applied. In the *UnRisk PRICING ENGINE*,
Adaptive Integration is implemented, a method developed by MathConsult,
which combines analytic (local Green functions) and numeric components.
Adaptive Integration typically needs drastically fewer time steps than,
say, binomial trees. The computational engine of *UnRisk* is realized
in C++
and is linked to *Mathematica* via *MathLink*.
*Mathematica* Notebook
**Dbg - An Easy-to-use Debugger**
David Bailey, Salford Software
This talk will outline just some of the features of Dbg. It is hoped that
this talk will not only illustrate some of the features of the Dbg
debugger, but will also stimulate a discussion about what sort of debug
facilities would be useful inside *Mathematica*. It is felt that the
debug
facilities of *Mathematica* have not kept pace with the rest of the
package
and could offer the programmer much more help.
*Mathematica* Notebook
**Getting the Most out of (or into) **`Import/Export`
Dale Horton, Wolfram Research, Inc.
The `Import` and `Export` functions are simple enough for
basic purposes, but
more sophisticated applications require a higher degree of control. We
will discuss tricks-of-the-trade, common problems, in addition to how to
modify the export of notebooks to HTML and TEX, and what do all those
`ConversionOptions` do, anyway? In addition, we will cover recent
and future
additions to `Import` and `Export` and how developers can
add their own
converters.
*Mathematica* Notebook
**Symbol Contexts**
John Novak, Wolfram Research, Inc.
All *Mathematica* symbols exist in name-spaces called contexts. There
are a
number of subtleties in understanding and managing contexts that any
*Mathematica* programmer needs to be aware of. This talk describes
the
notion of contexts, the tools to manage them, and some of the “gotcha’s”
involved in their use.
*Mathematica* Notebook
**Turning an Application into an Interface**
Dale Horton, Wolfram Research, Inc.
The front end has many features that can make packages more accessible to
users. Most packages are driven by kernel commands and their front end
interface (if one exists) consists solely of buttons that paste, and
sometimes evaluate, kernel commands in a notebook. A largely unused
strategy is to use the palettes as a Graphical User Interface (GUI) to the
functionality of the package. Beginning users can start to use the package
with little knowledge of the underlying processes while the more advanced
users can quickly access commonly used functionality. If properly
implemented, the palette makes using the package easier, and the package
makes using the palette more powerful.
*Mathematica* Notebook
**Extending ***Mathematica*'s XML Capabilites with
*J/Link*
Todd Gayley, Wolfram Research, Inc.
Java and XML are a natural match, and there is a considerable body of XML
functionality available to Java programmers. Because of *J/Link*, all
these
capabilities are also available to *Mathematica* programmers. This
talk will
examine some ways to link the extensive Java XML APIs into
*Mathematica*'s
own XML-handling capabilities. We will see how to convert
*Mathematica* XML
expressions into Java DOM objects and vice-versa, how to perform SAX
parsing of XML data with event logic coded entirely in *Mathematica*,
how to
perform XSLT transformations and XPath queries on XML data directly from
the *Mathematica* environment, and how to query and process XML data
available on the internet, such as finanical data.
*Mathematica* Notebook
**Importing, Exporting, and Manipulating XML in
***Mathematica*
Chris Hill, Wolfram Research, Inc.
XML is a structured data representation language with strong support from
every corner of the computing world. *Mathematica* will soon support
an
expression format for representing XML data. This talk will include an
overview of the XML representation and the XML import and export
processes. Examples utilizing *Mathematica*'s symbolic manipulation
facilities to extract and transform XML data will be presented.
*Mathematica* Notebook
**Notebook ML**
Imran Rashid, Wolfram Research, Inc.
NotebookML is a format for saving a *Mathematica* notebook as an XML
file.
This talk will explain the motivation behind NotebookML and how it can be
used in XML-based systems, specifically, the relationship between
NotebookML and XML; the relationship between NotebookML and other XML
specifications; generating NotebookML within Mathematica; using NotebookML
with “standard” XML applications, e.g., XSLT & SAX; and displaying
NotebookML on the web with CSS.
*Mathematica* Notebook
**XML Primer**
Imran Rashid, Wolfram Research, Inc.
XML has quickly become one of the hottest buzz words in the IT industry.
This talk will bring the user up to speed on what XML is and what it can
be used for. In addition, the talk will address some XML related
specifications, such as DTDs, Namespaces, XSLT, and Schemas. The talk will
touch on used XML APIs, like SAX and DOM. Finally, the talk will briefly
touch on XML functionality in *Mathematica*, with more detail being
provided
in related talks.
*Mathematica* Notebook
**Discrete Optimization in ***Mathematica* 4.2
Daniel Lichtblau, Wolfram Research, Inc.
Often in optimization problems arise that are discrete in nature. For
example, there are the standard problems of integer programming; these are
similar to continuous optimization except that one needs to restrict some
or all variables to be integer or 0-1 valued. Other examples include
assignment problems, set coverings by families of subsets, set splittings,
routing problems, and more. We discuss application of *Mathematica*'s
numeric optimization technology to such problems in discrete optimization.
We will illustrate nutsandbolts details of how to cast problems in a
framework that `NMinimize` can handle and will illustrate with a
variety of
examples. We will say a bit about tuning considerations.
*Mathematica* Notebook
(updated May 17, 2002)
**High-Precision Approximate Solutions for Nonlinear 2x2 Systems
of First-Order IVPs with Periodic Solutions**
Stephan V. Joubert, Technikon Pretoria and the University of Southern
Mississippi
We provide an interactive routine for producing high-precision approximate
solutions (truncated Fourier Series) for low degree nonlinear 2x2 systems
of first-order ODEs (IVPs) with periodic solutions. The routine is
primarily meant for use in the classroom by undergraduate and graduate
students, but might also be usefull to technologists and scientists
working with such systems for which no obvious closed-form solution
exists.
*Mathematica* Notebook
`NumericalMath'NMinimize`
Brett Champion, Wolfram Research, Inc.
`NumericalMath`NMinimize` is a new standard add-on package for
finding
solutions to constrained and unconstrained global optimization problems.
The package provides several derivative-free methods for finding global
minima. This allows us to solve problems where the objective function is
not differentiable (or even continuous.) The methods are robust enough to
allow us to find global minima and are not easily trapped by local minima.
*Mathematica* Notebook
(full version 28MB)
*Mathematica* Notebook (short
version 1.4MB)
**Stability Investigation of the Exact Symmetrical Solutions of
the Plane Newton's Many-Body Problem**
Alexander Prokopenya, Brest Technical University
It is well known that the many-body problem is very important for a wide
variety of applications, ranging from theoretical physics to celestial
mechanics and astrodynamics. But the differential equations of this
problem are in general not integrable. So, according to Poincare’s ideas,
the further progress in this field will be connected with finding new
classes of the exact particular solutions of the many-body problem and
investigating their stability. But the stability investigation turned out
to be the most complicated problem of qualitative theory of differential
equations. For example, solving of the stability problem of the Lagrange
triangular solutions has taken about 200 years, whereas stability of the
homographic and homothetic solutions in the three-body problem still
remains unsolved. However, now we have new computation systems, for
example *Mathematica* that essentially increase our ability to do
both
numerical and symbolic calculations. So there is a hope that we can push
considerably both the many-body problem and the theory of dynamical
systems generally using modern computer algebra systems.
*Mathematica* Notebook
**Advanced ***J/Link* Programming
Todd Gayley, Wolfram Research, Inc.
This session will go beyond the basics to examine some techniques that are
often overlooked by *J/Link* programmers, including the Expr class,
sending
Java object references to *Mathematica*, using the front end for
graphics
rendering services, fun tricks with Periodicals ("How to Make the Kernel
into a Web Server in 20 Lines of *Mathematica* Code"), and tips for
debugging your Java programs. We will also look at the major new features
of *J/Link* 1.2 and discuss plans for *J/Link* in the future.
*Mathematica* Notebook
*J/Link* Programming
Todd Gayley, Wolfram Research, Inc.
This talk will provide an introduction to *J/Link*, a toolkit that
integrates Java and *Mathematica* via *MathLink*. You will learn
what *J/Link*
is and how to use it both to call *Mathematica* from Java, and Java
from
*Mathematica*. Demonstrations will be presented to give you an idea
of the
sorts of things that users and developers can do with it. If you have ever
wanted to call *Mathematica* from an external program, or access
"external"
functionality from within the *Mathematica* environment, but shied
away from
*MathLink* programming, then come take a look at *J/Link*.
*Mathematica* Notebook
**Value-Added Services with web***Mathematica* Lars
Hohmuth, Wolfram Research, Inc.
web*Mathematica* opens up exciting new possibilities for
*Mathematica*
developers. For example, it is now possible to sell or rent
*Mathematica*
services, or to build specialized web sites that allow subscribers to do
highly advanced calculations through a standard web interface. This talk
will give an overview of Wolfram Research licensing and support programs
for developers interested in building web*Mathematica*-enhanced web
sites.
It will also provide a forum to discuss your ideas.
*Mathematica* Notebook
**Creating Notations, Templated Structures, and Tensors**
Jason Harris, Wolfram Research, Inc.
This talk will cover creating notations in *Mathematica*. It will
progress
from creating basic notations to details on creating templated structures
via `TagBoxes` and the corresponding notations to use for these
structures.
With these techniques a "proper" implementation of Dirac's Bra Ket
Notation will be presented. Several other advanced features of the
notation package, such as adding input aliases and the `Action`
option, will
be mentioned. These techniques will culminate in a presentation of a
notation for `Tensors`, which fully works in both input and output.
Finally,
a highly efficient algorithm to canonicalize tensorial expressions will be
demonstrated. Functioning with the created tensorial notation, by an
innovative technique this algorithm circumvents the dummy index relabeling
problem of tensor calculus. The complete algorithm handles linear
symmetries such as the Bianchi identities as well as fullAy accommodating
partial derivatives and mixed index classes.
*Mathematica* Notebook
**functions.wolfram.com**
Oleg Marichev and Michael Trott, Wolfram Research Inc.
Currently the web site functions.wolfram.com
includes more than 33,000
formulas for the about 250 elementary and special functions that are
available in *Mathematica*. The structure and organization of the web
site
is discussed in detail. An overview of how to manage and update this large
mathematical knowledge base and how to deliver various format types (e.g.,
*Mathematica* notebooks, HTML, and PDF) is given. Various
"semiautomatic"
ways to find new formulas using *Mathematica* will be demonstrated.
Future
development directions will be outlined.
*Mathematica*
Notebook
| |