About Me
I am a PhD student at The Johns Hopkins University in the department of Applied Math and Statistics. My work primarily focuses in optimization, under the supervision of Benjamin Grimmer. In particular, I work on expanding classical theory to apply universally to Lipschitz functions, functions with Lipschitz gradients, and everywhere in between. In a dual notion, my work also focuses on functions that are convex, strongly convex, and anywhere in between.
More recent work has focused on the study and development of interpolation theory, performance estimation problems, and the design of optimized algorithms. These tools give rise to understanding two other dual notions: minimax optimal algorithm design and maximin hard problem instances, with families of functions and classes of algorithms playing dual roles.
Download CVSelected Papers
Selected Desmos Visualizations view all →
Runga Kutta Methods are efficient and practical ways to accurately model a trajectory given information about its underlying vector field. Here we demonstrate multiple classical two-step methods, as well as the general form supplying a class of provably convergent methods. Watch how increasing the number of steps (decreasing the step size) affects the stability of the iteratively built trajectory!
Interpolation theory has many applications in data science, optimization, and machine learning. Here, you may explore polynomial interpolation through both Lagrange and Hermite basis functions, the former interpolating points and function values while the latter incorporates derivatives. Toggle between these methods and isolate individual basis polynomials to see how they sum to produce the full interpolant.
Construct polynomials to approximate smooth functions using perhaps the most important results from calc II. As you increase the degree, you may notice the polynomial converge, but be wary that depending on the function, its radius of convergence may be finite.
Here you may visualize how finite difference methods approximate derivatives. Compare standard central difference formulas, or interact with custom interpolation nodes to derive general finite difference rules.