From 32089af016a0cdf42b394b6b5e55663af3b5c541 Mon Sep 17 00:00:00 2001 From: Puneeth Chaganti Date: Thu, 5 Nov 2009 13:13:58 +0530 Subject: Moved Solving Linear Equations to session 6. --- day1/session4.tex | 154 ----------------------------------- day1/session6.tex | 238 ++++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 196 insertions(+), 196 deletions(-) diff --git a/day1/session4.tex b/day1/session4.tex index 576c759..22de88f 100644 --- a/day1/session4.tex +++ b/day1/session4.tex @@ -476,160 +476,6 @@ In []: plot(L, Tline) \end{lstlisting} \end{frame} -\section{Solving linear equations} - -\begin{frame}[fragile] -\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 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 []: x -Out[]: -array([[ 1.], - [-2.], - [-2.]]) -\end{lstlisting} -\end{frame} - -\begin{frame}[fragile] -\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[i] Transpose - \item[ii]Inverse - \item[iii]Determinant - \item[iv] Eigenvalues and Eigen vectors - \item[v] Singular Value decomposition -\end{itemize} -\end{frame} - -\begin{frame}[fragile] -\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{Summary} \begin{frame} \frametitle{What did we learn??} 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} -- cgit