diff --git a/Lectures_my/NumMet/2016/Lecture12/Makefile b/Lectures_my/NumMet/2016/Lecture12/Makefile new file mode 100644 index 0000000..cb8768a --- /dev/null +++ b/Lectures_my/NumMet/2016/Lecture12/Makefile @@ -0,0 +1,7 @@ +all: lecture12.pdf + +lecture12.pdf: lecture12.tex + xelatex lecture12.tex + xelatex lecture12.tex +clean: + rm *.aux *.bbl *.blg *.log *.out *.pdf *.sh *.xml *.snm *.toc *.nav diff --git a/Lectures_my/NumMet/2016/Lecture12/beamercolorthemeFlip.sty b/Lectures_my/NumMet/2016/Lecture12/beamercolorthemeFlip.sty new file mode 100755 index 0000000..d6b9c50 --- /dev/null +++ b/Lectures_my/NumMet/2016/Lecture12/beamercolorthemeFlip.sty @@ -0,0 +1,179 @@ +% Color style file for the BEAMER FLIP THEME +% Copyright 2012 by Flip Tanedo +% This file may be distributed and/or modified +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. + + + +\mode +\newif\ifbeamer@Flip@dark +\beamer@Flip@darkfalse +\DeclareOptionBeamer{dark}{\beamer@Flip@darktrue} +\ProcessOptionsBeamer + + +% These are a few colors that I like. + +\definecolor{crimsonred}{RGB}{153,0,0} % Neurtal red, good for dark or light bg +\definecolor{darkcharcoal}{RGB}{25,25,25} % Darker gray +\definecolor{charcoal}{RGB}{51,51,51} % Darker gray +\definecolor{ash}{RGB}{100,100,100} % medium gray +\definecolor{paleblue}{RGB}{0,102,102} % More of an `ocean' color +\definecolor{turtlegreen}{RGB}{51,153,0} % A more neutral green +\definecolor{paleale}{RGB}{204,204,102} % Only for dark BG +\definecolor{lager}{RGB}{140,110,10} % Use instead of pale ale for white BG +\definecolor{regal}{RGB}{90,0,120} % A more neutral purple +\definecolor{jeans}{RGB}{20,30,150} % A more neutral blue + + +% Define some "invariant colors" so that a color that doen't work with a +% light/dark background will automatically be substituted with one that does. +% These will be rewritten in beamercolorthemeFlipDark + +\ifbeamer@Flip@dark + \definecolor{FlipSand}{RGB}{204,204,102} % paleale, Only for dark BG + \definecolor{FlipGreen}{RGB}{0,255,0} % Neon-like green, only for dark BG +\else + \definecolor{FlipSand}{RGB}{140,110,10} % lager, Only for light BG + \definecolor{FlipGreen}{RGB}{51,153,0} % turtlegreen, works for both +\fi + +%% Future revision: It would be nice to define these in terms of the palette. + + +\ifbeamer@Flip@dark + \setbeamercolor{normal text}{fg=white, bg=black} + \setbeamercolor{structure}{fg=gray, bg=black} % fg controls bullets + \setbeamercolor*{footerlike}{fg=white,bg=black} % Controls the footerline +\else + % Default to black on white + \setbeamercolor*{footerlike}{fg=white,bg=charcoal} % for charcoal footer + \setbeamercolor{structure}{fg=charcoal, bg=white} % fg controls bullets + % \setbeamercolor{normal text}{fg=white, bg=black} +\fi + + + + + +% These defined colors can be used in \textcolor{colorname}{text in that color}. + +% Colors for Keynote background: DARK +\definecolor{keynotebottom}{rgb}{0.32,0.3,0.38} +\definecolor{keynotemiddle}{rgb}{0.08,0.08,0.16} +\definecolor{keynotetop}{rgb}{0,0,0} +%%% Example of usage: +%% \setbeamertemplate{background canvas}[vertical shading] +%% [bottom=keynotebottom, middle=keynotemiddle, top=keynotetop] + + + + +% ALERT AND COMMENT COLORS (just copies of the above colors) +% (I don't know how ot do this more elegantly) +\ifbeamer@Flip@dark + \definecolor{ALERT}{RGB}{153,0,0} % crimsonred + \definecolor{Alert}{RGB}{51,153,0} % turtlegreen + \definecolor{alert}{RGB}{204,204,102} % paleale + \definecolor{charcoal}{RGB}{51,51,51} % charcoal + \definecolor{comment}{RGB}{80,80,80} % light charcoal + \definecolor{Comment}{RGB}{100,100,100} % ash + \definecolor{COMMENT}{RGB}{80,20,120} % regal +\else +% \definecolor{ALERT}{RGB}{153,0,0} % crimsonred + \definecolor{ALERT}{RGB}{28,134,238} % DodgerBlue2 +% \definecolor{Alert}{RGB}{51,153,0} % turtlegreen + \definecolor{Alert}{RGB}{255,127,36} % chocolate1 +% \definecolor{alert}{RGB}{140,110,10} % lager + \definecolor{alert}{RGB}{0,205,102} % SpringGreen3 + \definecolor{charcoal}{RGB}{80,80,80} % light charcoal + \definecolor{comment}{RGB}{51,51,51} % charcoal + \definecolor{Comment}{RGB}{100,100,100} % ash + \definecolor{COMMENT}{RGB}{80,20,120} % regal +\fi + + +% \definecolor{crimsonred}{RGB}{153,0,0} % Neurtal red, good for dark or light bg +% \definecolor{charcoal}{RGB}{51,51,51} % Darker gray +% \definecolor{ash}{RGB}{100,100,100} % medium gray +% \definecolor{paleblue}{RGB}{0,102,102} % More of an `ocean' color +% \definecolor{turtlegreen}{RGB}{51,153,0} % A more neutral green +% \definecolor{paleale}{RGB}{204,204,102} % Only for dark BG +% \definecolor{lager}{RGB}{140,110,10} % Use instead of pale ale for white BG +% \definecolor{regal}{RGB}{90,0,120} % A more neutral purple +% \definecolor{jeans}{RGB}{20,30,150} % A more neutral blue + + +% A few useful colors +\setbeamercolor{alerted text}{fg=alert} + +%% I would like ot use these colors, but there seems to be a bug in Beamer +%% where the footnote color infects the normal text color +%% See: http://tex.stackexchange.com/questions/8264/beamer-changing-the-footnote-color-also-changes-the-normal-text-color/8268#8268 + +% \setbeamercolor{footnote}{parent=normal text, fg=FlipSand} +% \setbeamercolor{footnote mark}{parent=normal text, fg=FlipSand} + +% Blocks +\setbeamercolor{block title}{fg=gray!30!white,bg=charcoal} +\setbeamercolor{block body}{parent=normal text,bg=gray, fg=white} + +\setbeamercolor{block title example}{fg=turtlegreen!30!white,bg=turtlegreen!40!black} +\setbeamercolor{block body example}{parent=normal text,bg=turtlegreen, fg=white} +% +\setbeamercolor{block title alerted}{fg=crimsonred!30!white,bg=crimsonred!40!black} +\setbeamercolor{block body alerted}{parent=normal text,bg=crimsonred, fg=white} + + + +% These "setbeamercolor" commands are more standardized. + + +%% From the Beamer User Guide: +% Outer themes base the color of navigational elements and, possibly, also of other elements, on the +% four palette colors. The “primary” palette should be used for the most important navigational elements, +% which are usually the ones that change most often and hence require the most attention by the audience. +% The “secondary” and “tertiary” are less important, the “quaternary” one is least important. +% By default, the palette colors do not have a background and the foreground ranges from structure.fg to black. +% For the sidebar, there is an extra set of palette colors, see palette sidebar primary. + +\setbeamercolor*{palette primary}{fg=crimsonred,bg=charcoal} +\setbeamercolor*{palette secondary}{fg=paleale,bg=lager} +\setbeamercolor*{palette tertiary}{fg=turtlegreen,bg=jeans} +\setbeamercolor*{palette quaternary}{fg=paleblue,bg=regal} + +% \setbeamercolor*{palette primary}{fg=crimsonred,bg=white} +% \setbeamercolor*{palette secondary}{fg=charcoal,bg=white} +% \setbeamercolor*{palette tertiary}{fg=paleblue,bg=white} +% \setbeamercolor*{palette quaternary}{fg=turtlegreen,bg=white} + + + +%% These are some structures that I define for use in the outer theme. + +\setbeamercolor*{crimsontown}{fg=paleblue,bg=crimsonred} +\setbeamercolor*{bluetown}{fg=white,bg=DodgerBlue2} +%\setbeamercolor*{titlelike}{fg=crimsonred} +\setbeamercolor*{titlelike}{fg=DodgerBlue2} +\setbeamercolor*{topbarlike}{fg=white, bg=charcoal} + + + + + +%% Some old definitions that I might want to get back to +% +% \setbeamercolor*{frametitle}{bg=white,fg=charcoal} +% \setbeamercolor*{part title}{bg=white,fg=charcoal} +% \setbeamercolor*{item}{fg=charcoal, bg=white} +% +% \setbeamercolor*{separation line}{} +% \setbeamercolor*{fine separation line}{} + + + + + +\mode + diff --git a/Lectures_my/NumMet/2016/Lecture12/beamerinnerthemeFlip.sty b/Lectures_my/NumMet/2016/Lecture12/beamerinnerthemeFlip.sty new file mode 100755 index 0000000..8dc12a0 --- /dev/null +++ b/Lectures_my/NumMet/2016/Lecture12/beamerinnerthemeFlip.sty @@ -0,0 +1,95 @@ +% Inner style file for the BEAMER FLIP THEME +% Copyright 2010 by Flip Tanedo +% This file may be distributed and/or modified +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% Based on: beamerinnerthemeFlip by Marco Barisione + +\mode + +% % Use alternative title page style. +% \DeclareOptionBeamer{alternativetitlepage}[true]{\def\beamer@Flip@alternativetitlepage{#1}} + +% Logo to use in the alternative title page. +% \def\beamer@Flip@titlepagelogo{} +% \DeclareOptionBeamer{titlepagelogo}{\def\beamer@Flip@titlepagelogo{#1}} + +% Bullet shape. +\DeclareOptionBeamer{bullet}{\def\beamer@Flip@bullet{#1}} +\DeclareOptionBeamer{shadow}[true]{\def\beamer@themerounded@shadow{#1}} +\ExecuteOptionsBeamer{shadow=false} + + +% \ExecuteOptionsBeamer{alternativetitlepage=false,bullet=square} +\ProcessOptionsBeamer + + + +% Margins. +\newlength{\beamer@Flip@normalmargin} +\setlength{\beamer@Flip@normalmargin}{.06\paperwidth} +\setbeamersize{text margin left=\beamer@Flip@normalmargin} +\setbeamersize{text margin right=\beamer@Flip@normalmargin} +\setlength\leftmargini{.6\beamer@Flip@normalmargin} +\setlength\leftmarginii{.6\beamer@Flip@normalmargin} +\setlength\leftmarginiii{.6\beamer@Flip@normalmargin} + +% Normal title page. +\defbeamertemplate*{title page normal}{Flip theme}[1][] +{ + \vbox{} + \vfill + \begin{centering} + \begin{beamercolorbox}[wd=\paperwidth,sep=8pt,center,#1]{title page header} + \usebeamerfont{title}\inserttitle\par% + \ifx\insertsubtitle\@empty% + \else% + \vskip0.25em% + {\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}% + \fi% + \end{beamercolorbox}% + %\vskip0.5em\par + \begin{beamercolorbox}[sep=8pt,center,#1]{author} + \usebeamerfont{author}\insertauthor + \end{beamercolorbox} + \begin{beamercolorbox}[sep=8pt,center,#1]{institute} + \usebeamerfont{institute}\insertinstitute + \end{beamercolorbox} + \begin{beamercolorbox}[sep=8pt,center,#1]{date} + \usebeamerfont{date}\insertdate + \end{beamercolorbox}\vskip0.5em + {\usebeamercolor[fg]{titlegraphic}\inserttitlegraphic\par} + \end{centering} + \vfill +} + + +% Items. +\defbeamertemplate{itemize item}{squarealt}% +{\tiny\raise.5ex\hbox{\donotcoloroutermaths$\blacksquare$}} +\defbeamertemplate{itemize subitem}{squarealt}% +{\tiny\raise.4ex\hbox{\donotcoloroutermaths$\square$}} +\defbeamertemplate{itemize subsubitem}{squarealt}% +{\tiny\raise.3ex\hbox{\donotcoloroutermaths$\blacksquare$}} +% +\defbeamertemplate{itemize item}{circlealt}% +{\small\raise.2ex\hbox{\donotcoloroutermaths$\bullet$}} +\defbeamertemplate{itemize subitem}{circlealt}% +{\small\raise.1ex\hbox{\donotcoloroutermaths$\circ$}} +\defbeamertemplate{itemize subsubitem}{circlealt}% +{\scriptsize\raise.1ex\hbox{\donotcoloroutermaths$\bullet$}} +\setbeamertemplate{items}[circlealt] +% +\def\circletext{circle} +\ifx\beamer@Flip@bullet\circletext + \setbeamertemplate{items}[circlealt] +\else + \setbeamertemplate{items}[squarealt] +\fi + +\setbeamertemplate{blocks}[rounded][shadow=\beamer@themerounded@shadow] + + +\mode + diff --git a/Lectures_my/NumMet/2016/Lecture12/beamerouterthemeFlip.sty b/Lectures_my/NumMet/2016/Lecture12/beamerouterthemeFlip.sty new file mode 100755 index 0000000..d12f6d6 --- /dev/null +++ b/Lectures_my/NumMet/2016/Lecture12/beamerouterthemeFlip.sty @@ -0,0 +1,189 @@ +% Outer style file for the BEAMER FLIP THEME 212 +% Copyright 2012 by Flip Tanedo +% This file may be distributed and/or modified +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% Based on: beamerouterthemesplit by Till Tantau + + +\mode + +% Watermark +\DeclareOptionBeamer{watermark}{\def\beamer@Flip@watermark{#1}} +\ExecuteOptionsBeamer{watermark=} % Default value is empty + + +\newif\ifbeamer@Flip@bigpagenumber +\beamer@Flip@bigpagenumberfalse +\DeclareOptionBeamer{bigpagenumber}{\beamer@Flip@bigpagenumbertrue} + + +\def\beamer@Flip@truetext{true} % Kludge for true/false so I can use ifx + +\DeclareOptionBeamer{topline}[true]{\def\beamer@Flip@topline{#1}} +\ExecuteOptionsBeamer{topline=false} % Default + + + +% \ExecuteOptionsBeamer{topline=} % Default value is empty + + +\ProcessOptionsBeamer + + +\usepackage{tikz} % For fancy decorations + + +% I should fix these up to be more robust against color changes +\setbeamercolor{section in head/foot}{parent=footerlike} +\setbeamercolor{subsection in head/foot}{parent=footerlike} +\setbeamercolor{author in head/foot}{parent=footerlike} +\setbeamercolor{title in head/foot}{parent=footerlike} + + +% \setbeamercolor{author in head/foot}{parent=section in head/foot} +% \setbeamercolor{title in head/foot}{parent=subsection in head/foot} + +%\setbeamercolor{topbar}{parent=crimsontown} +\setbeamercolor{topbar}{parent=bluetown} + + + + +\usesectionheadtemplate + {\hfill\insertsectionhead} + {\hfill\color{fg!50!bg}\insertsectionhead} + + +%%%%%%%%%%%%%%%%%% +% The footer bar % +%%%%%%%%%%%%%%%%%% + +\defbeamertemplate*{footline}{Flip theme} +{% + \leavevmode% +% OBSERVATION: the "%" symbols inside hbox are all very important here. +% The \hbox enviroment will insert spaces whenever there's whitespace +% Adding a % at the END of each line ensures that any hard returns aren't +% interpreted as white space. This allows the color boxes to be flush against +% one another. If a faint white line appears one could probably do something like +% hspace{-1px} and add an additional pixel-or-two wide beamercolorbox. + +\hbox{% +\begin{beamercolorbox}[wd=.4\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm, rightskip=.3cm plus1fil]{author in head/foot}% + \usebeamerfont{author in head/foot}\insertshortauthor \end{beamercolorbox}% +% +\begin{beamercolorbox}[wd=.6\paperwidth,ht=2.5ex,dp=1.125ex,leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}% + \usebeamerfont{title in head/foot}{\textit \insertshorttitle}% + \hskip2ex plus1fill% + % \insertpagenumber\,/\,\insertpresentationendpage %% Want FRAME, not SLIDE number + \insertframenumber/\inserttotalframenumber + \end{beamercolorbox}% +}% + +% This is a complete kludge for the faint white line which appears +% between the beamer color boxes above. (It doesnt appear in presentation mode +% but sometimes looks funny when the pdfs are viewed in a window) +\begin{tikzpicture}[overlay] + \usebeamercolor[bg]{author in head/foot} + \draw[thick] (0,3.625ex) -- (\paperwidth,3.625ex); + \draw (.4\paperwidth,0) -- (.4\paperwidth,3.625ex); + \draw[thick] (0,0) -- (\paperwidth,0); +\end{tikzpicture} + + + +\ifbeamer@Flip@bigpagenumber + \begin{tikzpicture}[overlay] + \usebeamercolor[bg]{author in head/foot} + \draw[fill] (\paperwidth-5ex,3.625ex) circle (6ex); + \usebeamercolor[fg]{author in head/foot} + \draw[fill] (\paperwidth-5ex,3.625ex) circle (5ex); + \usebeamercolor[bg]{author in head/foot} + \node at (\paperwidth-5ex,4ex) {\small$^\text{\insertframenumber}/_\text{\inserttotalframenumber}$}; + \end{tikzpicture} +\fi +} + + + +\defbeamertemplate*{frametitle}{Flip theme}[1][left] +{ +% \ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}% +\@tempdima=\textwidth% +\advance\@tempdima by\beamer@leftmargin% +\advance\@tempdima by\beamer@rightmargin% + +\vbox{}\vskip-3.5ex% +% +\begin{beamercolorbox}[sep=0.3cm,#1,wd=\the\@tempdima]{titlelike} + \usebeamerfont{frametitle}% + \vbox{}\vskip-1ex% + \if@tempswa\else\csname beamer@fte#1\endcsname\fi% + % \strut{\bf\insertframetitle}\strut\par% %% Include the \bf + \strut{\insertframetitle}\strut\par% + {% + \ifx\insertframesubtitle\@empty% + \else + {\usebeamerfont{framesubtitle} + \usebeamercolor[fg]{framesubtitle} + \insertframesubtitle\strut\par}% + \fi + }% + % + \vskip-1ex% + \if@tempswa\else\vskip-.3cm\fi% set inside beamercolorbox... evil here... +\end{beamercolorbox}% +%% + +% \def\beamer@fteright{\vskip0.35cm\advance\leftskip by 1.7cm\advance\rightskip by1.7cm} +} + + + + +% Sidebar right is important: anything placed here will be +% visible *behind* the main text. This is where to put any +% interesting watermarks. +% +% +\defbeamertemplate*{sidebar right}{Flip theme} +{ +% \llap{\includegraphics[width=50px]{footdecoration}} +% \llap{\includegraphics[width=\paperwidth,height=\paperheight]{upperleft_watermark_transp}} +% +% THIS WOULD BE A NICE WAY TO PUT THE PARTICLE BUBBLE CHAMBER BG +% ... make a png of the background with TRANSPARENT BG +% ... then put the image here (use \hfill to get it on the left) +% Now one can FURTHER apply a slight gradient in the BG +% +% +% % Top Line +\ifx\beamer@Flip@topline\beamer@Flip@truetext + \begin{tikzpicture}[overlay] + \usebeamercolor[fg]{titlelike} % alternately, topbarlike would be a good beamercolor +% \usebeamercolor[fg]{topbarlike} % alternately, topbarlike would be a good beamercolor + \draw[fill] (-\paperwidth,0) rectangle (0,-3pt); + \end{tikzpicture} +\fi +% +% + \vskip.2\beamer@leftmargin% + %\llap{\insertlogo\hskip.5\beamer@leftmargin}% + \llap{\insertlogo\hskip.08\beamer@leftmargin}% + \vfill% + \if \beamer@Flip@watermark\@empty + % This is kind of a kludge since if I put anything in here, I automatically get errors + % Somehow LaTeX wants to read the \else part! + \else% + \llap{\includegraphics[width=\paperwidth,height=\paperheight]{\beamer@Flip@watermark}} + \fi +} + + + +\mode +\endinput + + diff --git a/Lectures_my/NumMet/2016/Lecture12/beamerouterthemedecolines.sty b/Lectures_my/NumMet/2016/Lecture12/beamerouterthemedecolines.sty new file mode 100755 index 0000000..669e493 --- /dev/null +++ b/Lectures_my/NumMet/2016/Lecture12/beamerouterthemedecolines.sty @@ -0,0 +1,168 @@ +% Copyright 2007 by Marco Barisione +% +% This file may be distributed and/or modified +% +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. + +\mode + +% String used between the current page and the total page count. +\def\beamer@decolines@pageofpages{/} +\DeclareOptionBeamer{pageofpages}{\def\beamer@decolines@pageofpages{#1}} + +% Show a line below the frame title. +\DeclareOptionBeamer{titleline}[true]{\def\beamer@decolines@titleline{#1}} + +% Image used for the watermark. +\def\beamer@decolines@watermarkorig{} +\DeclareOptionBeamer{watermark}{\def\beamer@decolines@watermarkorig{#1}} + +% Height of the watermark. +\def\beamer@decolines@watermarkheight{100px} +\DeclareOptionBeamer{watermarkheight}{\def\beamer@decolines@watermarkheight{#1}} + +% The original image height is watermarkheightmult * watermarkheight. +\def\beamer@decolines@watermarkheightmult{1} +\DeclareOptionBeamer{watermarkheightmult}{\def\beamer@decolines@watermarkheightmult{#1}} + +\ExecuteOptionsBeamer{titleline=false} +\ProcessOptionsBeamer + +% Enable/disable the watermark. +\def\watermarkon{% + \def\beamer@decolines@watermark{\beamer@decolines@watermarkorig}% +} +\def\watermarkoff{\def\beamer@decolines@watermark{}} + +% Initially enable the watermark. +\watermarkon + +% Colors. +\setbeamercolor*{lineup}{parent=palette primary} +\setbeamercolor*{linemid}{parent=palette secondary} +\setbeamercolor*{linebottom}{parent=palette tertiary} +\setbeamercolor*{page header}{parent=titlelike} + +% Lengths +\newlength{\headerheight} +\setlength{\headerheight}{.045\paperheight} +\newlength{\beamer@decolines@lineup} +\setlength{\beamer@decolines@lineup}{.025\paperheight} +\newlength{\beamer@decolines@linemid} +\setlength{\beamer@decolines@linemid}{.015\paperheight} +\newlength{\beamer@decolines@linebottom} +\setlength{\beamer@decolines@linebottom}{.01\paperheight} + +% The height of the watermark part below the 3 bottom lines. +\newlength{\beamer@decolines@watermarkheightbottom} +\addtolength{\beamer@decolines@watermarkheightbottom}{\beamer@decolines@lineup} +\addtolength{\beamer@decolines@watermarkheightbottom}{\beamer@decolines@linemid} +\addtolength{\beamer@decolines@watermarkheightbottom}{\beamer@decolines@linebottom} + +% The height of the watermark part over the 3 bottom lines before shrinking. +\newlength{\beamer@decolines@watermarkheightupperorig} +\setlength{\beamer@decolines@watermarkheightupperorig}{\beamer@decolines@watermarkheight} +\addtolength{\beamer@decolines@watermarkheightupperorig}{-\beamer@decolines@watermarkheightbottom} +\multiply\beamer@decolines@watermarkheightupperorig by \beamer@decolines@watermarkheightmult + +% % Footer. +% \defbeamertemplate*{footline}{decolines theme} +% { +% \leavevmode% +% % Page number. +% \hbox{% +% \begin{beamercolorbox}[wd=.2\paperwidth,ht=0ex,dp=0ex,center]{}% +% \usebeamerfont{palette primary}\insertframenumber{} \beamer@decolines@pageofpages{} \inserttotalframenumber% +% \end{beamercolorbox}% +% \begin{beamercolorbox}[wd=.8\paperwidth,ht=0ex,dp=0ex]{}% +% \end{beamercolorbox}% +% } % +% % First line. +% \hbox{% +% \begin{beamercolorbox}[wd=.2\paperwidth,ht=\beamer@decolines@lineup,dp=0pt]{}% +% \end{beamercolorbox}% +% \begin{beamercolorbox}[wd=.8\paperwidth,ht=\beamer@decolines@lineup,dp=0pt]{lineup}% +% \end{beamercolorbox}% +% } % +% % Second line. +% \hbox{% +% \begin{beamercolorbox}[wd=\paperwidth,ht=\beamer@decolines@linemid,dp=0pt]{linemid}% +% \end{beamercolorbox}% +% } % +% % Third line. +% \hbox{% +% \begin{beamercolorbox}[wd=.1\paperwidth,ht=\beamer@decolines@linebottom,dp=0pt]{}% +% \end{beamercolorbox}% +% \begin{beamercolorbox}[wd=.9\paperwidth,ht=\beamer@decolines@linebottom,dp=0pt]{linebottom}% +% \end{beamercolorbox}% +% }% +% % This seems to fix some alignment problems with the watermark. It has to be +% % always applied if you do not want to see the footer moving up and down when +% % moving from a page with watermark to a page without or vice versa. +% \vskip-.5px% +% % Watermark. +% \if\beamer@decolines@watermark\@empty\else% +% \vskip-\beamer@decolines@watermarkheightbottom% +% \llap{\includegraphics[height=\beamer@decolines@watermarkheightbottom,clip=true,% +% trim=0pt 0pt 0pt \beamer@decolines@watermarkheightupperorig]{\beamer@decolines@watermark}\hskip-\paperwidth}% +% \fi% +% } + +\defbeamertemplate*{headline}{decolines theme} +{ + \leavevmode% + \hbox{% + \begin{beamercolorbox}[wd=\paperwidth,ht=\headerheight,dp=0pt]{page header}% + \end{beamercolorbox}% + } % + \vskip0pt% +} + +\defbeamertemplate*{frametitle}{decolines theme}[1][left] +{ + \ifbeamercolorempty[bg]{frametitle}{}{\nointerlineskip}% + \@tempdima=\textwidth% + \advance\@tempdima by\beamer@leftmargin% + \advance\@tempdima by\beamer@rightmargin% + \vbox{}\vskip-.5\beamer@leftmargin% + \begin{beamercolorbox}[sep=\beamer@leftmargin,#1,wd=\the\@tempdima]{} + \usebeamerfont{frametitle}\usebeamercolor[bg]{framesubtitle}% + \vbox{}\vskip0ex% + \if@tempswa\else\csname beamer@fte#1\endcsname\fi% + \strut\insertframetitle\strut\par% + {% + \ifx\insertframesubtitle\@empty% + \else% + {\usebeamerfont{framesubtitle}\usebeamercolor[bg]{framesubtitle}\insertframesubtitle\strut\par}% + \fi + }% + \vskip-1ex% + \if@tempswa\else\vskip-\beamer@leftmargin\fi + \end{beamercolorbox}% + \def\beamer@decolines@truetext{true}% + \ifx\beamer@decolines@titleline\beamer@decolines@truetext% + \vskip-.5\beamer@leftmargin% + \begin{beamercolorbox}[wd=\textwidth,ht=.1ex,dp=0ex]{linemid}% + \end{beamercolorbox}% + \fi +} + +% Frame title continuations, default +\defbeamertemplate*{frametitle continuation}{decolines theme}{(\insertcontinuationcount)} + + + +\defbeamertemplate*{sidebar right}{decolines theme} +{ + \vskip.1\beamer@leftmargin% + \llap{\insertlogo\hskip.5\beamer@leftmargin}% + \vfill% + \if\beamer@decolines@watermark\@empty\else% + \llap{\includegraphics[height=\beamer@decolines@watermarkheight]{\beamer@decolines@watermark}}% + \vskip-\beamer@decolines@watermarkheightbottom% + \fi +} + +\mode + diff --git a/Lectures_my/NumMet/2016/Lecture12/beamerthemeFlip.sty b/Lectures_my/NumMet/2016/Lecture12/beamerthemeFlip.sty new file mode 100755 index 0000000..a615ff5 --- /dev/null +++ b/Lectures_my/NumMet/2016/Lecture12/beamerthemeFlip.sty @@ -0,0 +1,59 @@ +% Main style file for the BEAMER FLIP THEME 2012 +% Copyright 2012 by Flip Tanedo +% This file may be distributed and/or modified +% 1. under the LaTeX Project Public License and/or +% 2. under the GNU Public License. +% +% Comments: This is still a work in progress. +% A good way to present: http://www.cs.hmc.edu/~oneill/freesoftware/pdftokeynote.html + +% \usepackage{beamerthemesplit} +\mode + + +%% These are the options that are fed in through the driver file +%% Some of them get passed on to the other theme files +\DeclareOptionBeamer{bullet}{\PassOptionsToPackage{bullet=#1}{beamerinnerthemeFlip}} +\DeclareOptionBeamer{bigpagenumber}{\PassOptionsToPackage{bigpagenumber}{beamerouterthemeFlip}} +\DeclareOptionBeamer{topline}[true]{\PassOptionsToPackage{topline=#1}{beamerouterthemeFlip}} +\DeclareOptionBeamer{shadow}[false]{\PassOptionsToPackage{shadow=#1}{beamerinnerthemeFlip}} + +\DeclareOptionBeamer{watermark}{\PassOptionsToPackage{watermark=#1}{beamerouterthemeFlip}} + +\ProcessOptionsBeamer + +\useinnertheme{Flip} % Calls beamerinnerthemeFlip.sty +\useoutertheme{Flip} % Calls beamerouterthemeFlip.sty +\usecolortheme{Flip} % Calls beamercolorthemeFlip.sty + + + +%%%%%%%%%%%%%%%%%%%%%%%% +% Background Gradient % +%%%%%%%%%%%%%%%%%%%%%%%% + + +%% Usually I would leave this on +%% However, there seems to be problems with XeLaTeX +%% http://tex.stackexchange.com/questions/29497/xelatex-preventing-beamer-from-using-different-backgrounds +\setbeamertemplate{background canvas}[vertical shading][bottom=blue!.1, middle=white, top=white] + +%% HOWEVER: it seems to make it impossible to change this later on in the document + + +%% For a dark background: +% \setbeamertemplate{background canvas}[vertical shading][bottom=keynotebottom, middle=keynotemiddle, top=keynotetop] + + +%% An alternate way: \beamertemplateshadingbackground{blue!.1}{red!2} +%% In general: you want the gradient to be subtle! + + +%%%%%%%%%%%%%%%%%%%%%%% +% Navigation symbols % +%%%%%%%%%%%%%%%%%%%%%%% + +\setbeamertemplate{navigation symbols}{} % Turns off PDF navigation symbols + +\mode +\endinput \ No newline at end of file diff --git a/Lectures_my/NumMet/2016/Lecture12/images/BG_lower.png b/Lectures_my/NumMet/2016/Lecture12/images/BG_lower.png new file mode 100755 index 0000000..073034a --- /dev/null +++ b/Lectures_my/NumMet/2016/Lecture12/images/BG_lower.png Binary files differ diff --git a/Lectures_my/NumMet/2016/Lecture12/images/bubble.gif b/Lectures_my/NumMet/2016/Lecture12/images/bubble.gif new file mode 100644 index 0000000..ecff282 --- /dev/null +++ b/Lectures_my/NumMet/2016/Lecture12/images/bubble.gif Binary files differ diff --git a/Lectures_my/NumMet/2016/Lecture12/images/bubble.jpg b/Lectures_my/NumMet/2016/Lecture12/images/bubble.jpg new file mode 100644 index 0000000..ceb584d --- /dev/null +++ b/Lectures_my/NumMet/2016/Lecture12/images/bubble.jpg Binary files differ diff --git a/Lectures_my/NumMet/2016/Lecture12/images/bubble2.jpg b/Lectures_my/NumMet/2016/Lecture12/images/bubble2.jpg new file mode 100644 index 0000000..0fd03bb --- /dev/null +++ b/Lectures_my/NumMet/2016/Lecture12/images/bubble2.jpg Binary files differ diff --git a/Lectures_my/NumMet/2016/Lecture12/images/uzh-transp.pdf b/Lectures_my/NumMet/2016/Lecture12/images/uzh-transp.pdf new file mode 100644 index 0000000..977da67 --- /dev/null +++ b/Lectures_my/NumMet/2016/Lecture12/images/uzh-transp.pdf Binary files differ diff --git a/Lectures_my/NumMet/2016/Lecture12/lecture12.tex b/Lectures_my/NumMet/2016/Lecture12/lecture12.tex new file mode 100644 index 0000000..80a3ff3 --- /dev/null +++ b/Lectures_my/NumMet/2016/Lecture12/lecture12.tex @@ -0,0 +1,331 @@ +% vim: set sts=4 et : +\documentclass[11 pt,xcolor={dvipsnames,svgnames,x11names,table}]{beamer} + +\usetheme[ + bullet=circle, % Other option: square + bigpagenumber, % circled page number on lower right + topline=true, % colored bar at the top of the frame + shadow=false, % Shading for beamer blocks + watermark=BG_lower, % png file for the watermark + ]{Flip} + +\usepackage{bm} +\usepackage{tikz,pgfplots,pgfplotstable} +\usepgfplotslibrary{fillbetween} +\usepackage{graphicx} + +% SOME COMMANDS THAT I FIND HANDY +% \renewcommand{\tilde}{\widetilde} % dinky tildes look silly, dosn't work with fontspec +\newcommand{\comment}[1]{\textcolor{comment}{\footnotesize{#1}\normalsize}} % comment mild +\newcommand{\Comment}[1]{\textcolor{Comment}{\footnotesize{#1}\normalsize}} % comment bold +\newcommand{\COMMENT}[1]{\textcolor{COMMENT}{\footnotesize{#1}\normalsize}} % comment crazy bold +\newcommand{\Alert}[1]{\textcolor{Alert}{#1}} % louder alert +\newcommand{\ALERT}[1]{\textcolor{ALERT}{#1}} % loudest alert +%% "\alert" is already a beamer pre-defined +\newcommand*{\Scale}[2][4]{\scalebox{#1}{$#2$}}% + +\graphicspath{{images/}} % Put all images in this directory. Avoids clutter. + +% suppress frame numbering for backup slides +% you always need the appendix for this! +\newcommand{\backupbegin}{ + \newcounter{framenumberappendix} + \setcounter{framenumberappendix}{\value{framenumber}} +} +\newcommand{\backupend}{ + \addtocounter{framenumberappendix}{-\value{framenumber}} + \addtocounter{framenumber}{\value{framenumberappendix}} +} + +\begin{document} +\tikzstyle{every picture}+=[remember picture] + +{ +\setbeamertemplate{sidebar right}{\llap{\includegraphics[width=\paperwidth,height=\paperheight]{bubble2}}} +\begin{frame}[c]%{\phantom{title page}} +\begin{center} +\begin{center} + \begin{columns} + \begin{column}{0.9\textwidth} + \flushright%\fontspec{Trebuchet MS} + \bfseries \Huge {Function Minimization (I)} + \end{column} + \begin{column}{0.2\textwidth} + %\includegraphics[width=\textwidth]{SHiP-2} + \end{column} + \end{columns} +\end{center} + \quad + \vspace{3em} +\begin{columns} +\begin{column}{0.6\textwidth} +\flushright \vspace{-1.8em} {%\fontspec{Trebuchet MS} + \large Marcin Chrzaszcz, Danny van Dyk\\\vspace{-0.1em}\small \href{mailto:mchrzasz@cern.ch}{mchrzasz@cern.ch}, \href{mailto:danny.van.dyk@gmail.com}{danny.van.dyk@gmail.com}} + +\end{column} +\begin{column}{0.4\textwidth} +\includegraphics[height=1.3cm]{uzh-transp} +\end{column} +\end{columns} + +\vspace{1em} +\vspace{0.5em} + \textcolor{normal text.fg!50!Comment}{Numerical Methods, \\ 07. November, 2016} +\end{center} +\end{frame} +} + +\begin{frame}{Plan for today} + \begin{itemize} + \item \alert{What types of function do we usually need to minimize?}\\ + \begin{itemize} + \item least-squares + \item likelihood/posterior + \item general non-linear problem + \end{itemize} + \vfill + \item \alert{What information can we use?}\\ + \begin{itemize} + \item the target function + \item its first derivatives + \item its second derivatives + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame}{General Minimization Problem} + The general problem can be posited as follows: There exists + a function + \begin{equation*} + f(a_1, \dots, a_N) + \end{equation*} + with real-valued parameters $\lbrace a_n \rbrace$.\\ + \vfill + We intend to find + \begin{itemize} + \item \alert{one}, + \item \alert{any}, or + \item \alert{all} + \end{itemize} + of its minima on a support $A$, + \begin{equation*} + A = \lbrace (a_1, \dots, a_N)\,|\,g(a_1, \dots, a_N) > 0\rbrace\,. + \end{equation*} +\end{frame} + +\begin{frame}{Example} + Posterior with non-gaussian likelihood. For example, exponential likelihood. +\end{frame} + +\begin{frame}{Limitations and Monte-Carlo Methods} + In general we have no further information on $f$, i.e., we do not + \emph{analytically} know any of its derivatives.\\ + \vfill + A very popular way to explore $f$ is by using Monte Carlo methods, + e.g. plain random walks, Markov chain methods, or genetic algorithms. + Most of these methds are very good at delineating \emph{local environments} + around some/most/all(?) of the modes. As always, analytic knowledge + of the problem will help. For example, symmetry relations among the parameters + or (a)periodic boundary conditions should be exploited if possible. + + The specific Monte-Carlo methods are beyond the scope of these lectures. +\end{frame} + +\begin{frame}{Simplex Method \hfill (aka Nelder-Mead Method)} + We will now discuss the work-horse of minimization algorithms, + the \alert{Simplex} method. While it has very good convergence + properties, but a rather slow convergence rate.\\ + \vfill + The basic idea is as follows: + \begin{itemize} + \item[0] A set of parameter points must be provided as an initial + value. If all else fails, random points can be used. + \item[1] Order the points by their respetive size of $f$ + \item[2] Compute the midpoint $\vec{a}_\text{mid}$ of all points except the worst, + and reflect the worst point $\vec{a}_{N+1}$ at the midpoint yielding $\vec{a}_\text{ref}$. + \begin{itemize} + \item[a] If $f(\vec{a}_\text{ref})$ fulfills some minimization criteria, replace + one of the existing simplex points with $\vec{a}_\text{ref}$. + Continue at step 1. + \item[b] Otherwise compute $\vec{a}_\text{contr}$ as a linear combination of the worst + point of the simplex $\vec{a}_N$, and $\vec{a}_\text{ref}$. If $\vec{a}_\text{contr}$ + is better than the worst point, replace the worst point. + Continue at step 1. + \item[c] Otherwise compress the the simplex by moving the points + $\vec{x}_1$ to $\vec{x}_N$ closer to $\vec{x}_0$ on their + respective connecting lines. Continue at step 1. + \end{itemize} + \item[3] If at any point the volume of the simplex falls below a given + treshold, then stop. + \end{itemize} +\end{frame} + +\begin{frame}{Simplex Method (continued)} + More details on the previous steps:\\ + \vspace{-\medskipamount} + \begin{overlayarea}{\textwidth}{.95\textwidth} + \begin{itemize} + \only<1-2>{ + \item[2] Compute the midpoint as + \begin{equation*} + \vec{a}_\text{mid} = \frac{1}{N} \sum_{n=0}^{N - 1} \vec{a}_n + \end{equation*} + The reflection is computed as\hfill~[default: $\alpha = 1$] + \begin{equation*} + \vec{a}_\text{ref} = (1 + \alpha) \vec{a}_\text{mid} - \alpha \vec{a}_N + \end{equation*} + } + \only<2>{ + \item[2a.1] If $\vec{a}_\text{ref}$ is better than $\vec{a}_0$, then replace + $\vec{a}_N$ with $\vec{a}_\text{ref}$. Continue with step 1. + \item[2a.1] \alert{alternative}: Compute\hfill~\alert{[default: $\epsilon = 2$]} + \begin{equation*} + \vec{a}_\text{exp} = (1 + \epsilon) \vec{a}_\text{mid} - \epsilon \vec{a}_N + \end{equation*} + and use in step \alert{2a} the better of the two ($\vec{a}_\text{ref}$ or $\vec{a}_\text{exp}$). + Continue with step 1. + } + \only<3-6>{ + \item[2a.2] If $\vec{a}_\text{ref}$ is better than the second worst point + $\vec{a}_{N-1}$, then replace the worst point by $\vec{a}_\text{ref}$. + } + \only<4-6>{ + \item[2b] Let $\vec{a}_\text{tmp}$ be the better of $\vec{a}_\text{ref}$ and $\vec{a}_\text{N}$. + Compute\hfill~\alert{[default: $\gamma = 1/2$]} + \begin{equation*} + \vec{a}_\text{contr} = \gamma \vec{a}_\text{mid} + (1 - \gamma) \vec{a}_\text{tmp}\,. + \end{equation*} + If $\vec{a}_\text{contr}$ is better than the worst point, replace the latter. Continue + at step 1. + } + \only<5-6>{ + \item[2c] Compress the entire simplex\hfill~\alert{[default: $\kappa = 1/2$]} + \begin{equation*} + \vec{a}_n = \sigma \vec{a}_0 + (1 - \sigma) \vec{a}_n\qquad \forall n=1,\dots,N + \end{equation*} + } + \only<6>{ + \item[0] The $N+1$ initial points must span a simplex. Therefore, care must be + taken that they do not lie in a linear subspace of the simplex. This is similar + to picking points in a plane when constructing a 3D volume. + } + \end{itemize} + \end{overlayarea} +\end{frame} + +\begin{frame}{Simplex Method: Properties} + \begin{itemize} + \item The method is very robust against problems such as overshooting. + \item It will usually converge toward a close-by minimum. + \item However, the convergence rate is smaller than for many other methods, + which e.g. work on more specialised problems. + \item No guarantee is given that the simplex method converges toward + the global minimum. Possible relief comes in the form of several starting + simplex obtained using Monte-Carlo methods. + \end{itemize} +\end{frame} + +\begin{frame}{Example} +\end{frame} + +\begin{frame}{Least-squares Problems} + The least-squares problem arises from the case of a Gaussian + likelihood function if all uncertainties are equal. It is a + very good example for understanding a non-linear problem + through linearization.\\ + \vfill + The target function is called the residue $r(a_1, \dots, a_N)$ + with $N$ parameters. + \begin{equation*} + r_k \equiv f(\vec{a}, \vec{x}_k) - y_k + \end{equation*} + \vfill + Here $k$ denotes one of the $K$ possible coordinate on a curve, + with (external, e.g. experimental) inputs $(\vec{x}_k, y_k)$.\\ + \vfill + The problem now aims to minimize + \begin{equation*} + \sum_k^K |r_k|^2 + \end{equation*} +\end{frame} + +\begin{frame}{Gauss-Newton Method} + This iterative method requires partial derivatives of the resiudes + $r_k$ with respect to the parameters $a_n$: + \begin{equation*} + r'_{k,n} \equiv \frac{\partial r(\vec{a}, \vec{x})}{\partial a_n}\Big|_{\vec{x} = \vec{x}_k} + \end{equation*} + \vfill + The algorithm now involves the following quantities: + \begin{align*} + D & = \left(\begin{matrix} + r'_{1,1} & r'_{1,2} & \dots & r'_{1,n}\\ + r'_{2,1} & r'_{2,2} & \dots & r'_{2,n}\\ + \vdots & \vdots & \ddots & \vdots \\ + r'_{k,1} & r'_{k,2} & \dots & r'_{k,n} + \end{matrix}\right) & + \vec{r} + & = (r_1, \dots, r_k)^T + \end{align*} +\end{frame} + +\begin{frame}{Gauss-Newton Method (cont'd)} + \begin{itemize} + \item[0] As always, we will be requiring a starting point $\vec{a}_0$ in parameter space.\\ + \item[1] Update the current point: + \begin{equation*} + \vec{a}_{i + 1} = \vec{a}_i - (D^T\cdot D)^{-1} \cdot D \cdot \vec{r} + \end{equation*} + \item[2] If $||\vec{a}_{i + 1} - \vec{a}_i|| < T$, where $T$ is some a-prior threshold, + we stop. Otherwise, continue with step 1. + \end{itemize} + Some comments + \begin{itemize} + \item The literature usually recommends to compute the auxiliary variable $\vec{s}$ via: + \begin{equation*} + (D^T \cdot D) \cdot \vec{s} = D^T \cdot \vec{r} + \end{equation*} + The above linear system of equations can be solved with known methods. + \item Since $(D^T \cdot D)$ is symmetric, it is a good idea to use Cholesky decomposition. + \end{itemize} +\end{frame} + +\begin{frame}{Derivation} + \url{https://en.wikipedia.org/wiki/Gauss-Newton_algorithm} +\end{frame} + +\begin{frame}{Example} + \url{https://en.wikipedia.org/wiki/Gauss-Newton_algorithm} +\end{frame} + +\begin{frame}{Levenberg-Marquardt Method} + The Levenberg-Marquardt method arises from a modification to the Gauss-Newton method. + + Trust region. + + Dampen: + \begin{itemize} + \item[0] As always, we will be requiring a starting point $\vec{a}_0$ in parameter space.\\ + \item[1] Update the current point: + \begin{equation*} + \vec{a}_{i + 1} = \vec{a}_i - (D^T\cdot D {\color{red}\,+ \lambda I})^{-1} \cdot D \cdot \vec{r} + \end{equation*} + where $I$ is the unit matrix in $N \times N$ {\color{red} and $\lambda$ a real-valued parameter}. + \item[2] If $||\vec{a}_{i + 1} - \vec{a}_i|| < T$, where $T$ is some a-prior threshold, + we stop. Otherwise, continue with step 1. + \end{itemize} + + The optimal choice of {\color{red}$\lambda$} is specific to the problem. +\end{frame} + +\begin{frame} +\end{frame} + +\backupbegin + +\begin{frame}\frametitle{Backup} + +\end{frame} + +\backupend +\end{document}