At Polytech Orléans, I learned how to solve analytically differential equations. Then in group of three, we had to solve a problem about a subject by solving numerically a differential equation.

As long as we had learned few weeks ago C# and WinForm, I decided to build a software that generate the result table of our problem.

Solving a mathematical problem

The algorithm use a numeric method to solve differential equation.

Solving differential equation numerically

I learnt in class two methods to do that. The first one is named Euler and the second one is named Runge Kutta. Actually, Rouge-Kutta methods gather several methods, like the Euler method.

The algorithm

The software algorithm apply the Euler method and the second order Runge-Kutta method.

The software

source code

It’s a GUI software coded in C#. I used VisualStudio and its graphic user interface to arrange the WinForm widgets.

The source code is on github, and you can download it for windows here.

The code was pretty simple because the main code is the algorithm we learned in class. This algorithm calculates data. The software generates an Excel sheet with the data used to make the chart.

License

The source code is published under the GNU General Public License V3.

How it work?

The software executes an algorithm which calculates something. It can be a position, a speed, a physical scale, quantity or variable, or whatever you want.

With this software, you will be able to solve your own equation. You will have to change the mathematical formula and the parameters.

Parameters

In the equation, you may want to modify some variables. A ==tab== named constantes allow you to change the values.

Solving your own problem

Don’t hesitate to fork the github project and modify the code to solve your differential equation. You will have to publish the source code under the GNU GPL V3 license.

Conclusion

This project allow me to apply what I learned about C** and C# programming. Before this, the only graphic user interface software I was able to build was with Python3 and Gtk.