Mind Maps

Recently, I had a chat with a friend of mine about planning, understanding, and overview. Somehow, we both ended up agreeing on how amazing draw.io is. In my own case, I'd used it for mind maps/spider diagrams to help me further understand where automata comes from. My friend had simply asked me why I hadn't put it on my website yet, so here it is!

 

You may have to right-click the image above and select "Open Image in New Tab" (on Chrome) to be able to zoom into it.

Properties are green and definitions are blue/purple. At the very bottom of the image you'll see four green boxes: "Closure", "Associativity", "Identity", and "Inverse". These summarise the four axioms of group theory and are essentially the only things I understood when I first started trying to learn about how automata was constructed. You'll see how all four of these green properties are connected to the blue/purple definition of a group

Next thing you may notice is the definition of a "monoid" next to that of a group. It's got all the same properties except that of the property "inverse". And so on, by learning about definitions and what properties they did or did not have, from bottom to top, I eventually learned how automata and rational language are constructed from my basic understanding.

LOVE talking about this stuff, so if anyone has any questions, please email me and I'll provide more clarity on here.

Draw.io for the win.

 

 

The London Mathematical Society

In November '18, I decided to join the London Mathematical Society (LMS). Last month I attended a meeting there in Russell Square in Central London which involved a couple of lectures and a "swearing in" of new members.

As a part of the swearing in, new members have the opportunity to sign the LMS Member's Book. Interesting thing about this is it dates back to 1865(!). So after signing it, I flicked back the pages to find the signatures of both Arthur Cayley on June 19th 1865:

and James Clerk Maxwell on April 25th 1867:

A Lack of Updates

Study has been so busy this year, I've failed in keeping an up-to-date account of how it's been going. Here's a very quick run-though:

Assignment 2:

  • First and second-order differential equations.
  • Vector algebra and statics. (There are two blocks connected with taut string on a ramp and nothing is moving, what are the forces?)
  • Dynamics. (A block is sliding down a ramp with a certain friction, what are the forces?)

Assignment 3:

  • Matrices and determinants.
  • Eigenvalues and eigenvectors.
  • Systems of linear differential equations. (solving simultaneous differential equations).
  • Functions of several variables. (

        \[f(x,y)\]

    and

        \[f^{\prime}(x,y)\]

    instead of

        \[f(x)\]

    and

        \[f^{\prime}(x)\]

    ).

Assignment 4:

  • Mathematical modelling. (Introduction to writing a mathematical modelling paper).
  • Oscillations and energy. (Forces in a spring system, and potential energy).
  • Forcing, damping an resonance. (Forces in a system of springs and dampers).
  • Normal modes. (Oscillations of particles in a spring system).

Assignment 5:

  • Systems of differential equations. (Equilibrium points of two differential equations and use of the Jacobian matrix).
  • Fourier series.
  • Partial differential equations.

Assignment 6:

  • Vector calculus. (Scalar fields and gradients).
  • Further vector calculus. (Conservative vector fields, curl, and divergence).
  • Multiple integrals. (Area and volume integrals).

Assignment 7:

  • Writing a 3000-word mathematical modelling paper.

All the above are now complete, and I'm currently working through the last few units. Namely:

  • Systems of particles.
  • Circular motion.
  • Rotating bodies and angular momentum.

There's a requirement for me to submit one assignment per month, from October to May. These double-credit modules are hectic...

Out of all of the above, Assignment 7 had to be the most nerve-racking. Most assignments normally read like exam papers, though for Assignment 7 I had to write a report. So not only had I never written a report like this on this course before, I'd never written a report like this ever! Results are due in a couple of weeks, so based on the outcome I'll be keen to break down where I went wrong.

Favourite bits from the above have to include my first ever hand-calculation of a Fourier series in Assignment 5, and a question where I had to prove a result of Archimedes (287-212 BCE) regarding relative volumes, using modern calculus in Assignment 6. I'd also always wanted to know more about the construction of a Jacobian, so Assignment 5 was good for applying my new knowledge.

Pumping Lemma

Way way off the beaten path here, but this is the best example of usage of the pumping lemma I've seen. Just need somewhere to put it... The below is taken from here. Theorem: Let L be a regular language, and w be a string. Then there exists a constant c s.t. \forall w \in L, |w| \geq c. We can break w into three strings, w=xyz, s.t.:
  • |y| > 0
  • |xy| \leq c
  • \forall k \geq 0, xy^{k}z \in L
Method to prove that a language L is not regular:
  • At first, we have to assume that L is regular.
  • So, the pumping lemma should hold for L.
  • Use the pumping lemma to obtain a contradiction:
  • Select w s.t. |w| \geq c.
  • Select y s.t. |y| \geq 1.
  • Select x s.t. |xy| \leq c
  • Assign the remaining string to z.
  • Select k s.t. the resulting string is not in L.
  Problem: Prove that L=\{a^{i}b^{i} | i \geq 0\} is not regular. Solution:
  • At first, we assume that L is regular and n is the number of states.
  • Let w=a^{n}b^{n}. Thus |w|=2n\geq n.
  • By the pumping lemma, let w=xyz, where |xy| \leq n.
  • Let x=a^{p}y=a^{q}, and z=a^{r}b^{n}, where p+q+r=n, p \neq 0q \neq 0r \neq 0. Thusly |y| \neq 0.
  • Let k=2. Then xy^{2}z=a^{p}a^{2q}a^{r}b^{n}.
  • Number of a\text{'s}=(p+2q+r) = (p+q+r)+q=n+q.
  • Hence, xy^{2}z=a^{n+q}b^{n}. Since q\neq 0, xy^{2}z is not of the form a^{n}b^{n}!!!!!!!!!!!!!!!
  • Thus, xy^{2}z \notin L. Hence L is not regular.

Vectors

Unit 2 is "Vector algebra and statics". I opened this thinking "Ah yup. I know vectors. Easy". I see "dot product" and "cross product" explained in it, and considered how crazy-basic this unit must be. I saw arrows on force diagrams. Yup. Simple. This will be a non-unit. A breeze. Though it turns out... after getting a few pages in, I've not been asked to present vectors quite like this before, and these force diagrams look a lot different to the ones I remember somehow. Seems I do actually have to read this all carefully... I'm also used to using vectors in programming, so the fact that every vector I'm given is unnormalised also makes me feel dirty. Right, we'll see how this goes then... :/

Unit 1 COMPLETE!

My first unit is done! I managed to find time to complete the first assignment too. This is timely, as the course officially starts tomorrow.

This unit was interesting. Looking at the title "differential equations" I thought "Oh, okay, fine. I've done this before". Then opening up the book, I realised "Oh wait. I haven't quite done THIS before". That's when the fear crept in... how much of a learning curve would I be facing in this new unit?!

Forging through, I had to concede defeat on one or two examples, but I came out the other end confident about all the material I'd covered. Only now I've completed the assignment do I feed confident about my ability on the subject matter, but it's also one of those areas where I need to keep up the practise. 

All too often, it's the first unit that you return to at revision time and think "what IS all this?!". It's been hinted at that themes of second order differential equations reoccur throughout the module so I'm hoping I'll stay in practise. 

So I'll give the assignment a final proof-read and then submit it tomorrow on the first official day of the module. Good start.

Book Arrival

My books finally arrived.

I've got nine months to get all of that inside my brain. -but then I will also need to be able to write answers to questions on the subject matter at close to the speed of sound by the time of the exam...

Mechanics

After taking a much needed break from study for a year, today is the day I start my next module! Mathematics methods, models and modelling (which essentially amounts to "Mechanics").

Over the past year, I've been trying to keep my brain moderately agile by reading up on automata theory, which in some respects is a continuation of group theory from my previous Pure Mathematics module. If I ever have time, I'll write some findings up here about it. Though given I haven't even found time to write up my results of my Analysis work from my last module, this may too fall by the wayside!

Though despite the fact that my brain hasn't been entirely switched off over the past year, I'm still a bit nervous about starting this new module given that I haven't looked at calculus in such a long time. Here's hoping it all comes flooding back!

It seems that in this module there's yet another type of mathematics software that's been introduced. This one is called Maxima. It appears to perform the same role as Mathematica or Maple. Though it's another type of software, it shouldn't take too long to become familiar with it. 

First section is on first and second-order differential equations, and the first assignment appears to contain a merciful count of three questions. Time to dive in!

WebGL Test!

Under the assumption that this may be useful at some point, I spent a while hunting online for the best way to get WebGL running in WordPress.

Your browser does not support the canvas tag. This is a static example of what would be seen.

After reading lots of articles, blog posts, stackoverflow posts and doing my own editing, I ended up with the code below!

First, upload three.js to your /js directory on your webserver. Then paste all the code below into a blog post as HTML.

<canvas id="canvas" width="550" height="375">Your browser does not support the canvas tag. This is a static example of what would be seen.</canvas>

<script src="js/three.js"></script>

<script type="text/javascript">
   var canvas = document.getElementById('canvas');    
    
   var renderer = new THREE.WebGLRenderer({canvas: canvas});
   canvas.width  = canvas.clientWidth;
   canvas.height = canvas.clientHeight;

   renderer.setViewport(0, 0, canvas.clientWidth, canvas.clientHeight);
	
   var scene = new THREE.Scene();
      
   var camera = new THREE.PerspectiveCamera(75, canvas.clientWidth/canvas.clientHeight, 0.1, 1000);
   camera.position.z = 3;
   var geometry = new THREE.BoxGeometry(1, 1, 1);
     
   var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
   var cube = new THREE.Mesh(geometry, material);
   scene.add(cube);
    
   function animate() {
      requestAnimationFrame( animate );
      cube.rotation.x += 0.01;
      cube.rotation.y += 0.01;
      renderer.render(scene, camera);
   };
   animate();

</script>