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.
- Host: GitHub
- URL: https://github.com/ostad-ai/computer-science
- Owner: ostad-ai
- Created: 2021-10-21T14:33:53.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-01-08T17:37:17.000Z (over 1 year ago)
- Last Synced: 2025-01-23T12:29:44.482Z (over 1 year ago)
- Topics: algorithms, computer-science, cramers-rule, divide-and-conquer, dynamic-programming, fast-fourier-transform, linked-list, matrix-inversion, python, root-finding
- Language: Jupyter Notebook
- Homepage:
- Size: 3.45 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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.