summaryrefslogtreecommitdiff
path: root/day1/session6.tex
diff options
context:
space:
mode:
Diffstat (limited to 'day1/session6.tex')
-rwxr-xr-xday1/session6.tex238
1 files changed, 196 insertions, 42 deletions
diff --git a/day1/session6.tex b/day1/session6.tex
index 444048c..01b0fc9 100755
--- a/day1/session6.tex
+++ b/day1/session6.tex
@@ -73,7 +73,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Title page
-\title[ODEs \& Root Finding]{Python for Science and Engg:\\ODEs \& Finding Roots}
+\title[Solving Equations \& ODEs]{Python for Science and Engg:\\Solving Equations \& ODEs}
\author[FOSSEE] {FOSSEE}
@@ -123,62 +123,158 @@
%% % You might wish to add the option [pausesections]
%% \end{frame}
-\section{ODEs}
+\section{Solving linear equations}
\begin{frame}[fragile]
-\frametitle{ODE Integration}
-We shall use the simple ODE of a simple pendulum.
-\begin{equation*}
-\ddot{\theta} = -\frac{g}{L}sin(\theta)
-\end{equation*}
-\begin{itemize}
-\item This equation can be written as a system of two first order ODEs
-\end{itemize}
-\begin{align}
-\dot{\theta} &= \omega \\
-\dot{\omega} &= -\frac{g}{L}sin(\theta) \\
- \text{At}\ t &= 0 : \nonumber \\
- \theta = \theta_0(10^o)\quad & \&\quad \omega = 0\ (Initial\ values)\nonumber
-\end{align}
+\frametitle{Solution of equations}
+Consider,
+ \begin{align*}
+ 3x + 2y - z & = 1 \\
+ 2x - 2y + 4z & = -2 \\
+ -x + \frac{1}{2}y -z & = 0
+ \end{align*}
+Solution:
+ \begin{align*}
+ x & = 1 \\
+ y & = -2 \\
+ z & = -2
+ \end{align*}
\end{frame}
\begin{frame}[fragile]
-\frametitle{Solving ODEs using SciPy}
-\begin{itemize}
-\item We use the \typ{odeint} function from scipy to do the integration
-\item Define a function as below
-\end{itemize}
+\frametitle{Solving using Matrices}
+Let us now look at how to solve this using \kwrd{matrices}
+ \begin{lstlisting}
+ In []: A = array([[3,2,-1],
+ [2,-2,4],
+ [-1, 0.5, -1]])
+ In []: b = array([[1], [-2], [0]])
+ In []: x = solve(A, b)
+ In []: Ax = dot(A,x)
+ \end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Solution:}
\begin{lstlisting}
-In []: def pend_int(initial, t):
- .... theta, omega = initial
- .... g, L = -9.81, 0.2
- .... f=[omega, -(g/L)*sin(theta)]
- .... return f
- ....
+In []: x
+Out[]:
+array([[ 1.],
+ [-2.],
+ [-2.]])
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]
-\frametitle{Solving ODEs using SciPy \ldots}
+\frametitle{Let's check!}
+\begin{lstlisting}
+In []: Ax
+Out[]:
+array([[ 1.00000000e+00],
+ [ -2.00000000e+00],
+ [ 2.22044605e-16]])
+\end{lstlisting}
+\begin{block}{}
+The last term in the matrix is actually \alert{0}!\\
+We can use \kwrd{allclose()} to check.
+\end{block}
+\begin{lstlisting}
+In []: allclose(Ax, b)
+Out[]: True
+\end{lstlisting}
+\inctime{15}
+\end{frame}
+
+\subsection{Exercises}
+
+\begin{frame}[fragile]
+\frametitle{Problem 1}
+Given the matrix:\\
+\begin{center}
+$\begin{bmatrix}
+-2 & 2 & 3\\
+ 2 & 1 & 6\\
+-1 &-2 & 0\\
+\end{bmatrix}$
+\end{center}
+Find:
\begin{itemize}
-\item \typ{t} is the time variable \\
-\item \typ{initial} has the initial values
+ \item[i] Transpose
+ \item[ii]Inverse
+ \item[iii]Determinant
+ \item[iv] Eigenvalues and Eigen vectors
+ \item[v] Singular Value decomposition
\end{itemize}
-\begin{lstlisting}
-In []: t = linspace(0, 10, 101)
-In []: initial = [10*2*pi/360, 0]
-\end{lstlisting}
\end{frame}
\begin{frame}[fragile]
-\frametitle{Solving ODEs using SciPy \ldots}
-%%\begin{small}
-\typ{In []: from scipy.integrate import odeint}
-%%\end{small}
-\begin{lstlisting}
-In []: pend_sol = odeint(pend_int,
- initial,t)
-\end{lstlisting}
+\frametitle{Problem 2}
+Given
+\begin{center}
+A =
+$\begin{bmatrix}
+-3 & 1 & 5 \\
+1 & 0 & -2 \\
+5 & -2 & 4 \\
+\end{bmatrix}$
+, B =
+$\begin{bmatrix}
+0 & 9 & -12 \\
+-9 & 0 & 20 \\
+12 & -20 & 0 \\
+\end{bmatrix}$
+\end{center}
+Find:
+\begin{itemize}
+ \item[i] Sum of A and B
+ \item[ii]Elementwise Product of A and B
+ \item[iii] Matrix product of A and B
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Solution}
+Sum:
+$\begin{bmatrix}
+-3 & 10 & 7 \\
+-8 & 0 & 18 \\
+17 & -22 & 4 \\
+\end{bmatrix}$
+,\\ Elementwise Product:
+$\begin{bmatrix}
+0 & 9 & -60 \\
+-9 & 0 & -40 \\
+60 & 40 & 0 \\
+\end{bmatrix}$
+,\\ Matrix product:
+$\begin{bmatrix}
+51 & -127 & 56 \\
+-24 & 49 & -12 \\
+66 & -35 & -100 \\
+\end{bmatrix}$
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Problem 3}
+Solve the set of equations:
+\begin{align*}
+ x + y + 2z -w & = 3\\
+ 2x + 5y - z - 9w & = -3\\
+ 2x + y -z + 3w & = -11 \\
+ x - 3y + 2z + 7w & = -5\\
+\end{align*}
+\inctime{10}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Solution}
+Use \kwrd{solve()}
+\begin{align*}
+ x & = -5\\
+ y & = 2\\
+ z & = 3\\
+ w & = 0\\
+\end{align*}
\end{frame}
\section{Finding Roots}
@@ -224,6 +320,64 @@ In []: pend_sol = odeint(pend_int,
%% \end{small}
%% \end{frame}
+\section{ODEs}
+\begin{frame}[fragile]
+\frametitle{ODE Integration}
+We shall use the simple ODE of a simple pendulum.
+\begin{equation*}
+\ddot{\theta} = -\frac{g}{L}sin(\theta)
+\end{equation*}
+\begin{itemize}
+\item This equation can be written as a system of two first order ODEs
+\end{itemize}
+\begin{align}
+\dot{\theta} &= \omega \\
+\dot{\omega} &= -\frac{g}{L}sin(\theta) \\
+ \text{At}\ t &= 0 : \nonumber \\
+ \theta = \theta_0(10^o)\quad & \&\quad \omega = 0\ (Initial\ values)\nonumber
+\end{align}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Solving ODEs using SciPy}
+\begin{itemize}
+\item We use the \typ{odeint} function from scipy to do the integration
+\item Define a function as below
+\end{itemize}
+\begin{lstlisting}
+In []: def pend_int(initial, t):
+ .... theta, omega = initial
+ .... g, L = -9.81, 0.2
+ .... f=[omega, -(g/L)*sin(theta)]
+ .... return f
+ ....
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Solving ODEs using SciPy \ldots}
+\begin{itemize}
+\item \typ{t} is the time variable \\
+\item \typ{initial} has the initial values
+\end{itemize}
+\begin{lstlisting}
+In []: t = linspace(0, 10, 101)
+In []: initial = [10*2*pi/360, 0]
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Solving ODEs using SciPy \ldots}
+%%\begin{small}
+\typ{In []: from scipy.integrate import odeint}
+%%\end{small}
+\begin{lstlisting}
+In []: pend_sol = odeint(pend_int,
+ initial,t)
+\end{lstlisting}
+\end{frame}
+
+
\begin{frame}
\frametitle{Things we have learned}
\begin{itemize}