# Recent Posts - What I've been saying

## Solution to the Poisson Equation in C++ using Successive Over-relaxation

Note: The first section of this blog post is mathematical and useful to understand, however, if you are just looking for an implementation you can skip through to the first code block.

Due to the interest in my previous blog post: Solution to the Laplace Equation in C++ using successive over-relaxation, I have decided to write a follow-up post on how to extend the method to allow for solutions to the Poisson Equation.

The Poisson Equation is the general case of the Laplace Equation and takes the following form:

$$\nabla^{2} \phi = f(\vec{r})$$

## Solution to the Laplace Equation in C++ using successive over-relaxation

Note: The first section of this blog post is mathematical and useful to understand, however, if you are just looking for an implementation you can skip through to the first code block.

Partial Differential Equations are notoriously difficult to solve analytically; in all but the simplest cases, there often does not exist a solution in elementary form. This would be acceptable, but for the ubiquity of partial differential equations in physical models. So Mathematicians and Computer Scientists had to develop methods of solving PDEs numerically.

In this blog post, I will show one such method of solving Laplace’s equation (a type of PDE) in $\mathbb{R}^{2}$ using the method of successive over-relaxation, an iterative technique which involves splitting the relevant domain into a grid and sampling each point in a fixed order. For those who don’t know, or have forgotten, Laplace’s equation is written as follows:

$$\nabla^{2} \psi = 0$$

## OCR C3 & C4 Revision Guide

I’m currently in the process of applying to internships, and as I was digging around my Google Drive (which is what I’m using to draft my cover letters) I came across a revision guide I made a couple of years ago to help people with OCR A-level maths revision (specifically the C3 and C4 sections).

I’m sure that there are bits missing, but it covers 5 basic topics:

1. Lines and basic linear algebra
2. Differentiation and Integration
3. Numerical Methods: Root finding & Quadrature methods
4. Algebra and Functions
5. Trigonometry

I just thought I’d release it here to see if it can possibly help anyone! (N.B: The wide margins are for notes to self whilst reading).

## Proving the det(AB) = det(A)det(B) relation using the Levi-Cevita tensor

I recently had to prove that $$\det(\mathbf{A}\mathbf{B}) = \det(\mathbf{A})\det(\mathbf{B})$$

I thought that it would be an interesting exercise to show this using the standard definition of the determinant of a matrix that physicists usually give (using Einstein summation):

$$\det(\mathbf{A}) \triangleq \varepsilon^{i_{1}\cdots i_{n}} a_{1 i_{1}} \cdots a_{n i_{n}}$$

We note that if we denote $\mathbf{C} = \mathbf{A}\mathbf{B}$, then we have $c_{ij} = a_{ik}b_{kj}$, and thus:

\begin{align*}\det(\mathbf{C}) &= \varepsilon^{i_{1}\cdots i_{n}}c_{1 i_{1}}\cdots c_{n i_{n}} \\ &= \varepsilon^{i_{1}\cdots i_{n}} a_{1 k_{1}}b_{k_{1} i_{1}} \cdots a_{n k_{n}}b_{k_{n} i_{n}} \\ &= a_{1 k_{1}}\cdots a_{n k_{n}} \varepsilon^{i_{1} \cdots i_{n}}b_{k_{1} i_{1}}\cdots b_{k_{n} i_{n}}\end{align*}

Designed and Produced by Thomas Russell © 2014-2017