What kind of research do I do? Here is an attempt to explain it in
plain language, without any equations, written originally for a
friend and for my parents, who, although they are not in science
or engineering, have a more scientific approach to life than many
scientists and engineers I know. In fact, my earliest memories of
my childhood are of my mother fulminating against obscurantism and
mumbo jumbo and willing to make all kinds of concessions and
sacrifices: "Anything in the interests of science" is what she
would say, and still does, if any one of us asked her to do some
chore for us, so that we could continue reading or pursuing some
other less tangible intellectual activity (such as sleeping!). And
a little later into my childhood, my father gave me all the
popular science and mathematics books he could afford to buy (W.
W. Sawyer, Courant and Robbins, Ian Stewart, George Gamow, Asimov,
Feynman). So that's my background and now here is my effort at
explaining what I do.
After my Ph.D. (in large flexible space structures, which I
decided to abandon), in my first decade in Brazil, I worked mainly
on two kinds of problems. One, related to computation, or more
accurately, parallel computation, very simply expressed, is this.
Given a very large calculation (typically coming from an
engineering application, such as a bridge or other large
structure), how do you solve it faster by subdividing it into
smaller problems that can each be solved, separately, on several
computers/processors that communicate with each other? This is a
very nice and very relevant problem, since, nowadays, parallel
computers (or clusters of several PCs) are widely available. Also,
it has both practical and theoretical aspects. I was
looking more at the theoretical aspects. Specifically, at the
problem of not synchronizing communication between the processors
(in order that they do not always stop to let the slowest one
catch up, before exchanging information) and still ensuring that
the parallel asynchronous computation gets the right answer. A
colleague (Eugenius) and I gave an alternative solution to
this problem, using an idea based on a distance measure (norm)
called a Liapunov function. You get a condition (on a matrix) that
is easy to test and ensures that, under some mild conditions, even
if you do not synchronize your calculations, you can still get the
right answer.
The other problem we studied was the stability of certain kinds of
nonlinear dynamical systems. The same colleague (Eugenius) and I
gave a stability condition for these type of systems (using a very
simple idea -- also a particular kind of Liapunov function), and
showed that many kinds of systems, ranging from simple mechanical
systems, interconnected power systems, ecological systems, circuits etc.
etc. can be analyzed for stability using this simple idea. This
led to a book that we wrote entitled "Matrix Diagonal Stability
in Systems and Computation" that studies these kinds of things.
For the last five years, I have been also studying two problems
(mainly). One is the control of ecological systems, such as
systems which have a prey (which has a growth rate and
corresponding differential equation to describe this growth) and a
predator (which has a death rate and corresponding differential
equation). In the absence of prey to feed on, the predator dies
off. In the absence of predators that feed on them, prey may grow
uncontrollably. With both present, you can get all sorts of
interesting dynamics, such as limit cycle oscillation and so on.
The control problem is how to remove prey/predator from this
interacting predator-prey system (this removal is called hunting,
fishing, harvesting or injection, depending on what model you are
studying) without driving either prey or predator population to
extinction. Some colleagues and I gave a mathematical solution to
this problem for a well-known predator-prey model called the
Lotka-Volterra model, and now one of my PhD students has extended
this approach to many other models in the
field called mathematical ecology. In fact, models of the human
immune systems are also similar (prey = cells, predators = viruses
(for example), control = drug injection) and perhaps we will go on
to study a little bit of virus dynamics.
The other problem is more theoretical. It involves studying
iterative numerical methods as control systems. Usually, a numerical
method gives an approximate solution. This generates an error and the
goal of the numerical method is to drive this error to zero, in which
case you say that the method has converged. From the point of view of a
control engineer, you are trying to make the output (approximate solution)
track some reference variable and drive a (tracking) error to zero. The point
is that although control theorists know and have researched many
standard ways of formulating and solving such problems, this is
not common knowledge amongst numerical analysts who design
iterative algorithms. We (perennial coauthor Eugenius and I) have just
put a whole lot of very diverse numerical methods in this control perspective
and, in some cases, even proposed new algorithms, or achieved new
understanding of classical algorithms. The results are in a book called
"Control Perspectives on Numerical Algorithms and Matrix Problems" that will
be published by SIAM (Society for Industrial and Applied Mathematics) in
March 2006.