Intro to Mathematical Modeling
Before I got into my Computer Science and Engineering course, shamefully enough, I knew very little about what would be involved in doing the course. All I thought was programming, computer assembly and architecture, networking and a whole lot of math.
Studying Computer Science in Russia made me realize how different a course I had from my friends back in Zambia and through that realization, I took interest in a concept that I think isnâ€™t emphasized enough in Zambian institutes but which could serve to be useful in our countryâ€™s betterment and possibly development.
The concept of mathematical modeling.
So what is this Mathematical Modeling?
Mathematical modeling is the process of developing a system using mathematical concepts and language. Â It is a representation in mathematical terms of the behavior of real devices and objects.
Why is it important?
A model may help to explain a system and to study the effects of different components, and to make predictions about behavior.
With our new computer age, there arise problems of optimal design solutions.
With the construction of mathematical models we are able to idealize properties of a system, predict future behavior and optimize a real system based on optimization criteria (e.g. performance graphs) of the model.
How do I create one?
In order to create one, we need to determine the building blocks of a basic model. A mathematical model consists of;
- Variables: These are factors that are liable to vary or change.
- Relations: This is the dependence of variables to one another.
Through these factors, analytical and numerical methods of linear, non-linear relations plus dynamic programming methods, we are able to find a solution to an optimization problem.
How does all this apply in a real life problem?
I know by now you are wondering how this all applies to real life problems.
Here is a basic example:
If you are allowed to use 20 meters of wood to build a fence around a rectangular region, what is the largest area you can enclose?
In this problem, we imagine being given a limited amount of resources and being asked to use them in the best possible way ever. More like sharing a slice of pizza among 8 people.
So with the given information we can build a model.
Step 1: Identify our variables. Area is determined by length and width so they become our variables.
Step 2: Determine the relationship between the variables.
This is the perimeter.
2 (a + b)
Step 3: Define the constraints. These are the limitations given i.e. 20 meters of wood. Another constraint would be that length and width remain positive i.e. a â‰¥ 0, b â‰¥ 0
Step 4: Establish the connection between the relation and constraints.
2 (a + b) = 20 a â‰¥ 0, b â‰¥ 0
Step 5: Identify the function we need to optimize which is the area of the region.
a x b
Thatâ€™s how we build a mathematical model. And using a linear method we are able to calculate exactly what maximum area we can cover with 20 meters of wood.
How does all this involve programmers?
After a model is built, programmers use this same information (variables, equations, optimization methods etc.) and create a program that serves faster calculation for the solution. These programs can be later used when changes want to be made to the properties of the model.
For example, say instead of 20 meters of wood, our scale is increased to 250 meters. With the created program, the programmer doesnâ€™t have to go through the whole process of building a mathematical model but simply changes the parameters and variable through code.
A more sophisticated example of a mathematical model would be Transport Protocol (TCP).
This exact model uses what is called a Deterministic Finite Automata (DFA) algorithm and would normally look like this:
This model describes the connection between two computers as it begins in a closed state.
I have found Mathematical modeling as an untapped field in our country and although my experience with it has been in applied chemical and industrial engineering, it still proves to be of an asset in other industries and also a platform where computer scientists can use and enhance their programming skills.
So if you are a programmer and you donâ€™t know what to look at next, I would suggest you try Mathematical modeling. I guarantee a whole other level of experience.