summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kolset <christian.kolset@gmail.com>2025-04-29 18:54:01 -0600
committerChristian Kolset <christian.kolset@gmail.com>2025-04-29 18:54:01 -0600
commitd0f224c34e0a0726274c62e9fe66220af6d2e6cc (patch)
tree60a78908d64001b3d7e0f006aeb393691d409384
parentdc13208abd61cc3ac7c64a4373f3ad85689f1293 (diff)
Updated Chapter indexing.
-rw-r--r--book/computingME.pdfbin3782618 -> 4057638 bytes
-rw-r--r--book/module2/error.tex4
-rw-r--r--book/module2/module2.tex4
-rw-r--r--book/module2/num_methods_1.tex (renamed from book/module2/non_linear_eqn_solver.tex)0
-rw-r--r--book/module3/module3.tex2
-rw-r--r--book/module3/non_linear_eqn_solver.tex129
-rw-r--r--tutorials/module_2/num_methods_1.md (renamed from tutorials/module_2/non_linear_eqn_solver.md)0
7 files changed, 6 insertions, 133 deletions
diff --git a/book/computingME.pdf b/book/computingME.pdf
index 145ae15..572b469 100644
--- a/book/computingME.pdf
+++ b/book/computingME.pdf
Binary files differ
diff --git a/book/module2/error.tex b/book/module2/error.tex
index 2646dc8..758a206 100644
--- a/book/module2/error.tex
+++ b/book/module2/error.tex
@@ -29,9 +29,9 @@ part of the computation}. An example of this could be using a finite
number of terms from a Taylor Series expansion to approximate a
function.
-Approximating \(e^x\) by the first few terms of its Taylor series:
+Approximating $e^x$ by the first few terms of its Taylor series:
-\[e^x \approx 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!}​\]
+$e^x \approx 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!}​\$
The error comes from \textbf{neglecting} all the higher order terms
(\(\frac{x^4}{4!}, \frac{x^5}{5!}\), \ldots).
diff --git a/book/module2/module2.tex b/book/module2/module2.tex
index 2781a0e..14f37e0 100644
--- a/book/module2/module2.tex
+++ b/book/module2/module2.tex
@@ -1,6 +1,8 @@
\chapter{Module 2: Algorithm Development}
\input{module2/problem_solving_strategies}
-\input{module2/intro_to_numerical_methods}
+\input{module2/num_methods_1}
+\input{module2/error}
\input{module2/ai_assisted_programming}
\input{module2/debugging_code}
\input{module2/version_control}
+\input{module2/documentation}
diff --git a/book/module2/non_linear_eqn_solver.tex b/book/module2/num_methods_1.tex
index 5550d12..5550d12 100644
--- a/book/module2/non_linear_eqn_solver.tex
+++ b/book/module2/num_methods_1.tex
diff --git a/book/module3/module3.tex b/book/module3/module3.tex
index 3e93796..3c59ddd 100644
--- a/book/module3/module3.tex
+++ b/book/module3/module3.tex
@@ -1,4 +1,4 @@
\chapter{Module 3: Applications of Computational Mathematics}
-\input{module3/non_linear_eqn_solver}
+\input{module3/numerical_methods}
\input{module3/supersonic}
\input{module3/system_of_equations}
diff --git a/book/module3/non_linear_eqn_solver.tex b/book/module3/non_linear_eqn_solver.tex
deleted file mode 100644
index 5550d12..0000000
--- a/book/module3/non_linear_eqn_solver.tex
+++ /dev/null
@@ -1,129 +0,0 @@
-\section{Solving non-linear
-equations}\label{solving-non-linear-equations}
-
-\subsection{Introduction}\label{introduction}
-
-\subsection{Prerequisites}\label{prerequisites}
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\ImportTok{import}\NormalTok{ numpy}
-\ImportTok{import}\NormalTok{ scipy}
-\ImportTok{import}\NormalTok{ sympy}
-\end{Highlighting}
-\end{Shaded}
-
-\subsection{fsolve from SciPy}\label{fsolve-from-scipy}
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\ImportTok{from}\NormalTok{ scipy.optimize }\ImportTok{import}\NormalTok{ fsolve}
-
-\KeywordTok{def}\NormalTok{ equations(}\BuiltInTok{vars}\NormalTok{):}
-\NormalTok{ x, y }\OperatorTok{=} \BuiltInTok{vars}
-\NormalTok{ eq1 }\OperatorTok{=}\NormalTok{ x}\OperatorTok{**}\DecValTok{2} \OperatorTok{+}\NormalTok{ y}\OperatorTok{**}\DecValTok{2} \OperatorTok{{-}} \DecValTok{25}
-\NormalTok{ eq2 }\OperatorTok{=}\NormalTok{ x}\OperatorTok{**}\DecValTok{2} \OperatorTok{{-}}\NormalTok{ y}
- \ControlFlowTok{return}\NormalTok{ [eq1, eq2]}
-
-\NormalTok{initial\_guess }\OperatorTok{=}\NormalTok{ [}\DecValTok{1}\NormalTok{, }\DecValTok{1}\NormalTok{]}
-\NormalTok{solution }\OperatorTok{=}\NormalTok{ fsolve(equations, initial\_guess)}
-\BuiltInTok{print}\NormalTok{(}\StringTok{"Solution:"}\NormalTok{, solution)}
-\end{Highlighting}
-\end{Shaded}
-
-\subsection{root from SciPy}\label{root-from-scipy}
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\ImportTok{from}\NormalTok{ scipy.optimize }\ImportTok{import}\NormalTok{ root}
-
-\KeywordTok{def}\NormalTok{ equations(}\BuiltInTok{vars}\NormalTok{):}
-\NormalTok{ x, y }\OperatorTok{=} \BuiltInTok{vars}
-\NormalTok{ eq1 }\OperatorTok{=}\NormalTok{ x}\OperatorTok{**}\DecValTok{2} \OperatorTok{+}\NormalTok{ y}\OperatorTok{**}\DecValTok{2} \OperatorTok{{-}} \DecValTok{25}
-\NormalTok{ eq2 }\OperatorTok{=}\NormalTok{ x}\OperatorTok{**}\DecValTok{2} \OperatorTok{{-}}\NormalTok{ y}
- \ControlFlowTok{return}\NormalTok{ [eq1, eq2]}
-
-\NormalTok{initial\_guess }\OperatorTok{=}\NormalTok{ [}\DecValTok{1}\NormalTok{, }\DecValTok{1}\NormalTok{]}
-\NormalTok{solution }\OperatorTok{=}\NormalTok{ root(equations, initial\_guess)}
-\BuiltInTok{print}\NormalTok{(}\StringTok{"Solution:"}\NormalTok{, solution.x)}
-\end{Highlighting}
-\end{Shaded}
-
-\subsection{minimize from SciPy}\label{minimize-from-scipy}
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\ImportTok{from}\NormalTok{ scipy.optimize }\ImportTok{import}\NormalTok{ minimize}
-
-\CommentTok{\# Define the equations}
-\KeywordTok{def}\NormalTok{ equation1(x, y):}
- \ControlFlowTok{return}\NormalTok{ x}\OperatorTok{**}\DecValTok{2} \OperatorTok{+}\NormalTok{ y}\OperatorTok{**}\DecValTok{2} \OperatorTok{{-}} \DecValTok{25}
-
-\KeywordTok{def}\NormalTok{ equation2(x, y):}
- \ControlFlowTok{return}\NormalTok{ x}\OperatorTok{**}\DecValTok{2} \OperatorTok{{-}}\NormalTok{ y}
-
-\CommentTok{\# Define the objective function for optimization}
-\KeywordTok{def}\NormalTok{ objective(xy):}
-\NormalTok{ x, y }\OperatorTok{=}\NormalTok{ xy}
- \ControlFlowTok{return}\NormalTok{ equation1(x, y)}\OperatorTok{**}\DecValTok{2} \OperatorTok{+}\NormalTok{ equation2(x, y)}\OperatorTok{**}\DecValTok{2}
-
-\CommentTok{\# Initial guess}
-\NormalTok{initial\_guess }\OperatorTok{=}\NormalTok{ [}\DecValTok{1}\NormalTok{, }\DecValTok{1}\NormalTok{]}
-
-\CommentTok{\# Perform optimization}
-\NormalTok{result }\OperatorTok{=}\NormalTok{ minimize(objective, initial\_guess)}
-\NormalTok{solution\_optimization }\OperatorTok{=}\NormalTok{ result.x}
-
-\BuiltInTok{print}\NormalTok{(}\StringTok{"Optimization Method Solution:"}\NormalTok{, solution\_optimization)}
-\end{Highlighting}
-\end{Shaded}
-
-\subsection{nsolve from SymPy}\label{nsolve-from-sympy}
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\ImportTok{from}\NormalTok{ sympy }\ImportTok{import}\NormalTok{ symbols, Eq, nsolve}
-
-\CommentTok{\# Define the variables}
-\NormalTok{x, y }\OperatorTok{=}\NormalTok{ symbols(}\StringTok{\textquotesingle{}x y\textquotesingle{}}\NormalTok{)}
-
-\CommentTok{\# Define the equations}
-\NormalTok{eq1 }\OperatorTok{=}\NormalTok{ Eq(x}\OperatorTok{**}\DecValTok{2} \OperatorTok{+}\NormalTok{ y}\OperatorTok{**}\DecValTok{2}\NormalTok{, }\DecValTok{25}\NormalTok{)}
-\NormalTok{eq2 }\OperatorTok{=}\NormalTok{ Eq(x }\OperatorTok{{-}}\NormalTok{ y, }\DecValTok{0}\NormalTok{)}
-
-\CommentTok{\# Initial guess for the solution}
-\NormalTok{initial\_guess }\OperatorTok{=}\NormalTok{ [}\DecValTok{1}\NormalTok{, }\DecValTok{1}\NormalTok{]}
-
-\CommentTok{\# Use nsolve to find the solution}
-\NormalTok{solution }\OperatorTok{=}\NormalTok{ nsolve([eq1, eq2], [x, y], initial\_guess)}
-\BuiltInTok{print}\NormalTok{(}\StringTok{"Solution:"}\NormalTok{, solution)}
-\end{Highlighting}
-\end{Shaded}
-
-\subsection{newton\_method from NumPy}\label{newton_method-from-numpy}
-
-\begin{Shaded}
-\begin{Highlighting}[]
-\ImportTok{import}\NormalTok{ numpy }\ImportTok{as}\NormalTok{ np}
-
-\KeywordTok{def}\NormalTok{ equations(}\BuiltInTok{vars}\NormalTok{):}
-\NormalTok{ x, y }\OperatorTok{=} \BuiltInTok{vars}
-\NormalTok{ eq1 }\OperatorTok{=}\NormalTok{ x}\OperatorTok{**}\DecValTok{2} \OperatorTok{+}\NormalTok{ y}\OperatorTok{**}\DecValTok{2} \OperatorTok{{-}} \DecValTok{25}
-\NormalTok{ eq2 }\OperatorTok{=}\NormalTok{ x}\OperatorTok{**}\DecValTok{2} \OperatorTok{{-}}\NormalTok{ y}
- \ControlFlowTok{return}\NormalTok{ np.array([eq1, eq2])}
-
-\KeywordTok{def}\NormalTok{ newton\_method(initial\_guess, tolerance}\OperatorTok{=}\FloatTok{1e{-}6}\NormalTok{, max\_iter}\OperatorTok{=}\DecValTok{100}\NormalTok{):}
- \BuiltInTok{vars} \OperatorTok{=}\NormalTok{ np.array(initial\_guess, dtype}\OperatorTok{=}\BuiltInTok{float}\NormalTok{)}
- \ControlFlowTok{for}\NormalTok{ \_ }\KeywordTok{in} \BuiltInTok{range}\NormalTok{(max\_iter):}
-\NormalTok{ J }\OperatorTok{=}\NormalTok{ np.array([[}\DecValTok{2} \OperatorTok{*} \BuiltInTok{vars}\NormalTok{[}\DecValTok{0}\NormalTok{], }\DecValTok{2} \OperatorTok{*} \BuiltInTok{vars}\NormalTok{[}\DecValTok{1}\NormalTok{]], [}\DecValTok{2} \OperatorTok{*} \BuiltInTok{vars}\NormalTok{[}\DecValTok{0}\NormalTok{], }\OperatorTok{{-}}\DecValTok{1}\NormalTok{]])}
-\NormalTok{ F }\OperatorTok{=}\NormalTok{ equations(}\BuiltInTok{vars}\NormalTok{)}
-\NormalTok{ delta }\OperatorTok{=}\NormalTok{ np.linalg.solve(J, }\OperatorTok{{-}}\NormalTok{F)}
- \BuiltInTok{vars} \OperatorTok{+=}\NormalTok{ delta}
- \ControlFlowTok{if}\NormalTok{ np.linalg.norm(delta) }\OperatorTok{\textless{}}\NormalTok{ tolerance:}
- \ControlFlowTok{return} \BuiltInTok{vars}
-
-\NormalTok{initial\_guess }\OperatorTok{=}\NormalTok{ [}\DecValTok{1}\NormalTok{, }\DecValTok{1}\NormalTok{]}
-\NormalTok{solution }\OperatorTok{=}\NormalTok{ newton\_method(initial\_guess)}
-\BuiltInTok{print}\NormalTok{(}\StringTok{"Solution:"}\NormalTok{, solution)}
-\end{Highlighting}
-\end{Shaded}
diff --git a/tutorials/module_2/non_linear_eqn_solver.md b/tutorials/module_2/num_methods_1.md
index 6d1ded3..6d1ded3 100644
--- a/tutorials/module_2/non_linear_eqn_solver.md
+++ b/tutorials/module_2/num_methods_1.md