diff options
author | Puneeth Chaganti | 2009-10-27 18:31:03 +0530 |
---|---|---|
committer | Puneeth Chaganti | 2009-10-27 18:31:03 +0530 |
commit | b79c015c59722516bfc3faf1a270c8a16d9ba4f5 (patch) | |
tree | ba0c97ad097c1a86e8c6de4914c4c19a6f5150a8 /day1 | |
parent | 87b986ce4547c1712d2be4f30f14a5122a597392 (diff) | |
download | workshops-more-scipy-b79c015c59722516bfc3faf1a270c8a16d9ba4f5.tar.gz workshops-more-scipy-b79c015c59722516bfc3faf1a270c8a16d9ba4f5.tar.bz2 workshops-more-scipy-b79c015c59722516bfc3faf1a270c8a16d9ba4f5.zip |
Removed Integration etc from session4.
Diffstat (limited to 'day1')
-rw-r--r-- | day1/session4.tex | 183 |
1 files changed, 1 insertions, 182 deletions
diff --git a/day1/session4.tex b/day1/session4.tex index b466ca1..68fe51b 100644 --- a/day1/session4.tex +++ b/day1/session4.tex @@ -74,7 +74,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Title page -\title[Basic Python]{Matrices, Solution of equations and Integration\\} +\title[Basic Python]{Matrices, Solution of equations} \author[FOSSEE] {FOSSEE} @@ -245,192 +245,11 @@ matrix([[ 1.00000000e+00], \end{lstlisting} \end{frame} -\section{Integration} - -\subsection{Quadrature} - -\begin{frame}[fragile] -\frametitle{Quadrature} -\begin{itemize} -\item We wish to find area under a curve -\item Area under $(sin(x) + x^2)$ in $(0,1)$ -\item scipy has functions to do that -\end{itemize} -\small{\typ{In []: from scipy.integrate import quad}} -\begin{itemize} -\item Inputs - function to integrate, limits -\end{itemize} -\begin{lstlisting} -In []: x = 0 -In []: quad(sin(x)+x**2, 0, 1) -\end{lstlisting} -\alert{\typ{error:}} -\typ{First argument must be a callable function.} -\end{frame} - -\begin{frame}[fragile] -\frametitle{Functions - Definition} -\begin{lstlisting} -In []: def f(x): - return sin(x)+x**2 -In []: quad(f, 0, 1) -\end{lstlisting} -\begin{itemize} -\item \typ{def} -\item arguments -\item \typ{return} -\end{itemize} -\end{frame} - -\begin{frame}[fragile] -\frametitle{Functions - Calling them} -\begin{lstlisting} -In [15]: f() ---------------------------------------- -\end{lstlisting} -\alert{\typ{TypeError:}}\typ{f() takes exactly 1 argument} -\typ{(0 given)} -\begin{lstlisting} -In []: f(0) -Out[]: 0.0 -In []: f(1) -Out[]: 1.8414709848078965 -\end{lstlisting} -\end{frame} - - -\begin{frame}[fragile] -\frametitle{Functions - Default Arguments} -\begin{lstlisting} -In []: def f(x=1): - return sin(x)+x**2 -In []: f(10) -Out[]: 99.455978889110625 -In []: f(1) -Out[]: 1.8414709848078965 -In []: f() -Out[]: 1.8414709848078965 -\end{lstlisting} -\end{frame} - -\begin{frame}[fragile] -\frametitle{Functions - Keyword Arguments} -\begin{lstlisting} -In []: def f(x=1, y=pi): - return sin(y)+x**2 -In []: f() -Out[]: 1.0000000000000002 -In []: f(2) -Out[]: 4.0 -In []: f(y=2) -Out[]: 1.9092974268256817 -In []: f(y=pi/2,x=0) -Out[]: 1.0 -\end{lstlisting} -\end{frame} - -\begin{frame}[fragile] - \frametitle{More on functions} - \begin{itemize} - \item Scope of variables in the function is local - \item Mutable items are \alert{passed by reference} - \item First line after definition may be a documentation string - (\alert{recommended!}) - \item Function definition and execution defines a name bound to the - function - \item You \emph{can} assign a variable to a function! - \end{itemize} -\end{frame} - -\begin{frame}[fragile] -\frametitle{Quadrature \ldots} -\begin{lstlisting} -In []: quad(f, 0, 1) -\end{lstlisting} -Returns the integral and an estimate of the absolute error in the result. -\begin{itemize} -\item Use \typ{dblquad} for Double integrals -\item Use \typ{tplquad} for Triple integrals -\end{itemize} -\end{frame} - -\subsection{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\quad & \&\quad \omega = 0 \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(unknown, t, p): - .... theta, omega = unknown - .... g, L = p - .... 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{p} has the constants \\ -\item \typ{initial} has the initial values -\end{itemize} -\begin{lstlisting} -In []: t = linspace(0, 10, 101) -In []: p=(-9.81, 0.2) -In []: initial = [10*2*pi/360, 0] -\end{lstlisting} -\end{frame} - -\begin{frame}[fragile] -\frametitle{Solving ODEs using SciPy \ldots} - -\small{\typ{In []: from scipy.integrate import odeint}} -\begin{lstlisting} -In []: pend_sol = odeint(pend_int, - initial,t, - args=(p,)) -\end{lstlisting} -\end{frame} - \begin{frame} \frametitle{Things we have learned} \begin{itemize} \item \item - \item Functions - \begin{itemize} - \item Definition - \item Calling - \item Default Arguments - \item Keyword Arguments - \end{itemize} - \item Integration - \begin{itemize} - \item Quadrature - \item ODEs - \end{itemize} \end{itemize} \end{frame} |