Skip to main content
AAM: Algorithms for Applied Mathematics
Stephen J. Graves
Contents
Search Book
close
Search Results:
No results.
Prev
Up
Next
\(\usepackage{mathtools} \DeclareMathOperator{\fixedset}{fix} \DeclareMathOperator{\support}{supp} \DeclareMathOperator{\lcm}{lcm} \newcommand{\set}[1]{\left\{#1\right\}} \newcommand{\upto}[1]{\set{0,1,\dotsc,#1-1}} \newcommand{\seq}[1]{\left(#1\right)} \newcommand{\abs}[1]{\left|#1\right|} \newcommand{\floor}[1]{\left\lfloor#1\right\rfloor} \newcommand{\ceil}[1]{\left\lceil#1\right\rceil} \newcommand{\after}{\circ} \newcommand{\sym}[1]{\mathcal{S}_{#1}} \newcommand{\fix}[1]{\fixedset{#1}} \newcommand{\supp}[1]{\support{#1}} \newcommand{\xto}[1]{\xrightarrow{#1}} \newcommand{\arr}[1]{\overrightarrow{#1}} \newcommand{\rem}{\%} \newcommand{\divides}{\mid} \newcommand{\Nats}{\mathbb{N}} \newcommand{\Ints}{\mathbb{Z}} \newcommand{\Zp}{\Ints^+} \newcommand{\Rats}{\mathbb{Q}} \newcommand{\Reals}{\mathbb{R}} \newcommand{\Comps}{\mathbb{C}} \newcommand{\Mats}[1]{\mathbb{M}_{#1}} \renewcommand{\vec}[1]{\mathbf{#1}} \newcommand{\cvec}[1]{\begin{bmatrix}#1\end{bmatrix}} \newcommand{\vv}{\vec{v}} \newcommand{\CV}[1]{\Comps^{#1}} \newcommand{\entry}[2]{\left[#1\right]_{#2}} \newcommand{\hip}[2]{\left\langle#1,#2\right\rangle} \newcommand{\conj}[1]{\overline{#1}} \newcommand{\dist}[3]{d_{#1}\left(#2,#3\right)} \newcommand{\norm}[1]{\left\|#1\right\|} \DeclareMathOperator{\spn}{span} \newcommand{\spanset}[1]{\spn #1} \DeclareMathOperator{\Aut}{Aut} \newcommand{\rswap}[2]{R_{#1}\leftrightarrow R_{#2}} \newcommand{\rscale}[2]{\left(#1\right) R_{#2}} \newcommand{\relim}[3]{\left(#1\right) R_{#2}+R_{#3}} \newcommand{\lt}{<} \newcommand{\gt}{>} \newcommand{\amp}{&} \definecolor{fillinmathshade}{gray}{0.9} \newcommand{\fillinmath}[1]{\mathchoice{\colorbox{fillinmathshade}{$\displaystyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\textstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptscriptstyle\phantom{\,#1\,}$}}} \)
Front Matter
Colophon
Acknowledgements
1
Welcome!
1.1
Connecting a network
1.1.1
Working from an example
1.1.2
Algorithm
1.2
Familiarity with Python
2
Permutations
2.1
Mathematical permutations
2.1.1
One-line and two-line notations
2.1.2
Permutation groups
2.1.2.1
Calculating permutation products
2.1.2.2
Properties of permutation multiplication
2.1.2.3
Abstract algebra and permutation groups
2.1.3
Cycles and disjoint cycle decomposition
2.2
Permutations in Python
2.2.1
Classes
2.2.2
Creating new objects
2.2.3
Input validation
2.2.4
Additional methods
3
Simple Cryptography
3.1
Simple substitution ciphers
3.1.1
Monoalphabetic substitution
3.1.2
Frequency analysis
3.2
Other classical ciphers
3.2.1
Increasing the alphabet: Playfair’s cipher
3.2.2
Polyalphabetic substitution
3.2.2.1
The tabula recta
3.2.2.2
Vigenère ciphers and the index of coincidence
3.2.2.3
One-time pads
3.2.3
The Enigma cipher
3.3
Crypto in Python
3.3.1
Demonstrating understanding
3.3.2
Implementing cryptography
4
Linear Algebra
4.1
Vectors
4.1.1
Vector space axioms
4.1.2
Column vectors
4.1.3
Linear transformations
4.1.4
Inner product spaces
4.2
Vectors in Python
4.2.1
Getting started with initialization and representation
4.2.2
Vector addition and scalar multiplication
4.2.3
Additional class methods
4.2.4
“Simple” computations
4.3
Complex matrices
4.3.1
Matrix-vector products
4.3.2
Matrix-matrix products
4.4
Matrices in Python
4.4.1
AlgoMatrix
basics
4.4.2
Named
AlgoMatrix
methods
5
Matrix Applications
5.1
Solving Systems of Linear Equations
5.1.1
Elementary row operations
5.1.2
Row equivalence and solutions to SLEs
5.2
GJE in Python
5.2.1
Gauss-Jordan elimination with naive pivoting
5.2.2
Swamping: the computational flaw in naive pivoting
5.2.3
Gauss-Jordan elimination with partial pivoting
5.2.4
Implementing GJE with PP
5.3
\(PA=LU\)
Decomposition
5.3.1
Special factors
5.3.2
Solving systems via
\(LU\)
decomposition
5.3.3
Algorithms for
\(LU\)
decomposition
6
Graph Theory Algorithms
6.1
Graph basics
6.2
Minimum spanning trees
6.2.1
Jarník-Prim Algorithm
6.2.2
Min Heaps
6.2.3
Kruskal’s algorithm
6.2.3.1
Implementing Kruskal’s algorithm
6.3
Shortest Paths
6.3.1
Dijkstra’s Algorithm
6.3.1.1
A full example of Dijkstra’s algorithm
6.4
Maximizing flow
6.4.1
Max flow
6.4.2
Dinitz’ Algorithm
6.4.3
Implementing Dinitz’ Algorithm
Back Matter
A
Python crash course
A.1
Getting started with Python
A.1.1
Getting IDLE
A.1.2
Interactive Mode
A.1.3
A first Python module
A.2
Basic data types
A.2.1
Numerical data types
A.2.2
Non-numeric data types
A.2.2.1
Boolean variables
A.2.2.2
Strings
A.3
Container data types
A.3.1
The
list
data type
A.3.1.1
Indexing and slicing
A.3.1.2
Operators and methods
A.3.1.3
Mutability
A.3.2
The
tuple
data type
A.3.3
The
dict
data type
A.3.4
Sets are a special container
A.4
Iteration
A.4.1
For loops
A.4.2
While loops
A.5
Functions and conditional statements
A.5.1
def
ining new functions
A.5.2
Controlling flow of programs
A.5.3
The Collatz Conjecture
A.6
Errors and exception handling
A.6.1
Exceptions
A.6.2
Handling exceptions
A.6.3
Controlling the flow of a program
A.6.4
Semantic errors, or bugs
B
Finding ideas quickly
B.1
Definitions
B.2
Technology and Algorithms
B.3
Lemmas, Propositions, and Theorems
B.4
Projects
C
GNU Free Documentation License
Colophon
AAM: Algorithms for Applied Mathematics
Stephen J. Graves
Department of Mathematics
The University of Texas at Tyler
sgraves@uttyler.edu
Most Recently Updated: February 7, 2024
Colophon
Acknowledgements