[go: up one dir, main page]

Menu

[r1137]: / coco / latex / manual.tex  Maximize  Restore  History

Download this file

261 lines (183 with data), 10.8 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
\documentclass[twoside,draft,a4paper]{article}
%\documentclass[twoside,draft,a4paper]{scrartcl}
%\usepackage{showkeys}
\usepackage[british]{babel}
\selectlanguage{british}
\usepackage{a4}
\usepackage{fancyhdr}
\usepackage[final]{graphicx}
\usepackage{wrapfig}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amssymb}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\ToDoList}[1]{{
\vspace{0.5ex}\hrule\vspace{0.5ex}\itshape
\begin{itemize}#1\end{itemize}
\vspace{0.5ex}\hrule\vspace{0.5ex}}}
\newcommand{\ToDo}[1]{\ToDoList{\item #1}}
\newcommand{\ortm}{\rule{0.4ex}{1.5ex}\rule[0.55ex]{0.6ex}{0.4ex}}
\newcommand{\crtm}{\rule[0.55ex]{0.6ex}{0.4ex}\rule{0.4ex}{1.5ex}}
\newcommand{\remove}[1]{{\ortm\ #1 \crtm}}
\newcommand{\ur}[1]{{\rm #1}} % Up-Right, for brackets etc. in italic text
\newcommand{\Arnold}{Arnol$'$d}
\newcommand{\Poincare}{Po\-in\-ca\-r\'{e}}
\newcommand{\R}{{\mathbb R}}
\newcommand{\T}{{\mathbb T}}
\newcommand{\N}{{\mathbb N}}
\newcommand{\Z}{{\mathbb Z}}
%\newcommand{\disc}[1]{\mathfrak{#1}}
\newcommand{\disc}[1]{\mathbf{#1}}
\newcommand{\eps}{\varepsilon}
\newcommand{\om}{\omega}
\newcommand{\scalar}[2]{{\left\langle\:{#1}\:,\:{#2}\:\right\rangle}}
\newcommand{\textscalar}[2]{{\langle\:{#1}\:,\:{#2}\:\rangle}}
\newcommand{\pderiv}[2]{\frac{\partial {#1}}{\partial {#2}}}
\newcommand{\setdef}[2]{\{\:{#1}\:|\:{#2}\:\}}
\newcommand{\from}{\leftarrow}
\newcommand{\class}[1]{\texttt{#1}}
\newtheorem{theo}{Theorem}%[section]
\newtheorem{lemma}[theo]{Lemma}
\newtheorem{defi}[theo]{Definition}
\newtheorem{coro}[theo]{Corollary}
\newtheorem{hypo}[theo]{Hypothesis}
\newcommand{\qed}{{\hspace*{\fill}$\Box$}}
\newenvironment{proof}{\paragraph*{Proof.}}{\qed}
\newenvironment{subproof}{\subparagraph*}{}
%\renewcommand{\theequation}{\arabic{section}.\arabic{equation}}
\newcommand{\fig}{Fig.}
\newcommand{\Fig}{Fig.}
\newcommand{\figs}{Figs.}
\newcommand{\Figs}{Figs.}
\newcommand{\figref}[1]{{\fig~\ref{#1}}}
\newcommand{\Figref}[1]{{\Fig~\ref{#1}}}
\newcommand{\figsref}[1]{{\figs~\ref{#1}}}
\newcommand{\Figsref}[1]{{\Figs~\ref{#1}}}
\newcommand{\tab}{Table}
\newcommand{\Tab}{Table}
\newcommand{\tabs}{Table}
\newcommand{\Tabs}{Table}
\newcommand{\tabref}[1]{{\tab~\ref{#1}}}
\newcommand{\Tabref}[1]{{\Tab~\ref{#1}}}
\newcommand{\tabsref}[1]{{\tabs~\ref{#1}}}
\newcommand{\Tabsref}[1]{{\Tabs~\ref{#1}}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{\sf Coco - A modularised continuation core toolbox for Matlab}
\author{Harry Dankowicz
\and Frank Schilder\thanks{Supported by EPSRC grant EP/D063906/1.}
}
\date{\today}
\pagestyle{myheadings}
\markboth{F. SCHILDER AND OTHER AUTHOR(S)}
{RUNNING TITLE OF THE MANUSCRIPT}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\renewcommand{\baselinestretch}{1.5} % for submission
%\renewcommand{\baselinestretch}{1.2} % for package showkeys
\begin{document}
% titlepage
\thispagestyle{plain}
\maketitle
\begin{abstract}
Text of the abstract.
\end{abstract}
\vspace{1ex}\noindent {\bf Key words.}
\vspace{2ex}\noindent {\bf AMS subject classifications.}
\section*{Copyright}
This preprint was submitted to (name of the Journal).
\tableofcontents
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}
\section{Review of continuation}
In this section we review the principle of parameter continuation and point out differences to conventional implementations.
\subsection{Setting up the system}
We are interested in families of solutions of the equation $F(x,\lambda)=0$, $F:\R^l \times \R^m \to \R^n$, where $l+m>n$, and want to trace a set of test functions $G(x,\lambda)$ along such families. Note that the above notation includes the traditionally considered cases $l=n$ and $m=0$. Even though these cases are equivalent we did not restrict our toolbox to one of those as to allow the user to choose her favourite problem formulation.
We construct a map $E:\R^m\to\R^n$ ($m$ and $n$ different from above) containing the equations $F$ and the test functions $G$:
\begin{equation*}
E(y):=\left[\begin{array}{l}
F(x,\lambda) \\
G(x,\lambda)-\mu
\end{array}\right] = 0,
\end{equation*}
where $y=(x,\lambda,\mu)$. The dimension of the family of solutions is $d=m-n$. For arc-length continuation we require $d=1$.
\subsection{1D-covering algorithm}
Throughout this section we assume that $E:\R^{n+1}\to\R^n$, that is, we look for one-dimensional families of solutions. The covering algorithm `sees' only equations that have one vector as input and one vector as output. The main purposees of this algorithm are to
%
\begin{enumerate}
\item amend these equations with a number of covering conditions to obtain a system of equations with a unique regular solution point,
\item perform prediction-correction steps to compute a covering of the solution manifold,
\item locate special points if test functions have been defined and
\item check for boundary conditions at which to terminate the continuation.
\end{enumerate}
%
The traditional way to implement the 1D covering algorithm is to perform prediction correction steps in one direction until a termination condition is met. This is not generalisable to higher-dimensional geometries. Hence, here we employ a framework that applies to covering algorithms for arbitray dimensional manifolds.
The basic idea is, starting with a single chart, to compute an atlas of a manifold $M$ within well-defined boundaries. A chart $\chi$ is here a tuple $\chi=(x,t)$ consisting of a point $x\in M$ on the manifold and some representation $t$ of the tangent space $T_x(M)$ at $x$. In the 1D case this is just a normalised tangent vector pointing in the direction of continuation. The algorithm now proceeds as follows:
\begin{center}
\begin{tabular}{|p{0.9\textwidth}|}
\hline
cover\_manifold \\
\hline
I: chartlist $L = \{\chi_0\}$ \\
\hline
O: atlas $A$, special point list $S$ \\
\hline
Variables: chartlist $N$ of first order interior neighbours of charts in $L$, this list is necessary to prevent prediction into already computed regions \\
\hline
$A=L$ \\[0.2ex]
while not isempty($L$) \\
\hspace{2ex} pick a chart $(x,t)\in L$ \\
\hspace{2ex} compute $y\in t$ such that $(y,t)\cup L$ gives nice mesh (requires $N$) \\
\hspace{2ex} correct $(y,t)$ back to manifold \\
\hspace{2ex} check if point is acceptable $\longrightarrow$ handle cases when not \\
\hspace{2ex} if $(y,t)$ outside computational domain \\
\hspace{4ex} compute boundary chart $(y,t)$ \\
\hspace{2ex} end \\
\hspace{2ex} $A = A\cup(y,t)$ \\
\hspace{2ex} link $(y,t)$ to neighbouring charts in $L$ \\
\hspace{2ex} check for and compute all special points along these new links \\
\hspace{2ex} $S=S\cup{}$(new special points) \\
\hspace{2ex} move all interior charts from $L$ to $N$ \\
\hspace{2ex} remove all purely second order charts from $N$ \\
end \\
\hline
\end{tabular}
\end{center}
\subsection{Locating special points}
Locating special points is part of the covering algorithm. Special points are most commonly co-dimension one, hence, the location is guided by the one-dimensional edges of the covering simplices.
Special points are points where one of the test function values $\mu$ assumes a user-defined value, most commonly, $\mu_i=0$. There are three types of special points, determined by their co-dimension and properties of $G_i$:
%
\begin{enumerate}
\item Co-dimension one and $G_i$ is twice continuously differentiable. This is the most common type of special point. The corresponding parameter $\mu_i$ is an active continuation parameter and the point is located by applying Newton's method to the extended system replacing the arc-length (covering) condition with $\mu_i-\mu_0=0$, where $\mu_0$ is the value that $\mu$ assumes at the special point.
\item Co-dimension one and $G_i$ is not twice continuously differentiable. This is the case, for example, for special points for which $G_i$ involves the computation of a maximum (supremum-norm). The point is located using subdivision along the line segment connecting the two successive points between which the special point was detected. The true arc of the manifold is interpreted as a graph over this line segment, which is parametrised by convex combination. The subdivision proceeds by computing a point on the branch using an extended system that replaces the arc-length (covering) condition with the condition that the point must lie in a hyperplane vertical to the line segment; see \figref{frank:fig1}.
\item Co-dimension one, but non-generic, that is, the `true' co-dimension is greater than one. The classical examples are bifurcation points (pitchfork and transcritical), which occur generically in systems with symmetries, but have co-dimension greater than one for generic systems. Such points cannot be located on the solution branch, because the Jacobian of any system extended with just one condition will become singular. These points are approximately located on the line segment connecting two sucessive points between which the special point was found. These points should serve as starting points for a post-processing that uses a suitable extended system/method.
\end{enumerate}
\begin{figure}
\centerline{\includegraphics[width=0.6\textwidth]{figs/bisec1.eps}}
\caption{Combined subdivision and Newton method for locating special points of type 2.}
\label{frank:fig1}
\end{figure}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\input{mpbvp}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Acknowledgements}
FS was supported by EPSRC grant EP/D063906/1.
\section{Contact}
Frank Schilder, Department of Mathematics,
University of Surrey,
Guildford, Surrey \mbox{GU2 7XH},
United Kingdom \\
(f.schilder@surrey.ac.uk)
\vspace{2ex}\noindent Other author(s).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
\renewcommand{\theequation}{\Alph{section}.\arabic{equation}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bibliographystyle{abbrv} % plain alpha abbrv acm
\bibliography{references}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}