3.1 Note on mathematical notation

Every programming language requires that code be written using correct syntax. If a programmer does not comply with the syntax of a language their code may be incomprehensible and hence inapplicable, for the compiler or interpreter of the language. Although there is no firmly codified notation in mathematics it is good to follow established notation. In this subchapter we will sum up the most commonly used notation.

Remark 3.1

Students are often surprised that mathematical notation and terminology is not clearly and globally codified. There is the  ISO 80000-2 standard which aims to fix some symbols and names but it is not very widespread. Uniform nomenclature is not used for historical reasons but also because of the different needs of different areas of mathematics. Matematics is live and creative and it does not make sense to bind it with any ISO standard. Even in painting and art there are many styles using different tools to achieve similar results. Similarly, why is there not only one programming language? And it is good.But what is globally true is the logical structure of mathematics and the way mathematics is built. In other words, it does not matter what symbols we use or which language we speak, what matters is how and what rules we follow.

3.1.1 Equality and equations

First we will analyze the meaning of the most important of symbols, the equals sign $=$. In programming languages as well as in mathematical notation the symbol $=$ plays a crucial role. Unfortunately, in each of these areas it is used slightly differently, which can often be very confusing.In the vast majority of programming languages the meaning of the symbol = is assignment. For instance, this line of code

a = 2

often means that from this moment onwards the value of the variable a is 2. So does the line of code

a = a + 1

say to the computer that the new value of the variable a is the old value of a increased by 1. Furthermore, in programming we often encounter the symbol == which tests actual equality of two objects. For example, the line of code

a == b

is evaluated as true, if the objects a and b are equal11. Otherwise, it is evaluated as false.

The situation with matematical notation is a bit more complicated. Basically, we can say that the context in which the symbol $=$ is used plays a most important role. The basic function of the symbol $=$ is to denote equality of two known objects. In this way we can formulate a claim, e.g.

\begin{equation}\label{eq-rovnost}\tag{3.1} a = b, \end{equation}

where $a$ and $b$ are certain defined objects, which is either true or not. For natural number $4$ the equality $4=4$ is true, for for numbers $4$ and $3$ the equality $4=3$ is false. In this sense the matematical symbol $=$ is close to the programming symbol == discussed above.

The symbol $=$ is also used to write down an equation. For instance, in the equation

\begin{equation}\label{eq-rovnice}\tag{3.2} x^2 - 1 = 0 \end{equation}

$x$ stands for an unknown, an object to be determined with the property that after we substitute it in the equation (3.2) we get equality between the left-hand side and the right-hand side of this equation. Such instances of $x$ are then called solutions of the equation (3.2). In this case the equation (3.2) has two solutions, the numbers $1$ and $-1$, and no other real number is a solution. Indeed, after substituting $1$ or $-1$ into the equation (3.2) we get an equality $0=0$, which is true. On the other hand if we substitute for instance $2$ for $x$ then we get an equality $3=0$, which is false12.

The symbol $=$ is furthermore used to denote assignment in the programming sense. It can usually be easily seen from the context if it is the author's intention. Let's take a closer look at the following text sample.

Assume we have a rectangle with sides of length $a\,{\color{red}=}\,3$ and $b\,{\color{red}=}\,4$. We will denote the length of the rectangle diagonal with $c$. By the Pythagoras' theorem we have that $c\,{\color{blue}=}\,\sqrt{a^2 + b^2}$, i.e. in our case $c\,{\color{blue}=}\,5$.

The first two uses of the symbol $=$ marked with red mean assignment. From that moment on the symbols $a$ and $b$ have specific values. In programming slang we would say that variables $a$ and $b$ were inicialized. The second sentence of the paragraph does not contain the symbol $=$ but its meaning is the same because it unequivocally defines the symbol $c$. Finally, the last sentence claims that the blue equalities are true. Here it does not concern assignment/definition/initialization but the validity of a certain relationship between defined objects $a$, $b$ and $c$.

Sometimes we use the symbol $:=$ to denote assignment. We usually choose this symbol when we want to emphasize that a new object has been introduced. The symbol on the left-hand side of $:=$ is then defined by the expression on the right-hand side of $:=$. Here we would like to warn the reader that CAS13   Mathematica uses the discussed symbols in a slightly different way. We will discuss this topic in more detail in chapter 6.

3.1.2 Variable notation

Let us now summarize some common conventions for naming that we will use in this document as well as in the BIE-ZMA course. Although the choice of names used for objects is entirely up to the author, it is good to follow these unwritten rules.

  • We use letters from the end of the Latin alphabet to name unknowns in equations, for example $x$, $y$ or $z$.

  • We use letters from the beginning of the Latin alphabet to name known – previously defined – objects or parameters of a problem, for example $a$, $b$, $c$, etc. We often use the Greek alphabet for numerical values, i.e. $\alpha, \beta, \gamma, \ldots$

  • For summation indices (see Section 3.6 below) and integer quantities we often use letters $i$, $j$, $k$, $\ell$, $m$ or $n$. When using the letter $i$ we must be careful not to confuse it with the imaginary unit denoted also by14 $\ii$.

  • We use capital letters $A, B, C,\ldots$ to name sets. We also usually use capital letters of the latin alphabet to denote points in a plane (space).

  • We use letters $r$, $s$, $t$ to parametrize geometrical objects (lines, circles, areas, etc.).

3.1.3 Brackets

Next, let's mention the role of brackets in mathematical notation. We use brackets to indicate function (mapping) argument, to specify the order of execution of operations or to mark intervals and points. Without parentheses, many algebraic expressions would not make sense15. In the rest of this subchapter, we will discuss in more detail just such cases of using brackets.

If we have a function $f$ and an element $a$ from the domain of $f$, then $f(a)$ denotes the function value of $f$ in $a$. To be more precise, $f(a)$ is a number, on the other hand $f$ is an abstract object of the function type. Therefore, this use of parentheses exactly matches the usage you will find in programming languages. If $f$ and $a$ have already been defined then the meaning of $f(a)$ is: call the function $f$ with argument $a$ and return $f(a)$. The value of $a$ can be seen as input and $f(a)$ as output of the function $f$. Graphically, we can imagine this situation as in Figure 3.1.

Figure 3.1: Function $f$ and its functional value. $a$ is the input and $f(a)$ is the output. The function $f$ itself is a „black box“ which transfers input to output.

However, sometimes we call the whole expression $f(x)$ a function. We often use this point of view if we also want to tell the reader what the variable will be called (here $x$). In some cases, brackets around function arguments are omitted, in particular when we want to improve readability and simplify notation. E.g. we often write $\sin \alpha$ instead of $\sin(\alpha)$ or $\ln 2$ instead of $\ln(2)$. We must however take care to avoid any misunderstanding. For example, the expression

\begin{equation}\label{eq-ln2dot3}\tag{3.3} \ln 2\cdot 3 \end{equation}

could be interpreted as

\begin{equation*} \ln (2\cdot 3) \quad \text{or} \quad \ln(2) \cdot 3. \end{equation*}

Of course, these numbers are not the same. Using a calculator16 we can easily verify that the two expressions are approximately equal to

\begin{equation*} \begin{aligned} \ln ( 2\cdot 3) &= \ln(6) \approx 1.791\,759\,469\,23, \\ \ln(2) \cdot 3 &\approx 2.079\,441\,541\,68. \end{aligned} \end{equation*}

Especially with „manual“ calculation17 these inaccuracies may lead to catastrophic errors. Therefore it is better to write multiplicative factors in front of functions. Here, the expression $3 \ln 2$ is defined unambiguously, as opposed to the expression in (3.3).

Let's remind the reader that for some functions we use special notation which does not require brackets. For instance, square root is denoted by $\sqrt{x}$, cube root by $\sqrt[3]{x}$ and the absolute value by $|x|$. The reader is also familiar with the floor (resp. ceiling) of a real number $x$ denoted by the symbol $\lfloor x \rfloor$ (resp. $\lceil x \rceil$).

Parentheses are furthermore used to specify the order of algebraic operations. For example, the expression

\begin{equation*} \Big( a + ( c / 2 ) \Big) \cdot 3 \end{equation*}

should be understood as follows: first divide $c$ by two and add $a$, then multiply this number by three. Without brackets,

\begin{equation*} a + c / 2 \cdot 3, \end{equation*}

it would (without the order of operations convention 18) not be clear how to evaluate this expression. In this respect mathematics does not differ from programming languages. The majority of programming languages employs operator precedence (see e.g.  C Operator Precedence).

Remark 3.2

It may seem that what we describe here is really elementary and well understood by all students. Unfortunately, the number of errors that arise in tests because of such inaccuracies as

\begin{equation*} \ln(1+x) = \ln 1 + x = \ln(1) + x = x \end{equation*}

shows that it is not something that should be neglected in this text.

3.1.4 Indices

At the end of this section we will mention the importance of upper and lower indices. Upper indices (or superscripts) are usually used to denote exponents, for instance

\begin{equation*} 3^5, \quad a^n, \quad e^2 \quad \text{etc.} \end{equation*}

Sometimes we use upper indices to denote vector components or the complex conjugate of a complex number $a$. Often we can see $a^*$ instead of $\overline{a}$. In BIE-ZMA we will use upper indices to denote higher-order derivatives of functions.

Lower indices (or subscripts) are used to indicate either the order of an element in a sequence, or more generally, dependence of a given quantity on an integer parameter. This notation is similar to indexing array elements. In programming, a[2] means practically the same thing as our $a_2$. We will study sequences in more details in BIE-ZMA.