Nicholas Harsell

Researcher and Developer

Biography

Hello all! My name is Nicholas Harsell. I am an undergraduate student at James Madison University majoring in quantitative finance and mathematics. Additionally, my broad passions led me to pick up minors in computer science, economics, computational analytics, and honors interdisciplinary studies. My career focus is in algorithmic theory, machine learning, numerical analysis, and other fun areas of computational mathematics. Enjoy your stay!

Current Mathematics Projects

PAC-Bayes Bounds with an Information Bottleneck

PAC-Bayes Bounds are a form of generalization "guarantee" used throughout machine learning. This is a proprietary project which explores potential applications of generalization bounds, information-theoretical divergence, and bottlenecking to markets of all kinds.

Numerical Analysis of Fractional Dimensions of Layed Perlin Noise

Perlin noise is a gradient noise algorithm used to generate smooth, seemless transitions across a plane. While typically used for virtual terrain generation, layering perlin noise generations on top of one another (called octaves) creates fractional Brownian motion (fBm). This project focuses on the computational methods for calculating the dimension of such processes, with potential implications to come.

Current Programming Projects

Linear Algebra Library

C++

Combining my experience with linear algebra and my desire to master C++, I created a linear algebra library in C++. This includes simple computations such as inner products, L2 norms, and matrix products; it also includes efficient methods to compute eigenvectors/eigenvalues, decompositions (spectal, SVD, LU), and more. Most importantly, this project focuses on efficient storage of data.

Persistent Homology Lite

Python

Topological Data Analysis (TDA) is an explored area, but it still has plenty of benefits in nearly every industry. This project is an exploration for my own knowledge of the inner workings of persistent homology, a tool ubiquitous with TDA.

Mini Ray-Tracer

C++

Ray-tracing is a rendering technique used to create photorealistic images. This project is a mini ray-tracer built in C++ which includes features such as anti-aliasing, depth of field, and more. The goal of this project is to explore the computational geometry and optimization techniques used in ray-tracing.

Relevant Coursework

Numerical Analysis

Cancellation error, roundoff error, rootfinding (Newton-Raphson, Muller's method, Aberth's method), interpolation (Lagrange, Hermite, B-spline, Bezier curve)

Real Analysis I/II

Axioms of \( \mathbb{Q} \), least upper bound property, cardinality, interior/limit open/closed sets, density, compactness, sequences, series, functions, differentiation

Advanced Linear Algebra

Vector spaces, linear independence, span, bases, inner products, orthogonality/orthonormality, Riesz Representation Theorem, direct sums, block matrices; unitary, hermitian, and normal matrices; Spectral Theorem, singular value decomposition

Fourier Analysis and Partial Differential Equations

Heat equation, diffusion equation, divergence theorem/Green's theorem, separation, the Laplacian, orthogonality of sines/cosines, equilibrium/general solutions in cartesian & spherical coordinates

Data Structures and Algorithms

Big-\( \mathcal{O} \)/Big-\( \Omega \)/Big-\( \Theta \) notation, amortized analysis, custom iterators, linked lists, array-based lists, queues

Abstract Algebra I

Groups, homomorphisms, isomorphisms, roots of unity, symmetric group, dihedral group

Mathematical Finance

Probability measures, probability spaces, expectation, integration

Media & Publications (Currently Just a Boilerplate!)

  • Upcoming Conference: [Name of Conference], [Year] - Presenting research on [Topic].
  • Publication: [Title of Paper], [Journal/ArXiv link], [Year].