# Here you can find all the articles related with mathematical programming using .NET framework and C# code.

• ## Random numbers generation

24/04/2016

In many applications it is necessary to generate random numbers. To do so, the .NET framework provides the Random class, which can generate uniformly distributed pseudo-random values, which means that all numbers are equally likely to appear in the result. But in some cases we need to generate random values that follow other different types of distribution. In this article we will see how to generate random numbers that follow a normal distribution, with a system that can be extended to any other type of distribution.

• ## How to build an expressions analyzer, grammar

14/06/2016

When we are working with mathematical functions, it is very convenient to have a parser that allows us to write and perform different versions of the equations that must be processed by the program, rather than having to modify and recompile the code to adapt it to these changes each time. In this series of articles I will show how to build a simple but powerful expressions analyzer, which can be extended easily to deal with more sophisticated expressions, starting by explaining in this article the basic theory necessary to successfully face this kind of development.

• ## How to build an expressions analyzer, implementation I

17/06/2016

In the previous article in this series I reviewed the main issues about the design of the grammar to build an analyzer, or parser, for arithmetic expressions. In this article I will show the first part of its implementation from the BNF grammar rules, converting the input expression, in the form of a text string, in a series of objects that we can use to evaluate it and give different values to the constants and variables that compose it.

• ## How to build an expressions analyzer, implementation II

18/06/2016

In the previous article in this series I began to show how to implement an arithmetic expression analyzer, or parser, from the grammar rules in BNF notation, with classes which extract numbers, variables and constants. In this article I will finish the series with the implementation of the class focused in working with the main rule, which analyzes the expressions themselves. I will also provide a small sample application that draws the graph corresponding to the expression from the object generated by the compiler.

• ## Maximize or minimize a function using the Simplex method

23/07/2016

There is a very common problem in linear programming which consists to find the values that make maximum or minimum the value of a linear function, given a number of restrictions on the values of their variables. For example, you may want to find a minimum cost or maximum production function. To do this, there is an algorithm developed in 1947 by George Dantzig, called Simplex, which allows perform such calculations in a simple and effective way.

• ## Implementing correspondence analysis in C#

28/10/2016

The correspondence analysis is a statistical technique that allows us to study relationships between categorical data through optimal scaling and orthogonal projection in two or three dimensions of contingency tables. Its implementation is relatively simple, and in this article I will show an example using the csharp language. In addition, the sample program allows you to draw simple graphics with the resulting data.

• ## WinRQA, a C# application to draw recurrence plots

11/11/2016

A recurrence plot is a graphical tool used in the study of complex time series. Along with the plot we can also calculate a series of measures that allow us to perform a recurrence quantification analysis, or RQA. In this article I will present the WinRQA application, a tool to work with recurrence plots and RQA measures in a Windows environment.

• ## Extending WinRQA I, estimating delay and embedding dimension

26/11/2016

WInRQA is an application dedicated to recurrence plots, a tool that is used in the analysis of recurrence of complex time series. In this article I will present the first extension of the application, which mainly consists of a series of tool windows that will help you to make estimates on what may be the most appropriate delay to try to reconstruct the phase space of the system attractor and select the correct embedding dimension.