# Algebra instructions

**Note**: There are several live demos on this page, identified with the label INTERACTIVE DEMO. If you click into the area containing the CalcMe parameters, it will launch a new browser window containing a CalcMe session with all the operations you can see. Try it out, change the parameters or options. You won't break anything.

## Numbers

### Complex numbers

To define and operate with complex numbers, you need to enter the imaginary unit using the icon in the section *Symbols* of the *Menu* or using the keyboard shortcut `Ctrl`+`J`. Note the imaginary number appears in green, otherwise CalcMe is interpreting it as a variable.

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

INTERACTIVE DEMO

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.

INTERACTIVE DEMO

However, when multiplying two complex numbers , you have to imagine you are multiplying two polynomials and applying the distributive property. As , the real part of the product will be the product of real parts minus the product of imaginary parts , meanwhile, the imaginary part will be the sum of the cross products .

INTERACTIVE DEMO

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).

INTERACTIVE DEMO

## 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.

INTERACTIVE DEMO

On the other hand, if you want to define a matrix, you have only two options, 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.

INTERACTIVE DEMO

### 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.

INTERACTIVE DEMO

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, the kernel, and the image of a matrix by using the corresponding commands.

INTERACTIVE DEMO

### Change of base

Given two bases of a vector space , in our case and , the matrix whose columns correspond to the coordinates of the vectors of in the base , is called the matrix of the change of base from to . CalcMe allows you to find this matrix and, consequently, the vector coordinates of in the base .

INTERACTIVE DEMO

### 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.

INTERACTIVE DEMO

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

INTERACTIVE DEMO

### Equation of a plane

On the other hand, to create a plane, you will need a point and two director vectors. 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.

INTERACTIVE DEMO

## Systems of linear equations

### Solution, solution with degrees of freedom

To solve linear systems of equations, there are essentially two methodologies: entering the equations manually by separating them using the *New Line* action (`Shift`+`Enter`) or by 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.

INTERACTIVE DEMO

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

You can find the data flow between each pair of directly linked routers () 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 and ) and equal to the outgoing flow (for and ).

INTERACTIVE DEMO

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

INTERACTIVE DEMO

### 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.

INTERACTIVE DEMO

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.

INTERACTIVE DEMO

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

INTERACTIVE DEMO

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

INTERACTIVE DEMO

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.

INTERACTIVE DEMO

## Linear maps

Given an endomorphism and its associated matrix , you can use the commands `image`

and `kernel`

to find the set of vectors that are the image of any of the initial vectors () and the set of vectors whose image for is 0 ().

INTERACTIVE DEMO

Alternatively, you can also find the eigenvalues and the corresponding eigenvectors of the endomorphism using the commands `eigenvalues`

and `eigenvectors`

: As you know, is verified.

INTERACTIVE DEMO

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 own vectors.

INTERACTIVE DEMO

One of the applications of this decomposition is to find high-grade powers of the initial matrix. As , if you want to calculate you just have to raise the diagonal matrix (i.e., the eigenvalues) to the nth power and multiply by the matrix and the matrix .

INTERACTIVE DEMO

## 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. To define it, set the translation distance (both on the axis and the axis).

INTERACTIVE DEMO

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

INTERACTIVE DEMO

### Rotation

If you apply a rotation to a point , 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. If you don't indicate it, CalcMe will interpret the pivot as the origin.

INTERACTIVE DEMO

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

INTERACTIVE DEMO

Or specifying another rotation point different from the origin.

INTERACTIVE DEMO

### Scaling

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

INTERACTIVE DEMO

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

INTERACTIVE DEMO

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 the move, you have to apply the scaling to finally undo the translation.

INTERACTIVE DEMO