METODO DE EULER E M ETODO PSEUDOESPECTRAL ... - mat.ufpr… · to the Bolza problem without...
Transcript of METODO DE EULER E M ETODO PSEUDOESPECTRAL ... - mat.ufpr… · to the Bolza problem without...
KARLA CRISTIANE ARSIE
METODO DE EULER E METODO PSEUDOESPECTRAL
USANDO PONTOS LEGENDRE GAUSS RADAU PARA
UMA CLASSE DE PROBLEMAS DE CONTROLE OTIMO
Curitiba
2013
KARLA CRISTIANE ARSIE
METODO DE EULER E METODO PSEUDOESPECTRAL
USANDO PONTOS LEGENDRE GAUSS RADAU PARA
UMA CLASSE DE PROBLEMAS DE CONTROLE OTIMO
Dissertacao apresentada ao Programa de Pos-
Graduacao em Matematica Aplicada da Uni-
versidade Federal do Parana, como requisito
parcial a obtencao do grau de Mestre em Ma-
tematica Aplicada.
Orientadora: Dr.a Elizabeth Wegner Karas.
Coorientador: Dr. Miguel A. Dumett Canales.
Curitiba
2013
Agradecimentos
Agradeco primeiramente a minha famılia, pelo apoio,
compreensao, ajuda e por todo carinho ao longo deste percurso.
Amo voces.
Ao meu noivo Rodrigo, que esteve sempre ao meu lado, que me
apoiou, incentivou, ajudou e participou comigo dos momentos de
angustias e alegrias. Neoqeav.
Aos meus amigos, especialmente Izabela, Janaina, Keilla,
Leonardo e Priscila, pela ajuda e pelo carinho.
Agradeco aos meus orientadores Elizabeth e Miguel, pelas
orientacoes, conversas, por estarem sempre dispostos a me ajudar.
Obrigada pelo esforco, tempo dedicado e por sempre acreditarem
no meu trabalho.
Aos membros da banca, professores Dr. Antonio Carlos Gardel
Leitao, Dr. Saulo Pomponet Oliveira e Dr.a Ailin Ruiz Zarate
Fabregas obrigada por aceitarem fazer parte deste momento e dar
suas contribuicoes valiosas.
Ao Programa de Pos-Graduacao em Matematica Aplicada da
UFPR pela oportunidade e formacao de qualidade propiciada.
A CAPES pelo apoio financeiro.
E finalmente, mas nao menos importante, a Deus pela capacitacao
concedida, pela forca espiritual e por seguir ao meu lado.
vi
Resumo
O objetivo deste trabalho e discutir o metodo pseudoespectral com pontos
de colocacao de Legendre-Gauss-Radau (LGR) apresentado em [22], para
determinar solucoes numericas de algumas classes de problemas de con-
trole otimo. Nesta dissertacao revisa-se [22], e se deriva a discretizacao do
metodo pseudoespectral LGR, de problemas de controle otimo (sem res-
tricoes nas variaveis de estado e de controle) utilizando notacao tensorial.
Adicionalmente se derivam as condicoes de otimalidade de Karush-Kuhn-
Tucker (KKT) associadas ao problema.
Para avaliar a precisao do metodo em problemas de controle otimo es-
pecıficos, e necessario conhecer a solucao exata dos problemas escolhidos.
Procurando replicar os resultados em [22], trabalhou-se num primeiro exem-
plo com um Problema de Bolza (tipo LQR) sem restricoes nas variaveis de
estado e de controle. Se apresenta uma derivacao detalhada da solucao exata
deste problema quadratico, utilizando o Princıpio do Maximo de Pontrya-
gin. O problema de minimizacao resultante foi resolvido atraves da rotina
quadprog do MATLAB. A precisao do metodo pseudoespectral LGR e com-
parada, com bons resultados, com o metodo de Euler (aplicado ao problema
de otimizacao quadratico produto da discretizacao por Euler do problema
de Bolza tipo LQR original).
Para evidenciar que o metodo pseudoespectral LGR de discretizacao pode
ser aplicado a problemas de controle otimo com restricoes nas variaveis de
controle e de estado (o que nao e abordado em [22]), dois exemplos adici-
onais, apresentados em [31], sao discutidos nesta dissertacao. No segundo
exemplo a funcao custo e nao quadratica e a rotina fmincon do MATLAB e
encarregada de fazer o trabalho de otimizacao a partir das equacoes discre-
tizadas pelo metodo pseudoespectral LGR. No terceiro exemplo, o problema
de otimizcao foi resolvido pela rotina quadprog. Existem poucos problemas
nao-lineares de controle otimo (com restricoes) cujas solucoes exatas sao co-
nhecidas. Usualmente argumentos de convexidade e outros, sao necessarios
para encontrar as solucoes exatas.
Palavras-chave: Controle otimo; problema tipo Bolza; metodo pseudoes-
pectral; pontos de colocacao LGR; metodo de Euler.
viii
Abstract
The goal of this work is to present the details of the Legendre-Gauss-Radau
(LGR) pseudoespectral numerical method. This method was published in
[22] and it is utilized to find numerical solutions of certain classes of optimal
control problem. In this dissertation, we review [22], and derive the discre-
tization of the LGR pseudoespectral method of optimal control problems
(without restrictions in the state and control variables) using tensorial no-
tation. In adition, the associated Karush-Kuhn-Tucker (KKT) optimality
conditions are derived. To assess the accuracy of the LGR method in specific
optimal control problems, it is necessary to know the exact solution of the
selected problems. Aiming to replicate the results in [22], we worked initially
a Bolza problem (LQR type) without restrictions in the state and control
variables. The process of finding the exact solution of this quadratic pro-
blem is derived in detail, utilizing the Pontryagin Maximum Principle. The
LGR pseudoespectral discretization technique was successful when applied
to the Bolza problem without restrictions. The corresponding MATLAB
code is included in the Appendix, and utilizes mainly the quadprog routine.
The accuracy of the LGR pseudoespectral method is compared successfully
against Euler method (applied to the quadratic optimization problem which
is obtained from the forward Euler discretization of the LQR type original
Bolza problem). To point out that the LGR pseudoespectral discretization
method could be applied to optimal control problems with restrictions in the
state and control variables (something not attempted in [22]), and outside of
the Bolza problem class, two additional examples from [31] are presented in
this dissertation. There are few non-linear optimal control problems (with
restrictions) whose exact solutions are known. Usually, convexity arguments
and others, are necessary to find the exact solutions.
Palavras-chave: Optimal control; Bolza problem; pseudoespectral method;
LGR collocation points; Euler method.
ix
Sumario
Introducao 1
1 O problema de Controle Otimo 4
1.1 Princıpio do Maximo de Pontryagin . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Metodo Pseudoespectral usando Pontos Legendre Gauss Radau . . . . . . 6
1.2.1 Fundamentacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Discretizacao do problema . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.3 Condicoes de Karush-Kuhn-Tucker . . . . . . . . . . . . . . . . . . 12
1.2.4 Sistema Adjunto Transformado . . . . . . . . . . . . . . . . . . . . 15
1.2.5 Formulacao Integral . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3 Metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4 Outros metodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.4.1 Comparacao com o metodo de Kameswaran e Biegler . . . . . . . . 21
1.4.2 Comparacao com o metodo de Fahroo e Ross . . . . . . . . . . . . 22
1.5 Problema de Bolza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2 Exemplos 24
2.1 Exemplo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.1 Solucao Exata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.2 Solucao aproximada pelo metodo pseudoespectral . . . . . . . . . . 28
2.1.3 Solucao aproximada pelo metodo de Euler . . . . . . . . . . . . . . 30
2.2 Exemplo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.1 Solucao aproximada pelo metodo pseudoespectral . . . . . . . . . . 35
2.3 Exemplo 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3.1 Solucao aproximada pelo metodo pseudoespectral . . . . . . . . . . 38
Conclusao 41
Apendices 42
A Revisao de Conceitos 42
A.1 Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
A.1.1 Produto direto de Matrizes . . . . . . . . . . . . . . . . . . . . . . . 42
x
A.1.2 Exponencial de matriz . . . . . . . . . . . . . . . . . . . . . . . . . 43
A.2 Solucao de um sistema de EDOs . . . . . . . . . . . . . . . . . . . . . . . . 45
A.3 Topicos de otimizacao contınua . . . . . . . . . . . . . . . . . . . . . . . . 46
A.3.1 Metodo de gradientes conjugados . . . . . . . . . . . . . . . . . . . 47
A.3.2 O Teorema de Karush-Kuhn-Tucker . . . . . . . . . . . . . . . . . . 49
B Codigos em Matlab 52
Referencias Bibliograficas 67
xi
Introducao
O objetivo da teoria de controle otimo e determinar o controle, que fara com que
um sistema satisfaca um conjunto de restricoes fısicas e ao mesmo tempo minimize algum
criterio de desempenho. Normalmente, os problemas de controle otimo tem restricoes
nas variaveis de estado e de controle. As solucoes para problemas de controle otimo
(sem restricoes) podem ser encontradas, por exemplo, atraves da aplicacao do calculo
variacional ([11, 20, 31]) e da aplicacao do Princıpio do Maximo de Prontryagin ([11, 18]).
Em [11] se faz uma analogia entre problemas de controle otimo e os problemas do calculo
de variacoes, mostra-se tambem uma estrategia de como o Princıpio do Maximo pode, em
alguns casos, ser utilizado para efetivamente determinar uma solucao de um determinado
problema de controle otimo. Porem, em [31, Cap. 10], se menciona que em geral nao e
uma boa ideia trabalhar com a estrategia antes mencionada, pois ela se baseia em definir
U = Y ′ e trabalhar com a variavel estado estendida W = (Y, U), nos problemas de
calculo de variacoes para tentar encontrar as solucoes de problemas de controle otimo. A
dificuldade principal esta no fato que Y ′ e conhecida explicitamente, mas U ′ nao e. Varias
tecnicas foram desenvolvidas para resolver os problemas de controle otimo. Estes metodos
numericos sao divididos em duas categorias: metodos indiretos e metodos diretos [3, 17].
Os metodos indiretos consistem em converter o problema de otimizacao em um
sistema de equacoes algebrico-diferenciais de valor no contorno a partir da aplicacao do
Princıpio do Maximo de Pontryagin. A principal vantagem desse metodo e a alta precisao e
garantias de solucoes que satisfazem as condicoes necessarias de otimalidade. No entanto,
ha uma desvantagem significativa. As condicoes necessarias de otimalidade devem ser
encontradas analiticamente, e para a maioria dos problemas esta busca nao e trivial.
Os metodos diretos utilizam a parametrizacao na variavel de controle ou a para-
metrizacao nas variaveis de estado seguida da solucao do problema de programacao nao-
linear resultante. Nestes metodos polinomios podem ser usados para aproximar a equacoes
diferenciais em pontos de colocacao ([4, 24, 28]). Estas tecnicas baseiam-se em metodos
pseudoespectrais que consistem em encontrar solucoes numericas de equacoes diferenciais.
Metodos pseudoespectrais sao uma classe de metodos de colocacao direta, onde o proble-
ma de controle otimo e transcrito para um problema de programacao nao-linear atraves
de uma parametrizacao do estado e do controle utilizando polinomios de Legendre ou
Chebyshev em conjunto com pontos de colocacao. Tal problema de programacao nao-
linear pode entao ser resolvido com uso de algoritmos de Otimizacao para obter solucoes
Introducao 2
aproximadas localmente otimas.
Neste trabalho aborda-se um metodo pseudoespectral que consiste na parame-
trizacao do estado e do controle utilizando polinomios de Legendre em conjunto com
a discretizacao utilizando pontos de colocacao LGR. O metodo fornece, tambem, uma
maneira precisa de encontrar as condicoes de otimalidade de KKT associadas ao pro-
blema. Mostra-se que o metodo apresentado esta relacionado a metodo de integracao
global implıcita. Isto e feito provando que a inversa da matriz de diferenciacao obtida
no metodo pseudoespectral coincide com a matriz associada a um metodo de integracao
global implıcito [16].
Este trabalho esta organizado da seguinte forma. No Capıtulo 1, se apresenta bre-
vemente o que e um problema de controle otimo (sem restricoes) e se enuncia o resultado
fundamental da teoria de controle otimo, o teorema do Princıpio do Maximo de Pon-
tryagin. Em seguida, se apresenta o metodo pseudoespectral LGR, seguindo a sequencia
estabelecida em [22], mas com demonstracoes diferenciadas das encontradas nessa re-
ferencia. Adicionalmente se menciona o metodo de Euler e se apresenta o problema de
Bolza.
O Capıtulo 2 inicia especificando o tipo LQR do problema de Bolza e encontrando
a solucao exata desse problema utilizando o Princıpio do Maximo de Pontryagin. Logo, a
discretizacao pseudoespectral LGR e utilizada para encontrar uma solucao numerica do
problema de Bolza LQR. A precisao do metodo e comparada com a precisao do metodo
de Euler aplicado ao mesmo problema de Bolza sem restricoes. Os codigos MATLAB
necessarios para construir os pontos de colocacao LGR e para calcular os pesos de qua-
dratura da discretizacao pseudoespectral LGR, assim como tambem a chamada da rotina
QUADPROG, para encontrar explicitamente, as solucoes numericas do estado e do con-
trole do problema de Bolza, sao apresentados no Apendice da dissertacao.
Adicionalmente, sao incluıdos dois problemas de controle otimo com restricoes
nao-lineares, para testar a discretizacao pseudoespectral LGR (isto nao e feito em [22])
Ambos os problemas, com suas respectivas solucoes exatas, sao apresentados em [31, Cap.
10]. O metodo pseudoespectral LGR e bem sucedido em encontrar uma solucao numerica.
Os codigos em MATLAB correspondentes sao dados no Apendice da dissertacao e estarao
disponıveis no site da pos-graduacao em Matematica Aplicada.
Finalmente, nos Apendices apresentam-se alguns resultados basicos da teoria
abordada no trabalho, bem como os codigos implementados em Matlab para resolver
numericamente os exemplos discutidos.
Introducao 3
Notacao.
xT transposto do vetor x
‖.‖∞ norma infinito
‖.‖ norma 2
x, x′ derivada de x
xj(τ) derivada da j-esima componente de x em relacao a τ
〈x, y〉 produto interno de x por y
ej vetor canonico com 1 na componente j e as demais componentes nulas
AT transposta da matriz A
Ak k-esima linha da matriz A
diag(α1, . . . , αn) matriz diagonal quadrada cujos elementos da diagonal sao α1, . . . , αn
AB multiplicacao da matriz A pela matriz B
∇f gradiente da funcao f : IRn → IR. A mesma notacao sera adotada
para indicar a matriz m× n cuja i-esima linha e ∇fi, quando
f : IRn → IRm
∇φ matriz m× n cujo elemento (i, j) e (∇φ(X))ij = ∂φ(X)∂Xij
.
Aqui φ : IRm×n → IR e X ∈ IRm×n
C(I) Espaco das funcoes contınuas em I.
C(I) Espaco das funcoes contınuas por partes do intervalo I.
C1(I) Espaco das funcoes continuamente diferenciaveis em I.
C1(I) Espaco das funcoes continuamente diferenciaveis por partes no intervalo I.
Capıtulo 1
O problema de Controle Otimo
Um problema de controle otimo consiste em minimizar um certo funcional que
depende de dois tipos de variaveis: variaveis de estado ou proprias (x ∈ IRn) e variaveis
de controle (u ∈ IRm). As duas variaveis estao parametrizadas por uma variavel real
independente t, usualmente associada ao tempo, isto e, x = x(t), u = u(t). Formalmente
x ∈ C1 e uma funcao x : IR → IRn diferenciavel por pedacos e u ∈ C e uma funcao
u : IR→ IRm contınua por pedacos em cada intervalo de tempo. A variavel de estado x(t)
obedece a uma dinamica dada pela seguinte equacao diferencial, denominada equacao de
estado
x(t) = f(x(t), u(t)), (1.1)
onde f : IRn×m → IRn e uma funcao contınua. A variavel de estado pode estar ainda
sujeita a condicoes x(t0) = x0 e x(tf ) = xf . A variavel de controle u(t) e uma funcao que
pertence a um certo espaco de funcoes U , chamado o conjunto de controles admissıveis.
Por exemplo, em [18] considera-se U = u : [0,∞) −→ IRm | u(.) e mensuravel.No caso que (1.1) nao depende de u, entao (1.1) vira uma equacao diferencial. E
conhecido que sob a condicao de continuidade de f , o teorema de Peano [30] garante a
existencia de solucoes de (1.1). Adicionalmente, se a funcao f e localmente Lipschitziana
em x, o teorema de Picard[30] garante a existencia de uma solucao unica de (1.1). Quando
a funcao u(t) e constante, em [30, Cap.2] encontram-se condicoes similares as de Peano e
Picard, para garantir existencia e unicidade de solucoes de (1.1).
Usualmente, o funcional a minimizar em um problema de controle otimo e com-
posto de dois termos: o primeiro deles depende do estado final x(tf ) e o segundo e da
forma ∫ tf
t0
r(x(t), u(t))dt.
Adicionalmente, sao impostas restricoes por desigualdade nas variaveis de estado
e de controle. Por exemplo, x(t) ≥ 0 e |u(t)| ≤ 1, para t0 ≤ t ≤ tf .
Condicoes gerais para existencia e unicidade de um problema de controle otimo
podem ser encontradas em [31]. Em geral, estas condicoes sao do tipo f ∈ C1, r ∈ C1, x ∈
4
5
C1, u ∈ C0 por partes. Neste trabalho assumimos a existencia de uma unica solucao. Nos
exemplos a serem considerados no proximo capıtulo, a solucao exata e conhecida.
Em geral, encontrar analiticamente uma solucao exata de um problema de contro-
le otimo com restricoes e muito difıcil e metodos numericos sao necessarios. No entanto,
quando o problema de controle otimo nao tem restricoes, o Princıpio de Maximo de
Pontryagin e uma ferramenta muito util para procurar solucoes exatas.
Como em [22], considera-se o caso de problema de controle otimo sem restricoes
para apresentar a correspondente discretizacao pseudoespectral LGR.
Pode-se formular o problema de controle otimo descrito acima, segundo [11], por
minimizar∫ tft0r(x(t), u(t))dt
sujeito a u ∈ Ux(t) = f(x(t), u(t))
x(t0) = x0
x(tf ) = xf .
(1.2)
No problema acima, os instantes de tempo inicial e final sao dados (problema de
tempo fixo), porem, ha problemas em que o tempo final e uma das incognitas no problema
de controle otimo (problemas de tempo livre) ou as vezes o tempo tf e dado mas xf (o
estado final) e desconhecido (problema de tempo fixo com estado final variavel) [18]. Este
trabalho restringe-se nos problemas de tempo fixo. Para mais detalhes consultar [31] e
[11, Cap.10].
Neste capıtulo sera apresentado um dos principais resultados na teoria de con-
trole otimo, o Princıpio do Maximo de Pontryagin, que neste trabalho sera utilizado
para obter a solucao exata de um problema de controle otimo. Em seguida, para se
obter a solucao aproximada deste problema, apresenta-se um metodo pseudoespectral,
que consiste na parametrizacao do estado e do controle utilizando polinomios de Legendre
em conjunto com a discretizacao com pontos de colocacao LGR - Legendre Gauss Radau.
Sao discutidas as condicoes de otimalidade de Karush-Kuhn-Tucker (KKT) associadas ao
problema discretizado e mostra-se que este metodo pseudoespectral pode ser visto como
um metodo de integracao global implıcito. Por fim, apresenta-se o metodo de Euler, um
metodo alternativo, para obter uma solucao aproximada.
1.1 Princıpio do Maximo de Pontryagin
O princıpio de Pontryagin estabelece um conjunto de condicoes para que uma
curva seja solucao de um problema de controle otimo. Esse princıpio se expressa em
termos da funcao H : IRn × IRn × IRm → IR definida por
H(x, p, u) = 〈f(x, u), p〉+ r(x, u),
6
onde f : IRn × IRm → IRn, r : IRn × IRm → IR (as mesmas funcoes dadas no problema do
controle otimo) e p ∈ IRn. Essa funcao e conhecida como Hamiltoniano de Pontryagin.
O teorema abaixo, que e baseado em [11, Teorema 178] e [18, Teorema 4.3], e
apresentado de uma forma conveniente para que, na obtencao da solucao exata de um
problema de controle otimo, se possa utiliza-lo diretamente.
Teorema 1.1 - Princıpio do Maximo de Pontryagin Considere um sistema de con-
trole otimo, sendo u = ω(t) o controle e x = γ(t) a trajetoria correspondente. Se
(γ(t), ω(t)) e uma solucao otima entao existe uma funcao µ : [0, tf ] → IRn tal que, para
todo t ∈ [0, tf ] vale que:
• A curva p = µ(t) satisfaz
µi = −∂H∂xi
(γ(t), µ(t), ω(t)),
• A trajetoria x = γ(t) satisfaz
γi = −∂H∂pi
(γ(t), µ(t), ω(t)),
• O controle u = ω(t) maximiza o Hamiltoniano, ou seja,
maxu∈U
H(γ(t), µ(t), u) = H(γ(t), µ(t), ω(t)).
Demonstracao. [11, Apendice B].
Utiliza-se o princıpio do maximo para determinar a solucao de um problema.
1.2 Metodo Pseudoespectral usando Pontos Legen-
dre Gauss Radau
Nesta secao estuda-se a formulacao do metodo pseudoespectral usando pontos
LGR - Legendre Gauss Radau, proposto em [22] para resolver o problema de controle
otimo (1.2). Inicialmente o problema e discretizado, tendo como referencia [8]. Em
seguida, as condicoes de KKT sao estabelecidas para o problema discretizado, seguindo
uma abordagem diferente, mas equivalente, a apresentada em [22]. Enquanto em [22] faz-
se o uso do Lagrangeano, aqui opta-se pela forma discutida no Apendice A.3.2, ou seja,
encontram-se as condicoes de otimalidade relacionando o oposto do gradiente da funcao
objetivo com o gradiente das restricoes do problema e da condicao inicial com relacao a
cada uma de suas variaveis. Cabe ressaltar que ambas as abordagens sao equivalentes.
Por fim, mostra-se que a restricao do problema tem uma formulacao equivalente atraves
7
de integrais, mostrando que este metodo pseudoespectral pode ser visto como um metodo
de integral global implıcito.
1.2.1 Fundamentacao
Pontos de colocacao LGR
Um dos objetivos deste trabalho e discretizar um problema para que se possa
encontrar sua solucao aproximada atraves de um metodo de colocacao, que consiste em
encontrar a solucao numerica de equacoes diferenciais ordinarias, equacoes diferenciais
parciais e equacoes integrais. A ideia e escolher um espaco de dimensao finita de solucoes
canditadas, que sao obtidas, geralmente, atraves de polinomios aplicados em uma quanti-
dade de pontos no domınio, chamados de pontos de colocacao. A discretizacao proposta
por [22] utiliza pontos de colocacao Legendre-Gauss-Radau (LGR).
Alem do conjunto de pontos de colocacao LGR, outros dois conjuntos sao apresen-
tados em [22] e muito utilizados: Lengendre-Gauss(LG) e Legendre-Gauss-Lobatto(LGL).
Esses tres conjuntos de pontos sao obtidos a partir de raızes de um polinomio de Legendre
e\ou combinacoes lineares desses polinomios e suas derivadas.
O polinomio de Legendre de grau n, Pn, e dado por:
Pn(x) =
[n/2]∑k=0
(−1)k(2n− 2k)!
2nk!(n− k)!(n− 2k)!xn−2k, (1.3)
onde
[n/2] =
n
2se n e par
n− 1
2se n e ımpar.
Ha algumas relacoes entre os polinomios de Legendre Pn com valores de n con-
secutivos e tambem entre os Pn e suas derivadas. Estas relacoes de recorrencia permitem
obter um novo Pn ou relacionar derivadas, a partir de outros. Apresentam-se a seguir
algumas destas relacoes de recorrencia. Os detalhes podem ser consultados em [6]. A
primeira relacao, bastante utilizada, permite obter um polinomio a partir de outros dois
de menor ordem,
nPn(u) = (2n− 1)uPn−1(u)− (n− 1)Pn−2(u). (1.4)
A proxima, relaciona o polinomio e as derivadas de polinomios consecutivos
uP ′n(u)− P ′n−1 = nPn(u). (1.5)
Por fim, tem-se a relacao de polinomio com a derivada de outros dois
(2n+ 1)Pn(u) = P ′n+1(u)− P ′n−1(u). (1.6)
8
Por (1.3), P0(u) = 1 e P1(u) = u. A relacao (1.4) permite a obtencao rapida de
P2(u) = 32u2 − 1
2, a seguir P3(u) = 5
2u3 − 3
2u, e assim por diante. Geralmente, esse e o
processo usado em computacao, para se evitar os fatoriais de ordem alta, sendo que estes
tem grande custo computacional.
A figura abaixo mostra os polinomios de Legendre de graus 0, 1, 2 e 3.
−1.5 −1 −0.5 0 0.5 1 1.5−4
−3
−2
−1
0
1
2
3
4
t
Solu
çã
o
P0(u)
P1(u)
P2(u)
P3(u)
Figura 1.1: Polinomios de Legendre Pn(u).
O conjunto de N pontos de colocacao Legendre-Gauss-Radau (LGR), Lengendre-
Gauss(LG) e Legendre-Gauss-Lobatto(LGL) sao definidos no domınio [−1, 1] como:
LG : raızes de PN ;
LGR : raızes de PN−1 + PN ;
LGL : raızes de PN juntamente com os pontos− 1 e 1,
onde PN denota a derivada do polinomio de Legendre PN . Note que os pontos de LG
nao incluem nenhum dos extremos do intervalo [−1, 1], os pontos LGR incluem um dos
seus extremos, e os pontos LGL incluem ambas as extremidades do intervalo. Outra dife-
renca e que os pontos de LGR, ao contrario dos outros dois conjuntos, sao relativamente
assimetricos em relacao a origem. Neste trabalho concentra-se a atencao nos pontos LGR.
Forma de Lagrange do Polinomio de Interpolacao
Interpolar uma funcao f consiste em aproximar essa funcao por uma outra funcao
g, escolhida entre uma classe de funcoes definida a priori e que satisfaca algumas propri-
edades. A necessidade de se fazer esta aproximacao surge em varias situacoes, como por
exemplo, quando sao conhecidos somente os valores numericos da funcao f para um con-
junto de pontos e e necessario calcular o valor da funcao em um ponto que nao se saiba
seu valor ou ainda quando a funcao f tem uma expressao tal que operacoes como a di-
ferenciacao e a integracao sao difıceis, ou impossıveis, de serem realizadas. Considera-se
9
aqui o caso de interpolacao polinomial [27] ou seja em que a funcao e aproximada por um
polinomio.
Dados n pontos (x1, f(x1)), ..., (xn, f(xn)), o objetivo e aproximar f por um po-
linomio pn−1, de grau menor ou igual a n− 1, tal que, para k = 1, 2, ..., n:
f(xk) = pn−1(xk).
Teorema 1.2 Existe um unico polinomio pn−1, de grau menor ou igual a n− 1, tal que,
para k = 1, 2, ..., n
pn−1(xk) = f(xk),
desde que xk 6= xj, j 6= k.
Demonstracao. [27, Teo.8.1].
Considere que os n pontos x1, . . . , xn pertencem a um intervalo (a, b). Considere f
contınua e sendo n vezes diferenciavel nos n pontos no intervalo (a, b). Denote yi = f(xi)
para i = 1, . . . , n. Seja pn−1 o polinomio de grau menor ou igual a n − 1 que interpola
f em x1, . . . , xn. Pode-se representar pn−1 na forma pn−1(x) = y1`1(x) + ... + yn`n(x),
onde os polinomios `k sao de grau n − 1. Para cada i, a condicao pn−1(xi) = yi deve ser
satisfeita, ou seja
pn−1(xi) = y1`1(xi) + ...+ yn`n(xi) = yi.
A forma mais simples de se satisfazer esta condicao e impor
`k(xi) =
0 se k 6= i
1 se k = i,
e assim define-se `k(x) por
`k(x) =n∏
j=1j 6=k
x− xjxk − xj
que satisfaz a condicao acima. Como o numerador de `k(x) e um produto de n−1 fatores,
entao `k e um polinomio de grau n− 1 e alem disso, para x = xi com i = 1, . . . , n tem-se
pn−1(xi) =n∑k=1
yk`k(xi) = yi`i(xi) = yi.
Entao, a forma de Lagrange para o polinomio interpolador e
pn−1(x) =n∑k=1
yk `k(x). (1.7)
10
onde yk = f(xk) e `k(x) =n∏
j=1j 6=k
x− xjxk − xj
.
1.2.2 Discretizacao do problema
O objetivo aqui e discretizar o problema de controle otimo (1.2), e para isto
utilizam-se os pontos de colocacao LGR, que sao pontos definidos no domınio [−1, 1],
como visto na Secao 1.2.1. Note que o problema (1.2) esta definido em um intervalo [t0, tf ],
o qual pode ser facilmente transformado no intervalo [−1, 1], atraves da transformacao
afim
t =tf − t0
2τ +
t0 + tf2
, (1.8)
para t ∈ [t0, tf ] e τ ∈ [−1, 1]. Derivando a igualdade (1.8) tem-se que
dt
dτ=tf − t0
2,
e pela regra da cadeia,dx
dt=dx
dτ
dτ
dt=
2
tf − t0dx
dτ. (1.9)
De (1.8) e (1.9), o problema (1.2) pode ser reescrito em funcao da nova variavel da seguinte
formaminimizar
∫ 1
−1 r(x(τ), u(τ))dτ
sujeito adx
dτ=tf − t0
2f(x(τ), u(τ))
x(−1) = x0
x(1) = xf .
(1.10)
Discretizacao da condicao diferencial
O intervalo [−1, 1] e discretizado considerando N pontos de colocacao LGR,
τ1, τ2, · · · , τN ∈ [−1, 1], com τ1 = −1 e τN < 1, vistos na Secao 1.2.1.
Utilizando (1.7), a j-esima componente de estado e aproximada por uma soma
da forma:
xj(τ) ≈N∑i=1
xij `i(τ) (1.11)
onde `i(τ) =N∏
m=1j 6=i
τ − τmτi − τm
, para i = 1, · · · , N, sao polinomios de Lagrange. Derivando a
aproximacao em relacao a τ tem-se que
dxjdτ
(τ) ≈N∑i=1
xijd`idτ
(τ). (1.12)
11
Avaliando (1.12) em τk e denotando ˙i(τk) = Dki, tem-se
xj(τk) ≈N∑i=1
Dki xij. (1.13)
A matriz DN×N = [Dki] cujo elemento (k, i) e dado por
Dki = ˙i(τk) (1.14)
e chamada de Matriz de Diferenciacao.
Agora seja XN×n a matriz formada pelos coeficientes xij de (1.11). Multiplicando
a matriz D por X, tem-se uma matriz [DX]N×n. Por (1.13) o elemento (i, j) dessa matriz
pode ser visto como
[DX]ij ≈ xj(τi). (1.15)
Seja UN×m = [uij] uma matriz cujo elemento (i, j) denota a aproximacao discreta
para a j-esima componente de controle avaliada no i-esimo ponto de colocacao, ou seja,
uij ≈ uj(τi).
A seguir um lema que permitira relacionar a linha da matriz X com x(τ).
Lema 1.3 Para todo i = 1, . . . , N , a i-esima linha Xi da matriz X contem as componen-
tes da aproximacao discreta x(τi)T .
Demonstracao. Lembrando que `i(τ) =N∏
m=1j 6=i
τ − τmτi − τm
tem-se que,
`i(τk) =
0 se i 6= k
1 se i = k
e por (1.13) conclui-se que a j-esima componente de x(τi)T e xij, que e exatamente a
j-esima componente de Xi.
Considere agora a matriz
F (X,U)N×n = [Fij(X,U)] = [fj(Xi, Ui)], (1.16)
onde fj e a j-esima componente da restricao do problema (1.10). Pelo Lema 1.3, (1.10) e
1.15 conclui-se que
DX =tf − t0
2F (X,U). (1.17)
Discretizacao da funcao custo
A funcao custo do problema (1.2) envolve uma integral. Recorre-se entao as
tecnicas de integracao numerica. Nesta secao apresenta-se a regra da quadratura, que
pode ser vista com detalhes em [9, Cap.4].
12
A ideia basica da quadratura consiste em escrever uma aproximacao da integral de
uma funcao, geralmente estabelecida como um somatorio com pesos dos valores assumidos
pela funcao em pontos especıficos dentro do domınio de integracao.
Uma regra de quadratura de N pontos e construıda para produzir um resultado
exato para polinomios de grau 2N − 1 ou menor para uma escolha adequada dos pesos
wi para i = 1, ..., N associado a cada ponto. O domınio de integracao de tal regra e
por convencao tomado como [−1, 1]. Sejam wi, com 1 ≤ i ≤ N , os pesos da quadratura
associados com os pontos LGR. Esses pesos tem a seguinte propriedade
∫ 1
−1P(τ)dτ =
N∑i=1
wiP(τi) (1.18)
para qualquer polinomio P de grau no maximo 2N − 2. Por [1], os pesos associados a
cada valor de P (τi) sao calculados por
wi =
∫ 1
−1
N∏k=1k 6=i
(τ − τkτi − τk
)dτ. (1.19)
Assim, usando (1.17), o problema (1.10) e escrito na forma discretizada como
minimizarN∑i=1
wi r(Xi, Ui))
sujeito a DX =tf − t0
2F (X,U)
X1 = x0
XN+1 = xf
(1.20)
onde XN+1 refere-se a variavel de estado no ponto τN+1 = 1.
1.2.3 Condicoes de Karush-Kuhn-Tucker
Como em [22], considere o problema na forma
minimizar Φ(x(1))
sujeito a dxdτ
= f(x(τ), u(τ)
x(−1) = x0,
(1.21)
e em sua forma discretizada
minimizar Φ(XN+1)
sujeito a DX = F (X,U)
X1 = x0.
(1.22)
13
Nesta secao sao desenvolvidas as condicoes de KKT (ver Apendice A.3.2) para o problema
(1.22) de uma maneira distinta de [22]. Considere Λ ∈ IRN×n a matriz composta pelos
multiplicadores de Lagrange associados as restricoes do problema (1.22) e seja o vetor
linha µ ∈ IRn composto pelos multiplicadores de Lagrange associados a condicao inicial
X1 = x0. Assim, tem-se
• Gradiente da funcao objetivo com relacao a X.
∇XΦ(XN+1) =(eN+1 ⊗∇Φ(XN+1)
T)(N+1).n×1 .
• Gradiente da funcao objetivo com relacao a U
∇UΦ(XN+1) = 0.
• Produto do multiplicador de Lagrange Λ ∈ IRN×n pelo gradiente da restricao
F (X,U)−DX = 0.
– Gradiente de DX em relacao a X.
(∇D(X))TΛ =N∑j=1
N∑k=1
DjkEkΛTj ,
onde Ek = ek ⊗ In.
– Gradiente de DX em relacao a U : nulo.
– Gradiente de F (X,U) em relacao a X
(∇XF (X,U))TΛ =N∑i=1
ei ⊗(∇Xf(Xi, Ui)Λ
Ti
).
– Gradiente de F (X,U) em relacao a U .
(∇UF (X,U))TΛ =N∑i=1
ei ⊗(∇Uf(Xi, Ui)Λ
Ti
).
• Produto do multiplicador µ ∈ IRn pelo gradiente de x0 −X1 = 0.
(∇XX1)Tµ = e1µ.
14
Com todas as parcelas apresentadas, pode-se expressar as condicoes de KKT do problema
(1.22):
N∑j=1
Dj1Λj = Λ1∇Xf(X1, U1)T − µ; (1.23)
N∑j=1
DjkΛj = Λk∇Xf(Xk, Uk)T , 2 ≤ k ≤ N ; (1.24)
∇φ(XN+1) = DTNΛ; (1.25)
Λk∇Uf(Xk, Uk)T = 0, 1 ≤ k ≤ N. (1.26)
Mas as igualdades (1.23) e (1.24) podem ser reescritas de forma conjunta como
DT1:NΛ = ∇X 〈Λ, F (X,U)〉 − e1µ. (1.27)
Seja Dj:k a submatriz de D formada pelas colunas j ate k e seja Xj:k a submatriz
de X formada pelas linhas de j ate k. Utilizando essa forma, as restricoes do problema
(1.22) podem ser escritas como
D2:NX2:N = F (X,U)−D1x0. (1.28)
O proximo resultado garante que a matriz D2:N , obtida pela omissao da primeira
coluna matriz D tem inversa.
Proposicao 1.4 A matriz D2:N obtida deletando a primeira coluna de D e invertıvel.
Demonstracao. Tome p′ ∈ IRN−1 nao nulo e considere p = (0, p′) ∈ IRN . Suponha agora
que Dp = 0. Mostra-se que D2:Np′ = 0 admite apenas solucao trivial e assim que D2:N e
nao-singular.
Seja P um polinomio de grau N tal que P(τk) = pk para 1 ≤ k ≤ N , onde pk e o
k-esimo elemento de p, ou seja, o polinomio escolhido deve ter a forma P(τ) =N∑k=1
pk`(τ).
Note que para i = 1, . . . , N
(Dp)i =N∑k=1
Dikpk =N∑k=1
pk ˙k(τi) = P(τi),
ou seja, cada componente de Dp e a derivada de P avaliada nos pontos de colocacao. Por
hipotese Dp = 0, e assim (Dp)i = 0 para todo i = 1, . . . , N , logo
P(τi) = 0.
Por P ser um polinomio de grauN−1 e se anular emN pontos segue que P e identicamente
nulo e portanto P e um polinomio constante. Como P(τN) = pN = 0 segue que P e um
15
polinomio identicamente nulo. Ou seja, se Dp = 0, com a primeira coordenada de p
nula, que e equivalente a ter D2:N p′ = 0 isto implica que p = 0, ou seja, p′ = 0 e assim
D2:N p′ = 0 admite apenas a solucao trivial e desta forma D2:N e nao-singular.
1.2.4 Sistema Adjunto Transformado
Agora reformula-se as condicoes de KKT do problema (1.22), utilizando os pesos
da discretizacao, de modo que se tornem condicoes transformadas para o problema (1.21).
Desta forma, tem-se as condicoes de KKT para o problema contınuo e para o problema
discreto.
Seja W ∈ RN×N matriz diagonal cujos elementos sao wi. Seja λ ∈ IRN×n definido
por
λ = W−1Λ. (1.29)
A fim de relacionar as equacoes discretas as equacoes contınuas, utiliza-se uma matriz
D+ ∈ IRN×N , uma versao modificada de D definida como:
D+11 = −D11 −
1
w1
e D+ij = −wj
wiDji. (1.30)
Usando (1.24), (1.29), (1.30), tem-se para i = 2, . . . , N ,
Λi∇Xf(Xi, Ui) =N∑j=1
DjiΛj =N∑j=1
−wiwjD+ijΛj = −
N∑j=1
wiD+ijλj.
Pela igualdade acima e (1.29), tem-se
N∑j=1
D+ijλj = −Λi
wi∇Xf(Xi, Ui) = −λi∇Xf(Xi, Ui). (1.31)
Por outro lado, usando (1.23), (1.29) e (1.30), obtem-se:
Λ1∇Xf(X1, U1)− µ =N∑j=1
Dj1Λj.
= D11Λ1 +N∑j=2
Dj1Λj
=
(−D+
11 −1
w1
)Λ1 +
N∑j=2
−w1
wjD+
1jΛj
= −D+11Λ1 − λ1 −
N∑j=2
D+1jw1λj.
16
Dividindo ambos os membros da igualdade por w1 e usando (1.29) tem-se
−D+11λ1 −
λ1w1
−N∑j=2
D+1jλj = λ1∇Xf(X1, U1)−
µ
w1
,
donde segue queN∑j=1
D+1jλj = −λ1∇Xf(X1, U1) +
1
w1
(µ− λ1), (1.32)
que e analoga a (1.23).
Para cada i = 1, . . . , N , dividindo a igualdade (1.26) por wi e usando (1.29),
resulta que
λi∇Uf(Xi, Ui) = 0. (1.33)
Agora discute-se a igualdade (1.25). Tome um polinomio P tal que P(τi) = 1,
para 1 ≤ i ≤ N . Pela definicao dos polinomios de Lagrange discutidos na Secao 1.2.1,
tem-se que P(τ) = 1 para todo τ , e assim P(τ) = 0. Considere v ∈ IRN um vetor de
componentes unitarias e (Dv)k a k-esima componente do produto Dv. Assim
(Dv)k =N∑i=1
Dkivi =N∑i=1
Dki =N∑i=1
˙i(τk) = P(τk) = 0.
Consequentemente 0 = Dv =N∑j=1
Dj =N−1∑j=1
Dj +DN . Logo
DN = −N−1∑j=1
Dj. (1.34)
Utilizando (1.34) tem-se
DTNΛ =
N∑i=1
ΛiDi,N = −N∑i=1
N∑j=1
ΛiDij.
Com (1.30) e fazendo mudanca de ındices vem que
−N∑i=1
N∑j=1
ΛiDij =Λ1
w1
+N∑i=1
N∑j=1
ΛiD+ji
wjwi
=Λ1
w1
+N∑i=1
N∑j=1
ΛjD+ij
wiwj.
17
Utiliza-se (1.29) e se isola λ1 de (1.32) daı
Λ1
w1
+N∑i=1
N∑j=1
ΛjD+ij
wiwj
= λ1 +N∑i=1
N∑j=1
wiλjD+ij
=
(−w1
N∑j=1
D+1jλj − λ1w1∇Xf(X1, U1) + µ
)+
N∑i=1
N∑j=1
wiλjD+ij .
Finalmente, com (1.31) e reorganizando as contas segue que(−w1
N∑j=1
D+1jλj − λ1w1∇Xf(X1, U1) + µ
)+
N∑i=1
N∑j=1
wiλjD+ij = −λ1w1∇Xf(X1, U1) + µ
+N∑i=2
(−λiwi∇XF (Xi, Ui))
= µ−N∑i=1
λiwi∇Xf(X1, Ui).
Tem-se, finalmente, as condicoes transformadas de KKT:
µ = ∇Φ(XN+1) +N∑i=1
wiλi∇Xf(Xi, Ui)
D+λ = −∇X 〈λ, F (X,U)〉+1
w1
e1(µ− λ1)
∇U 〈λ, F (X,U)〉 = 0.
Considere agora o seguinte resultado.
Teorema 1.5 [22, Teo.1] Considere P um polinomio de grau no maximo N − 1, com
N ≥ 1, e p ∈ IRN um vetor cuja i-esima componente e dada por pi = P(τi). Se D+
satisfaz, para todo i = 1, . . . , N ,
(D+p)i = P(τi),
entao D+ e a matriz de diferenciacao para o espaco de polinomios de grau N − 1 definida
em (1.30).
Demonstracao. Sejam P um polinomio de grau no maximo N com P(1) = 0 e Q um
polinomio de grau no maximo N − 1, com N ≥ 1. Usando integracao por partes, vale a
seguinte igualdade∫ 1
−1P(τ)Q(τ)dτ = −P(−1)Q(−1)−
∫ 1
−1P(τ)Q(τ)dτ. (1.35)
Note que, PQ e PQ sao polinomios de grau no maximo 2N − 2. Assim, pela Secao
18
1.2.2, a quadratura de Gauss e exata e consequentemente as integrais em (1.35) podem
ser substituıdas por suas quadraturas equivalentes, ou seja,
N∑j=1
wj pjqj = −p1q1 −N∑j=1
wjpj qj,
onde pj = P(τj) e pj = P(τj). De forma compacta, isto pode ser reescrito como
(Wp)T q = −p1q1 − (Wp)T q.
Substituindo p = D1:Np e q = D+q,
pTDT1:NWq + p1q1 + pTWD+q = 0
e assim,
pT(DT
1:NW +WD+ + e1eT1
)q = 0.
Como p e q foram tomados arbitrariamente, ou seja, essa igualdade deve ser satisfeita
para quaisquer p e q segue que
DT1:NW +WD+ + e1e
T1 = 0,
que implica (1.30).
1.2.5 Formulacao Integral
Nesta secao mostra-se que a discretizacao pseudoespectral da equacao de estado,
ou seja, da restricao do problema (1.22), tem uma formulacao equivalente atraves de
integrais.
Por (1.34) tem-se que D1 +D2 + · · ·+DN = 0 entao, se v e um vetor de compo-
nentes unitarias vale que
D1 = −N∑j=2
Dj = −D2:Nv. (1.36)
Pela Proposicao 1.4 a matriz D2:N e invertıvel entao
D−12:ND1 = −v. (1.37)
Seja P um polinomio qualquer de grau no maximo N . Por D ser a matriz de
diferenciacao dos polinomios de grau N tem-se que Dp = p onde pi = P(τi) e pi = P(τi)
19
para 1 ≤ i ≤ N . Entao,
p = Dp =N∑i=1
Dipi = D1p1 +D2:Np2:N ,
multiplicando por D−12:N tem-se
D−12:N p = D−12:ND1p1 + p2:N .
Utilizando (1.37), para i = 2, . . . , N vem que
pi = p1 + (D−12:N p)i. (1.38)
Agora obtem-se uma expressao diferente para p1 − pi baseado na integracao da
interpolacao da derivada. Seja `+j , para j = 1, . . . , N o polinomio de Lagrange interpolador
associado aos pontos de colocacao:
`+j =N∏
m=1m 6=j
τ − τmτj − τm
.
Dado um polinomio P de grau no maximo N , sua derivada P e um polinomio de
grau no maximo N − 1. Assim P pode ser interpolado exatamente pelos polinomios de
Lagrange `+j :
P(τ) =N∑j=1
pj`+j .
Integrando essa igualdade de −1 a τi tem-se
∫ τi
−1P(τ)dτ =
N∑j=1
pj
∫ τi
−1`+j (τ)dτ ,
pelo teorema fundamental do calculo e denotando∫ τi−1 `
+j (τ)dτ = Aij, para i = 2, . . . , N
vem que
P(τi)− P(−1) =N∑j=1
pjAij (1.39)
ou seja,
pi − p1 = (Ap)i. (1.40)
As relacoes (1.38) e (1.40) sao satisfeitas para qualquer polinomio de grau no
maximo N . Escolha um polinomio P tal que P(1) = 0, ou seja, p1 = 0. Daı por (1.38)
20
tem-se que pi = (D−12:N p)i e por (1.40) tem-se pi = (Ap)i e assim segue que
D−12:N p = Ap.
Tomando p como a i-esima coluna da matriz identidade na igualdade acima, conclui-se
que, para todo i = 1, . . . , N − 1, a i-esima coluna de D−12:N e igual a i-esima coluna da
matriz A, ou seja,
A = D−12:N .
Sabendo isso, multiplicando a equacao (1.28) por A, e usando (1.37), para i = 2, . . . , N ,
se obtem
Xi = x0 + AiF (X,U) (1.41)
onde Ai e a i-esima linha de A.
Assim, a forma diferencial da equacao de estado DX = F (X,U) e equivalente a
forma integrada (1.41), onde os elementos de A sao integrais do polinomio interpolador
de Lagrange `+j , enquanto os elementos de D sao as derivadas do polinomio de Lagrange
`i.
Para resumir, o que se tem em (1.41) e uma equacao que esta na forma de um
metodo de integracao global implıcito, enquanto a aproximacao DX = F (X,U) esta na
forma de um metodo pseudoespectral.
O fato de que a integral ou a forma diferencial poder ser usada, mostra que o
metodo de colocacao Radau pode ser visto como um metodo de integracao global implıcito
ou um metodo pseudoespectral. Em particular, usando a forma pseudoespectral dos
pontos de colocacao LGR, resulta num sistema de equacoes que nao tem qualquer perda
de informacao quando se passa para a forma integral.
1.3 Metodo de Euler
Esta secao, que tem [2, Sec. 3.1] como principal referencia, apresenta o metodo
de Euler para obtencao de uma solucao numerica do problema (1.2). O metodo de Euler
e baseado no Teorema de Taylor [26].
O intervalo de tempo [t0, tf ] e discretizado em (N − 1) subintervalos, de modo
que:
t0 ≡ t1 < t2 < · · · < tN ≡ tf .
Definindo as amplitudes de cada subintervalo i = 1, · · · , N−1 por hi = ti+1−ti, a variavel
de estado x(t) ∈ IRn e expandida, segundo Taylor, como
x(ti+1) = x(ti + hi) = x(ti) + hidx
dt(ti) +
h2i2
d2x
dt2(ςi),
para algum ςi ∈ [ti, ti+1]. Assim, para valores suficientemente pequenos de hi, tem-se a
21
seguinte aproximacaodx
dt(ti) ≈
x(ti+1)− x(ti)
hi.
Como o estado x satisfaz a equacao diferencial do problema (1.2) tem-se que
x(ti+1)− x(ti)
hi= f(x(ti), u(ti)),
para hi suficientemente pequeno.
Tomando-se amplitude h > 0 constante suficientemente pequena para todos os
subintervalos e denotando x(tk) por xk e u(tk) por uk, a condicao diferencial acima e
escrita da seguinte forma,
f(xk, uk) =xk+1 − xk
h, (1.42)
para todo k = 1, · · · , N − 1. Analogamente, segundo [2], a discretizacao da funcao custo
do problema (1.2) e dada porN−1∑k=0
r(xk, uk)h.
Assim o problema (1.2) e discretizado, segundo o metodo de Euler, como
minimizarN−1∑k=1
r(xk, uk)h
sujeito a f(xk, uk) =xk+1 − xk
hparak = 1, · · · , N − 1
x(t1) = x1
x(tN) = xN .
(1.43)
A resolucao deste problema de otimizacao leva a uma solucao numerica do problema
original. No proximo capıtulo, veremos um exemplo particular.
1.4 Outros metodos
Dois metodos de colocacao LGR sao apresentados em [14] e [15]. O metodo de
Kameswaran e Biegler em [15] concentra-se na colocacao local usando pontos LGR. O
metodo de Fahroo e Ross em [14] descreve um metodo global para resolver problemas
de horizonte infinito. Nesta secao, um breve comentario sobre a forma como o metodo
apresentado neste trabalho refere-se a estes trabalhos.
1.4.1 Comparacao com o metodo de Kameswaran e Biegler
O metodo pseudoespectral abordado neste trabalho tem semelhancas com o metodo
de Kameswaran e Biegler ([15]). A aproximacao para a variavel de estado usa tambem
os polinomios de Lagrange. E observado, no entanto, que o metodo de Kameswaran e
22
Biegler usa colocacao local, utilizando varios subintervalos. O grau dos polinomios em
cada subintervalo e fixo e a convergencia e conseguida atraves do aumento do numero de
subintervalos. O metodo aqui tratado e um metodo de colocacao global, em que ha um
unico intervalo e a convergencia e alcancada atraves do aumento do grau de polinomios,
ou seja, no aumento do N , dos pontos de colocacao, como visto pela Secao 1.2.1. O
metodo de Kameswaran e Biegler e implementado de uma forma semelhante ao metodo
de Euler tratado na Secao 1.3 (devido ao fato de que o intervalo de tempo e dividido em
subintervalos), enquanto que o metodo do presente trabalho e implementado na forma
de um metodo pseudoespectral. Nota-se que ambas as abordagens sao validas, mas a
abordagem atual, segundo [22], e usada com mais frequencia na literatura de controle.
1.4.2 Comparacao com o metodo de Fahroo e Ross
Na abordagem pseudoespectral Lobatto como descrito em [21], a variavel de es-
tado e aproximada por polinomios de grau N − 1 e a dinamica do sistema e discretizado
com N pontos de quadratura Lobatto. Para o problema de controle do horizonte infinito
estudado em [14], Fahroo e Ross propoem utilizar uma mudanca de variaveis para trans-
formar o intervalo de tempo infinito para o intervalo [−1,+1). Esta mudanca de variaveis
leva a uma singularidade na dinamica no ponto τ = +1. Desta forma, nao e possıvel
utilizar τ = +1 como um ponto de colocacao. Para lidar com essa singularidade, Fahroo
e Ross propoem discretizar nos pontos de quadratura Radau para τ = N < 1.
A diferenca fundamental entre o metodo pseudoespectral em [14] e o metodo pre-
visto neste trabalho e que, em [14], a variavel de estado e aproximada por polinomios
de grau N − 1, enquanto que neste trabalho, a variavel de estado e aproximada usando
polinomios de grau N . Esta mudanca no grau dos polinomios leva a diferencas fundamen-
tais entre os dois esquemas. Por exemplo, uma vez que os polinomios de Lagrange sao
de diferentes graus, as matrizes de diferenciacao sao completamente diferentes. A matriz
utilizada na diferenciacao em [14] e singular, enquanto que a matrize D2:N , segundo a Pro-
posicao 1.4, e invertıvel. Se o controle e o estado inicial x0 sao dados, entao a dinamica
discretizada do problema [14] e um sistema de N equacoes e de N − 1 incognitas, X2:N .
Em contraste, 1.28 e um sistema de N − 1 equacoes com N − 1 incognitas, X2:N , onde a
matriz de coeficientes D2:N e invertıvel.
Na abordagem de [14], XN+1, a estimativa da variavel de estado em τ = 1, e
removido do problema usando polinomios de grau N−1 em vez de polinomios de grau N .
Na abordagem aqui apresentada, a variavel de estado e aproximada em τi, 1 ≤ i ≤ N + 1.
Assim, XN+1, a estimativa do estado, e uma variavel incluıda no esquema pseudoespectral.
Avaliar o estado em τ = +1 e util quando a funcao objetivo depende do estado no
momento final, ou quando ha uma restricao de ponto final, como era o caso do problema
abordado neste trabalho.
23
1.5 Problema de Bolza
No proximo capıtulo resolve-se um problema que e chamado de problema de
Bolza. Para mais detalhes sobre esse tipo de problema consultar [5]. O problema de
Bolza pode ser formulado de diversas maneiras, cada uma das quais tem as suas vantagens
peculiares e desvantagens. Uma das formulacoes mais uteis pode ser descrita brevemente
como segue:
Determinar o estado x(τ) ∈ IRn, o controle u(τ) ∈ IRm, o tempo incial t0 e tempo
final tf que encontre um mınimo local do seguinte problema
minimizar J = Φ(x(−1), t0, x(1), tf ) +tf − t0
2
∫ 1
−1 g(x(τ), u(τ), τ)dτ
sujeito adx
dτ=
tf−t02f(x(τ), u(τ), τ) ∈ IRn
φ(x(−1), x(1)) = 0 ∈ IRq
C(x(τ), u(τ)) ≤ 0 ∈ IRc.
(1.44)
Quando Φ = 0 o problema e o chamado problema de Lagrange e quando g = 0
tem-se o problema geral de Mayer como formulado por Bliss em [5]. Estas tres versoes,
ou seja, o problema completo, o problema com Φ = 0 e o problema com g = 0, sao
equivalentes no sentido de que cada um pode ser transformado em qualquer um dos
outros dois tipos.
Destas tres versoes, o problema de Bolza formulado acima parece ser o mais
conveniente, pois possui todos os termos de forma explıcita. Para o presente trabalho
formula-se o problema utilizando uma aproximacao pseudoespectral LGR. E assim, o
problema de Bolza toma a seguinte forma:
minimizar Φ(X1, t0, XN+1, tf ) +tf − t0
2
N∑k=1
wkg(Xk, Uk, τk)
sujeito a DX =tf − t0
2F (X,U)
φ(X1, XN+1) = 0
C(Xk, Uk) ≤ 0 1 ≤ k ≤ N,
onde os w′ks sao dados por (1.19).
Capıtulo 2
Exemplos
Neste capıtulo consideram-se alguns problemas de controle otimo particulares que
sao resolvidos pelo metodo pseudoespectral utilizando pontos LGR discutido no capıtulo
anterior. Inicialmente, discute-se um problema de Bolza sem restricoes [2, 22] dito pro-
blema do regulador linear quadratico, conhecido pela abreviacao LQR, do ingles linear
quadratic regulator. Discute-se sua solucao exata e solucoes numericas utilizando o metodo
de Euler visto na Secao 1.3 e o metodo pseudoespectral visto na Secao 1.2. Em seguida,
sao discutidas as solucoes numericas de dois problemas de controle otimo com restricoes
nao lineares.
2.1 Exemplo 1
O primeiro exemplo e um problema do regulador linear quadratico, conhecido
pela abreviacao LQR, do ingles linear quadratic regulator que consiste em minimizar uma
funcao custo quadratica com tempos iniciais e finais fixos [2, pag. 126]. O funcional e
dado por
J =1
2x(tf )
TSx(tf ) +1
2
∫ tf
t0
(x(t)TQx(t) + u(t)TRu(t)
)dt,
sujeito a um sistema linear dinamico
dx
dt= Ax+Bu,
e as condicoes
x(t0) = x0, x(tf ) = xf .
O numero de estados e n, x(t) ∈ IRn, o numero de controles e m, u(t) ∈ IRm, tais que
S ∈ IRn×n, Q ∈ IRn×n, R ∈ IRm×m, A ∈ IRn×n e B ∈ IRn×m.
A solucao exata do problema [2] pode ser encontrada utilizando o Princıpio do
Maximo de Pontryagin, que faz recair no seguinte sistema
24
Exemplos 25
(x(t)
p(t)
)=
(A −BR−1BT
−Q −AT
)(x(t)
p(t)
),
onde p e a variavel de co-estado.
O controle otimo e definido por
u(t) = −R−1BTp(t).
O caso especıfico considerado aqui tem um unico estado e um unico controle de
modo que n = m = 1 e S,Q,R,A e B sao escalares. Em particular, tome S = 0 e
Q = R = A = B = 1. Alem disso, considere as condicoes de contorno: inicial x(t0) =√
2
e a condicao final x(tf ) = 1, com t0 = 0 e tf = 5. Assim, o problema considerado e dado
por
maximizar −∫ 5
0(x2(t) + u2(t)) dt
sujeito a x(t) = x(t) + u(t)
x(0) =√
2
x(5) = 1.
(2.1)
Aplicam-se as tecnicas discutidas no capıtulo anterior para obtencao da solucao
exata e de solucoes aproximadas para este problema.
2.1.1 Solucao Exata
A solucao exata do problema e obtida atraves da aplicacao do Princıpio do
Maximo de Pontryagin, como visto no Teorema 1.1.
Identificam-se os elementos do problema (2.1) com os elementos do problema de
controle otimo dado em (1.2) e com os elementos do Teorema 1.1. Para nao carregar a
notacao o argumento t e omitido, ou seja, escreve-se, por exemplo, x ao inves de x(t), e
assim para todas as variaveis que dependem de t. Assim, desta identificacao, tem-se
f(x, u) = x+ u,
r(x, u) = −x2 − u2,H(x, p, u) = f(x, u)p+ r(x, u).
Desta forma,
x = ∇pH(x, p, u) = f(x, u), (2.2)
p = −∇xH(x, p, u) = −∂f∂yp− ∂r
∂y= −p+ 2x, (2.3)
Hu(x, p, u) = 0 =∂f
∂up+
∂r
∂u= p− 2u. (2.4)
Exemplos 26
Das igualdades acima, tem-se o seguinte sistemax = x+ p
2
p = 2x− p
que pode ser escrito na forma matricial(x
p
)=
(1 1
2
2 −1
)︸ ︷︷ ︸
M
(x
p
).
A solucao deste sistema de equacoes diferenciais, como discutido na Secao A.2, e(x
p
)= eMt
(x0
p0
). (2.5)
Entao precisa-se calcular eMt e encontrar p0, e assim x e p estarao bem definidos. A
matriz M e uma matriz diagonalizavel, ou seja, como visto na Secao A.1.2, existe uma
matriz S tal que M = SDS−1 com D diagonal. Neste caso,
S =
(1 −1
2√
2− 2 2√
2 + 2
);D =
( √2 0
0 −√
2
);S−1 =
( √2+24
14√2√
2−24
14√2
).
Pela Proposicao A.6, eMt = SeDtS−1, onde
eDt =
(e√2t 0
0 e−√2t
).
Desta forma,
eMt =
(1 −1
2√
2− 2 2√
2 + 2
)(e√2t 0
0 e−√2t
)√
2 + 2
4
1
4√
2√2− 2
4
1
4√
2
.
Fazendo a multiplicacao das matrizes tem-se
eMt =
√
2 + 2
4e√2t +
2−√
2
4e−√2t e
√2t − e−
√2t
4√
2√2
2e√2t −√
2
2e−√2t 2−
√2
4e√2t +
2 +√
2
4e−√2t
.
Usando as condicoes iniciais x0 = x(0) =√
2 e x(5) = 1 em (2.5) tem-se que(1
p(5)
)= e5M
( √2
p0
).
Exemplos 27
Denotando
e5M =
(B11 B12
B21 B22
),
tem-se que
1 =√
2B11 + p0B12,
e assim, como B12 6= 0,
p0 =1−B11
√2
B12
.
Substituindo os valores de B11 e B12 e fazendo algumas manipulacoes algebricas conclui-se
que
p0 = p(0) =4√
2− (2√
2 + 4)e5√2 + (2
√2− 4)e−5
√2
e5√2 − e−5
√2
. (2.6)
Voltando em (2.5) e usando a condicao inicial x0 =√
2, tem-se que(x(t)
p(t)
)= eMt
( √2
p(0)
)
ou seja
x(t) =√
2
(√2 + 2
4e√2t +
2−√
2
4e−√2t
)+
(e√2t − e−
√2t
4√
2
)p(0) (2.7)
e
p(t) =√
2
(√2
2e√2t −√
2
2e−√2t
)+
(2−√
2
4e√2t +
2 +√
2
4e−√2t
)p(0),
com p(0) dado em (2.6). Da igualdade (2.4) segue que
u(t) =p(t)
2.
Assim a solucao do problema (2.1) ex(t) =
√2(√
2+24e√2t + 2−
√2
4e−√2t)
+(e√2t−e−
√2t
4√2
)p(0)
u(t) =
((2√
2− 4)e−5√2 + 2
√2− 2
2e5√2 − 2e−5
√2
)e√2t +
(−(2√
2 + 4)e5√2 + 2
√2 + 2
2e5√2 − 2e−5
√2
)e−√2t
(2.8)
A Figura 2.1 exibe graficamente o controle u e a variavel de estado y = x2.
Exemplos 28
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5−4
−3
−2
−1
0
1
2
t
Solu
ção
y(t)
u(t)
Figura 2.1: Solucao exata do problema.
2.1.2 Solucao aproximada pelo metodo pseudoespectral
Nesta secao discute-se a solucao numerica pelo metodo pseudoespectral discutido
na Secao 1.2 do problema (2.1) que escrito na forma de minimizacao e dado por,
minimizar 12
∫ 5
0(x2(t) + u(t)2) dt
sujeito a x(t) = x(t) + u(t)
x(0) =√
2
x(5) = 1.
(2.9)
Inicialmente, considera-se a mudanca de variavel (1.8) de t ∈ [−1, 1] para τ ∈ [0, 5],
t =5
2(τ + 1).
Assim,dτ
dt=
2
5e x =
dx
dt=dx
dτ
dτ
dt=
2
5
dx
dτ
e a restricao do problema (2.14) se escreve como
2
5
dx
dτ= x(τ) + u(τ).
Sejam N pontos de colocacao LGR, −1 = τ1 < τ2 · · · < τN < 1, obtidos como raızes
da soma PN−1(τ) + PN(τ) dos polinomios de Legendre, como discutido na Secao ??.
Considere D ∈ IRN×N a matriz de diferenciacao definida em (1.14). Por (1.15), tem-se
que DX ≈ dx
dτ. Assim a restricao se reescreve como
2
5DX = X + U,
Exemplos 29
com X,U ∈ IRN . Tendo calculado o vetor de pesos w ∈ IRN associados aos pontos de
colocacao por (1.19), o problema (2.14) discretizado e dado por
minimizar1
2
N∑k=1
(x2k + u2k)wk
sujeito a 25DX = X + U
x1 =√
2
xN+1 = 1.
(2.10)
Os pontos de colocacao e o vetor w ∈ IRn foram calculados utilizando a rotina
pontos lgr w em Matlab descrita no Apendice B. Este programa consiste numa adaptacao
para calculo dos pontos de colocacao LGR [23] do codigo lglnodes.m escrito por Winckel
[32] que tem como referencia [7]. O resultado obtido pelo programa para diferentes valores
de N foi comparado com os valores fornecidos em [13]. A matriz de diferenciacao D ∈IRN×N foi calculada pela rotina matriz dif.
Tendo o vetor w ∈ IRN de pesos da quadratura associados com os N pontos de
colocacao LGR e a matriz D de diferenciacao, o problema (2.10) pode ser visto como um
problema de minimizacao de uma funcao quadratica com restricoes de igualdade lineares
e condicao de caixa, na variavel (X,U) ∈ IR2N , com uma variavel adicional que deve
satisfazer a condicao xN+1 = 1. Os problemas, para diferentes valores de N e solucoes
iniciais randomicas, foram resolvidos utilizando-se a rotina quadprog do Matlab. A Figura
2.2 apresenta o grafico da solucao exata e uma solucao numerica obtida adotando-se
N = 60 pontos de colocacao. As linhas cheias representam a solucao exata no intervalo
[−1, 1]. Os sımbolos triangulares representam a solucao aproximada para a variavel de
estado y = x2 e o sımbolo asterisco e usado para representar a variavel de controle u.
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−4
−3
−2
−1
0
1
2
τ
yexato
uexato
yaprox
uaprox
Figura 2.2: Solucao exata e solucao obtida pelo metodo pseudoespectral.
Exemplos 30
Analise de erros.
Foram consideradas 30 instancias do problema (2.10) para cada valor de N entre
10 e 100. Cada instancia difere na solucao inicial que e tomada arbitraria. Para cada
instancia foram calculadas a norma da diferenca entre a solucao exata e a solucao numerica
tanto para a variavel de estado y = x2 e a variavel de controle u, ou seja, foram calculados
os erros:
erro y = ‖yexata − yaprox‖∞erro u = ‖uexata − uaprox‖∞ ,
onde (yexata, uexata) representa a solucao exata e (yaprox, uaprox) representa a solucao apro-
ximada. Para cada valor de N foi calculada a mediana dos erros calculados para as 30
instancias. A Figura 2.3 mostra os graficos da variacao deste erro quando varia-se o valor
de N . O grafico da esquerda mostra o erro na variavel de estado, enquanto o grafico da
direita mostra o grafico do erro para a variavel de controle. O eixo vertical de ambos
os graficos esta na escala logarıtmica. As curvas em linha contınua referem-se as curvas
de regressao linear e quadratica na escala logarıtmica, cujos parametros foram obtidos
atraves do comando polyfit do Matlab. Note que os erros descrescem mais lentamente na
variavel de controle u.
10 20 30 40 50 60 70 80 90 100
10−2
10−1
N
log(e
rro
y)
erroy
4.25N−1.44
0.0979N0.691 + (−0.292 ln(N))
10 20 30 40 50 60 70 80 90 100
10−1.4
10−1.3
10−1.2
N
log(e
rro
u)
errou
0.0832N−0.165
0.465N−1.14 + (0.133 ln(N))
Figura 2.3: Variacao em funcao de N do erro na variavel de estado (esquerda) e na variavelde controle (direita).
2.1.3 Solucao aproximada pelo metodo de Euler
Nesta secao sera aplicado o metodo de Euler estudado na Secao 1.3 para resolver
o problema (2.1). O intervalo de tempo [0, 5] e inicialmente transformado no intervalo
[−1, 1], utilizando a mudanca dada em (1.8) e este e discretizado em N subintervalos de
amplitude2
N. Adotando-se t0 = −1 e tN = 1, tem-se que o (k + 1)-esimo subintervalo
e [tk, tk+1] para k = 0, . . . , N − 1. Denota-se x(tk) por xk e u(tk) por uk e estima-se a
Exemplos 31
derivada x porxk+1 − xk
hem cada intervalo. Assim, a restricao principal do problema
(2.1) se reescreve como k restricoes da forma:
xk+1 − xk =5
N(xk + uk), (2.11)
com k = 0, . . . , N − 1.
A funcao objetivo dada por uma integral e discretizada atraves do somatorio
1
2
N−1∑k=0
(x2k + u2k
)h,
e o problema (2.1) se reescreve na forma discretizada como
minimizar 12
N−1∑k=0
(x2k + u2k)h
sujeito a xk+1 − xk =5
N(xk + uk), k = 0, . . . , N − 1
x0 =√
2
xN = 1.
A condicao de contorno no tempo final foi incorporada ao problema como uma
penalizacao a funcao objetivo, ou seja, fixando-se um valor M suficientemente grande, o
problema anterior e transformado em
minimizar 12
N−1∑k=0
(x2k + u2k)h+M(xN − 1)2
sujeito a xk+1 − xk =5
N(xk + uk), k = 0, . . . , N − 1
x0 =√
2.
(2.12)
Para as implementacoes, foi tomado M = 105.
O lema a seguir, relaciona cada variavel de estado xk com a posicao inicial x0 e
com as variaveis de controle uj com j = 0, · · · , k − 1.
Lema 2.1 Para todo k = 1, . . . , N , vale a relacao
xk = (1 + h)kx0 + hk−1∑j=0
(1 + h)k−j−1uj.
Demonstracao. A prova e feita por inducao. Primeiramente verifica-se que vale para k = 1.
Note que por (2.11) tem-se
x1 − x0 = h(x0 + u0),
Exemplos 32
ou seja,
x1 = (1 + h)x0 + hu0,
mostrando assim que vale para k = 1. Assume-se que a proposicao vale para algum k,
com 1 ≤ k ≤ N − 1, ou seja,
xk = (1 + h)kx0 + h
k−1∑j=0
(1 + h)k−j−1uj.
Prova-se entao que vale para k + 1. Utilizando novamente (2.11) tem-se que
xk+1 = xk + h(xk + uk) = (1 + h)xk + huk.
Usando a hipotese de inducao, a igualdade acima se torna
xk+1 = (1 + h)
[(1 + h)kx0 + h
k−1∑j=0
(1 + h)k−j−1uj
]+ huk.
Fazendo as multiplicacoes e agrupando os termos tem-se
xk+1 = (1 + h)k+1x0 + hk−1∑j=0
(1 + h)k−juj + h(1 + h)0uk
= (1 + h)k+1x0 + hk−1∑j=0
(1 + h)(k+1)−j−1uj + h(1 + h)(k+1)−k−1uk
= (1 + h)k+1x0 + hk∑j=0
(1 + h)(k+1)−j−1uj.
Provando assim que, para qualquer k = 1, . . . , N , vale a relacao
xk = (1 + h)kx0 + h
k−1∑j=0
(1 + h)k−j−1uj. (2.13)
Cabe ressaltar que as restricoes do problema (2.12) valida para k = 0, . . . , N − 1
foram usadas fortemente na prova do Lema 2.1. O resultado provado sera usado para
escrever a funcao objetivo do problema (2.12) apenas em funcao das variaveis de controle
uk e de x0 que pela condicao inicial e fixado em√
2.
Usando (2.13) a funcao objetivo do problema (2.12) se escreve como
Exemplos 33
J =1
2
N−1∑k=0
(x2k + u2k)h+M(xN − 1)2
=1
2(x20 + u20)h+
1
2
N−1∑k=1
(x2k + u2k)h+M(xN − 1)2
=1
2(x20 + u20)h
+1
2
N−1∑k=1
((1 + h)2kx20 + 2hx0(1 + h)k
k−1∑j=0
(1 + h)k−j−1uj+
+h2k−1∑j=0
k−1∑m=0
(1 + h)2k−j−m−2ujum + u2k
)h
+M
(((1 + h)Nx0 − 1)2 + 2h((1 + h)Nx0 − 1)
N−1∑j=0
(1 + h)N−j−1uj+
+h2N−1∑j=0
N−1∑m=0
(1 + h)2N−j−m−2ujum
),
que pode ser reescrita como
J =1
2hx20
N−1∑k=0
(1 + h)2k +M(x0(1 + h)N−1 − 1)2 + h2x0
N−1∑k=1
k∑j=0
(1 + h)2k−j−2uj
+ 2Mh(x0(1 + h)N−1 − 1)N−2∑j=0
(1 + h)N−j−2uj +h3
2
N−1∑k=1
k∑j=0
k∑m=0
(1 + h)2k−j−m−2ujum
+ h2M
N−2∑j=0
N−2∑m=0
(1 + h)2N−j−m−2ujum +h
2
N−1∑k=0
u2k,
que e uma funcao quadratica na variavel de controle u, visto que x0 =√
2.
Assim (2.12) recai no problema de minimizacao da funcao quadratica J , sem
restricoes, que pode ser resolvido pelo Algoritmo A.1 do metodo de gradientes conjugados.
Tendo obtido o vetor u das variaveis de controle, obtem-se o vetor x atraves da expressao
(2.13), o que permite determinar o vetor y das variaveis de estado atraves da igualdade
y = x2.
Exemplos 34
A listagem referente a implementacao necessaria para resolucao do problema (2.1)
pelo metodo de Euler descrito nesta secao e apresentada no Apendice B.
A Figura 2.4 apresenta a solucao obtida adotando-se N = 60
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−4
−3
−2
−1
0
1
2
τ
yexato
uexato
yaprox
uaprox
yEuler
uEuler
Figura 2.4: Solucao exata e solucoes numericas.
Analise de erros. Como para o caso da solucao numerica obtida pelo metodo pseu-
doespectral, foram consideradas 30 instancias do problema (2.10) para cada valor de N
entre 10 e 100. Cada instancia difere na solucao inicial que e tomada arbitraria. Para
cada instancia foram calculadas a norma da diferenca entre a solucao exata e a solucao
numerica tanto para a variavel de estado y = x2 e a variavel de controle u, ou seja, foram
calculados os erros:
erro y = ‖yexata − yEuler‖∞erro u = ‖uexata − uEuler‖∞ ,
onde (yexata, uexata) representa a solucao exata e (yEuler, uEuler) representa a solucao apro-
ximada obtida pelo metodo de Euler. Para cada valor de N foi calculada a mediana dos
erros obtidos para as 30 instancias. A Figura 2.5 mostra os graficos da variacao deste erro
quando varia-se o valor de N . O grafico da esquerda mostra o erro na variavel de estado,
enquanto o grafico da direita mostra o grafico do erro para a variavel de controle. O eixo
vertical de ambos os graficos esta na escala logarıtmica. A linha cheia representa a curva
da regressao linear na escala logarıtmica. Os coeficientes da regressao foram fornecidos
pelo comando polyfit do Matlab.
O erro na variavel de estado e da ordem de 10−1, enquanto para o metodo pseu-
doespectral o erro foi da ordem de 10−2. Os erros para o metodo de Euler foram maiores
que para o metodo pseudoespectral.
Exemplos 35
10 20 30 40 50 60 70 80 90 100
10−1
N
log(e
rro
y)
erroy
0.713N−0.485
10 20 30 40 50 60 70 80 90 100
10−0.6
10−0.5
10−0.4
10−0.3
10−0.2
10−0.1
N
log(e
rro
u)
errou
2.91N−0.539
Figura 2.5: Variacao em funcao de N do erro na variavel de estado (esquerda) e na variavelde controle (direita).
2.2 Exemplo 2
Considere o problema de controle otimo, discutido em [31, pag. 347], dado por:
minimizar∫ 1
0(u2(t)− y(t)3) dt
sujeito a y(t) = y(t)u(t)
y(0) = 1
y(1) = 1
−1 ≤ u(t) ≤ 0,
(2.14)
onde u ∈ C[0, 1] e y ∈ C1[0, 1], ou seja, u : [0, 1]→ IR e uma funcao contınua por partes e
y : [0, 1]→ IR e uma funcao continuamente diferenciavel. A solucao deste problema ey(t) ≡ 1,
u(t) ≡ 0.(2.15)
A seguir discute-se a resolucao numerica pelo metodo estudado na Secao 1.2.
2.2.1 Solucao aproximada pelo metodo pseudoespectral
De maneira analoga ao exemplo anterior, se faz a mudanca de variavel de t ∈ [0, 1]
para τ ∈ [−1, 1]. Por (1.8) tem-se que:
t =1
2τ +
1
2.
Assim,dτ
dt= 2 e y =
dy
dt=dy
dτ
dτ
dt= 2
dy
dτ
Exemplos 36
e a restricao do problema (2.14) se escreve como
dy
dτ=
1
2y(τ)u(τ).
Sejam N pontos de colocacao LGR, −1 = τ1 < τ2 < ... < τN < 1, obtidos como raızes
da soma dos polinomios de Legendre PN−1(τ) + PN(τ). Considere D ∈ IRN×N a matriz
de diferenciacao definida em (1.14). Por (1.15) tem-se que DY ≈ dy
dτe a restricao se
reescreve como
DY =1
2Y U,
onde Y, U ∈ IRN .
Tendo os pontos de colocacao, e sabendo que os pesos w′is, com i = 1, . . . , N ,
para a discretizacao do problema, e dado, segundo [1], por
w(i) =
∫ 1
−1
N∏j=1j 6=i
τ − τjτi − τj
dτ,
pode-se discretizar o problema (2.14), que toma a forma
minimizarN∑k=1
(u2k − y3k)wk
sujeito a 2DY = Y U
y1 = 1
yN+1 = 1.
(2.16)
Os procedimentos utilizados para resolver este problema sao analogos aos que
foram utilizados para resolver o exemplo anterior. O problema foi resolvido numerica-
mente em Matlab. O vetor w ∈ IRN de pesos da quadratura associados com os N pontos
de colocacao LGR foram obtidos pela rotina pontos lgr w. A matriz de diferenciacao
D ∈ IRN×N foi calculada pela rotina matriz dif. O problema 2.16 que consiste na mi-
nimizacao de uma funcao nao linear, nao quadratica, sujeita a restricoes de igualdade
nao lineares e condicoes de contorno na variavel (y, u) ∈ IR2N , foi resolvido pela funcao
fmincon disponıvel em Matlab. As rotinas utilizadas estao disponıveis no Apendice B.
A Figura 2.6 apresenta uma solucao do problema tomando-se N = 60. O sımbolo
triangular representa a solucao aproximada para a variavel de estado y e o sımbolo as-
terisco e usado para representar a variavel de controle u associadas com cada um dos 60
pontos de colocacao.
Exemplos 37
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−0.2
0
0.2
0.4
0.6
0.8
1
1.2
τ
y
u
Figura 2.6: Solucao obtida pelo metodo pseudoespectral.
Analise de erros. Adotando-se solucoes iniciais arbitrarias, foram resolvidas 30 instancias
do problema (2.16) para cada valor de N entre 2 e 100. Para cada uma destas instancias,
foi calculada a norma infinito do vetor diferenca entre a solucao exata e a solucao numerica
para a variavel de estado y e para a variavel de controle u. Ou seja, foram calculados os
erros dados por
erroy = ‖yexata − yaprox‖∞ e errou = ‖uexata − uaprox‖∞.
onde (yexata, uexata) e dado em (2.15) e (yaprox, uaprox) e a solucao numerica fornecida
pela rotina fmincon. Para cada um dos valores de N considerados, foi tomada a mediana
dos erros obtidos nas 30 instancias. Os graficos da Figura 2.7 mostram a variacao do erro
na escala logarıtmica para a solucao aproximada do estado e de controle, respectivamente,
em relacao ao numero de pontos de colocacao N entre 2 e 100. Note que os erros sao
da ordem de 10−8 e que neste caso, diferentemente do caso anterior, os erros aumentam
com o valor de N . As linhas cheias correspondem a curva de regressao linear na escala
logarıtmica cujos coeficientes foram fornecidos pelo comando polyfit do Matlab.
2.3 Exemplo 3
O segundo problema consiste em determinar o estado y ∈ C1 e o controle u ∈ Ccomo solucao do seguinte problema de Bolza:
minimizar y2(2) +∫ 2
0y(t)2dt
sujeito a y(t) = u(t)
y(0) = 1
−1 ≤ u(t) ≤ 1,
(2.17)
Exemplos 38
0 20 40 60 80 10010
−13
10−12
10−11
10−10
10−9
10−8
N
log(e
rro
y)
erroy
3.27e−14N2.24
0 20 40 60 80 10010
−13
10−12
10−11
10−10
10−9
10−8
10−7
10−6
10−5
N
log(e
rro
u)
errou
1.41e−14N2.99
Figura 2.7: Variacao do erro das variaveis y e u na escala logarıtmica em relacao a N .
cuja solucao exata apresentada em [31, pag 348] e
y(t) =
1− t se t ≤ 1,
0 se t > 1,e u(t) =
−1 se t ≤ 1,
0 se t > 1.(2.18)
2.3.1 Solucao aproximada pelo metodo pseudoespectral
Inicialmente considera-se a mudanca de variavel de t ∈ [0, 2] para τ ∈ [−1, 1], ou
seja,
t = τ + 1.
Assim,dτ
dt= 1 e y =
dy
dt=dy
dτ
dτ
dt=dy
dτ
e a restricao do problema (2.17) se escreve como
dy
dτ= u(τ).
Calculam-se os N pontos de colocacao LGR, −1 = τ1 < τ2 < ... < τN < 1, o vetor de
pesos w ∈ IRN e a matriz de diferenciacao D ∈ IRN×N como discutidos nos exemplos
anteriores. Como a funcao objetivo do problema (2.17) envolve o valor y(2), considera-se,
alem das variaveis Y ∈ IRN e U ∈ IRN , uma variavel adicional denotada por YN+1. Assim
o problema (2.17) se escreve na forma discretizada como
minimizar Y 2N+1 +
N∑k=1
y2kwk
sujeito a DY = U
y1 = 1
−1 ≤ U ≤ 1.
(2.19)
Exemplos 39
Note que o problema acima consiste na minimizacao de uma funcao quadratica com
restricoes de igualdade lineares e condicoes de contorno, na variavel (Y , U) ∈ IR2N+1,
onde Y = (Y, YN+1) ∈ IRN+1 e U ∈ IRN . Deste modo este problema pode ser resolvido
pela rotina quadprog disponıvel no Matlab.
A Figura 2.8 apresenta a solucao exata e a solucao numerica, considerando-se 60
pontos de colocacao e solucao inicial arbitraria. A solucao exata (2.18) que se escreve na
variavel τ como
y(τ) =
−τ se τ ≤ 0,
0 se τ > 0,e u(τ) =
−1 se τ ≤ 0,
0 se τ > 0.
esta representada por linhas cheias. O sımbolo triangular representa a solucao aproximada
para a variavel de estado y e o sımbolo asterisco e usado para representar a variavel de
controle u.
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
τ
yexato
uexato
yaprox
uaprox
Figura 2.8: Solucao do problema 2.17.
Note que a variavel de controle u e uma funcao descontınua. A solucao aproxi-
mada assume erros maiores no ponto de descontinuidade e no extremo direito do intervalo.
No Apendice B sao apresentadas as listagens das rotinas em Matlab utilizadas.
Analise de erros. Adotando-se solucoes iniciais arbitrarias, foram resolvidas 30 instancias
do problema (2.19) para cada valor de N entre 10 e 100. Para cada uma destas instancias,
foi calculada a norma infinito do vetor diferenca entre a solucao exata e a solucao numerica
para a variavel de estado y e para a variavel de controle u. Ou seja, foram calculados os
erros dados por
erroy = ‖yexata − yaprox‖∞ e errou = ‖uexata − uaprox‖∞.
onde (yexata, uexata) e dado em (2.18) e (yaprox, uaprox) e a solucao numerica fornecida
Exemplos 40
pela rotina quadprog. Para cada um dos valores de N considerados, foi tomada a mediana
dos erros obtidos nas 30 instancias. Como ja ressaltado, tendo em vista a descontinuidade
da variavel de controle u, o erro da solucao aproximada na regiao de descontinuidade
e grande e foi desconsiderado na analise de erro. Os graficos da Figura 2.9 mostram a
variacao do erro, na escala logarıtmica para a solucao aproximada do estado e de controle,
respectivamente, em relacao ao numero de pontos de colocacao N entre 10 e 100. As linhas
cheias representam as curvas de regressao linear na escala logarıtmica cujos coeficientes
foram fornecidos pelo comando polyfit do Matlab. Enquanto o erro na variavel de estado
e da ordem de 10−3, o erro na variavel de controle e da ordem de 10−1.
10 20 30 40 50 60 70 80 90 100
10−3
N
log
(err
oy)
erroy
0.048N−0.891
10 20 30 40 50 60 70 80 90 10010
−2
10−1
N
log
(err
ou)
errou
0.472N−0.648
Figura 2.9: Variacao do erro das variaveis y e u na escala logarıtmica em relacao a N .
Conclusao
Discutiu-se neste trabalho o metodo de discretizacao pseudoespectral com pontos
de colocacao LGR. Esta tecnica e utilizada para encontrar solucoes numericas de proble-
mas de controle otimo sem restricoes (problema de Bolza tipo LQR), como foi publicado
em [22]. Apresentacao da tecnica segue a sequencia em que o metodo pseudoespectral
LGR e mostrado em [22], mas as demonstracoes sao proprias e estao dadas em notacao
tensorial. Para medir diretamente a precisao do metodo pseudoespectral LGR, e ne-
cessario ter a solucao exata do problema. A solucao exata do problema de Bolza LQR
de controle otimo foi encontrada utilizando o Princıpio de Maximo de Pontryagin. Para
comparar (positivamente) o desempenho do metodo pseudoespectral LGR, o problema
LQR de Bolza e resolvido tambem aplicando uma discretizacao de Euler da equacao de
estado e por uma quadratura tipo Euler do funcional. A discretizacao da equacao de
estado fornece uma forma de exprimir as variaveis de estado em termos das variaveis
de controle. A substituicao desta relacao na quadratura permite utilizar um metodo de
otimizacao quadratica da variavel de controle. O metodo pseudoespectral LGR e tambem
aplicado bem sucedidamente a problemas de controle otimo com restricoes nas variaveis
de estado e de controle (algo que nao e tentado em [22]).
Todos os codigos MATLAB estao incluıdos no Apendice desta dissertacao e serao
postados no site do Programa de Pos-graduacao em Matematica Aplicada da Universidade
Federal do Parana. Tambem no Apendice encontra-se uma revisao de conceitos referentes
a este trabalho.
Apendice A
Revisao de Conceitos
Neste capıtulo apresentam-se algumas definicoes, propriedades e ressaltam-se al-
guns resultados que podem ser uteis para o entendimento deste trabalho. As principais
referencias deste capıtulo sao [9, 10, 11, 12, 18, 25, 26, 27, 29].
A.1 Matriz
Nesta secao, que e baseada principalmente em [27], apresentam-se algumas de-
finicoes e resultados essenciais de matrizes que foram utilizados no trabalho. Inicialmente
apresenta-se a definicao de um tipo de matriz que e muito comum em problemas de
otimizacao.
Definicao A.1 [25, pag. 260] Seja A ∈ IRn×n uma matriz simetrica. Diz-se que A e
definida positiva quando xTAx > 0, para todo x ∈ IRn\0. Tal propriedade e denotada
por A > 0. Se xTAx ≥ 0, para todo x ∈ IRn, A e dita semidefinida positiva, fato este
denotado por A ≥ 0.
A.1.1 Produto direto de Matrizes
Em varias demonstracoes do Capıtulo 1 usa-se produto direto de matrizes. Nesta
secao apresentam-se a definicao de produto direto de matrizes, algumas propriedades deste
produto e um exemplo de como se faz este calculo.
Definicao A.2 Dadas as matrizes A ∈ IRm×n e B ∈ IRp×q define-se o produto direto de
A por B como a matriz C ∈ IRmp×nq de tal forma que
Cmp×nq = A⊗B =
a11B a12B · · · a1nB
a21B a22B · · · a2nB...
.... . .
...
am1B am2B · · · amnB
.
42
Apendice 43
Algumas propriedades interessantes do produto direto de matrizes:
(i) A⊗B 6= B ⊗ A;
(ii) Se u e v sao vetores, entao uT ⊗ v = v ⊗ uT = vuT ;
(iii) Se as dimensoes sao compatıveis
(A⊗B)(C ⊗D) = AC ⊗BD.
Exemplo A.3 Calcule o produto direto de A por B, sendo
A =
(1 2
1/2 4
)e B =
(1 2 4
6 8 10
).
Pela definicao e sendo A ∈ IR2×2 e B ∈ IR2×3 o resultado sera uma matriz
C ∈ IR4×6. Para construı-la, os seus elementos serao vistos como blocos, ou seja, Cij e o
bloco (i, j) de mesma dimensao de B. Assim,
C11 = a11B = 1 ∗
(1 2 4
6 8 10
), C12 = a12B = 2 ∗
(1 2 4
6 8 10
),
C21 = a21B = 1/2 ∗
(1 2 4
6 8 10
), C22 = a22B = 4 ∗
(1 2 4
6 8 10
).
E entao,
C =
1 2 4 2 4 8
6 8 10 12 16 20
1/2 1 2 4 8 16
3 4 5 24 32 40
.
A.1.2 Exponencial de matriz
Considere a ∈ IR. Ao resolver a equacao diferencial ordinaria (EDO) escalar
x(t) = ax,
obtem-se a seguinte formula,[10], para a solucao do problema com condicao inicial x(0) =
x0 ∈ IR:
x(t) = x0eat, t ∈ IR.
Na proxima secao, sera vista a equacao analoga quando a e uma matriz n × n com
coeficentes reais e x : IR → IRn. Para isto, precisa-se saber como calcular a exponencial
de uma matriz. As referencias sobre o assunto sao [10, 11, 29].
Apendice 44
Considera-se a funcao f : IR → IR+ tal que f(x) = ex. Essa funcao e chamada
de exponencial de x e tem a seguinte representacao, [29], por series de Taylor
ex =∞∑k=0
xk
k!.
Desta forma parece ser natural a definicao a seguir
Definicao A.4 [11, pag.330] Seja A ∈ IRn×n. A matriz definida pela serie
∞∑k=0
Ak
k!, sendo A0 = I
e denominada exponencial da matriz A. Para representa-la usa-se a notacao eA ou ainda
exp(A).
Para os problemas estudados neste trabalho, e suficiente saber como calcular uma expo-
nencial de matriz diagonalizavel.
Definicao A.5 [29, Def.3.1] Uma matriz A ∈ IRn×n e diagonalizavel quando existem
uma matriz invertıvel S, cujas colunas sao os autovetores de A e uma matriz diagonal D
formada pelos autovalores de A tal que
D = S−1AS.
Proposicao A.6 [29, Prop. 3.2] Se A e uma matriz diagonalizavel, D = S−1AS, entao
eA = eSDS−1
= SeDS−1.
Demonstracao. Multiplicando a igualdade D = S−1AS pela esquerda por S e depois pela
direita por S−1 tem-se que
A = SDS−1.
Alem disso,
(SDS−1)k = (SDS−1)(SDS−1) · · · (SDS−1)︸ ︷︷ ︸k vezes
= SDkS−1.
Logo, para n ∈ IN as somas parciais sao dadas por
Sn =n∑k=0
(SDS−1)k
k!=
n∑k=0
SDkS−1
k!= S
(n∑k=0
Dk
k!
)S−1.
Portanto,
eA = eSDS−1
= limn→∞
Sn = limn→∞
[S
(n∑k=0
Dk
k!
)S−1
]= S
(limn→∞
n∑k=0
Dk
k!
)S−1 = SeDS−1.
Apendice 45
Teorema A.7 [29, Teo. 3.4] Seja D = diag(α1, α2, . . . , αn), uma matriz diagonal n×n.
Entao eD = diag(eα1 , eα2 , . . . , eαn).
Demonstracao. Seja D uma matriz diagonal com entradas αi (i = 1, 2, . . . , n). Assim
para todo k ∈ IN,
Dk = diag(αk1, . . . , αkn).
Logo para cada n ∈ IN as somas parciais sao dadas por
Sn =n∑k=0
Dk
k!= diag
(n∑k=0
αk1k!, . . . ,
n∑k=0
αknk!
).
Assim
eD = limn→∞
Sn = limn→∞
(n∑k=0
Dk
k!
)= diag (eα1 , . . . , eαn) .
A.2 Solucao de um sistema de EDOs
O problema tratado no decorrer do trabalho esta sujeito a uma equacao diferen-
cial. O objetivo e resolver esse problema, para isso deve-se lembrar como e a solucao de
um sistema de EDOs de 1a e de 2a ordem.
Considere Ω ⊂ IRn e f : Ω → IRn uma aplicacao contınua. Seja I um intervalo
nao degenerado da reta, ou seja, um subconjunto conexo de IR nao reduzido a um ponto.
Definicao A.8 [30, pag 04.] Uma funcao diferenciavel φ : I → IRn chama-se solucao da
equacaodx
dt= f(x) (A.1)
no intervalo I se:
i) o grafico de φ em I esta contido em Ω e
ii)dφ
dt(t) = f(φ(t)) para todo t ∈ I. Se t e um ponto extremo do intervalo, a derivada
e a derivada lateral respectiva.
A equacao (A.1) chama-se equacao diferencial ordinaria de primeira ordem e e
denotada abreviamente por
x = f(x).
Sob hipoteses bem gerais sobre f , por exemplo se f e ∂f∂x
sao contınuas em Ω, existe uma
e so uma solucao φ de (A.1) num intervalo que contem t0 e tal que φ(t0) = x0. Uma tal φ
e chamada de solucao do problema com dados iniciais (t0, x0) para a equacao (A.1). Este
Apendice 46
problema pode ser denotado abreviadamente porx = f(x)
x(t0) = x0.
Para existencia e unicidade de solucoes de uma equacao diferencial consultar [30, pag. 12]
e [10].
Lembra-se agora solucoes de equacoes especıficas, que podem ser verificadas nos
Capıtulos 3 e 10 de [10].
A solucao do sistema de EDOs de primeira ordemx(t) = Mx(t)
x(0) = x0,
onde M ∈ IRn×n e x0 e o ponto inicial, e
x(t) = etMx0.
A solucao do sistema de EDOs de segunda ordemx(t) + bx(t) + cx(t) = 0
x(tf ) = k1, x(tf ) = k2
onde b, c ∈ IR e tf e o tempo final, e dada por
x(t) = c1eλ1t + c2e
λ2t
quando a equacao caracterıstica, λ2 + bλ+ c = 0, possui raızes reais distintas λ1 e λ2. As
constantes c1 e c2 sao encontradas de forma que as condicoes iniciais sejam satisfeitas.
A.3 Topicos de otimizacao contınua
Nesta secao sao introduzidos alguns topicos de otimizacao contınua que serao
uteis para o desenvolvimento deste trabalho.
Inicia-se com algumas ideias basicas sobre minimizacao de uma funcao. Em
seguida e apresentado o metodo de gradiente conjugado para minimizacao de uma funcao
quadratica. E encerra-se esta secao com um teorema de otimalidade de primeira ordem
para problemas de otimizacao com restricoes, o teorema de Karush-Kuhn-Tucker(KKT).
Para as demonstracoes dos teoremas e maiores detalhes, consultar [12].
Pode-se dizer que otimizacao consiste em encontrar pontos de mınimos ou de
maximos de uma funcao real sobre um conjunto Ω ⊂ IRn. Isto pode ser representado pelo
Apendice 47
seguinte problema
minimizar f(x)
sujeito a x ∈ Ω,(A.2)
onde f : IRn → IR e uma funcao contınua dita funcao objetivo e Ω ⊂ IRn e um conjunto
chamado de conjunto viavel. Quando Ω = IRn, o problema e dito irrestrito.
Definicao A.9 [12, pag. 25] Considere f : IRn → IR e x∗ ∈ Ω ⊂ IRn. Diz-se que x∗
e um minimizador local de f em Ω quando existe δ > 0 tal que f(x∗) ≤ f(x) para todo
x ∈ B(x∗, δ) ∩ Ω. Caso f(x∗) ≤ f(x) para todo x ∈ Ω, x∗ e dito minimizador global de f
em Ω.
Normalmente contenta-se com a obtencao de minimizadores locais do problema, onde esta
discussao sera focada.
O teorema a seguir nos da uma condicao necessaria para caracterizar um minimi-
zador local de um problema irrestrito. Os pontos que satisfazem tal condicao necessaria
sao ditos estacionarios.
Teorema A.10 Seja f : IRn → IR diferenciavel no ponto x∗ ∈ IRn. Se x∗ e um minimi-
zador local de f em IRn entao
∇f(x∗) = 0.
Demonstracao. [12, Teo. 2.9].
Em um problema de otimizacao e difıcil resolver, de forma direta, o sistema de
n equacoes e n incognitas dado por ∇f(x) = 0. Normalmente uma solucao e obtida por
meio de um processo iterativo. Considera-se entao um algoritmo que a partir de um
ponto inicial x0, gera uma sequencia de pontos (xk) desejando-se que os seus pontos de
acumulacao sejam estacionarios.
A.3.1 Metodo de gradientes conjugados
Apresenta-se nesta secao o metodo de gradientes conjugados [12, Sec.5.3] para
minimizacao de funcoes quadraticas.
Considere a funcao quadratica f : IRn → IR dada por
f(x) =1
2xTAx+ bTx+ c, (A.3)
com A ∈ IRn×n definida positiva, b ∈ IRn e c ∈ IR.
Segundo [12], uma funcao f quadratica com Hessiana definida positiva tem um
unico minimizador x∗, que e global e satisfaz, pelo Teorema A.10, a seguinte condicao
∇f(x∗) = Ax∗ + b = 0.
Apendice 48
Para entender o algoritmo sao necessarios alguns conceitos.
Definicao A.11 [12, pag. 64] Seja A ∈ IRn×n uma matriz definida positiva. Os vetores
d0, d1, ..., dk ∈ IRn\0 sao ditos A-conjugados se
(di)TAdj = 0,
para todos i, j = 0, 1, ..., k, com i 6= j.
Note que, no caso particular onde A e a matriz identidade, vetores A-conjugados
sao ortogonais no sentido usual.
Sabe-se que um metodo de gradientes conjugados minimiza um funcao quadratica
em IRn em no maximo n iteracoes.
Dado um conjunto qualquer de direcoes A-conjugadas d0, d1, ..., dn−1, define-se
uma sequencia finita da seguinte maneira: dado x0 ∈ IRn arbitrario, define-se para
k = 0, 1, ..., n− 1,
xk+1 = xk + tkdk, (A.4)
onde tk = argmint∈IR
f(xk + tdk). O escalar tk e o comprimento do passo na direcao dk a
partir do ponto corrente xk.
Como f e quadratica pode-se obter uma formula explıcita para tk. Para isso,
define-se φ : IR → IR por φ(t) = f(xk + tdk). Como, pela definicao, tk e o minimizador
de f(xk + tdk), tem-se que φ′(tk) = 0. Note que φ′(tk) = ∇f(xk + tkdk)Tdk. Por f ser
quadratica
∇f(xk + tkdk) = A(xk + tkd
k) + b = (Axk + b) + tkAdk = ∇f(xk) + tkAd
k.
Assim,
φ′(tk) =(∇f(xk)T + tkAd
k)dk = 0,
ou seja,
tk = −∇f(xk)Tdk
(dk)TAdk.
Agora mostra-se como gerar as direcoes conjugadas.
Dado x0 ∈ IRn, defina d0 = −∇f(x0) e, para k = 0, 1, ..., n− 2,
dk+1 = −∇f(xk+1) + βkdk,
onde xk+1 e dado por (A.4) e βk e tal que dk e dk+1 sejam A-conjugados, ou seja,
(dk)TA(−∇f(xk+1) + βkdk) = (dk)TAdk+1 = 0.
Apendice 49
Isolando βk da igualdade acima
βk =(dk)TA∇f(xk+1)
(dk)TAdk+1.
Agora com todas as ferramentas necessarias, apresenta-se o algoritmo de gradi-
entes conjugados.
Algoritmo A.1 Gradientes conjugados para funcoes quadraticas
Dado: x0 ∈ IRn, faca d0 = −∇f(x0)
k = 0
repita enquanto ∇f(xk) 6= 0
tk = −∇f(xk)Tdk
(dk)TAdk
xk+1 = xk + tkdk
βk =(dk)TA∇f(xk+1)
(dk)TAdk
dk+1 = −∇f(xk+1) + βkdk
k = k + 1
O algoritmo de gradientes conjugados neste formato e aplicado apenas para
funcoes quadraticas.
A.3.2 O Teorema de Karush-Kuhn-Tucker
O objetivo desta secao e apresentar as condicoes de otimalidade ou sejam, as
condicoes de KKT (Karush-Kuhn-Tucker), para o problema geral de otimizacao, que
consiste emminimizar f(x)
sujeito a g(x) ≤ 0
h(x) = 0,
(A.5)
onde f : IRn → IR, g : IRn → IRp e h : IRn → IRm sao funcoes continuamente diferenciaveis.
O problema (A.5) e o problema (A.2) em que o conjunto viavel e dado por
Ω = x ∈ IRn | g(x) ≤ 0, h(x) = 0.
Definicao A.12 [12, pag. 97] Seja x ∈ Ω. Uma restricao de desigualdade gi e dita ativa
em x, se gi(x) = 0. Caso gi(x) < 0, diz-se que gi e inativa em x.
Denota-se por A(x) o conjunto de ındices das restricoes de desigualdade ativas em um
ponto viavel x, isto e,
A(x) = i | gi(x) = 0.
Apendice 50
Teorema A.13 (KKT) Seja x∗ ∈ Ω um minimizador local do problema (A.5) e suponha
que o conjunto dos gradientes das restricoes de desigualdade ativas e das restricoes de
igualdade sao linearmente independentes, isto e, ∇gi(x∗)i∈A(x∗) ∪ ∇hj(x∗)j∈1,...,m e
LI. Entao existem µ∗ ∈ IRp e λ∗ ∈ IRm tais que
−∇f(x∗) =
p∑i=1
µ∗i∇gi(x∗) +m∑j=1
λ∗j∇hi(x∗),
µ∗i ≥ 0, i = 1, ..., p,
µ∗i gi(x∗) = 0, i = 1, ..., p.
Demonstracao. [19, Teo. 12.1]
Os vetores λ∗ e µ∗ sao chamados de multiplicadores de Lagrange.
Note que, o resultado do teorema diz que o oposto do gradiente da funcao objetivo
pode ser expresso pela combinacao linear dos gradientes das restricoes do problema.
Interpretacao geometrica
Para representar geometricamente o que o teorema de KKT afirma, considere o
seguinte problema
minimizar f(x) = (x1 − 2)2 + (x2 − 1)2
sujeito a g1(x) = x1 + x2 − 2 ≤ 0
g2(x) = x21 − x2 ≤ 0
x1 ≥ 0
x2 ≥ 0,
(A.6)
onde f : IR2 → IR, g1 : IR2 → IR e g2 : IR2 → IR.
Primeiramente note que o ponto x∗ =
(1
1
)e solucao global do problema.
Na figura abaixo, estao representados algumas curvas de nıvel da funcao, o con-
junto viavel e a solucao x∗.
Apendice 51
Figura A.1: Ilustracao do problema (A.6).
Na figura abaixo, estao representados os gradientes das restricoes ativas no ponto(1
1
)e o oposto do gradiente da funcao objetivo.
Figura A.2: Ilustracao da relacao dos gradientes do problema (A.6).
Algebricamente tem-se que ∇f(x∗) =
(−2
0
), ∇g1(x∗) =
(1
1
), ∇g2(x∗) =(
2
−1
). Assim
−∇f(x∗) =2
3∇g1(x∗) +
2
3∇g2(x∗),
ou seja, o oposto do gradiente da funcao objetivo no ponto x∗ e combinacao linear, com
coeficientes µ = λ = 23, dos gradientes das restricoes no ponto x∗.
Cálculo dos Pontos de Colocação e pesos de Quadratura
function [x,w]=pontos_lgr_w(n)
%======================================================================== % Karla Arsie - 2012 % Calcula os n pontos LGR como raizes de P_n-1(x)+P_n(x). % Polinomio de Legendre P_n = P(:,n+1) % % Foi baseado no programa disponivel em: % http://www.mathworks.com/matlabcentral/fileexchange/4775-legende-gauss-
lobatto-nodes-and-weights/content/lglnodes.m. % conforme descricao abaixo e na referencia % F. B. Hildebrand , "Introduction to Numerical Analysis," Section 8.11 % Dover 1987 %======================================================================== % lglnodes.m % % Computes the Legendre-Gauss-Lobatto nodes, weights and the LGL Vandermonde % matrix. The LGL nodes are the zeros of (1-x^2)*P'_N(x). Useful for numerical % integration and spectral methods. % % Reference on LGL nodes and weights: % C. Canuto, M. Y. Hussaini, A. Quarteroni, T. A. Tang, "Spectral Methods % in Fluid Dynamics," Section 2.3. Springer-Verlag 1987 % % Written by Greg von Winckel - 04/17/2004 % Contact: [email protected] % % Truncation + 1 % N1=n; % N=n-1;
N1=n; N=n-1;
%Ponto inicial para pontos LGR x=-cos(2*pi*(0:N)/(2*N+1))';
% Matriz de Vandermonde P=zeros(N1,N1+1);
% Encontra P_(N), utilizando a relação de recorrencia
% Calcula suas derivadas de primeira e segunda ordem
% X: atualização usando o método de Newton-Raphson xold=2;
free=2:N1;
while max(abs(x-xold))> eps
xold=x;
P(1,:)=(-1).^(0:N1);
P(free,1)=1; P(free,2)=x(free);
53
Apendice 54
for k=2:N1 P(free,k+1)=( (2*k-1)*x(free).*P(free,k)-(k-1)*P(free,k-1) )/k; end
x(free)=xold(free)-((1-xold(free))/N1).*(P(free,N1)+P(free,N1+1))... ./(P(free,N1)-P(free,N1+1)); end
P=P(1:N1,1:N1);
% Calculo dos pesos w=zeros(N1,1); w(1)=2/N1^2; w(free)=(1-x(free))./(N1*P(free,N1)).^2;
Apendice 55
Matriz de Diferenciação
function D=matriz_dif(n,x)
%============================================================ % Karla, Miguel, Elizabeth % 2012 % Fornece a matriz de diferenciacao % Adaptacao do programa legsrddiff escrito por Wang Li-Lian disponivel em: % http://www1.spms.ntu.edu.sg/~lilian/bookcodes/legen/legsrddiff.m %============================================================= % D=legsrddiff(n,x) returns the first-order differentiation matrix of size % n by n, associated with the Legendre-Gauss-Radau points x, which may be
%computed by % x=legsrd(n). Note: x(1)=-1. % See Page 110 of the book: J. Shen, T. Tang and L. Wang, Spectral Methods: % Algorithms, Analysis and Applications, Springer Series in Compuational % Mathematics, 41, Springer, 2011. % Use the function: lepoly() % Last modified on August 31, 2011 %=============================================================
if n==0, D=[]; return; end; xx=x; nx=size(x);
% Encontra L_n-1+L_n e sua derivada de primeira ordem [dy1,y1]=lepoly(n-1,xx); [dy2,y2]=lepoly(n,xx); dy=dy1+dy2; y=y1+y2; if nx(2)>nx(1), y=y'; dy=dy'; xx=x'; end; %% y é o vetor coluna de L_n-1(x_k) D=(xx./dy)*dy'-(1./dy)*(xx.*dy)'; %% encontra dy(x_j) (x_k-x_j)/dy(x_k); % 1/d_kj for k not= j (see (3.204)) D=D+eye(n); % add a matriz identidade para que 1./D pode ser
% operada D=1./D; D=D-eye(n); xx=xx(2:end); D=D+diag([-(n+1)*(n-1)/4; xx./(1-xx.^2)+ n*y1(2:end)./((1-xx.^2).*dy(2:end))]);
%atualiza as diagonais return;
Apendice 56
function [varargout]=lepoly(n,x)
% lepoly Legendre polynomial of degree n % y=lepoly(n,x) is the Legendre polynomial % The degree should be a nonnegative integer % The argument x should be on the closed interval [-1,1]; % [dy,y]=lepoly(n,x) also returns the values of 1st-order % derivative of the Legendre polynomial stored in dy % Last modified on August 30, 2011 % Verified with the chart in http://keisan.casio.com/has10/SpecExec.cgi
if nargout==1, if n==0, varargout1=ones(size(x)); return; end; if n==1, varargout1=x; return; end; polylst=ones(size(x)); poly=x; % L_0(x)=1, L_1(x)=x for k=2:n, % Three-term recurrence relation: polyn=((2*k-1)*x.*poly-(k-1)*polylst)/k;
% kL_k(x)=(2k-1)xL_k-1(x)-(k-1)L_k-2(x) polylst=poly; poly=polyn; end; varargout1=polyn; end;
if nargout==2, if n==0, varargout2=ones(size(x)); varargout1=zeros(size(x));
return;
end; if n==1, varargout2=x; varargout1=ones(size(x));
return;
end;
polylst=ones(size(x)); pderlst=zeros(size(x));poly=x; pder=ones(size(x)); % L_0=1, L_0'=0, L_1=x, L_1'=1 for k=2:n, % Three-term recurrence relation: polyn=((2*k-1)*x.*poly-(k-1)*polylst)/k;
% kL_k(x)=(2k-1)xL_k-1(x)-(k-1)L_k-2(x) pdern=pderlst+(2*k-1)*poly; % L_k'(x)=L_k-2'(x)+(2k-1)L_k-1(x) polylst=poly; poly=polyn; pderlst=pder; pder=pdern; end; varargout2=polyn; varargout1=pdern; end;
return
Apendice 57
Solução Exata e pelo método Pseudoespectral do Problema do Exemplo 1
go_ex1
%=====================================================
% Dissertacao de Mestrado de Karla Arsie % 17/08/2012 % Problema: maximizar -int_0^5(x^2(t)+u^2(t)) dt % sujeito dx/dt=x+u % x(0)=sqrt2,x(5)=1 % Primeiro Exemplo do Capitulo 2 da dissertacao %=====================================================
clear all
N=60; % Numero de pontos de colocacao
X1=sqrt(2); Xend=1; % Condicoes de contorno
% Solucao aproximada [tau,VETORW]=pontos_lgr_w(N); % retorna os pontos de colocacao e os pesos da
discretizacao.
MATRIZD=matriz_dif(N,tau); %retorna matriz de diferenciacao
%ponto inicial x0=X1*rand(N,1); x0(1)=X1; u0=rand(N,1); xu0 = [x0;u0];
% Dados do problema para ser resolvido pelo quadprog nas variaveis
%(x1,..xN,u1,..uN) xu0 = [x0;u0]; H=diag([VETORW;VETORW]); f=zeros(2*N,1); id=eye(N,N); Aeq = [(2*MATRIZD/5-id) -id]; Beq =zeros(N,1); % Limites apos varios testes ----------------- LB = [X1;zeros(N-2,1);1;-inf*ones(N,1)]; UB = [X1;inf*ones(N-2,1);1;inf*ones(N,1)];
[xu,fval,EXITFLAG] = quadprog(H,f,[],[],Aeq,Beq,LB,UB,xu0);
x = [X1;xu(2:N);Xend]; u = xu(N+1:2*N);
Apendice 58
% --------------------------------------------------------- % Solucao exata s=X1; x0=s; p0=(4*s-exp(5*s)*(2*s+4)-exp(-5*s)*(4-2*s))/(exp(5*s)-exp(-5*s)); x_exata=(exp(s*((5/2)*tau+5/2))*((1-exp(-5*s))/(exp(5*s)-exp(-5*s)))+ exp(-
s*((5/2)*tau+5/2))*(s-(1-exp(-5*s))/(exp(5*s)-exp(-5*s))))'; %no intervalo [-1,1] y_exata=x_exata.^2; p=(((s/2)*exp(s*((5/2)*tau+5/2))-(s/2)*exp(-s*((5/2)*tau+5/2)))*x0+(((2-
s)/(4))*exp(s*((5/2)*tau+5/2))+((2+s)/(4))*exp(-s*((5/2)*tau+5/2)))*p0)';
%no intervalo [-1,1] u_exata=p/2;
% Graficos %----------------------------------------------------------- figure(1) clf axis([-1 5 -4 2]) %solucao exata plot(tau,y_exata,'b-',tau,u_exata,'r-') hold on xlabel('\tau','fontsize',20) % Solucao aproximada --------------------------------------- plot([tau;1],x.*x,'^b') plot(tau(1:N-1),u(1:N-1),'*r') legend('y_exato','u_exato','y_aprox','u_aprox','Location','SouthEast')
%----------------------------------------------------------- figure(2) clf axis([-1 5 -4 2]) %solucao exata plot(tau,y_exata,'b-',tau,u_exata,'r-') hold on xlabel('\tau','fontsize',20) % Solucao aproximada --------------------------------------- plot([tau;1],x.*x,'^b') plot(tau(1:N-1),u(1:N-1),'*r') euler_ex1 legend('y_exato','u_exato','y_aprox','u_aprox','y_Euler',
'u_Euler','Location','SouthEast') %-----------------------------------------------------------
% Erro na restricao %ndifEx=norm(MATRIZD*y_exata-u_exata); ndifAp=norm(2*MATRIZD/5*x(1:N)-x(1:N)-u); fprintf(' %4d | %7.3f | %2d \n',N,ndifAp,EXITFLAG)
Apendice 59
Solução pelo método de Euler do Problema do Exemplo 1 - euler_ex1
%======================================================= % Dissertacao de Mestrado de Karla Arsie % 25/05/2012 % Problema: maximizar -int_0^5(x^2(t)+u^2(t)) dt % sujeito dx/dt=x+u % x(0)=sqrt2,x(5)=1 % Primeiro Exemplo do Capitulo 2 da dissertacao %resolvido pelo método de Euler %=====================================================
n=N; M=10^3; h=5/(n-1);
[Q b c]=gra(n,X1); % gera a quadratica a ser minimizada
% somando o termo M*(Xend-1)^2 beta=X1*(1+h)^(n-1)-Xend; c=c+M*beta^2; for i=1:n-1 b(i)=b(i)+2*M*beta*h*(1+h)^(n-i-1); for j=1:n-1 Q(i,j)=Q(i,j)+2*M*h^2*(1+h)^(2*n-j-i-2); end end
u0=rand(n-1,1);
% Solucao aproximada Euler ---------------- u_euler=GC(c,b,Q,u0); % usa Gradiente Conjugado para minimizacao
x_euler=zeros(n,1); x_euler(1)=X1; for k=2:n x_euler(k)=(1+h)^(k-1)*X1; for j=1:k-1 x_euler(k)=x_euler(k)+h*(1+h)^(k-j-1)*u_euler(j); end end y_euler=x_euler.^2; % plotado y=x^2
t=-1:2/(N-1):1;t=t'; plot(t,y_euler,'og','linewidth',2) plot(t(1:N-1),u_euler,'dk','linewidth',2)
Apendice 60
Funções Auxiliares
function [Q b c]=gra(n,x1)
%Gera c,b e Q da função J=1/2sum(xk^2+uk^2)=c+b^Tu+u^TQu/2;
v=zeros(n,n-1); for i=1:n-1 for j=i+1:n v(j,i)=1; end end
%encontrar c c=zeros(n-1,1); h=1/(n-1); h=5*h; s=0; x1=sqrt(2); for k=1:n-1 s=s+(1+h)^(2*k-2)*x1^2; end c=h/2*s;
%encontrar b z=zeros(n-1,n); for k=2:n-1 for i=1:k-1 z(i,k)=h^2*(1+h)^(2*k-i-2)*x1; end end
for i=1:n-1 s=0; for k=1:n s=s+z(i,k)*v(k,i); end b(i)=s; end b=b';
%encontrar Q w=zeros(n-1,n-1,n); for k=2:n-1 for i=1:k-1 for j=1:k-1 w(i,j,k)=h^3*(1+h)^(2*k-i-j-2); end end end
Apendice 61
for i=1:n-1 for j=1:n-1 s=0; if i==j
for k=1:n s=s+w(i,i,k)*v(k,i); end s=s+h; elseif i>j for k=1:n s=s+w(i,j,k)*v(k,i); end else for k=1:n s=s+w(i,j,k)*v(k,j); end end Q(i,j)=s; end end
end
Apendice 62
% Gradiente Conjugado % função quadratica f(x)=c+bx+x'Qx/2
function x=GC(c,b,Q,x0); x=x0; n=length(x0)+1; % dimensao do problema. gradfx=b+Q*x; fx=c+b'*x+x'*Q*x/2;
d=-gradfx; % direcao d0 ngradf=norm(gradfx); % norma do grad
k=1; kmax=3*n; %n; epsilon=1e-6;
while (ngradf>=epsilon) & (k<=kmax) Qd=Q*d; dQd=d'*Qd; alfa=-(d'*gradfx)/dQd; x=x+alfa*d;
gradfx=b+Q*x; ngradf=norm(gradfx); fx=c+b'*x+x'*Q*x/2;
beta=(d'*Q*gradfx)/dQd;
d=-gradfx+beta*d; if k>n d=-gradfx; end k=k+1; end
if ngradf>epsilon | k>=kmax disp('GC - Nao resolveu') fprintf('norma do gradiente: %12f \n',ngradf) pause(0.1) end
Apendice 63
Solução pelo método Pseudoespectral do Problema do Exemplo 2 - go_ex2
%=========================================================== % Dissertacao de Mestrado de Karla Arsie % 10/03/2013 % Problema: minimizar int_0^1(u^2(t)-y^3(t)) dt % sujeito dy/dt=yu % y(0)=1,y(1)=1 % -1=<u(t)=<0 % Primeiro Exemplo Nao linear do Capitulo 2 da dissertacao %========================================================== clear all
global VETORW MATRIZD Y1 Yend
N=60; % numero de pontos de colocacao
Y1=1; Yend=1; % Condicoes de contorno
% Solucao aproximada [tau,VETORW]=pontos_lgr_w(N); % pontos de colocacao e pesos da discretizacao
MATRIZD=matriz_dif(N,tau)/2; %retorna matriz de diferenciacao
%ponto inicial y0=Y1*rand(N,1); y0(1)=Y1; u0=rand(N,1); yu0 = [y0;u0];
% Dados do problema para ser resolvido pelo fmincon A = []; B = []; Aeq = []; Beq = []; LB = [ones(N,1);-ones(N,1)]; UB = [Inf*ones(N,1);zeros(N,1)];
% Resolucao pelo fmincon OPTIONS = OPTIMSET('Display','iter','GradObj','on'); [yu,fval,EXITFLAG] = FMINCON(@(yu0) funcao_ex2(yu0),yu0,A,B,Aeq,Beq,LB,UB,@(yu0)
nonlin_ex2(yu0),OPTIONS);
y = [Y1;yu(2:N);Yend]; u = yu(N+1:2*N);
%plota graficos da solucao aproximada figure(3) hold on plot([tau;1],y,'^b') plot(tau,u,'*r') legend('y','u',4) xlabel('\tau','fontsize',16)
Apendice 64
function [J,grad_J]=my_functional_J(YU0)
%gera a funcao a ser minimziada
global VETORW MATRIZD Y1 Yend
n0 = (length(YU0))/2; % assumed to be n Y0 = YU0(1:n0); % size n
U0 = YU0(n0+1:2*n0); % size n
J=VETORW'*(Y0.^3+U0.^2);
grad_J =[3*(Y0.^2).*VETORW;2*U0.*VETORW];
end
function [c,ceq]=nonlin(YU0) %gera as restricoes do problema
global VETORW MATRIZD Y1 Yend
% YU0 is [y(2:n-1),u]
c=[]; n0 = length(YU0)/2; % assumed to be n
Y0 = max(0,YU0(1:n0)); %evitar Y <0 % size n
%SY0 = diag(sqrt(Y0)); % size n x n U0 = YU0(n0+1:2*n0); % size n
ceq = MATRIZD*Y0 - Y0.* U0; % size n
end
Apendice 65
Solução pelo método Pseudoespectral do Problema do Exemplo 3 - go_ex3
%========================================================================== % go_ex3 % Segundo Exemplo - Problema nao linear % Referencia: J. L. Troutman. Variational Calculus and Optimal Control: % Optimization with Elementary Convexity. Springer-Verlag, New York, 1996. % Solucao exata com t in [0,2]: y(t) =1-t se t<=1, 0 c.c. % u(t)=1 se t<=1, 0 c.c. % Solucao exata com tau in [-1,1]: y(tau) = -tau se tau <= 0, 0 c.c. % u(tau) = 1 se tau <= 0, 0 c.c. % Dissertacao de Mestrado - Karla Arsie % Marco/2013 %========================================================================== clear all
N=60; % Numero de pontos de colocacao
Y1=1; Yend=0;% Condicoes de contorno
% Solucao aproximada [tau,VETORW]=pontos_lgr_w(N); % retorna os pontos de colocacao
%e os pesos da discretizacao MATRIZD=matriz_dif(N,tau); % retorna a matriz de diferenciacao
%ponto inicial y0=[Y1*rand(N,1);Yend]; y0(1)=Y1; u0=rand(N,1);
% Dados do problema para ser resolvido pelo quadprog nas variaveis
(y1,..yN,yN+1,u1,..uN) yu0 = [y0;u0]; H=2*diag([VETORW;1;zeros(N,1)]); f=zeros(2*N+1,1); Aeq = [MATRIZD zeros(N,1) -eye(N,N)]; Beq =zeros(N,1); LB = [1;-inf*ones(N,1);-ones(N,1)]; UB = [1;inf*ones(N,1);ones(N,1)];
% Resolucao pelo quadprog OPTIONS = OPTIMSET('Algorithm','interior-point-convex',
'Display','iter','GradObj','on'); yu = quadprog(H,f,[],[],Aeq,Beq,LB,UB,yu0,OPTIONS);
y = [Y1;yu(2:N);Yend]; u = yu(N+2:end);
Apendice 66
%plota graficos para comparar solucao exata e solucao aproximada figure(1); clf % Solucao Exata plot([-1 0 1],[1 0 0],'b-','linewidth',2) hold on plot([-1 0],[-1 -1],'r-','linewidth',2) plot([tau;1],y,'^b') plot(tau,u,'*r') axis([-1 1 -1 1]) xlabel('\tau','fontsize',24) grid on legend('y_exato','u_exato','y_aprox','u_aprox',4) plot([0 1],[0 0],'r-') plot([tau;1],y,'^b')
% Solucao exata nos pontos de colocacao para analise do erro y_exata=-tau.*(tau<=0); u_exata=-(tau<=0);
Referencias Bibliograficas
[1] D. N. Arnold. A concise introduction to numerical analysis. School of Mathematics,
University of Minnesota, 1991.
[2] D. Benson. A gauss pseudospectral transcription for optimal control. Technical
report, Massachusetts Institute of Technology, 2005.
[3] J. T. Betts. Survey of numerical methods for trajectory optimization. Technical
report, Journal of Guidance, Control and Dynamics, Washington, Marco-Abril 1998.
[4] J. T. Betts. Practical Methods for Optimal Control and Estimation Using Nonlinear
Programming. Society for Industrial & Applied Mathematics; 2nd edition, Washing-
ton, 2009.
[5] G.A. Bliss. The problem of Bolza in the calculus of variations. Annals of Mathema-
tics(2), 33:261–274, 1932.
[6] M. L. Boas. Mathematical Methods in the Physical Sciences. John Wiley and Sons,
New York, 1983.
[7] C. Canuto, M. Y. Hussaini, A. Quarteroni, and T. A. Tang. Spectral Methods in
Fluid Dynamics. Springer-Verlag, 1987.
[8] D. Garg e A.V. Rao C.L. Darby. Costate estimation using multiple-interval pseudos-
pectral methods. Journal of spacecraft and rockets, 48(5), 2011.
[9] P. J. Davis and P. Rabinowitz. Methods of Numerical Integration. Dover Publications,
INC, New York, 2a edition, 1984.
[10] C. I. Doering and A. O. Lopes. Equacoes Diferenciais Ordinarias. IMPA, Rio de
Janeiro, RJ, 2005.
[11] J. Baumeister e A. Leitao. Introducao a teoria de controle e programacao dinamica.
Instituto de Matematica Pura e Aplicada, Rio de Janeiro, Brasil, 1nd edition, 2008.
[12] A. A. Ribeiro e E. W. Karas. Um curso de Otimizacao. Cengage Learning, 2013. A
aparecer.
67
Referencias Bibliograficas 68
[13] S. Islam e G. Saha. Applications of gauss-radau and gauss-lobatto numerical inte-
grations over a four node quadrilateral finite element. Bangladesh J. Sci. Ind. Res.,
43(3):377–386, 2008.
[14] F. Fahroo e I. M. Ross. Pseudospectral methods for infinite-horizon nonlinear optimal
control problems. Journal of Guidance, Control, and Dynamics,, 31:927–936, 2008.
[15] S. Kameswaran e I. T. Biegler. Convergence rates for direct transcription of optimal
control problems using collocation at radau points. Computational Optimization and
Applications, 41:81–126, 2008.
[16] B. A. Finlayson e L. E. Scriven. The method of weighted residuals - a review. Applied
Mechanics Reviews, 19(9):735–748, 1966.
[17] O. Stryk e R. Bulirsch. Direct and indirect methods for trajectory optimization.
Annals of Operations Research, 37:357–373, 1992.
[18] N. Barron e R. Jensen. The pontryagin maximum principle from dynamic program-
ming and viscosity solutions to first-order partial differential equations. Trans. Amer.
Math. Soc., 298:635–641, 1986.
[19] J. Nocedal e S. J. Wright. Numerical Optimization. Springer-Verlag, Springer Series
in Operations Research, USA, 2nd edition, 2006.
[20] F. Lewis e V. Syrmos. Optimal Control. John Wiley & Sons, INC, 3nd, New Jersey,
USA, 1995.
[21] M. Kazemi e M. Razzaghi G. Elnagar. The pseudospectral legendre method for
discretizing optimal control problems. IEEE Transactions on Automatic Control,
40:1793–1796, 1995.
[22] D. Garg, M. A. Patterson, C. Francolin, C. L. Darby, G. T. Huntington, W. W. Hager,
and A. V. Rao. Direct trajectory optimization and costate estimation of finite-horizon
and infinite-horizon optimal control problems using a Radau pseudospectral method.
Comput. Optim. Appl., 49:335–358, 2011.
[23] F. B. Hildebrand. Introduction to Numerical Analysis. Dover Publications, Dover,
2a edition, 1987.
[24] D. Kraft. On converting optimal control problems into nonlinear programming codes.
NATO ASI Series, Computational Mathematical Programming, ed. K. Schittkowski,
Springer, F15:261–280, 1985.
[25] S. J. Leon. Algebra linear com Aplicacoes. Editora S.A., Rio de Janeiro, Brasil, 4nd
edition, 1998.
Referencias Bibliograficas 69
[26] E. L. Lima. Curso de Analise volume 2. Instituto de Matematica Pura e Aplicada,
Rio de Janeiro, Brasil, 1981.
[27] A. Quarteroni, R. Sacco, and F. Saleri. Numerical Mathematics. Springer, New York,
2000.
[28] J. Stoer e K. H. Well (eds.) R. Bulirsch, A. Miele. Optimal control - calculus of
variations, optimal control theory and numerical methods. International Series of
Numerical Mathematics, 111:129–143, 1993.
[29] F. A. Silva. Sistemas de equacoes diferenciais e exponencial de matrizes. Cadernos
PET - Matematica, 1:169–195, 2007.
[30] J. Sotomayor. Licoes de Equacoes Diferenciais. Projeto Euclides, IMPA, Rio de
Janeiro, Brasil, 1979.
[31] J. L. Troutman. Variational Calculus and Optimal Control: Optimization with Ele-
mentary Convexity. Springer-Verlag, New York, 1996.
[32] G. V. Winckel. Codigo em Matlab. Disponıvel em
http://www.mathworks.com/matlabcentral/fileexchange/4775-legende-gauss-
lobatto-nodes-and-weights/content/lglnodes.m, consultado em junho de 2012.