I am interested in numerical linear algebra, inverse problems and scientific computing. One of the most fun part of my research is that it allows me to apply abstract definitions, ideas, theories to solve realworld problems. It is exciting to see the results improve our life in some way. Moreover, the difficulties I encounter inspire me more thoughts to the theory.
Here is some work I have done.  I developed, tested, debugged and documented programs for Compaq Extended Math Library (CXML) project, which is a set of highperformance mathematical routines designed for scientific and engineering applications with Dr. Z. Li and Dr. F. Liu. My group provided programs for the iterative solutions of large sparse linear systems by means of preconditioned conjugategradient type methods. This experience acquainted me with various of iterative algorithms, such as GMRES, and also programming techniques.
 Currently, I am working on image deblurring problems in adaptive optics for astronomical uses.
The following figures may give some flavor of general image deblurring techniques. To simulate the blurring operation, I use the true image generated by MATLAB phantom convolved with the blurring kernel (the point spread function) to create a blurred image.
* = Phantom PSF
Blurred Phantom With knowledge of the blurring operation, we may restore the true image as follows. The reconstructed image is pretty clear in this example. However, for more realistic situation, the restored image may still contains noise and miss details of the object.
Restored Phantom
(To generate the blurred image, and to restore the image as illustration, I use RestoreTools which is a Matlab package developed by James Nagy and some of his students.)
The project I am working on is related to problems that arise when using groundbased telescopes to obtain images of objects outside the Earth's atmosphere. That is the blurring operation is mainly caused by the atmospheric turbulence.
 I am also working on a parallel implementation of image deblurring problems which is scalable up to 16 processors in C++ utilizing Trilinos framework.
