Compare commits
10 Commits
08622ae3cf
...
main
Author | SHA1 | Date | |
---|---|---|---|
|
ea901c03ab | ||
e0d0eb1fc9 | |||
9fe1855fc6 | |||
094778f67e | |||
61b567ec19 | |||
0cfbdbe02d | |||
94759a9d71 | |||
cf0b91f94a | |||
f73789bca6 | |||
f56e48cebd |
35
.gitignore
vendored
35
.gitignore
vendored
@@ -1,38 +1,3 @@
|
|||||||
Logo
|
|
||||||
Issues
|
|
||||||
Pull Requests
|
|
||||||
Milestones
|
|
||||||
Explore
|
|
||||||
PhiloMath
|
|
||||||
/
|
|
||||||
data-fitting-models
|
|
||||||
Private
|
|
||||||
generated from PhiloMath/default-project-template
|
|
||||||
Code
|
|
||||||
Issues
|
|
||||||
Pull Requests
|
|
||||||
Actions
|
|
||||||
Packages
|
|
||||||
Projects
|
|
||||||
Releases
|
|
||||||
Wiki
|
|
||||||
Activity
|
|
||||||
Settings
|
|
||||||
Files
|
|
||||||
.gitignore
|
|
||||||
LICENSE
|
|
||||||
README.md
|
|
||||||
data-fitting-models
|
|
||||||
/
|
|
||||||
.gitignore
|
|
||||||
|
|
||||||
Ömür Uğur
|
|
||||||
f9860d7f48
|
|
||||||
Initial commit
|
|
||||||
2 days ago
|
|
||||||
357 lines
|
|
||||||
6.4 KiB
|
|
||||||
Plaintext
|
|
||||||
# ---> JupyterNotebooks
|
# ---> JupyterNotebooks
|
||||||
# gitignore template for Jupyter Notebooks
|
# gitignore template for Jupyter Notebooks
|
||||||
# website: http://jupyter.org/
|
# website: http://jupyter.org/
|
||||||
|
48
README.md
48
README.md
@@ -10,55 +10,9 @@ A lightweight, from-scratch, object-oriented Python package implementing classic
|
|||||||
- Lightweight, no dependencies.
|
- Lightweight, no dependencies.
|
||||||
- Consistent object-oriented API (.solve() etc).
|
- Consistent object-oriented API (.solve() etc).
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Tutorial Series
|
## Tutorial Series
|
||||||
|
|
||||||
This package comes with a set of Jupyter notebooks designed as a structured tutorial series in **numerical methods**, both mathematically rigorous and hands-on with code.
|
This package comes with a set of Jupyter notebooks designed as a structured tutorial series in **numerical methods**, both mathematically rigorous and hands-on with code. See [Tutorials](./tutorials/README.md).
|
||||||
|
|
||||||
### Core Tutorials
|
|
||||||
|
|
||||||
1. [Tutorial 1: Vectors and Matrices](tutorials/tutorial1_vectors.ipynb)
|
|
||||||
|
|
||||||
- Definitions of vectors and matrices.
|
|
||||||
- Vector operations: addition, scalar multiplication, dot product, norms.
|
|
||||||
- Matrix operations: addition, multiplication, transpose, inverse.
|
|
||||||
- Matrix and vector norms.
|
|
||||||
- Examples with `numethods.linalg`.
|
|
||||||
|
|
||||||
2. [Tutorial 2: Linear Systems of Equations](tutorials/tutorial2_linear_systems.ipynb)
|
|
||||||
|
|
||||||
- Gaussian elimination and Gauss–Jordan.
|
|
||||||
- LU decomposition.
|
|
||||||
- Cholesky decomposition.
|
|
||||||
- Iterative methods: Jacobi and Gauss-Seidel.
|
|
||||||
- Examples with `numethods.solvers`.
|
|
||||||
|
|
||||||
3. [Tutorial 3: Orthogonalization and QR Factorization](tutorials/tutorial3_orthogonalization.ipynb)
|
|
||||||
|
|
||||||
- Inner products and orthogonality.
|
|
||||||
- Gram–Schmidt process (classical and modified).
|
|
||||||
- Householder reflections.
|
|
||||||
- QR decomposition and applications.
|
|
||||||
- Examples with `numethods.orthogonal`.
|
|
||||||
|
|
||||||
4. [Tutorial 4: Root-Finding Methods](tutorials/tutorial4_root_finding.ipynb)
|
|
||||||
|
|
||||||
- Bisection method.
|
|
||||||
- Fixed-point iteration.
|
|
||||||
- Newton’s method.
|
|
||||||
- Secant method.
|
|
||||||
- Convergence analysis and error behavior.
|
|
||||||
- Trace outputs for iteration history.
|
|
||||||
- Examples with `numethods.roots`.
|
|
||||||
|
|
||||||
- [Polynomial Regression Demo](tutorials/polynomial_regression.ipynb)
|
|
||||||
|
|
||||||
- Step-by-step example of polynomial regression.
|
|
||||||
- Shows how to fit polynomials of different degrees to data.
|
|
||||||
- Visualizes fitted curves against the original data.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
@@ -3,7 +3,6 @@ from .linalg import Matrix, Vector
|
|||||||
from .orthogonal import QRHouseholder
|
from .orthogonal import QRHouseholder
|
||||||
from .solvers import LUDecomposition
|
from .solvers import LUDecomposition
|
||||||
from .exceptions import NonSquareMatrixError, ConvergenceError
|
from .exceptions import NonSquareMatrixError, ConvergenceError
|
||||||
from .linalg import Matrix, Vector
|
|
||||||
import math
|
import math
|
||||||
|
|
||||||
|
|
||||||
|
47
tutorials/README.md
Normal file
47
tutorials/README.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
# Tutorial Series
|
||||||
|
|
||||||
|
This package comes with a set of Jupyter notebooks designed as a structured tutorial series in **numerical methods**, both mathematically rigorous and hands-on with code.
|
||||||
|
|
||||||
|
## Core Tutorials
|
||||||
|
|
||||||
|
1. [Tutorial 1: Vectors and Matrices](./tutorial1_vectors_matrices.ipynb)
|
||||||
|
|
||||||
|
- Definitions of vectors and matrices.
|
||||||
|
- Vector operations: addition, scalar multiplication, dot product, norms.
|
||||||
|
- Matrix operations: addition, multiplication, transpose, inverse.
|
||||||
|
- Matrix and vector norms.
|
||||||
|
- Examples with `numethods.linalg`.
|
||||||
|
|
||||||
|
2. [Tutorial 2: Linear Systems of Equations](./tutorial2_linear_systems.ipynb)
|
||||||
|
|
||||||
|
- Gaussian elimination and Gauss–Jordan.
|
||||||
|
- LU decomposition.
|
||||||
|
- Cholesky decomposition.
|
||||||
|
- Iterative methods: Jacobi and Gauss-Seidel.
|
||||||
|
- Examples with `numethods.solvers`.
|
||||||
|
|
||||||
|
3. [Tutorial 3: Orthogonalization and QR Factorization](./tutorial3_orthogonalization.ipynb)
|
||||||
|
|
||||||
|
- Inner products and orthogonality.
|
||||||
|
- Gram–Schmidt process (classical and modified).
|
||||||
|
- Householder reflections.
|
||||||
|
- QR decomposition and applications.
|
||||||
|
- Examples with `numethods.orthogonal`.
|
||||||
|
|
||||||
|
4. [Tutorial 4: Root-Finding Methods](./tutorial4_root_finding.ipynb)
|
||||||
|
|
||||||
|
- Bisection method.
|
||||||
|
- Fixed-point iteration.
|
||||||
|
- Newton’s method.
|
||||||
|
- Secant method.
|
||||||
|
- Convergence analysis and error behavior.
|
||||||
|
- Trace outputs for iteration history.
|
||||||
|
- Examples with `numethods.roots`.
|
||||||
|
|
||||||
|
- [Polynomial Regression Demo](./polynomial_regression.ipynb)
|
||||||
|
|
||||||
|
- Step-by-step example of polynomial regression.
|
||||||
|
- Shows how to fit polynomials of different degrees to data.
|
||||||
|
- Visualizes fitted curves against the original data.
|
||||||
|
|
||||||
|
---
|
@@ -94,7 +94,7 @@
|
|||||||
"q_1 = \\frac{a_1}{\\|a_1\\|}\n",
|
"q_1 = \\frac{a_1}{\\|a_1\\|}\n",
|
||||||
"$$\n",
|
"$$\n",
|
||||||
"$$\n",
|
"$$\n",
|
||||||
"q_k = \\frac{a_k - \\sum_{j=1}^{k-1} (q_j \\cdot a_k) q_j}{\\left\\|a_k - \\sum_{j=1}^{k-1} (q_j \\cdot a_k) q_j\\right\\|}\n",
|
"q_k = \\frac{a_k - \\sum_{j=1}^{k-1} (q_j \\cdot a_k) q_j}{\\left\\|a_k - \\sum_{j=1}^{k-1} (q_j \\cdot a_k) q_j\\right\\|}, \\qquad k = 2, \\ldots, n\n",
|
||||||
"$$\n",
|
"$$\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Matrix form:\n",
|
"Matrix form:\n",
|
||||||
@@ -236,17 +236,17 @@
|
|||||||
"\n",
|
"\n",
|
||||||
"We want to solve\n",
|
"We want to solve\n",
|
||||||
"\n",
|
"\n",
|
||||||
"$$ \\min_x \\|Ax - b\\|_2. $$\n",
|
"$$ \\min_x \\Vert Ax - b \\Vert_2^2. $$\n",
|
||||||
"\n",
|
"\n",
|
||||||
"If $A = QR$, then\n",
|
"If $A = QR$, then\n",
|
||||||
"\n",
|
"\n",
|
||||||
"$$ \\min_x \\|Ax - b\\|_2 = \\min_x \\|QRx - b\\|_2. $$\n",
|
"$$ \\min_x \\Vert Ax - b \\Vert_2^2 = \\min_x \\Vert QRx - b \\Vert_2^2. $$\n",
|
||||||
"\n",
|
"\n",
|
||||||
"Since $Q$ has orthonormal columns:\n",
|
"Since $Q$ has orthonormal columns, and the normal equations boils down to\n",
|
||||||
"\n",
|
"\n",
|
||||||
"$$ R x = Q^T b. $$\n",
|
"$$ R x = Q^T b, $$\n",
|
||||||
"\n",
|
"\n",
|
||||||
"So we can solve using back-substitution.\n"
|
"we can therefore solve for $x$ by using back-substitution.\n"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@@ -55,7 +55,7 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"## 2. Bisection Method\n",
|
"## 2. Bisection Method\n",
|
||||||
"\n",
|
"\n",
|
||||||
"**Assumption (Intermediate Value Theorem):** If f is continuous on ([a,b]) and (f(a),f(b) < 0),\n",
|
"**Assumption (Intermediate Value Theorem):** If f is continuous on $[a,b]$ and $f(a)f(b) < 0$,\n",
|
||||||
"then there exists $x^\\star$ in (a,b) with $f(x^\\star)=0$.\n",
|
"then there exists $x^\\star$ in (a,b) with $f(x^\\star)=0$.\n",
|
||||||
"\n",
|
"\n",
|
||||||
"- Assumes $f$ is continuous on $[a,b]$ with $f(a)f(b)<0$.\n",
|
"- Assumes $f$ is continuous on $[a,b]$ with $f(a)f(b)<0$.\n",
|
||||||
|
Reference in New Issue
Block a user