Skip to content

Commit 263b801

Browse files
committed
add chapter 4 and algorithms
1 parent bb92d9f commit 263b801

File tree

5 files changed

+80
-15
lines changed

5 files changed

+80
-15
lines changed

.gitignore

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
book.aux
2+
book.bbl
3+
book.blg
4+
book.fdb_latexmk
5+
book.fls
6+
book.log
7+
book.out
8+
book.synctex.gz
9+
book.toc

notes/book.bib

+11
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,15 @@ @book{kamien2012dynamic
4949
url={https://books.google.com.br/books?id=0IoGUn8wjDQC},
5050
year={2012},
5151
publisher={Dover Publications}
52+
}
53+
54+
@article{wolfgang1978,
55+
author = {Hackbusch, Wolfgang},
56+
year = {1978},
57+
month = {08},
58+
pages = {229-240},
59+
title = {A Numerical Method for Solving Parabolic Equations with Opposite Orientations},
60+
volume = {20},
61+
journal = {Computing},
62+
doi = {10.1007/BF02251947}
5263
}

notes/book.pdf

25.7 KB
Binary file not shown.

notes/book.tex

+1-3
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,18 @@
4444

4545
\chapter{Problemas Básicos de Controle Ótimo}
4646
\label{ch:1}
47-
\rule{\textwidth}{1pt}
4847
\input{files/chapter1.tex}
4948

5049
\chapter{Existência e Outras Propriedades}
5150
\label{ch:2}
52-
\rule{\textwidth}{1pt}
5351
\input{files/chapter2.tex}
5452

5553
\chapter{Condições Finais do Estado}
5654
\label{ch:3}
57-
\rule{\textwidth}{1pt}
5855
\input{files/chapter3.tex}
5956

6057
\chapter{Método Backward/Forward}
58+
\label{ch:4}
6159
\input{files/chapter4.tex}
6260

6361
\chapter{Laboratórios}

notes/files/chapter4.tex

+59-12
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,70 @@
1-
Queremos agora resolver os problemas de controle ótimo numericalmente. A equação $\frac{\partial H}{\partial u} = 0$ deve ser satisfeita em $u^*$ e pode ser de ajuda para encontrar $u$ em função de $x$ e $\la$. A partir disso, podemos utilizar um método como Runge-Kutta para resolver o sistema ótimo. Ele vai encontrar o controle ótimo se esse existir.
2-
\subsection{Algoritmo}
1+
Queremos agora resolver os problemas de controle ótimo até agora apresentados
2+
numericamente, de forma que a solução seja uma aproximação a função $u^*$.
3+
Para isso tomamos uma partição $\{t_0 = b_1, b_2, ..., b_{N+1} = t_1\}$,
4+
usualmente com pontos igualmente espaçados, tal que a aproximação será dara
5+
por $u_i \approx u(b_i)$. Sabemos que a solução deve satisfazer as condições
6+
necessárias apresentadas no capítulo \ref{ch:1}.
7+
8+
Em geral, a equação $\frac{\partial H}{\partial u} = 0$ pode ser manipulada
9+
para encontrarmos $u$ em função de $x$ e de $\la$, para então termos a
10+
expressão de $u^*$. A partir disso, podemos utilizar um método como
11+
Runge-Kutta para resolver o sistema ótimo. Ele vai encontrar o controle ótimo
12+
se esse existir.
13+
14+
\section{Algoritmo}
15+
16+
O método apresentado a seguir é bem intuitivo e é conhecido como
17+
\textit{Forward-Backward Sweep}. Seja $\vec{x} = (x_1,...,x_{N+1})$ e
18+
$\vec{\la} = (\la_1, ..., \la_{N+1})$ vetores que aproximação nos pontos da
19+
partição as funções estado e adjunta. \hl{Informa\c{c}\~oes sobre converg\^encia e
20+
estabilidade podem ser encontradas em} \cite{wolfgang1978}.
21+
322
\begin{enumerate}
4-
\item Chute inicial para $\Vec{u}$, sendo cada coordenada de $u$ um valor no tempo discreto.
5-
\item Resolva $x$ Foward utilizando a condição inicial e utilizando sua equação diferencial.
6-
\item Use a condição final de $\lambda$ e resolva Backward de acordo com sua equação diferencial.
7-
\item Atualize o vetor de controle.
8-
\item Convergência.
23+
\item Chute inicial para $\vec{u}$.
24+
\item Usando a condição inicial $x(t_0)$ e os valores de $\vec{u}$,
25+
encontre $\vec{x}$ passo a frente através da equação diferencial.
26+
\item Usando a condição de transversalidade $\la(t_1) = 0$ e os valores
27+
$\vec{u}$ e $\vec{x}$, resolva $\vec{\la}$ para trás de acordo com a
28+
equação adjunta.
29+
\item Atualize o vetor de controle com os novos valores de $\vec{x}$ e
30+
$\vec{\la}$ através da equação $H_u = 0$.
31+
\item Confira a convergência. Se dois passos subjacentes não estão
32+
suficientemente próximos, repita a partir do segundo passo.
933
\end{enumerate}
1034

11-
É interessante utilizar uma combinação convexa entre o valor do controle anterior e o valor atual para acelerar a convergência.
35+
Frequentemente é necessário usar uma combinação convexa \footnote{\textbf{Combinação Convexa:} Combinação linear de pontos, tal que os
36+
coeficientes são não negativos e somam $1$.} entre dois controles
37+
sequenciais para acelerar a convergência do algoritmo. Para os passos 2 e 3, o
38+
método de Runge-Kutta é suficiente.
1239

13-
\textbf{Combinação Convexa:} Combinação Linear de pontos, cuja soma dos coeficientes é positiva e a soma é $1$.
40+
Muitos tipos de teste de convergência existem. Frequentemente, considerar
41+
$$
42+
||\vec{u} - \text{old }\vec{u}||_1 = \sum_{i=1}^{N+1} |u_i - \text{old }u_i| < \e
43+
$$
44+
Nesse texto, usaremos o erro relativo com tolerância $\e$,
45+
$$
46+
\frac{||\vec{u} - \text{old }\vec{u}||_1}{||\vec{u}||_1} \le \e
47+
$$
48+
Ou, de outra forma, queremos que
49+
$$
50+
\e ||\vec{u}|| - ||\vec{u} - \text{old }\vec{u}|| \ge 0
51+
$$
52+
Vamos fazer esse requerimento para todas as variáveis, não apenas para o
53+
controle.
1454

15-
O erro no algoritmo é em geral o relativo e ele deve ser menor do que uma tolerância aceitável. A condição que obtemos é que $\delta \norm{\Vec{u}} - \norm{\Vec{u} - \Vec{oldu}} \geq 0$
55+
Ao longo do texto esse algoritmo será utilizado
1656

17-
\subsection{Runge-Kutta}
57+
\hl{Especificar o c\'odigo utilizado, a linguagem e a organiza\c{c}\~ao dos
58+
notebooks. Aqui ou no in\'icio do texto.}
59+
60+
\section{Runge-Kutta}
61+
62+
O método pode ser resumido pelas seguintes equações, dado um passo $h$.
63+
\begin{equation*}
64+
x(t + h) \approx x(t) + \frac{h}{6}(k_1 + 2k_2 + 2k_3 + k_4)
65+
\end{equation*}
1866
\begin{equation*}
1967
\begin{cases}
20-
x(t + h) \approx x(t) + \frac{h}{6}(k_1 + 2k_2 + 2k_3 + k_4) \\
2168
k1 = f(t,x(t)) \\
2269
k2 = f(t + \frac{h}{2},x(t) + \frac{h}{2}k_1) \\
2370
k3 = f(t + \frac{h}{2},x(t) + \frac{h}{2}k_2) \\

0 commit comments

Comments
 (0)