# Algebra instructions

## Numbers

### Complex numbers

To define and operate with complex numbers, you need to enter the imaginary unit $i=\sqrt{-1}$ using the icon in the section Symbols of the Menu or to use the keyboard shortcut Ctrl+J. Note the imaginary number appears in green. Otherwise, CalcMe interprets it as a variable.

From now on, you can naturally write complex numbers in binomial form and find their real and imaginary parts, norm, argument, polar representation, conjugate, and inverse using the different available commands.

In addition, you can also operate with these numbers, starting with perhaps the simplest operations: addition and subtraction. Note adding or subtracting complex numbers ends up being the same as using plain vectors.

However, when multiplying two complex numbers ${z}_{1}=a+b·i,{z}_{2}=c+d·i$, you have to imagine you are multiplying two polynomials and applying the distributive property. As $i·i={i}^{2}=-1$, the real part of the product will be the product of real parts minus the product of imaginary parts $a·c-b·d$. Meanwhile, the imaginary part will be the sum of the cross products $a·d+b·c$.

Lastly, when you divide complex numbers, you have to eliminate the complex part of the divisor (the denominator) by multiplying the numerator and denominator by the denominator's conjugate. That reduces the problem to dividing a complex number (i.e., the numerator) by a real value (i.e., the denominator).

## Elements of linear algebra

### Vectors and matrices

To get started with elements of linear algebra, you first need to see how vectors and arrays are defined in CalcMe. You can define vectors in three different ways: by using the `vector` command, using the icon you can find in the Linear Algebra section of the Menu, or by typing it manually. The last two are the most common.

You can also define vectors as variables, perform basic operations between them, and access specific elements.

### Tip

If you want to see how to create vectors using the command, see its dedicated page.

On the other hand, you have only two options if you want to define a matrix, but they are more than enough. You can use the icon next to the vector in Linear Algebra or enter it manually as a vector of vectors.

Additionally, once the matrix is created, you can resize it by inserting or removing rows and columns with more icons you can find in the Menu.

Finally, as with vectors, you can also perform basic operations between matrices and access their elements.

### Operations with matrices

Apart from the basic operations already seen as the sum of matrices or the product of a matrix and a scalar, CalcMe allows you to perform a wide range of actions given a set of matrices. First, the product between matrices.

Continuing with classical operations with matrices, you can also find commands in the Linear Algebra section of the Menu that allows you to calculate the determinant, inverse, and transpose of a given matrix. In the same way, you can also easily create an identity matrix of the dimension you want.

Finally, you can find the range, kernel, and matrix image by using the corresponding commands.

### Change of base

Given two bases of a vector space $V$, in our case $B=\left\{\left(1,1,1\right),\left(1,0,3\right),\left(3,4,5\right)\right\}$ and $A=\left\{\left(2,3,-1\right),\left(0,0,1\right),\left(2,1,0\right)\right\}$, the matrix $C$ whose columns correspond to the coordinates of the vectors of $B$ in the base $A$, is called the matrix of the change of base from $B$ to $A$. CalcMe allows you to find this matrix and, consequently, the vector coordinates of $B$ in the base $A$.

### Equation of a 2-D and 3-D straight line

To create a straight line, you need to specify a point on the line and the direction it will follow (i.e., its slope). With these ingredients (though they aren't the only possible ones) and the `line` command, you can easily create and represent a straight line in the plane.

You can extend these actions into space with similar syntax and create and render a 3-D straight line. Notice that the line appears as an intersection of two planes.

### Tip

If you want to see the different parameters you can use to create a line, see its dedicated page.

### Equation of a plane

On the other hand, you will need a point and two director vectors to create a plane. With these ingredients (though they aren't the only possible ones) and the `plane` command, you can create and render a plane in the space.

### Tip

If you want to see the different parameters you can use to create a plane, see its dedicated page.

## Systems of linear equations

### Solution, solution with degrees of freedom

There are essentially two methodologies to solve linear systems of equations: entering the equations manually by separating them using the New Line action (Shift + Enter) or using the `solve` command.

If you want to assign these solutions to a variable, you need to consider the singular notation to use. In addition, in the case of an indeterminate compatible system, you will be able to see what value the solution takes depending on the dependent variable.

Resolving systems like the ones seen above gives you a wide range of options when solving problems with several variables. Given the following diagram showing the data flow (in MB per hour) between six routers ($A-F$) on a network

You can find the data flow between each pair of directly linked routers ($x,y,z,t,u,v,w$) if you consider the data flow that goes through each of them is the same that comes out of it. You also know the total inbound data flow is 1100 MB (for $A$ and $F$) and equal to the outgoing flow (for $C$ and $D$).

Adding a couple of conditions, such as that the flow from $B$ to $C$ is 200 MB per hour and that the flow from $A$ to $D$ is 500 MB hour, you can find a single solution for the system of linear equations.

### Intersection of planes

All the linear systems seen above can be interpreted geometrically as a set of planes in the space that will intersect at a point (determinate compatible system), in a straight line (indeterminate compatible system with a degree of freedom), in a plane (indeterminate compatible system with two degrees of freedom) or nowhere (incompatible system).

When the rank of the plane coefficients' matrix matches the range of the extended matrix, the planes intersect at one or more points (the corresponding linear system solution set). Also, if this range is the same as the number of unknown variables, that intersection will be a single point.

On the other hand, if these ranges coincide but are smaller than the number of unknown variables, the planes will intersect at an infinite number of points. If the system has a degree of freedom, they intersect in a straight line; if there are two, in a plane.

This situation may also occur when considering more than two planes. In fact, there are infinities that go through a given line.

Lastly, if the planes are parallel (same direction vectors but different points), there will be no intersection point corresponding to the incompatible system.

Similarly, given two parallel planes, any other plane we add to the situation may intersect (or not) with the initial planes but never get the system to have a solution.

## Linear maps

Given an endomorphism $f$ and its associated matrix $A$, you can use the commands `image` and `kernel` to find the set of vectors that are the image of any of the initial vectors ($Im\left(f\right)$) and the set of vectors whose image for $f$ is 0 ($Ker\left(f\right)$).

Alternatively, you can also find the eigenvalues and the corresponding eigenvectors of the endomorphism using the commands `eigenvalues` and `eigenvectors`: As you know, $A·{v}_{i}={\lambda }_{i}·{v}_{i}$ is verified.

In the same way, you can calculate these values and eigenvectors from the characteristic polynomial. Once calculated, you can use it to find the diagonal matrix mapping on the base of your vectors.

One of the applications of this decomposition is to find high-grade powers of the initial matrix. As $A=P·D·{P}^{-1}$, if you want to calculate ${A}^{n}$ you have to raise the diagonal matrix $D$ (i.e., the eigenvalues) to the nth power and multiply by the matrix $P$ and the matrix ${P}^{-1}$.

## Geometric transformations

### Translation

Translating is a transformation that moves objects without causing them to deform since each point of the object is moved in the same direction and at the same distance. Set the translation distance (both on the $x$ axis and the $y$ axis) to define it.

In fact, you can apply this transformation to more complex objects than points.

### Rotation

Suppose you apply a rotation to a point $P$, its position changes following a circular trajectory in the plane. In order to define it, you must set the rotation angle and the pivot or rotation point. CalcMe will interpret the pivot as the origin if you don't indicate it.

As you have seen before, you can apply this transformation to more complex objects than points.

Or specifying another rotation point different from the origin.

### Scaling

Scaling a point $P$ using a fixed point ${P}_{0}$, implies multiplying by some factors the horizontal and vertical distances between ${P}_{0}$ and $P$. If you don't indicate it, CalcMe will interpret that the point ${P}_{0}$ is the origin.

As you have seen before, you can apply this transformation to a more complex object.

Or by specifying another fixed point other than the origin. In this case, you will need to start by applying a translation so that the fixed point matches the coordinate origin. Once you've made a move, you have to finally apply the scaling to undo the translation.