Getting the Equation Right When Everything Looks Solvable
You will find yourself staring at a particularly nasty differential equation on a Tuesday night, coffee gone cold, trying to decide if this is one you can pull through analytically or if you need to call it and reach for numerical methods. That moment happens to everyone who works with these things long enough. The real problem with hard equations is not that they look hard. It is that they hide their true complexity behind a form that looks manageable until you actually try to solve it. I spent three days on a boundary value problem last year that I assumed would yield to a straightforward substitution. It did not. The equation had an essential singularity at the origin that I missed because I was working in the wrong coordinate system. Once I shifted to polar and linearized around the singularity, the whole thing fell apart in about twenty minutes.
Recognizing the Really Hard Math Equation
Before you do anything else, classify what you are actually dealing with. A non-linear PDE with variable coefficients behaves completely differently from a stiff ODE system. A spectral method that works beautifully for smooth periodic problems will blow up on discontinuous data. Knowing which category your equation falls into saves you from trying the wrong tool on a problem that needs a different one entirely. Here are the things that make an equation genuinely difficult in practice. Non-linearity is the first one. When the solution feeds back into itself, superposition stops working and most of your intuition from linear algebra goes out the window. Then there is stiffness. A system where some components evolve on very fast time scales while others move slowly will destroy an explicit integrator unless you use something like implicit Runge-Kutta or a method specifically designed for stiff problems. Boundary layers and internal layers create regions where the solution changes extremely rapidly over a small domain. Standard uniform grids waste most of their points in smooth regions and still miss the action where it matters. Singular perturbations are another category that catches people. You have a small parameter multiplying the highest derivative, and as that parameter approaches zero the order of the equation drops and you lose a boundary condition. The naive limit is wrong. You need matched asymptotics or a similar technique to get the right answer across the full domain.
Working Through a Solution Strategy
I usually start by non-dimensionalizing the equation. This removes arbitrary scale parameters and reveals the dimensionless groups that actually control the behavior. In my experience, this step alone changes the solution strategy half the time because it makes clear which terms are negligible and which ones cannot be dropped without breaking the physics. A term that looked small in dimensional form might dominate once you account for the true scale of the problem. After non-dimensionalization, I check for conservation laws and invariants. Does the equation preserve mass, energy, momentum, or some other quantity? If it does, any numerical method you choose should respect that structure. Methods that violate conservation accidentally can produce solutions that look smooth but are physically wrong. Symplectic integrators preserve phase space volume. Discrete gradient methods preserve energy. Pick the method that respects the structure your problem has, not the one that is easiest to code. When analytical approaches fail, which they usually do for genuinely hard equations, numerical discretization becomes the path forward. Finite difference methods are the default for simple geometries. Finite element methods handle complex domains better. Spectral methods give exponential convergence for smooth solutions on simple domains. Each approach has real trade-offs. Finite differences are cheap but struggle with irregular boundaries. Finite elements handle geometry well but require mesh generation and can be expensive for high-order accuracy. Spectral methods are extremely accurate per degree of freedom but break down when solutions develop discontinuities or sharp gradients.
Get the Full Details

I encountered a particularly ugly case recently involving a reaction-diffusion system with a source term that was exponentially stiff. Standard adaptive methods kept failing because the adaptive controller could not react fast enough to the explosive growth in certain regions. What worked was a IMEX Runge-Kutta scheme where I treated the diffusion implicitly and the reaction explicitly, combined with local time stepping that let each grid cell advance at its own speed. This cut my wall-clock time from roughly six hours down to about forty-five minutes on the same machine. The key insight was that global time stepping was the bottleneck, not the spatial resolution.
Pitfalls That Will Waste Your Time
Convergence testing is where most people cut corners and then get burned later. Run your solution at three different resolutions. If the results do not change consistently as you refine, you do not have a converged solution. Period. Do not trust a single run. Do not trust a result that looks reasonable. Check the grid sensitivity systematically. Numerical dispersion and dissipation are another common trap. These are artifacts of the discretization that alter wave propagation and amplitude. A method might be stable and convergent in theory but introduce enough numerical diffusion to make your solution useless for the problem at hand. Look at the von Neumann stability analysis for your chosen scheme. Check the amplification factor. See how errors grow or decay across different wavelengths. Boundary conditions are where a lot of supposed solutions die. You can have the best interior scheme in the world and still get garbage if your boundary treatment is inconsistent with your interior discretization. Entropy boundary conditions, characteristic extrapolation, and sponge layers each have their place depending on whether your problem is hyperbolic, parabolic, or mixed. Get the boundary conditions wrong and your well-posedness assumptions collapse.
There are equations where no numerical method will save you. Ill-posed problems, where small perturbations in the input data produce arbitrarily large changes in the solution, cannot be fixed by using a finer grid or a smarter algorithm. Tikhonov regularization can help stabilize some inverse problems, but it introduces bias and you need to understand exactly what regularization is doing to your solution. If someone tells you they solved an ill-posed problem without any regularization, they are either lying or they do not understand the problem they were solving.

When to Walk Away from a Purely Analytical Approach
Some equations resist closed-form solution and that is fine. The Navier-Stokes equations in three dimensions are a perfect example. We know they exist. We know smooth solutions should exist under reasonable conditions. We cannot prove it. Nobody has. Attempting an analytical solution to a generic non-linear PDE in three dimensions is usually a waste of time. Accept that you need numerical methods and focus your energy on getting the numerics right instead of chasing a miracle solution that probably does not exist. Approximation theory gives you tools for this. Perturbation methods work when you have a small parameter. Variational methods work when you can frame the problem as an optimization. Integral transforms sometimes convert a difficult differential equation into a simpler algebraic one. None of these are universal. Each has a narrow range of validity. Know where your approximation breaks down before you use it. For the genuinely hard cases, I recommend starting with a known benchmark. Find a simplified version of your problem that has an analytical or highly verified numerical solution. Run your method on that benchmark first. Validate against it. Then introduce complexity gradually. This way you know where your method fails and you can fix it before you apply it to the problem you actually care about.
The bottom line is that solving a Really Hard Math Equation is mostly about understanding what makes it hard, choosing the right tool for the actual difficulty rather than the apparent difficulty, and validating every step along the way. The equations do not care about your confidence. They care about whether your method respects their structure.