An open API service indexing awesome lists of open source software.

https://github.com/ostad-ai/computer-science

Computer Science and related topics are the main focus of this repository. Mainly, Python language is used here.
https://github.com/ostad-ai/computer-science

algorithms computer-science cramers-rule divide-and-conquer dynamic-programming fast-fourier-transform linked-list matrix-inversion python root-finding

Last synced: about 1 year ago
JSON representation

Computer Science and related topics are the main focus of this repository. Mainly, Python language is used here.

Awesome Lists containing this project

README

          

# Computer-Science
Programs related to the field of Computer Science are expessed here. More on Computer Science is at the following link:
https://www.pinterest.com/HamedShahHosseini/

1) **Determinant from scratch** with Python by converting matrix to triangular one.
2) **Cramer's rule** for solving a system of linear equations.
3) **Matrix inversion by the cofactor matrix** from scratch in Python.
4) **Matrix inversion by Gauss-Jordan elimination** from scratch in Python.
5) **Fast Fourier Transform (FFT), one-dimensional,** from scratch in Python. Also, Discrete Fourier Transform (DFT) from scratch is also included.
6) **Divide and Conquer:** Quicksort from scratch in Python.
7) **Dynamic Programming:** Fibonacci numbers in Python.
8) **Singly Linked Lists** from scratch with Python. An example is also given to implement a stack having functions: push and pop.
9) **Complex numbers, introduction:** Here, we review complex numbers in both rectangular and polar forms by reminding Euler's formula and De Moivre's formula. Also, we review doing arithmetic for complex numbers in Python.
10) **Absolute and relative errors** are reviewed. When we don't know the true value, we may use approximate value in measuring the mentioned errors. A Python example is also provided.
11) **Root finding, Bisection method:** It is a bracketing method to find one root of a continuous function, given the interval [a,b] in which the root exists. It is assumed that f(a)f(b)<0.
12) **Root finding, False Position method:** This root finding method is also a bracketing method with the same assumptions we make for the bisection method. However, it is usually faster than the bisection method.
13) **Root finding, Fixed Point Iteration:** This is an open method such that it starts by an initial guess of the root, and then it uses an iteration to get closer to the real root.
14) **Root finding, Secant method:** We give two initial guesses of the root. Then, the method creates a secant line which intersects the x-axis at a value that is usually a better estimate of the root.
15) **Matrix-vector multiplication as a linear combination:** It is possible to express the product of a matrix by a vector as a linear combination of the columns of the matrix by the components of the vector as weights. Here, we mention this property with an example in Python code.
16) **Trace of a matrix:** *Trace* is defined on a *square* matrix, which is the sum of the elements on the *main diagonal* of the matrix. We review the trace function with some properties of the trace. Also, we check those properties in an example with Python code.
17) **Determinant:** Determinant is reviewed again here with some of its properties. The *Laplace expansion* is also mentioned. Moreover, **minors** and **cofactors** of the given matrix are computed.