linalg-simple

Simple Linear Algebra Package


License
MIT
Install
pip install linalg-simple==0.0.3

Documentation

linalg_simple

A simple linear algebra package written in Python 3

This is a more or less direct implementation of the Udacity Linear Algebra Refresher Course.


Installation

linalg_simple is available from the Python Package Index PyPi. If you have Python 3 installed on your system you can use the pip install command:

pip install linalg_simple

Classes

The linalg_simple package currently offers the Vector() class, which can directly be imported into your project with:

from linalg import Vector

Vector Class

Attributes

The Vector() class has two attributes:

  • Vector.coordinates (Decimal object)
  • Vector.dimension (int)

Methods

The following Vector() class methods are available:

Constructor

Arguments: int, float

v1 = Vector([1.5, -4.8, 3])

+ Method

v3 = v1 + v2

- Method

v3 = v1 - v2

Scalar Mutliplication

Arguments: int, float

v1.times_scalar(42)

Magnitude

vector_length = v1.magnitude()

Vector Normalization

unit_vector = v1.normalized()

Dot Product

Arguments: vector object

dot_product = v1.dot(v2)

Angle between two vectors

Arguments: vector object

angle = v1.angle_with(v2)

Check if vector's length is zero

To avoid precision errors, you can indicate a tolerance (default: 1e-10).

v1.is_zero()

Check if two vectors are orthogonal to each other

To avoid precision errors, you can indicate a tolerance (default: 1e-10).

Arguments: vector object, tolerance

v1.is_orthogonal_to(v2)

Check if two vectors are parallel to each other

Arguments: vector object

v1.is_parallel_to(v2)

Calculate projection of a vector onto a basis vector

Arguments: vector object (basis vector)

projection_vector = v1.component_parallel_to(v2)

Calculate orthogonal component of vector

Arguments: vector object (basis vector)

projection_vector = v1.component_orthogonal_to(v2)

Calculate Cross Product of two vectors

The vectors should be 3D (2D vectors will be augmented to 3D).

Arguments: vector object

crossproduct_vector = v1.cross(v2)

Calculate the parallelogram spanned by two vectors

Arguments: vector object

area = v1.area_of_parallelogram_with(v2)

Calculate area of a parallelogram spanned by two vectors

Arguments: vector object

area = v1.area_of_parallelogram_with(v2)

Calculate area of a trinagle spanned by two vectors

Arguments: vector object

area = v1.area_of_triangle_with(v2)